www.pudn.com > TurboPadSource.tar.gz > syntax.h
/** * \class Syntax * Syntax Class * * Deals with the syntax of all languages the editor is capable of handling. * \todo Add support for more languages. * \todo Check to make sure all syntax is correct (especially stuff with ?? next to it) */ #ifndef Syn_H #define Syn_H #include#include #include using std::vector; class Syntax { public: Syntax(); bool UsesPrep() { return preprocessor; } bool HasBlockComment() { return blockComment != ""; } bool HasComment(); bool HasIndentationWord(const wxString &line); bool HasStreamComment(); void Initialize(int lang); wxString GetBlockComment() { return blockComment; } wxString GetCommentEnd() { return streamEnd; } wxString GetCommentStart() { return streamStart; } wxString GetKeyWords(int index = 0) { return keyWords[index]; } wxString GetLanguageName() { return languageName; } wxString GetStatementEnd() { return statementEnd; } void SetKeyWords(int index, const wxString &kWords) { keyWords[index] = kWords; } private: void Clear(); wxString languageName; // Language name vector keyWords; // Vector containing keywords, 9 sets allowed wxString blockComment; // Block comment wxString streamStart; // Stream comment start wxString streamEnd; // Stream comment end wxString stringStart; // String start character(s) wxString stringEnd; // String end characters(s) wxString blockStart; // Block start string (usually '{') wxString blockEnd; // Block end string (usually '}') wxString indentWords; // Keywords which cause indentation wxString statementEnd; // Symbol which specifies the end of a statement bool preprocessor; }; enum Language { Ada, CPP, DosBatch, Eiffel, Fortran, HTML, Java, Javascript, Pascal, Perl, PHP, Python, Ruby, SQL, TclTk, Text, VisualBasic, x86, XML }; #endif