src/parser/Token.h

00001 #ifndef TOKEN_H_
00002 #define TOKEN_H_
00003 
00004 
00005 #include <string>
00006 
00007 
00008 
00009 class Token
00010         {
00011         public:
00012                 enum TokenVal
00013                         {
00014                         EOFTOK = 0,
00015 
00016                         NONTOKEN,
00017 
00018                         //declarative reserved words
00019                         BEHAVIOR,
00020                         GENERIC,
00021                         ENTITY,
00022                         MESSAGE,
00023                         CLASSIFIC,
00024                         INIT,
00025                         BODY,
00026                         SCENE,
00027 
00028 
00029 
00030                         //punctuation
00031                         SEMICOL,
00032                         COMMA,
00033                         DOT,
00034 
00035                         PARENOPEN,
00036                         PARENCLOSE,
00037                         BRACEOPEN,
00038                         BRACECLOSE,
00039 
00040                         ASSIGN,
00041 
00042                         //imperative stuff
00043 
00044                         //reserved words
00045                         BINOPI,
00046                         BINOPF,
00047                         UNARYOP,
00048                         CALL,
00049                         END,
00050                         GOTO,
00051                         GOTOIF,
00052                         GOTOIFN,
00053                         LABEL,
00054                         INT,
00055                         FLOAT,
00056 
00057                         //operators
00058                         OPER_PLUS,
00059                         OPER_MINUS,
00060                         OPER_STAR,
00061                         OPER_SLASH,
00062                         OPER_PERCENT,
00063 
00064                         OPER_LS_THAN,
00065                         OPER_GR_THAN,
00066                         OPER_LS_EQ,
00067                         OPER_GR_EQ,
00068                         OPER_EQUAL,
00069                         OPER_NEQUAL,
00070 
00071                         OPER_DAND,
00072                         OPER_DOR,
00073                         OPER_BANG,
00074                         OPER_COPY,
00075 
00076                         //variable type things
00077                         IDENT,
00078                         INT_LIT,
00079                         REAL_LIT,
00080                         
00081                         TOKEN_UNKNOWN
00082                         };
00083 
00084         private:
00085                 int val;
00086                 std::string dataStr;
00087                 int lineNo;
00088                 int colNo;
00089 
00090         public:
00091                 Token();
00092                 //~Token();
00093 
00094                 void assertTokenType(int correctType,char* errorStr);
00095                 void assertTokenNotEnd();
00096 
00097                 int getType();
00098                 std::string& getString();
00099                 const char* toString();
00100 
00101                 int getLineNo();
00102                 int getColNo();
00103 
00104                 void setVal(int valIn,char* inStr,int lineNoIn,int colNoIn);
00105         };
00106 
00107 
00108 #endif

Generated on Fri Apr 27 10:27:38 2007 for Green Engine by  doxygen 1.5.1