#include #line 1 "C:\\spongebob\\Utils\\scripter\\lexer.l" /**************************************************************************** lexer.l ParserWizard generated Lex file. Date: 07 December 2000 ****************************************************************************/ #include "parser.h" #include "var.h" #include "function.h" #include "prepro.h" #include #line 21 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" // repeated because of possible precompiled header #include #include "lexer.h" ///////////////////////////////////////////////////////////////////////////// // constructor YYLEXNAME::YYLEXNAME() { yytables(); #line 47 "C:\\spongebob\\Utils\\scripter\\lexer.l" // place any extra initialisation code here #line 37 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } #ifndef YYTEXT_SIZE #define YYTEXT_SIZE 100 #endif #ifndef YYUNPUT_SIZE #define YYUNPUT_SIZE YYTEXT_SIZE #endif // backwards compatability with lex #ifdef input int YYLEXNAME::yyinput() { return input(); } #else #define input yyinput #endif #ifdef output void YYLEXNAME::yyoutput(int ch) { output(ch); } #else #define output yyoutput #endif #ifdef unput void YYLEXNAME::yyunput(int ch) { unput(ch); } #else #define unput yyunput #endif #ifndef YYNBORLANDWARN #ifdef __BORLANDC__ #pragma warn -rch // off #endif #endif int YYLEXNAME::yyaction(int action) { #line 59 "C:\\spongebob\\Utils\\scripter\\lexer.l" // extract yylval for use later on in actions YYSTYPE& yylval = *(YYSTYPE*)yyparserptr->yylvalptr; #line 88 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" yyreturnflg = 1; switch (action) { case 1: { #line 66 "C:\\spongebob\\Utils\\scripter\\lexer.l" if(preprocessorCmd(yytext+1)!=(int)true)error(); #line 95 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 2: { #line 67 "C:\\spongebob\\Utils\\scripter\\lexer.l" printf("# commands must be at start of line!\n");error(); #line 102 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 3: { #line 69 "C:\\spongebob\\Utils\\scripter\\lexer.l" return STOP; #line 109 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 4: { #line 70 "C:\\spongebob\\Utils\\scripter\\lexer.l" return IF; #line 116 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 5: { #line 71 "C:\\spongebob\\Utils\\scripter\\lexer.l" return ELSE; #line 123 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 6: { #line 72 "C:\\spongebob\\Utils\\scripter\\lexer.l" return WHILE; #line 130 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 7: { #line 73 "C:\\spongebob\\Utils\\scripter\\lexer.l" return DO; #line 137 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 8: { #line 74 "C:\\spongebob\\Utils\\scripter\\lexer.l" return PAUSE; #line 144 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 9: { #line 75 "C:\\spongebob\\Utils\\scripter\\lexer.l" return PRINT; #line 151 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 10: { #line 76 "C:\\spongebob\\Utils\\scripter\\lexer.l" return ASSIGN; #line 158 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 11: { #line 77 "C:\\spongebob\\Utils\\scripter\\lexer.l" return EQUAL; #line 165 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 12: { #line 78 "C:\\spongebob\\Utils\\scripter\\lexer.l" return NOTEQUAL; #line 172 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 13: { #line 79 "C:\\spongebob\\Utils\\scripter\\lexer.l" return LESSTHAN; #line 179 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 14: { #line 80 "C:\\spongebob\\Utils\\scripter\\lexer.l" return GREATERTHAN; #line 186 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 15: { #line 81 "C:\\spongebob\\Utils\\scripter\\lexer.l" return PLUS; #line 193 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 16: { #line 82 "C:\\spongebob\\Utils\\scripter\\lexer.l" return SUBTRACT; #line 200 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 17: { #line 83 "C:\\spongebob\\Utils\\scripter\\lexer.l" return MULTIPLY; #line 207 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 18: { #line 84 "C:\\spongebob\\Utils\\scripter\\lexer.l" return DIVIDE; #line 214 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 19: { #line 85 "C:\\spongebob\\Utils\\scripter\\lexer.l" return END_STMT; #line 221 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 20: { #line 86 "C:\\spongebob\\Utils\\scripter\\lexer.l" return OPEN_PAR; #line 228 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 21: { #line 87 "C:\\spongebob\\Utils\\scripter\\lexer.l" return CLOSE_PAR; #line 235 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 22: { #line 88 "C:\\spongebob\\Utils\\scripter\\lexer.l" return BEGIN_CS; #line 242 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 23: { #line 89 "C:\\spongebob\\Utils\\scripter\\lexer.l" return END_CS; #line 249 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 24: { #line 90 "C:\\spongebob\\Utils\\scripter\\lexer.l" return COMMA; #line 256 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 25: { #line 93 "C:\\spongebob\\Utils\\scripter\\lexer.l" yylval.variableIdx=lookupVarName(yytext+1);return VARIABLE; #line 263 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 26: { #line 94 "C:\\spongebob\\Utils\\scripter\\lexer.l" yylval.value=atoi(yytext);return VALUE; #line 270 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 27: { #line 97 "C:\\spongebob\\Utils\\scripter\\lexer.l" yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION; #line 277 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 28: { #line 99 "C:\\spongebob\\Utils\\scripter\\lexer.l" #line 284 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 29: { #line 100 "C:\\spongebob\\Utils\\scripter\\lexer.l" comment(); #line 291 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 30: { #line 101 "C:\\spongebob\\Utils\\scripter\\lexer.l" #line 298 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 31: { #line 102 "C:\\spongebob\\Utils\\scripter\\lexer.l" #line 305 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; case 32: { #line 104 "C:\\spongebob\\Utils\\scripter\\lexer.l" unexpectedChar(); #line 312 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" } break; default: yyassert(0); break; } yyreturnflg = 0; return 0; } #ifndef YYNBORLANDWARN #ifdef __BORLANDC__ #pragma warn .rch // to the old state #endif #endif #line 106 "C:\\spongebob\\Utils\\scripter\\lexer.l" ///////////////////////////////////////////////////////////////////////////// // programs section #line 336 "C:\\spongebob\\Utils\\scripter\\lexer.cpp" void YYLEXNAME::yytables() { yystext_size = YYTEXT_SIZE; yysunput_size = YYUNPUT_SIZE; static const yymatch_t YYNEARFAR YYBASED_CODE match[] = { 0 }; yymatch = match; yytransitionmax = 336; static const yytransition_t YYNEARFAR YYBASED_CODE transition[] = { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 27, 27 }, { 0, 39 }, { 0, 56 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 27, 27 }, { 0, 0 }, { 0, 0 }, { 3, 1 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 40, 17 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 39, 17 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 38, 11 }, { 37, 10 }, { 0, 0 }, { 0, 0 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 41, 41 }, { 0, 0 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 41, 41 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 46, 35 }, { 55, 52 }, { 30, 4 }, { 44, 32 }, { 51, 46 }, { 48, 43 }, { 34, 8 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 43, 30 }, { 52, 47 }, { 32, 6 }, { 50, 45 }, { 42, 42 }, { 45, 33 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 42, 42 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 24 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 0, 26 }, { 27, 2 }, { 28, 2 }, { 35, 9 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 25, 25 }, { 47, 36 }, { 33, 7 }, { 31, 5 }, { 54, 51 }, { 49, 44 }, { 53, 50 }, { 36, 9 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 27, 2 }, { 11, 2 }, { 0, 0 }, { 56, 2 }, { 24, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 19, 2 }, { 20, 2 }, { 16, 2 }, { 14, 2 }, { 23, 2 }, { 15, 2 }, { 0, 0 }, { 17, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 25, 2 }, { 0, 0 }, { 18, 2 }, { 12, 2 }, { 10, 2 }, { 13, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 26, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 8, 2 }, { 6, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 5, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 9, 2 }, { 0, 0 }, { 0, 0 }, { 4, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 7, 2 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 21, 2 }, { 0, 0 }, { 22, 2 } }; yytransition = transition; static const yystate_t YYNEARFAR YYBASED_CODE state[] = { { 0, 0, 0 }, { 2, 1, 0 }, { -29, 210, 0 }, { 0, 0, 2 }, { 52, 20, 32 }, { 0, 132, 32 }, { 45, 61, 32 }, { 0, 129, 32 }, { 30, 29, 32 }, { 0, 124, 32 }, { 11, 2, 10 }, { 0, 1, 32 }, { 0, 0, 13 }, { 0, 0, 14 }, { 0, 0, 15 }, { 0, 0, 16 }, { 0, 0, 17 }, { 0, 1, 18 }, { 0, 0, 19 }, { 0, 0, 20 }, { 0, 0, 21 }, { 0, 0, 22 }, { 0, 0, 23 }, { 0, 0, 24 }, { 41, 151, 32 }, { 0, 174, 26 }, { 42, 161, 32 }, { 0, 1, 30 }, { 0, 0, 31 }, { 0, 0, 32 }, { 0, 56, 0 }, { 0, 0, 4 }, { 46, 22, 0 }, { 36, 67, 0 }, { 0, 0, 7 }, { 0, 17, 0 }, { 0, 127, 0 }, { 0, 0, 11 }, { 0, 0, 12 }, { -39, 1, 28 }, { 0, 0, 29 }, { 52, 1, 25 }, { 52, 76, 27 }, { 0, 27, 0 }, { 51, 135, 0 }, { 0, 62, 0 }, { 0, 23, 0 }, { 0, 58, 0 }, { 0, 0, 3 }, { 0, 0, 5 }, { 51, 136, 0 }, { 0, 134, 0 }, { 0, 19, 0 }, { 0, 0, 6 }, { 0, 0, 8 }, { 0, 0, 9 }, { -56, 2, 1 } }; yystate = state; static const yybackup_t YYNEARFAR YYBASED_CODE backup[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; yybackup = backup; }