aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexlib/LexerSimple.cxx
diff options
context:
space:
mode:
authornyamatongwe <unknown>2010-07-13 21:24:26 +1000
committernyamatongwe <unknown>2010-07-13 21:24:26 +1000
commitc0247be1cde4c927b987edff2243524cea28d547 (patch)
tree482fac70e504ac105d36898d359c5992cea8e4c8 /lexlib/LexerSimple.cxx
parent27a22f2c85e3aa0f540c61a0a245a0d759e706a9 (diff)
downloadscintilla-mirror-c0247be1cde4c927b987edff2243524cea28d547.tar.gz
New files for new lexer implementation.
Diffstat (limited to 'lexlib/LexerSimple.cxx')
-rw-r--r--lexlib/LexerSimple.cxx55
1 files changed, 55 insertions, 0 deletions
diff --git a/lexlib/LexerSimple.cxx b/lexlib/LexerSimple.cxx
new file mode 100644
index 000000000..2e35f19c3
--- /dev/null
+++ b/lexlib/LexerSimple.cxx
@@ -0,0 +1,55 @@
+// 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 <string>
+
+#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"
+#include "LexerSimple.h"
+
+#ifdef SCI_NAMESPACE
+using namespace Scintilla;
+#endif
+
+LexerSimple::LexerSimple(const LexerModule *module_) : module(module_) {
+ for (int wl = 0; wl < module->GetNumWordLists(); wl++) {
+ if (!wordLists.empty())
+ wordLists += "\n";
+ wordLists += module->GetWordListDescription(wl);
+ }
+}
+
+const char * SCI_METHOD LexerSimple::DescribeWordListSets() {
+ return wordLists.c_str();
+}
+
+void SCI_METHOD LexerSimple::Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) {
+ Accessor astyler(pAccess, &props);
+ module->Lex(startPos, lengthDoc, initStyle, keyWordLists, astyler);
+ astyler.Flush();
+}
+
+void SCI_METHOD LexerSimple::Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) {
+ Accessor astyler(pAccess, &props);
+ module->Fold(startPos, lengthDoc, initStyle, keyWordLists, astyler);
+ astyler.Flush();
+}