--- a/src/Tokens.h Wed Feb 12 06:33:16 2014 +0200 +++ b/src/Tokens.h Wed Feb 12 06:50:13 2014 +0200 @@ -30,100 +30,101 @@ #define TOKENS_H #include <climits> +#include "Macros.h" // ======================================================= -enum EToken +named_enum TokenType { // Non-word tokens - tkLeftShiftAssign, - tkRightShiftAssign, - tkEquals, - tkNotEquals, - tkAddAssign, - tkSubAssign, - tkMultiplyAssign, - tkDivideAssign, - tkModulusAssign, - tkLeftShift, - tkRightShift, - tkAtLeast, - tkAtMost, - tkDoubleAmperstand, - tkDoubleBar, - tkDoublePlus, - tkDoubleMinus, - tkSingleQuote, - tkDollarSign, - tkParenStart, - tkParenEnd, - tkBracketStart, - tkBracketEnd, - tkBraceStart, - tkBraceEnd, - tkAssign, - tkPlus, - tkMinus, - tkMultiply, - tkDivide, - tkModulus, - tkComma, - tkLesser, - tkGreater, - tkDot, - tkColon, - tkSemicolon, - tkHash, - tkExclamationMark, - tkAmperstand, - tkBar, - tkCaret, - tkQuMARK_stion, - tkArrow, + TK_LeftShiftAssign, + TK_RightShiftAssign, + TK_Equals, + TK_NotEquals, + TK_AddAssign, + TK_SubAssign, + TK_MultiplyAssign, + TK_DivideAssign, + TK_ModulusAssign, + TK_LeftShift, + TK_RightShift, + TK_AtLeast, + TK_AtMost, + TK_DoubleAmperstand, + TK_DoubleBar, + TK_DoublePlus, + TK_DoubleMinus, + TK_SingleQuote, + TK_DollarSign, + TK_ParenStart, + TK_ParenEnd, + TK_BracketStart, + TK_BracketEnd, + TK_BraceStart, + TK_BraceEnd, + TK_Assign, + TK_Plus, + TK_Minus, + TK_Multiply, + TK_Divide, + TK_Modulus, + TK_Comma, + TK_Lesser, + TK_Greater, + TK_Dot, + TK_Colon, + TK_Semicolon, + TK_Hash, + TK_ExclamationMark, + TK_Amperstand, + TK_Bar, + TK_Caret, + TK_QuestionMark, + TK_Arrow, // -------------- // Named tokens - tkBool, - tkBreak, - tkCase, - tkContinue, - tkConst, - tkDefault, - tkDo, - tkElse, - tkEvent, - tkEventdef, - tkFor, - tkFuncdef, - tkGoto, - tkIf, - tkInt, - tkMainloop, - tkOnenter, - tkOnexit, - tkState, - tkSwitch, - tkStr, - tkVar, - tkVoid, - tkWhile, - tkTrue, - tkFalse, + TK_Bool, + TK_Break, + TK_Case, + TK_Continue, + TK_Const, + TK_Default, + TK_Do, + TK_Else, + TK_Event, + TK_Eventdef, + TK_For, + TK_Funcdef, + TK_Goto, + TK_If, + TK_Int, + TK_Mainloop, + TK_Onenter, + TK_Onexit, + TK_State, + TK_Switch, + TK_Str, + TK_Var, + TK_Void, + TK_While, + TK_True, + TK_False, // These ones aren't implemented yet but I plan to do so, thus they are // reserved. Also serves as a to-do list of sorts for me. >:F - tkEnum, - tkFunc, - tkReturn, + TK_Enum, + TK_Func, + TK_Return, // -------------- // Generic tokens - tkSymbol, - tkNumber, - tkString, - - tkFirstNamedToken = tkBool, - tkLastNamedToken = (int) tkSymbol - 1, - tkAny = INT_MAX + TK_Symbol, + TK_Number, + TK_String, + TK_Any, }; +static const int gFirstNamedToken = TK_Bool; +static const int gLastNamedToken = (int) TK_Symbol - 1; + #endif