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