diff options
author | nyamatongwe <unknown> | 2010-07-13 21:24:26 +1000 |
---|---|---|
committer | nyamatongwe <unknown> | 2010-07-13 21:24:26 +1000 |
commit | c0247be1cde4c927b987edff2243524cea28d547 (patch) | |
tree | 482fac70e504ac105d36898d359c5992cea8e4c8 /lexlib/LexerBase.cxx | |
parent | 27a22f2c85e3aa0f540c61a0a245a0d759e706a9 (diff) | |
download | scintilla-mirror-c0247be1cde4c927b987edff2243524cea28d547.tar.gz |
New files for new lexer implementation.
Diffstat (limited to 'lexlib/LexerBase.cxx')
-rw-r--r-- | lexlib/LexerBase.cxx | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/lexlib/LexerBase.cxx b/lexlib/LexerBase.cxx new file mode 100644 index 000000000..ea5734d24 --- /dev/null +++ b/lexlib/LexerBase.cxx @@ -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; +} |