123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // Scintilla source code edit control
- /** @file LexerBase.h
- ** 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.
- #ifndef LEXERBASE_H
- #define LEXERBASE_H
- #ifdef SCI_NAMESPACE
- namespace Scintilla {
- #endif
- // A simple lexer with no state
- class LexerBase : public ILexer {
- protected:
- PropSetSimple props;
- enum {numWordLists=KEYWORDSET_MAX+1};
- WordList *keyWordLists[numWordLists+1];
- public:
- LexerBase();
- virtual ~LexerBase();
- void SCI_METHOD Release();
- int SCI_METHOD Version() const;
- const char * SCI_METHOD PropertyNames();
- int SCI_METHOD PropertyType(const char *name);
- const char * SCI_METHOD DescribeProperty(const char *name);
- Sci_Position SCI_METHOD PropertySet(const char *key, const char *val);
- const char * SCI_METHOD DescribeWordListSets();
- Sci_Position SCI_METHOD WordListSet(int n, const char *wl);
- void SCI_METHOD Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) = 0;
- void SCI_METHOD Fold(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) = 0;
- void * SCI_METHOD PrivateCall(int operation, void *pointer);
- };
- #ifdef SCI_NAMESPACE
- }
- #endif
- #endif
|