⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 externallexer.h

📁 robocup rcssserver 运行防真机器人足球比赛所用的服务器端
💻 H
字号:
// Scintilla source code edit control/** @file ExternalLexer.h ** Support external lexers in DLLs. **/// Copyright 2001 Simon Steele <ss@pnotepad.org>, portions copyright Neil Hodgson.// The License.txt file describes the conditions under which this software may be distributed.#ifndef EXTERNALLEXER_H#define EXTERNALLEXER_H#if PLAT_WIN#define EXT_LEXER_DECL __stdcall#elif PLAT_GTK#define EXT_LEXER_DECL#elif PLAT_WX#define EXT_LEXER_DECL#endif// External Lexer function definitions...typedef void (EXT_LEXER_DECL *ExtLexerFunction)(unsigned int lexer, unsigned int startPos, int length, int initStyle,                  char *words[], WindowID window, char *props);typedef void (EXT_LEXER_DECL *ExtFoldFunction)(unsigned int lexer, unsigned int startPos, int length, int initStyle,                  char *words[], WindowID window, char *props);typedef void* (EXT_LEXER_DECL *GetLexerFunction)(unsigned int Index);typedef int (EXT_LEXER_DECL *GetLexerCountFn)();typedef void (EXT_LEXER_DECL *GetLexerNameFn)(unsigned int Index, char *name, int buflength);//class DynamicLibrary;/// Sub-class of LexerModule to use an external lexer.class ExternalLexerModule : protected LexerModule {protected:        ExtLexerFunction fneLexer;        ExtFoldFunction fneFolder;        int externalLanguage;        char name[100];public:        ExternalLexerModule(int language_, LexerFunction fnLexer_,                const char *languageName_=0, LexerFunction fnFolder_=0) : LexerModule(language_, fnLexer_, 0, fnFolder_){                strncpy(name, languageName_, sizeof(name));                languageName = name;        };        virtual void Lex(unsigned int startPos, int lengthDoc, int initStyle,                                        WordList *keywordlists[], Accessor &styler) const;        virtual void Fold(unsigned int startPos, int lengthDoc, int initStyle,                                        WordList *keywordlists[], Accessor &styler) const;        virtual void SetExternal(ExtLexerFunction fLexer, ExtFoldFunction fFolder, int index);};/// LexerMinder points to an ExternalLexerModule - so we don't leak them.class LexerMinder {public:        ExternalLexerModule *self;        LexerMinder *next;};/// LexerLibrary exists for every External Lexer DLL, contains LexerMinders.class LexerLibrary {        DynamicLibrary  *lib;        LexerMinder             *first;        LexerMinder             *last;public:        LexerLibrary(const char* ModuleName);        ~LexerLibrary();        void Release();        LexerLibrary    *next;        SString                 m_sModuleName;};/// LexerManager manages external lexers, contains LexerLibrarys.class LexerManager {public:        ~LexerManager();        static LexerManager *GetInstance();        static void DeleteInstance();        void Load(const char* path);        void Clear();private:        LexerManager();        static LexerManager *theInstance;        void LoadLexerLibrary(const char* module);        LexerLibrary *first;        LexerLibrary *last;};class LMMinder {public:        ~LMMinder();};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -