1 // Scintilla source code edit control
2 /** @file DefaultLexer.h
3 ** A lexer base class with default empty implementations of methods.
4 ** For lexers that do not support all features so do not need real implementations.
5 ** Does have real implementation for style metadata.
7 // Copyright 2017 by Neil Hodgson <neilh@scintilla.org>
8 // The License.txt file describes the conditions under which this software may be distributed.
10 #ifndef DEFAULTLEXER_H
11 #define DEFAULTLEXER_H
15 // A simple lexer with no state
16 class DefaultLexer
: public ILexerWithMetaData
{
17 const LexicalClass
*lexClasses
;
20 DefaultLexer(const LexicalClass
*lexClasses_
= nullptr, size_t nClasses_
= 0);
21 virtual ~DefaultLexer();
22 void SCI_METHOD
Release() override
;
23 int SCI_METHOD
Version() const override
;
24 const char * SCI_METHOD
PropertyNames() override
;
25 int SCI_METHOD
PropertyType(const char *name
) override
;
26 const char * SCI_METHOD
DescribeProperty(const char *name
) override
;
27 Sci_Position SCI_METHOD
PropertySet(const char *key
, const char *val
) override
;
28 const char * SCI_METHOD
DescribeWordListSets() override
;
29 Sci_Position SCI_METHOD
WordListSet(int n
, const char *wl
) override
;
30 void SCI_METHOD
Lex(Sci_PositionU startPos
, Sci_Position lengthDoc
, int initStyle
, IDocument
*pAccess
) override
= 0;
31 void SCI_METHOD
Fold(Sci_PositionU startPos
, Sci_Position lengthDoc
, int initStyle
, IDocument
*pAccess
) override
;
32 void * SCI_METHOD
PrivateCall(int operation
, void *pointer
) override
;
33 int SCI_METHOD
LineEndTypesSupported() override
;
34 int SCI_METHOD
AllocateSubStyles(int styleBase
, int numberStyles
) override
;
35 int SCI_METHOD
SubStylesStart(int styleBase
) override
;
36 int SCI_METHOD
SubStylesLength(int styleBase
) override
;
37 int SCI_METHOD
StyleFromSubStyle(int subStyle
) override
;
38 int SCI_METHOD
PrimaryStyleFromStyle(int style
) override
;
39 void SCI_METHOD
FreeSubStyles() override
;
40 void SCI_METHOD
SetIdentifiers(int style
, const char *identifiers
) override
;
41 int SCI_METHOD
DistanceToSecondaryStyles() override
;
42 const char * SCI_METHOD
GetSubStyleBases() override
;
43 int SCI_METHOD
NamedStyles() override
;
44 const char * SCI_METHOD
NameOfStyle(int style
) override
;
45 const char * SCI_METHOD
TagsOfStyle(int style
) override
;
46 const char * SCI_METHOD
DescriptionOfStyle(int style
) override
;