]> git.saurik.com Git - wxWidgets.git/blob - src/stc/scintilla/lexlib/LexerBase.h
Initial copy of Scintilla 3.21 code
[wxWidgets.git] / src / stc / scintilla / lexlib / LexerBase.h
1 // Scintilla source code edit control
2 /** @file LexerBase.h
3 ** A simple lexer with no state.
4 **/
5 // Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
7
8 #ifndef LEXERBASE_H
9 #define LEXERBASE_H
10
11 #ifdef SCI_NAMESPACE
12 namespace Scintilla {
13 #endif
14
15 // A simple lexer with no state
16 class LexerBase : public ILexer {
17 protected:
18 PropSetSimple props;
19 enum {numWordLists=KEYWORDSET_MAX+1};
20 WordList *keyWordLists[numWordLists+1];
21 public:
22 LexerBase();
23 virtual ~LexerBase();
24 void SCI_METHOD Release();
25 int SCI_METHOD Version() const;
26 const char * SCI_METHOD PropertyNames();
27 int SCI_METHOD PropertyType(const char *name);
28 const char * SCI_METHOD DescribeProperty(const char *name);
29 int SCI_METHOD PropertySet(const char *key, const char *val);
30 const char * SCI_METHOD DescribeWordListSets();
31 int SCI_METHOD WordListSet(int n, const char *wl);
32 void SCI_METHOD Lex(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0;
33 void SCI_METHOD Fold(unsigned int startPos, int lengthDoc, int initStyle, IDocument *pAccess) = 0;
34 void * SCI_METHOD PrivateCall(int operation, void *pointer);
35 };
36
37 #ifdef SCI_NAMESPACE
38 }
39 #endif
40
41 #endif