X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibspiderscript.so_src%2Ftokens.h;h=44176b0b392c681255c935c0b3639fb0f5337bec;hb=a4aa24536a1748c8ace1ef7abdc01108da417856;hp=5a529f733c33fd6547ccaac8e2c774c3c385dc8b;hpb=ec4d050568da0f3f18a20969bd118b5c67f03ee2;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libspiderscript.so_src/tokens.h b/Usermode/Libraries/libspiderscript.so_src/tokens.h index 5a529f73..44176b0b 100644 --- a/Usermode/Libraries/libspiderscript.so_src/tokens.h +++ b/Usermode/Libraries/libspiderscript.so_src/tokens.h @@ -5,26 +5,33 @@ #include +// Make the scope character ('.') be a symbol, otherwise it's just +// a ident character +#define USE_SCOPE_CHAR 1 + // === TYPES === typedef struct { // Lexer State - char *BufStart; - char *CurPos; + const char *BufStart; + const char *CurPos; + + char *Filename; int LastLine; int LastToken, LastTokenLen; - char *LastTokenStr; + const char *LastTokenStr; int NextLine; int NextToken, NextTokenLen; - char *NextTokenStr; + const char *NextTokenStr; int CurLine; int Token, TokenLen; - char *TokenStr; + const char *TokenStr; jmp_buf JmpTarget; + int ErrorHit; } tParser; // === FUNCTIONS === @@ -41,6 +48,7 @@ enum eTokens // Primitives TOK_STR, TOK_INTEGER, + TOK_REAL, TOK_VARIABLE, TOK_IDENT, @@ -59,6 +67,8 @@ enum eTokens TOK_RWD_DO, TOK_RWD_WHILE, TOK_RWD_FOR, + // - Value + TOK_RWD_NULL, // - Types TOK_RWD_VOID, TOK_RWD_OBJECT, @@ -80,6 +90,7 @@ enum eTokens TOK_GT, TOK_GTE, // Operations + TOK_BWNOT, TOK_LOGICNOT, TOK_DIV, TOK_MUL, TOK_PLUS, TOK_MINUS, TOK_SHL, TOK_SHR, @@ -116,7 +127,7 @@ enum eTokens case TOK_RWD_OBJECT: _type = SS_DATATYPE_OBJECT; break;\ case TOK_RWD_REAL: _type = SS_DATATYPE_REAL; break;\ case TOK_RWD_STRING: _type = SS_DATATYPE_STRING; break;\ - default:fprintf(stderr,\ + default:_type=SS_DATATYPE_UNDEF;fprintf(stderr,\ "ERROR: Unexpected %s, expected "TOKEN_GROUP_TYPES_STR"\n",csaTOKEN_NAMES[Parser->Token]);\ break;\ } } while(0) @@ -128,6 +139,7 @@ const char * const csaTOKEN_NAMES[] = { "TOK_STR", "TOK_INTEGER", + "TOK_REAL", "TOK_VARIABLE", "TOK_IDENT", @@ -145,6 +157,7 @@ const char * const csaTOKEN_NAMES[] = { "TOK_RWD_WHILE", "TOK_RWD_FOR", + "TOK_RWD_NULL", "TOK_RWD_VOID", "TOK_RWD_OBJECT", "TOK_RWD_OPAUQE", @@ -162,6 +175,7 @@ const char * const csaTOKEN_NAMES[] = { "TOK_LT", "TOK_LTE", "TOK_GT", "TOK_GTE", + "TOK_BWNOT", "TOK_LOGICNOT", "TOK_DIV", "TOK_MUL", "TOK_PLUS", "TOK_MINUS", "TOK_SHL", "TOK_SHR",