]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/scintilla/lexlib/LexerBase.cxx
Initial copy of Scintilla 3.21 code
[wxWidgets.git] / src / stc / scintilla / lexlib / LexerBase.cxx
diff --git a/src/stc/scintilla/lexlib/LexerBase.cxx b/src/stc/scintilla/lexlib/LexerBase.cxx
new file mode 100644 (file)
index 0000000..ea5734d
--- /dev/null
@@ -0,0 +1,92 @@
+// Scintilla source code edit control
+/** @file LexerSimple.cxx
+ ** A simple lexer with no state.
+ **/
+// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
+// The License.txt file describes the conditions under which this software may be distributed.
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <ctype.h>
+
+#include "ILexer.h"
+#include "Scintilla.h"
+#include "SciLexer.h"
+
+#include "PropSetSimple.h"
+#include "WordList.h"
+#include "LexAccessor.h"
+#include "Accessor.h"
+#include "LexerModule.h"
+#include "LexerBase.h"
+
+#ifdef SCI_NAMESPACE
+using namespace Scintilla;
+#endif
+
+LexerBase::LexerBase() {
+       for (int wl = 0; wl < numWordLists; wl++)
+               keyWordLists[wl] = new WordList;
+       keyWordLists[numWordLists] = 0;
+}
+
+LexerBase::~LexerBase() {
+       for (int wl = 0; wl < numWordLists; wl++) {
+               delete keyWordLists[wl];
+               keyWordLists[wl] = 0;
+       }
+       keyWordLists[numWordLists] = 0;
+}
+
+void SCI_METHOD LexerBase::Release() {
+       delete this;
+}
+
+int SCI_METHOD LexerBase::Version() const {
+       return lvOriginal;
+}
+
+const char * SCI_METHOD LexerBase::PropertyNames() {
+       return "";
+}
+
+int SCI_METHOD LexerBase::PropertyType(const char *) {
+       return SC_TYPE_BOOLEAN;
+}
+
+const char * SCI_METHOD LexerBase::DescribeProperty(const char *) {
+       return "";
+}
+
+int SCI_METHOD LexerBase::PropertySet(const char *key, const char *val) {
+       const char *valOld = props.Get(key);
+       if (strcmp(val, valOld) != 0) {
+               props.Set(key, val);
+               return 0;
+       } else {
+               return -1;
+       }
+}
+
+const char * SCI_METHOD LexerBase::DescribeWordListSets() {
+       return "";
+}
+
+int SCI_METHOD LexerBase::WordListSet(int n, const char *wl) {
+       if (n < numWordLists) {
+               WordList wlNew;
+               wlNew.Set(wl);
+               if (*keyWordLists[n] != wlNew) {
+                       keyWordLists[n]->Set(wl);
+                       return 0;
+               }
+       }
+       return -1;
+}
+
+void * SCI_METHOD LexerBase::PrivateCall(int, void *) {
+       return 0;
+}