This commit is contained in:
parent
8649d25cff
commit
86e55aae82
14 changed files with 955 additions and 654 deletions
|
@ -328,6 +328,18 @@ int CTreeNode::generateCode(int _write)
|
||||||
codeSize+=emit(OP_ADD,_write);
|
codeSize+=emit(OP_ADD,_write);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MULTIPLY_EXPR: // * [value, value]
|
||||||
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_MULTIPLY,_write);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DIVIDE_EXPR: // / [value, value]
|
||||||
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_DIVIDE,_write);
|
||||||
|
break;
|
||||||
|
|
||||||
case FUNCTION_EXPR: // function [functionNumber]
|
case FUNCTION_EXPR: // function [functionNumber]
|
||||||
codeSize+=emit(OP_CALL_FUNCTION,_write);
|
codeSize+=emit(OP_CALL_FUNCTION,_write);
|
||||||
codeSize+=emit(getFunctionNumber(),_write);
|
codeSize+=emit(getFunctionNumber(),_write);
|
||||||
|
|
|
@ -49,6 +49,8 @@ typedef enum
|
||||||
VALUE_EXPR, // value
|
VALUE_EXPR, // value
|
||||||
PLUS_EXPR, // + [value, value]
|
PLUS_EXPR, // + [value, value]
|
||||||
SUBTRACT_EXPR, // - [value, value]
|
SUBTRACT_EXPR, // - [value, value]
|
||||||
|
MULTIPLY_EXPR, // * [value, value]
|
||||||
|
DIVIDE_EXPR, // / [value, value]
|
||||||
FUNCTION_EXPR, // function [functionNumber]
|
FUNCTION_EXPR, // function [functionNumber]
|
||||||
}NodeType;
|
}NodeType;
|
||||||
|
|
||||||
|
@ -94,6 +96,8 @@ private:
|
||||||
OP_IS_GREATERTHAN_VALUE,// value, value pushes result ( 0 or 1 ) to stack
|
OP_IS_GREATERTHAN_VALUE,// value, value pushes result ( 0 or 1 ) to stack
|
||||||
OP_ASSIGN, // varidx, value
|
OP_ASSIGN, // varidx, value
|
||||||
OP_ADD, // value, value pushes result to stack
|
OP_ADD, // value, value pushes result to stack
|
||||||
|
OP_MULTIPLY, // value, value pushes result to stack
|
||||||
|
OP_DIVIDE, // value, value pushes result to stack
|
||||||
OP_NEG, // value pushes result to stack
|
OP_NEG, // value pushes result to stack
|
||||||
OP_PRINT, // value
|
OP_PRINT, // value
|
||||||
OP_CALL_FUNCTION, // functionNumber, argcount args pushes return value to stack
|
OP_CALL_FUNCTION, // functionNumber, argcount args pushes return value to stack
|
||||||
|
|
|
@ -29,7 +29,7 @@ Date: 07 December 2000
|
||||||
YYLEXNAME::YYLEXNAME()
|
YYLEXNAME::YYLEXNAME()
|
||||||
{
|
{
|
||||||
yytables();
|
yytables();
|
||||||
#line 46 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 47 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
// place any extra initialisation code here
|
// place any extra initialisation code here
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ void YYLEXNAME::yyunput(int ch)
|
||||||
|
|
||||||
int YYLEXNAME::yyaction(int action)
|
int YYLEXNAME::yyaction(int action)
|
||||||
{
|
{
|
||||||
#line 58 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 59 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
// extract yylval for use later on in actions
|
// extract yylval for use later on in actions
|
||||||
YYSTYPE& yylval = *(YYSTYPE*)yyparserptr->yylvalptr;
|
YYSTYPE& yylval = *(YYSTYPE*)yyparserptr->yylvalptr;
|
||||||
|
@ -89,196 +89,196 @@ YYSTYPE& yylval = *(YYSTYPE*)yyparserptr->yylvalptr;
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
#line 65 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 66 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
if(preprocessorCmd(yytext+1)!=(int)true)error();
|
if(preprocessorCmd(yytext+1)!=(int)true)error();
|
||||||
#line 95 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 95 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
#line 66 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 67 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
printf("# commands must be at start of line!\n");error();
|
printf("# commands must be at start of line!\n");error();
|
||||||
#line 102 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 102 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
{
|
{
|
||||||
#line 68 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 69 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return STOP;
|
return STOP;
|
||||||
#line 109 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 109 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
#line 69 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 70 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return IF;
|
return IF;
|
||||||
#line 116 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 116 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
{
|
{
|
||||||
#line 70 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 71 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return ELSE;
|
return ELSE;
|
||||||
#line 123 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 123 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
{
|
{
|
||||||
#line 71 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 72 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return WHILE;
|
return WHILE;
|
||||||
#line 130 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 130 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
{
|
{
|
||||||
#line 72 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 73 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return DO;
|
return DO;
|
||||||
#line 137 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 137 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
{
|
{
|
||||||
#line 73 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 74 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return PAUSE;
|
return PAUSE;
|
||||||
#line 144 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 144 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
{
|
{
|
||||||
#line 74 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 75 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return PRINT;
|
return PRINT;
|
||||||
#line 151 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 151 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
{
|
{
|
||||||
#line 75 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 76 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return ASSIGN;
|
return ASSIGN;
|
||||||
#line 158 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 158 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
{
|
{
|
||||||
#line 76 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 77 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return EQUAL;
|
return EQUAL;
|
||||||
#line 165 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 165 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
{
|
{
|
||||||
#line 77 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 78 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return NOTEQUAL;
|
return NOTEQUAL;
|
||||||
#line 172 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 172 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
{
|
{
|
||||||
#line 78 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 79 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return LESSTHAN;
|
return LESSTHAN;
|
||||||
#line 179 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 179 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
{
|
{
|
||||||
#line 79 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 80 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return GREATERTHAN;
|
return GREATERTHAN;
|
||||||
#line 186 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 186 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
{
|
{
|
||||||
#line 80 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 81 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return PLUS;
|
return PLUS;
|
||||||
#line 193 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 193 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
{
|
{
|
||||||
#line 81 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 82 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return SUBTRACT;
|
return SUBTRACT;
|
||||||
#line 200 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 200 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
{
|
{
|
||||||
#line 82 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 83 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return END_STMT;
|
return MULTIPLY;
|
||||||
#line 207 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 207 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
{
|
{
|
||||||
#line 83 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 84 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return OPEN_PAR;
|
return DIVIDE;
|
||||||
#line 214 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 214 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
{
|
{
|
||||||
#line 84 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 85 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return CLOSE_PAR;
|
return END_STMT;
|
||||||
#line 221 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 221 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
{
|
{
|
||||||
#line 85 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 86 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return BEGIN_CS;
|
return OPEN_PAR;
|
||||||
#line 228 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 228 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 21:
|
case 21:
|
||||||
{
|
{
|
||||||
#line 86 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 87 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return END_CS;
|
return CLOSE_PAR;
|
||||||
#line 235 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 235 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 22:
|
case 22:
|
||||||
{
|
{
|
||||||
#line 87 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 88 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return COMMA;
|
return BEGIN_CS;
|
||||||
#line 242 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 242 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 23:
|
case 23:
|
||||||
{
|
{
|
||||||
#line 90 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 89 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
yylval.variableIdx=lookupVarName(yytext+1);return VARIABLE;
|
return END_CS;
|
||||||
#line 249 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 249 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
{
|
{
|
||||||
#line 91 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 90 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
yylval.value=atoi(yytext);return VALUE;
|
return COMMA;
|
||||||
#line 256 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 256 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 25:
|
case 25:
|
||||||
{
|
{
|
||||||
#line 94 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 93 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION;
|
yylval.variableIdx=lookupVarName(yytext+1);return VARIABLE;
|
||||||
#line 263 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 263 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 26:
|
case 26:
|
||||||
{
|
{
|
||||||
#line 96 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 94 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
yylval.value=atoi(yytext);return VALUE;
|
||||||
#line 270 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 270 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 27:
|
case 27:
|
||||||
{
|
{
|
||||||
#line 97 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 97 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION;
|
||||||
#line 277 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 277 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 28:
|
case 28:
|
||||||
{
|
{
|
||||||
#line 98 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 99 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
#line 284 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 284 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
|
@ -286,10 +286,31 @@ yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION;
|
||||||
case 29:
|
case 29:
|
||||||
{
|
{
|
||||||
#line 100 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 100 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
unexpectedChar();
|
comment();
|
||||||
#line 291 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 291 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
yyassert(0);
|
yyassert(0);
|
||||||
break;
|
break;
|
||||||
|
@ -303,7 +324,7 @@ unexpectedChar();
|
||||||
#pragma warn .rch // <warning: unreachable code> to the old state
|
#pragma warn .rch // <warning: unreachable code> to the old state
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#line 102 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 106 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -311,7 +332,7 @@ unexpectedChar();
|
||||||
// programs section
|
// programs section
|
||||||
|
|
||||||
|
|
||||||
#line 315 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 336 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
|
|
||||||
void YYLEXNAME::yytables()
|
void YYLEXNAME::yytables()
|
||||||
{
|
{
|
||||||
|
@ -335,9 +356,9 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 26, 26 },
|
{ 27, 27 },
|
||||||
{ 0, 40 },
|
{ 0, 39 },
|
||||||
{ 0, 54 },
|
{ 0, 56 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
@ -358,7 +379,7 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 26, 26 },
|
{ 27, 27 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 3, 1 },
|
{ 3, 1 },
|
||||||
|
@ -368,172 +389,162 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
{ 40, 17 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 39, 17 },
|
||||||
{ 40, 25 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 37, 11 },
|
{ 38, 11 },
|
||||||
{ 36, 10 },
|
{ 37, 10 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 38, 38 },
|
{ 41, 41 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 44, 34 },
|
{ 46, 35 },
|
||||||
{ 53, 50 },
|
{ 55, 52 },
|
||||||
{ 29, 4 },
|
{ 30, 4 },
|
||||||
{ 42, 31 },
|
{ 44, 32 },
|
||||||
{ 49, 44 },
|
{ 51, 46 },
|
||||||
{ 46, 41 },
|
|
||||||
{ 33, 8 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 39, 39 },
|
|
||||||
{ 41, 29 },
|
|
||||||
{ 50, 45 },
|
|
||||||
{ 31, 6 },
|
|
||||||
{ 48, 43 },
|
{ 48, 43 },
|
||||||
{ 39, 39 },
|
{ 34, 8 },
|
||||||
{ 43, 32 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 42, 42 },
|
||||||
{ 39, 39 },
|
{ 43, 30 },
|
||||||
{ 0, 22 },
|
{ 52, 47 },
|
||||||
{ 0, 22 },
|
{ 32, 6 },
|
||||||
{ 0, 22 },
|
{ 50, 45 },
|
||||||
{ 0, 22 },
|
{ 42, 42 },
|
||||||
{ 0, 22 },
|
{ 45, 33 },
|
||||||
{ 0, 22 },
|
{ 42, 42 },
|
||||||
{ 0, 22 },
|
{ 42, 42 },
|
||||||
{ 0, 22 },
|
{ 42, 42 },
|
||||||
{ 0, 22 },
|
{ 42, 42 },
|
||||||
{ 0, 22 },
|
{ 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 },
|
||||||
|
@ -544,57 +555,67 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 24 },
|
{ 0, 24 },
|
||||||
{ 0, 24 },
|
{ 0, 24 },
|
||||||
{ 0, 24 },
|
{ 0, 24 },
|
||||||
{ 26, 2 },
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
|
{ 0, 26 },
|
||||||
{ 27, 2 },
|
{ 27, 2 },
|
||||||
{ 34, 9 },
|
{ 28, 2 },
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 23, 23 },
|
|
||||||
{ 45, 35 },
|
|
||||||
{ 32, 7 },
|
|
||||||
{ 30, 5 },
|
|
||||||
{ 52, 49 },
|
|
||||||
{ 47, 42 },
|
|
||||||
{ 51, 48 },
|
|
||||||
{ 35, 9 },
|
{ 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 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 26, 2 },
|
{ 27, 2 },
|
||||||
{ 11, 2 },
|
{ 11, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 54, 2 },
|
{ 56, 2 },
|
||||||
{ 22, 2 },
|
{ 24, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 17, 2 },
|
{ 19, 2 },
|
||||||
{ 18, 2 },
|
{ 20, 2 },
|
||||||
{ 0, 0 },
|
{ 16, 2 },
|
||||||
{ 14, 2 },
|
{ 14, 2 },
|
||||||
{ 21, 2 },
|
{ 23, 2 },
|
||||||
{ 15, 2 },
|
{ 15, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
{ 17, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 25, 2 },
|
||||||
{ 25, 2 },
|
{ 25, 2 },
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 23, 2 },
|
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 16, 2 },
|
{ 18, 2 },
|
||||||
{ 12, 2 },
|
{ 12, 2 },
|
||||||
{ 10, 2 },
|
{ 10, 2 },
|
||||||
{ 13, 2 },
|
{ 13, 2 },
|
||||||
|
@ -630,7 +651,7 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 24, 2 },
|
{ 26, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
@ -658,68 +679,70 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 19, 2 },
|
{ 21, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 20, 2 }
|
{ 22, 2 }
|
||||||
};
|
};
|
||||||
yytransition = transition;
|
yytransition = transition;
|
||||||
|
|
||||||
static const yystate_t YYNEARFAR YYBASED_CODE state[] = {
|
static const yystate_t YYNEARFAR YYBASED_CODE state[] = {
|
||||||
{ 0, 0, 0 },
|
{ 0, 0, 0 },
|
||||||
{ 2, 1, 0 },
|
{ 2, 1, 0 },
|
||||||
{ -28, 210, 0 },
|
{ -29, 210, 0 },
|
||||||
{ 0, 0, 2 },
|
{ 0, 0, 2 },
|
||||||
{ 50, 20, 29 },
|
{ 52, 20, 32 },
|
||||||
{ 0, 132, 29 },
|
{ 0, 132, 32 },
|
||||||
{ 43, 61, 29 },
|
{ 45, 61, 32 },
|
||||||
{ 0, 129, 29 },
|
{ 0, 129, 32 },
|
||||||
{ 29, 29, 29 },
|
{ 30, 29, 32 },
|
||||||
{ 0, 124, 29 },
|
{ 0, 124, 32 },
|
||||||
{ 11, 2, 10 },
|
{ 11, 2, 10 },
|
||||||
{ 0, 1, 29 },
|
{ 0, 1, 32 },
|
||||||
{ 0, 0, 13 },
|
{ 0, 0, 13 },
|
||||||
{ 0, 0, 14 },
|
{ 0, 0, 14 },
|
||||||
{ 0, 0, 15 },
|
{ 0, 0, 15 },
|
||||||
{ 0, 0, 16 },
|
{ 0, 0, 16 },
|
||||||
{ 0, 0, 17 },
|
{ 0, 0, 17 },
|
||||||
{ 0, 0, 18 },
|
{ 0, 1, 18 },
|
||||||
{ 0, 0, 19 },
|
{ 0, 0, 19 },
|
||||||
{ 0, 0, 20 },
|
{ 0, 0, 20 },
|
||||||
{ 0, 0, 21 },
|
{ 0, 0, 21 },
|
||||||
{ 0, 0, 22 },
|
{ 0, 0, 22 },
|
||||||
{ 38, 151, 29 },
|
{ 0, 0, 23 },
|
||||||
{ 0, 174, 24 },
|
{ 0, 0, 24 },
|
||||||
{ 39, 161, 29 },
|
{ 41, 151, 32 },
|
||||||
{ 0, 1, 29 },
|
{ 0, 174, 26 },
|
||||||
{ 0, 1, 27 },
|
{ 42, 161, 32 },
|
||||||
{ 0, 0, 28 },
|
{ 0, 1, 30 },
|
||||||
{ 0, 0, 29 },
|
{ 0, 0, 31 },
|
||||||
|
{ 0, 0, 32 },
|
||||||
{ 0, 56, 0 },
|
{ 0, 56, 0 },
|
||||||
{ 0, 0, 4 },
|
{ 0, 0, 4 },
|
||||||
{ 44, 22, 0 },
|
{ 46, 22, 0 },
|
||||||
{ 35, 67, 0 },
|
{ 36, 67, 0 },
|
||||||
{ 0, 0, 7 },
|
{ 0, 0, 7 },
|
||||||
{ 0, 17, 0 },
|
{ 0, 17, 0 },
|
||||||
{ 0, 127, 0 },
|
{ 0, 127, 0 },
|
||||||
{ 0, 0, 11 },
|
{ 0, 0, 11 },
|
||||||
{ 0, 0, 12 },
|
{ 0, 0, 12 },
|
||||||
{ 50, 1, 23 },
|
{ -39, 1, 28 },
|
||||||
{ 50, 76, 25 },
|
{ 0, 0, 29 },
|
||||||
{ -40, 1, 26 },
|
{ 52, 1, 25 },
|
||||||
|
{ 52, 76, 27 },
|
||||||
{ 0, 27, 0 },
|
{ 0, 27, 0 },
|
||||||
{ 49, 135, 0 },
|
{ 51, 135, 0 },
|
||||||
{ 0, 62, 0 },
|
{ 0, 62, 0 },
|
||||||
{ 0, 23, 0 },
|
{ 0, 23, 0 },
|
||||||
{ 0, 58, 0 },
|
{ 0, 58, 0 },
|
||||||
{ 0, 0, 3 },
|
{ 0, 0, 3 },
|
||||||
{ 0, 0, 5 },
|
{ 0, 0, 5 },
|
||||||
{ 49, 136, 0 },
|
{ 51, 136, 0 },
|
||||||
{ 0, 134, 0 },
|
{ 0, 134, 0 },
|
||||||
{ 0, 19, 0 },
|
{ 0, 19, 0 },
|
||||||
{ 0, 0, 6 },
|
{ 0, 0, 6 },
|
||||||
{ 0, 0, 8 },
|
{ 0, 0, 8 },
|
||||||
{ 0, 0, 9 },
|
{ 0, 0, 9 },
|
||||||
{ -54, 2, 1 }
|
{ -56, 2, 1 }
|
||||||
};
|
};
|
||||||
yystate = state;
|
yystate = state;
|
||||||
|
|
||||||
|
@ -753,6 +776,9 @@ void YYLEXNAME::yytables()
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
yybackup = backup;
|
yybackup = backup;
|
||||||
|
|
|
@ -31,11 +31,12 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void unexpectedChar();
|
void unexpectedChar();
|
||||||
|
void comment();
|
||||||
|
|
||||||
|
|
||||||
class myparser *m_currentParser;
|
class myparser *m_currentParser;
|
||||||
|
|
||||||
#line 39 "C:\\spongebob\\Utils\\scripter\\lexer.h"
|
#line 40 "C:\\spongebob\\Utils\\scripter\\lexer.h"
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef YYLEXNAME
|
#ifndef YYLEXNAME
|
||||||
|
|
|
@ -37,6 +37,7 @@ Date: 07 December 2000
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void unexpectedChar();
|
void unexpectedChar();
|
||||||
|
void comment();
|
||||||
|
|
||||||
|
|
||||||
class myparser *m_currentParser;
|
class myparser *m_currentParser;
|
||||||
|
@ -79,6 +80,8 @@ print {return PRINT;}
|
||||||
\> {return GREATERTHAN;}
|
\> {return GREATERTHAN;}
|
||||||
\+ {return PLUS;}
|
\+ {return PLUS;}
|
||||||
\- {return SUBTRACT;}
|
\- {return SUBTRACT;}
|
||||||
|
\* {return MULTIPLY;}
|
||||||
|
\/ {return DIVIDE;}
|
||||||
; {return END_STMT;}
|
; {return END_STMT;}
|
||||||
\( {return OPEN_PAR;}
|
\( {return OPEN_PAR;}
|
||||||
\) {return CLOSE_PAR;}
|
\) {return CLOSE_PAR;}
|
||||||
|
@ -94,6 +97,7 @@ print {return PRINT;}
|
||||||
_[a-zA-Z_][a-zA-Z_0-9]* {yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION;}
|
_[a-zA-Z_][a-zA-Z_0-9]* {yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION;}
|
||||||
|
|
||||||
\/\/.* {}
|
\/\/.* {}
|
||||||
|
\/\* {comment();}
|
||||||
[ \t]+ {}
|
[ \t]+ {}
|
||||||
\n {}
|
\n {}
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,16 @@ int mylexer::closeInputFile()
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void mylexer::error()
|
void mylexer::error()
|
||||||
{
|
{
|
||||||
CPFile::getCurrentFile()->error(yyerr);
|
CPFile *cp;
|
||||||
|
cp=CPFile::getCurrentFile();
|
||||||
|
if(cp)
|
||||||
|
{
|
||||||
|
cp->error(yyerr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Hmm.. this happens when you forget '*/' on the end of a comment
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
@ -213,5 +222,53 @@ void mylexer::unexpectedChar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
void mylexer::comment()
|
||||||
|
{
|
||||||
|
typedef enum CommentState { INCOMMENT,FOUNDASTERISK,OUTOFCOMMENT };
|
||||||
|
int nextChar;
|
||||||
|
CommentState commentState=INCOMMENT;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
nextChar=yygetchar();
|
||||||
|
if(nextChar==-1)
|
||||||
|
{
|
||||||
|
printf("END OF FILE FOUND INSIDE COMMENT\n");
|
||||||
|
error();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
switch(commentState)
|
||||||
|
{
|
||||||
|
case INCOMMENT:
|
||||||
|
if(nextChar=='*')
|
||||||
|
{
|
||||||
|
commentState=FOUNDASTERISK;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FOUNDASTERISK:
|
||||||
|
if(nextChar=='/')
|
||||||
|
{
|
||||||
|
commentState=OUTOFCOMMENT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
commentState=INCOMMENT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(commentState!=OUTOFCOMMENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================
|
/*===========================================================================
|
||||||
end */
|
end */
|
||||||
|
|
|
@ -76,7 +76,7 @@ void YYPARSENAME::yyaction(int action)
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 107 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 109 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
s_baseTreeNode=yyattribute(1 - 1).treenode;
|
s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
#line 82 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 82 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 3);
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 111 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 113 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,yyattribute(1 - 2).treenode,yyattribute(2 - 2).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,yyattribute(1 - 2).treenode,yyattribute(2 - 2).treenode);
|
||||||
#line 95 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 95 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
#line 112 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 114 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(EMPTY_STMT);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(EMPTY_STMT);
|
||||||
#line 103 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 103 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 116 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 118 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(EMPTY_STMT);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(EMPTY_STMT);
|
||||||
#line 115 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 115 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 3);
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 117 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 119 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STOP_STMT);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STOP_STMT);
|
||||||
#line 128 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 128 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 3);
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 118 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 120 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(PAUSE_STMT);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(PAUSE_STMT);
|
||||||
#line 141 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 141 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -148,7 +148,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 6);
|
yyinitdebug((void YYFAR**)yya, 6);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 119 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 121 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(PRINT_STMT,yyattribute(3 - 5).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(PRINT_STMT,yyattribute(3 - 5).treenode);
|
||||||
#line 154 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 154 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -161,7 +161,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 3);
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 120 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 122 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 2).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 2).treenode;
|
||||||
#line 167 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 167 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 6);
|
yyinitdebug((void YYFAR**)yya, 6);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 121 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 123 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(IF_STMT,yyattribute(3 - 5).treenode,yyattribute(5 - 5).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(IF_STMT,yyattribute(3 - 5).treenode,yyattribute(5 - 5).treenode);
|
||||||
#line 180 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 180 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -187,7 +187,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 8);
|
yyinitdebug((void YYFAR**)yya, 8);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 122 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 124 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(IFELSE_STMT,yyattribute(3 - 7).treenode,yyattribute(5 - 7).treenode,yyattribute(7 - 7).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(IFELSE_STMT,yyattribute(3 - 7).treenode,yyattribute(5 - 7).treenode,yyattribute(7 - 7).treenode);
|
||||||
#line 193 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 193 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -200,7 +200,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 6);
|
yyinitdebug((void YYFAR**)yya, 6);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 123 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 125 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(WHILE_STMT,yyattribute(3 - 5).treenode,yyattribute(5 - 5).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(WHILE_STMT,yyattribute(3 - 5).treenode,yyattribute(5 - 5).treenode);
|
||||||
#line 206 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 206 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 8);
|
yyinitdebug((void YYFAR**)yya, 8);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 124 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 126 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(DOWHILE_STMT,yyattribute(2 - 7).treenode,yyattribute(5 - 7).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(DOWHILE_STMT,yyattribute(2 - 7).treenode,yyattribute(5 - 7).treenode);
|
||||||
#line 219 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 219 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -226,7 +226,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 125 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 127 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,yyattribute(2 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,yyattribute(2 - 3).treenode);
|
||||||
#line 232 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 232 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -239,7 +239,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 3);
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 126 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 128 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,yyattribute(1 - 2).treenode,new CTreeNode(POP_STMT));
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,yyattribute(1 - 2).treenode,new CTreeNode(POP_STMT));
|
||||||
#line 245 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 245 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -252,7 +252,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 131 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 133 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(ASSIGN_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(ASSIGN_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 258 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 258 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -261,12 +261,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 15:
|
case 15:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[4];
|
YYSTYPE YYFAR* yya[2];
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 136 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 138 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(2 - 3).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
#line 271 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 271 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -278,7 +278,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 137 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 139 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
#line 284 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 284 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -291,7 +291,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 138 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 140 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
#line 297 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 297 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -304,7 +304,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 139 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 141 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
#line 310 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 310 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -313,12 +313,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 19:
|
case 19:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[2];
|
YYSTYPE YYFAR* yya[4];
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 140 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 145 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(EQUAL_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 323 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 323 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -330,8 +330,8 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 144 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 149 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(EQUAL_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(NOTEQUAL_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 336 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 336 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -343,8 +343,8 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 148 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 153 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(NOTEQUAL_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(LESSTHAN_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 349 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 349 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,8 +356,8 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 152 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 157 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(LESSTHAN_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(GREATERTHAN_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 362 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 362 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -365,12 +365,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 23:
|
case 23:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[4];
|
YYSTYPE YYFAR* yya[2];
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 156 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 162 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(GREATERTHAN_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
||||||
#line 375 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 375 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -382,8 +382,8 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 161 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 166 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VALUE_EXPR,yyattribute(1 - 1).value);
|
||||||
#line 388 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 388 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -391,12 +391,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 25:
|
case 25:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[2];
|
YYSTYPE YYFAR* yya[4];
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 165 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 167 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VALUE_EXPR,yyattribute(1 - 1).value);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(2 - 3).treenode;
|
||||||
#line 401 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 401 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -408,7 +408,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 166 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 168 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
||||||
#line 414 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 414 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -421,7 +421,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 169 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 171 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(PLUS_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(PLUS_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 427 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 427 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -434,7 +434,7 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 170 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 172 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(SUBTRACT_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(SUBTRACT_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 440 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 440 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
|
@ -443,12 +443,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 29:
|
case 29:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[2];
|
YYSTYPE YYFAR* yya[4];
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 171 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 173 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(MULTIPLY_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 453 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 453 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -456,26 +456,52 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 30:
|
case 30:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[3];
|
YYSTYPE YYFAR* yya[4];
|
||||||
yyinitdebug((void YYFAR**)yya, 3);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 176 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 174 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
if(yyattribute(1 - 2).functionNumber!=-1){m_functionNumber=yyattribute(1 - 2).functionNumber;m_functionArgs=getFunctionArgs(yyattribute(1 - 2).functionNumber);}
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(DIVIDE_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 466 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 466 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 31:
|
case 31:
|
||||||
{
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[2];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 175 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
|
#line 479 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 32:
|
||||||
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[3];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 180 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
if(yyattribute(1 - 2).functionNumber!=-1){m_functionNumber=yyattribute(1 - 2).functionNumber;m_functionArgs=getFunctionArgs(yyattribute(1 - 2).functionNumber);}
|
||||||
|
#line 492 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 33:
|
||||||
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[5];
|
YYSTYPE YYFAR* yya[5];
|
||||||
yyinitdebug((void YYFAR**)yya, 5);
|
yyinitdebug((void YYFAR**)yya, 5);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 177 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 181 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,m_functionArgs,new CTreeNode(FUNCTION_EXPR,m_functionNumber));
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,m_functionArgs,new CTreeNode(FUNCTION_EXPR,m_functionNumber));
|
||||||
#line 479 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 505 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -484,14 +510,14 @@ if(yyattribute(1 - 2).functionNumber!=-1){m_functionNumber=yyattribute(1 - 2).fu
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#line 182 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 186 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// programs section
|
// programs section
|
||||||
|
|
||||||
#line 495 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 521 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
void YYPARSENAME::yytables()
|
void YYPARSENAME::yytables()
|
||||||
{
|
{
|
||||||
yyattribute_size = sizeof(YYSTYPE);
|
yyattribute_size = sizeof(YYSTYPE);
|
||||||
|
@ -515,14 +541,16 @@ void YYPARSENAME::yytables()
|
||||||
{ "GREATERTHAN", 268 },
|
{ "GREATERTHAN", 268 },
|
||||||
{ "PLUS", 269 },
|
{ "PLUS", 269 },
|
||||||
{ "SUBTRACT", 270 },
|
{ "SUBTRACT", 270 },
|
||||||
{ "END_STMT", 271 },
|
{ "MULTIPLY", 271 },
|
||||||
{ "OPEN_PAR", 272 },
|
{ "DIVIDE", 272 },
|
||||||
{ "CLOSE_PAR", 273 },
|
{ "END_STMT", 273 },
|
||||||
{ "BEGIN_CS", 274 },
|
{ "OPEN_PAR", 274 },
|
||||||
{ "END_CS", 275 },
|
{ "CLOSE_PAR", 275 },
|
||||||
{ "VARIABLE", 277 },
|
{ "BEGIN_CS", 276 },
|
||||||
{ "VALUE", 278 },
|
{ "END_CS", 277 },
|
||||||
{ "FUNCTION", 279 },
|
{ "VARIABLE", 279 },
|
||||||
|
{ "VALUE", 280 },
|
||||||
|
{ "FUNCTION", 281 },
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
yysymbol = symbol;
|
yysymbol = symbol;
|
||||||
|
@ -544,7 +572,6 @@ void YYPARSENAME::yytables()
|
||||||
"statement: BEGIN_CS statement_list END_CS",
|
"statement: BEGIN_CS statement_list END_CS",
|
||||||
"statement: function END_STMT",
|
"statement: function END_STMT",
|
||||||
"assign_expression: variable ASSIGN value",
|
"assign_expression: variable ASSIGN value",
|
||||||
"expression: OPEN_PAR expression CLOSE_PAR",
|
|
||||||
"expression: equal_expression",
|
"expression: equal_expression",
|
||||||
"expression: notequal_expression",
|
"expression: notequal_expression",
|
||||||
"expression: lessthan_expression",
|
"expression: lessthan_expression",
|
||||||
|
@ -555,9 +582,12 @@ void YYPARSENAME::yytables()
|
||||||
"greaterthan_expression: value GREATERTHAN value",
|
"greaterthan_expression: value GREATERTHAN value",
|
||||||
"variable: VARIABLE",
|
"variable: VARIABLE",
|
||||||
"value: VALUE",
|
"value: VALUE",
|
||||||
|
"value: OPEN_PAR value CLOSE_PAR",
|
||||||
"value: VARIABLE",
|
"value: VARIABLE",
|
||||||
"value: value PLUS value",
|
"value: value PLUS value",
|
||||||
"value: value SUBTRACT value",
|
"value: value SUBTRACT value",
|
||||||
|
"value: value MULTIPLY value",
|
||||||
|
"value: value DIVIDE value",
|
||||||
"value: function",
|
"value: function",
|
||||||
"$$1:",
|
"$$1:",
|
||||||
"function: FUNCTION OPEN_PAR $$1 CLOSE_PAR"
|
"function: FUNCTION OPEN_PAR $$1 CLOSE_PAR"
|
||||||
|
@ -582,89 +612,114 @@ void YYPARSENAME::yytables()
|
||||||
{ 3, 3, 12 },
|
{ 3, 3, 12 },
|
||||||
{ 3, 2, 13 },
|
{ 3, 2, 13 },
|
||||||
{ 4, 3, 14 },
|
{ 4, 3, 14 },
|
||||||
{ 5, 3, 15 },
|
{ 5, 1, 15 },
|
||||||
{ 5, 1, 16 },
|
{ 5, 1, 16 },
|
||||||
{ 5, 1, 17 },
|
{ 5, 1, 17 },
|
||||||
{ 5, 1, 18 },
|
{ 5, 1, 18 },
|
||||||
{ 5, 1, 19 },
|
{ 6, 3, 19 },
|
||||||
{ 6, 3, 20 },
|
{ 7, 3, 20 },
|
||||||
{ 7, 3, 21 },
|
{ 8, 3, 21 },
|
||||||
{ 8, 3, 22 },
|
{ 9, 3, 22 },
|
||||||
{ 9, 3, 23 },
|
{ 10, 1, 23 },
|
||||||
{ 10, 1, 24 },
|
{ 11, 1, 24 },
|
||||||
{ 11, 1, 25 },
|
{ 11, 3, 25 },
|
||||||
{ 11, 1, 26 },
|
{ 11, 1, 26 },
|
||||||
{ 11, 3, 27 },
|
{ 11, 3, 27 },
|
||||||
{ 11, 3, 28 },
|
{ 11, 3, 28 },
|
||||||
{ 11, 1, 29 },
|
{ 11, 3, 29 },
|
||||||
{ 13, 0, 30 },
|
{ 11, 3, 30 },
|
||||||
{ 12, 4, 31 }
|
{ 11, 1, 31 },
|
||||||
|
{ 13, 0, 32 },
|
||||||
|
{ 12, 4, 33 }
|
||||||
};
|
};
|
||||||
yyreduction = reduction;
|
yyreduction = reduction;
|
||||||
|
|
||||||
static const yytokenaction_t YYNEARFAR YYBASED_CODE tokenaction[] = {
|
static const yytokenaction_t YYNEARFAR YYBASED_CODE tokenaction[] = {
|
||||||
{ 67, YYAT_SHIFT, 3 },
|
{ 71, YYAT_SHIFT, 3 },
|
||||||
{ 67, YYAT_SHIFT, 4 },
|
{ 71, YYAT_SHIFT, 4 },
|
||||||
{ 68, YYAT_SHIFT, 70 },
|
{ 72, YYAT_SHIFT, 74 },
|
||||||
{ 67, YYAT_SHIFT, 5 },
|
{ 71, YYAT_SHIFT, 5 },
|
||||||
{ 67, YYAT_SHIFT, 6 },
|
{ 71, YYAT_SHIFT, 6 },
|
||||||
{ 67, YYAT_SHIFT, 7 },
|
{ 71, YYAT_SHIFT, 7 },
|
||||||
{ 67, YYAT_SHIFT, 8 },
|
{ 71, YYAT_SHIFT, 8 },
|
||||||
{ 2, YYAT_SHIFT, 3 },
|
{ 2, YYAT_SHIFT, 3 },
|
||||||
{ 2, YYAT_SHIFT, 4 },
|
{ 2, YYAT_SHIFT, 4 },
|
||||||
{ 65, YYAT_SHIFT, 68 },
|
{ 69, YYAT_SHIFT, 72 },
|
||||||
{ 2, YYAT_SHIFT, 5 },
|
{ 2, YYAT_SHIFT, 5 },
|
||||||
{ 2, YYAT_SHIFT, 6 },
|
{ 2, YYAT_SHIFT, 6 },
|
||||||
{ 2, YYAT_SHIFT, 7 },
|
{ 2, YYAT_SHIFT, 7 },
|
||||||
{ 2, YYAT_SHIFT, 8 },
|
{ 2, YYAT_SHIFT, 8 },
|
||||||
{ 67, YYAT_SHIFT, 9 },
|
{ 59, YYAT_SHIFT, 71 },
|
||||||
{ 40, YYAT_SHIFT, 50 },
|
{ 56, YYAT_SHIFT, 70 },
|
||||||
{ 40, YYAT_SHIFT, 51 },
|
{ 71, YYAT_SHIFT, 9 },
|
||||||
{ 67, YYAT_SHIFT, 10 },
|
{ 42, YYAT_SHIFT, 57 },
|
||||||
{ 57, YYAT_SHIFT, 67 },
|
{ 40, YYAT_SHIFT, 56 },
|
||||||
{ 40, YYAT_SHIFT, 54 },
|
{ 71, YYAT_SHIFT, 10 },
|
||||||
{ 67, YYAT_SHIFT, 11 },
|
{ 39, YYAT_SHIFT, 55 },
|
||||||
|
{ 38, YYAT_SHIFT, 54 },
|
||||||
|
{ 71, YYAT_SHIFT, 11 },
|
||||||
{ 2, YYAT_SHIFT, 9 },
|
{ 2, YYAT_SHIFT, 9 },
|
||||||
{ 67, YYAT_SHIFT, 12 },
|
{ 71, YYAT_SHIFT, 12 },
|
||||||
{ 54, YYAT_SHIFT, 66 },
|
{ 31, YYAT_SHIFT, 45 },
|
||||||
{ 2, YYAT_SHIFT, 10 },
|
{ 2, YYAT_SHIFT, 10 },
|
||||||
{ 63, YYAT_SHIFT, 50 },
|
{ 23, YYAT_SHIFT, 41 },
|
||||||
{ 63, YYAT_SHIFT, 51 },
|
{ 20, YYAT_SHIFT, 39 },
|
||||||
{ 2, YYAT_SHIFT, 11 },
|
{ 2, YYAT_SHIFT, 11 },
|
||||||
{ 51, YYAT_ERROR, 0 },
|
{ 16, YYAT_SHIFT, 27 },
|
||||||
{ 2, YYAT_SHIFT, 12 },
|
{ 2, YYAT_SHIFT, 12 },
|
||||||
{ 36, YYAT_SHIFT, 46 },
|
{ 36, YYAT_SHIFT, 46 },
|
||||||
{ 36, YYAT_SHIFT, 47 },
|
{ 36, YYAT_SHIFT, 47 },
|
||||||
{ 36, YYAT_SHIFT, 48 },
|
{ 36, YYAT_SHIFT, 48 },
|
||||||
{ 36, YYAT_SHIFT, 49 },
|
{ 36, YYAT_SHIFT, 49 },
|
||||||
{ 53, YYAT_SHIFT, 28 },
|
|
||||||
{ 62, YYAT_SHIFT, 50 },
|
|
||||||
{ 62, YYAT_SHIFT, 51 },
|
|
||||||
{ 44, YYAT_SHIFT, 56 },
|
|
||||||
{ 36, YYAT_ERROR, 0 },
|
|
||||||
{ 53, YYAT_SHIFT, 29 },
|
|
||||||
{ 53, YYAT_SHIFT, 30 },
|
|
||||||
{ 53, YYAT_SHIFT, 12 },
|
|
||||||
{ 61, YYAT_SHIFT, 50 },
|
|
||||||
{ 61, YYAT_SHIFT, 51 },
|
|
||||||
{ 60, YYAT_SHIFT, 50 },
|
|
||||||
{ 60, YYAT_SHIFT, 51 },
|
|
||||||
{ 59, YYAT_SHIFT, 50 },
|
|
||||||
{ 59, YYAT_SHIFT, 51 },
|
|
||||||
{ 58, YYAT_SHIFT, 50 },
|
|
||||||
{ 58, YYAT_SHIFT, 51 },
|
|
||||||
{ 43, YYAT_SHIFT, 50 },
|
|
||||||
{ 43, YYAT_SHIFT, 51 },
|
|
||||||
{ 42, YYAT_SHIFT, 55 },
|
|
||||||
{ 39, YYAT_SHIFT, 53 },
|
|
||||||
{ 38, YYAT_SHIFT, 52 },
|
|
||||||
{ 31, YYAT_SHIFT, 45 },
|
|
||||||
{ 23, YYAT_SHIFT, 41 },
|
|
||||||
{ 20, YYAT_SHIFT, 39 },
|
|
||||||
{ 16, YYAT_SHIFT, 27 },
|
|
||||||
{ 15, YYAT_SHIFT, 26 },
|
{ 15, YYAT_SHIFT, 26 },
|
||||||
|
{ 44, YYAT_SHIFT, 50 },
|
||||||
|
{ 44, YYAT_SHIFT, 51 },
|
||||||
|
{ 44, YYAT_SHIFT, 52 },
|
||||||
|
{ 44, YYAT_SHIFT, 53 },
|
||||||
|
{ 55, YYAT_SHIFT, 28 },
|
||||||
|
{ 36, YYAT_ERROR, 0 },
|
||||||
|
{ 44, YYAT_SHIFT, 58 },
|
||||||
{ 14, YYAT_SHIFT, 25 },
|
{ 14, YYAT_SHIFT, 25 },
|
||||||
{ 12, YYAT_SHIFT, 24 },
|
{ 12, YYAT_SHIFT, 24 },
|
||||||
|
{ 55, YYAT_SHIFT, 29 },
|
||||||
|
{ 55, YYAT_SHIFT, 30 },
|
||||||
|
{ 55, YYAT_SHIFT, 12 },
|
||||||
|
{ 67, YYAT_SHIFT, 50 },
|
||||||
|
{ 67, YYAT_SHIFT, 51 },
|
||||||
|
{ 67, YYAT_SHIFT, 52 },
|
||||||
|
{ 67, YYAT_SHIFT, 53 },
|
||||||
|
{ 66, YYAT_SHIFT, 50 },
|
||||||
|
{ 66, YYAT_SHIFT, 51 },
|
||||||
|
{ 66, YYAT_SHIFT, 52 },
|
||||||
|
{ 66, YYAT_SHIFT, 53 },
|
||||||
|
{ 65, YYAT_SHIFT, 50 },
|
||||||
|
{ 65, YYAT_SHIFT, 51 },
|
||||||
|
{ 65, YYAT_SHIFT, 52 },
|
||||||
|
{ 65, YYAT_SHIFT, 53 },
|
||||||
|
{ 64, YYAT_SHIFT, 50 },
|
||||||
|
{ 64, YYAT_SHIFT, 51 },
|
||||||
|
{ 64, YYAT_SHIFT, 52 },
|
||||||
|
{ 64, YYAT_SHIFT, 53 },
|
||||||
|
{ 63, YYAT_SHIFT, 50 },
|
||||||
|
{ 63, YYAT_SHIFT, 51 },
|
||||||
|
{ 63, YYAT_SHIFT, 52 },
|
||||||
|
{ 63, YYAT_SHIFT, 53 },
|
||||||
|
{ 62, YYAT_SHIFT, 50 },
|
||||||
|
{ 62, YYAT_SHIFT, 51 },
|
||||||
|
{ 62, YYAT_SHIFT, 52 },
|
||||||
|
{ 62, YYAT_SHIFT, 53 },
|
||||||
|
{ 61, YYAT_SHIFT, 50 },
|
||||||
|
{ 61, YYAT_SHIFT, 51 },
|
||||||
|
{ 61, YYAT_SHIFT, 52 },
|
||||||
|
{ 61, YYAT_SHIFT, 53 },
|
||||||
|
{ 60, YYAT_SHIFT, 50 },
|
||||||
|
{ 60, YYAT_SHIFT, 51 },
|
||||||
|
{ 60, YYAT_SHIFT, 52 },
|
||||||
|
{ 60, YYAT_SHIFT, 53 },
|
||||||
|
{ 43, YYAT_SHIFT, 50 },
|
||||||
|
{ 43, YYAT_SHIFT, 51 },
|
||||||
|
{ 43, YYAT_SHIFT, 52 },
|
||||||
|
{ 43, YYAT_SHIFT, 53 },
|
||||||
{ 8, YYAT_SHIFT, 22 },
|
{ 8, YYAT_SHIFT, 22 },
|
||||||
{ 7, YYAT_SHIFT, 21 },
|
{ 7, YYAT_SHIFT, 21 },
|
||||||
{ 5, YYAT_SHIFT, 19 },
|
{ 5, YYAT_SHIFT, 19 },
|
||||||
|
@ -673,105 +728,111 @@ void YYPARSENAME::yytables()
|
||||||
{ 1, YYAT_ACCEPT, 0 }
|
{ 1, YYAT_ACCEPT, 0 }
|
||||||
};
|
};
|
||||||
yytokenaction = tokenaction;
|
yytokenaction = tokenaction;
|
||||||
yytokenaction_size = 68;
|
yytokenaction_size = 91;
|
||||||
|
|
||||||
static const yystateaction_t YYNEARFAR YYBASED_CODE stateaction[] = {
|
static const yystateaction_t YYNEARFAR YYBASED_CODE stateaction[] = {
|
||||||
{ 0, 0, YYAT_REDUCE, 3 },
|
{ 0, 0, YYAT_REDUCE, 3 },
|
||||||
{ 67, 1, YYAT_ERROR, 0 },
|
{ 90, 1, YYAT_ERROR, 0 },
|
||||||
{ -250, 1, YYAT_REDUCE, 1 },
|
{ -250, 1, YYAT_REDUCE, 1 },
|
||||||
{ -205, 1, YYAT_DEFAULT, 68 },
|
{ -184, 1, YYAT_DEFAULT, 72 },
|
||||||
{ -207, 1, YYAT_DEFAULT, 39 },
|
{ -186, 1, YYAT_DEFAULT, 39 },
|
||||||
{ -208, 1, YYAT_DEFAULT, 39 },
|
{ -187, 1, YYAT_DEFAULT, 39 },
|
||||||
{ 0, 0, YYAT_DEFAULT, 67 },
|
{ 0, 0, YYAT_DEFAULT, 71 },
|
||||||
{ -208, 1, YYAT_DEFAULT, 68 },
|
{ -187, 1, YYAT_DEFAULT, 72 },
|
||||||
{ -210, 1, YYAT_DEFAULT, 39 },
|
{ -189, 1, YYAT_DEFAULT, 39 },
|
||||||
{ 0, 0, YYAT_REDUCE, 4 },
|
{ 0, 0, YYAT_REDUCE, 4 },
|
||||||
{ 0, 0, YYAT_REDUCE, 3 },
|
{ 0, 0, YYAT_REDUCE, 3 },
|
||||||
{ 0, 0, YYAT_REDUCE, 25 },
|
{ 0, 0, YYAT_REDUCE, 24 },
|
||||||
{ -211, 1, YYAT_DEFAULT, 39 },
|
{ -229, 1, YYAT_DEFAULT, 39 },
|
||||||
{ 0, 0, YYAT_REDUCE, 2 },
|
{ 0, 0, YYAT_REDUCE, 2 },
|
||||||
{ -211, 1, YYAT_DEFAULT, 68 },
|
{ -229, 1, YYAT_DEFAULT, 72 },
|
||||||
{ -205, 1, YYAT_ERROR, 0 },
|
{ -228, 1, YYAT_ERROR, 0 },
|
||||||
{ -213, 1, YYAT_DEFAULT, 68 },
|
{ -243, 1, YYAT_DEFAULT, 72 },
|
||||||
{ 0, 0, YYAT_REDUCE, 5 },
|
{ 0, 0, YYAT_REDUCE, 5 },
|
||||||
{ 0, 0, YYAT_DEFAULT, 53 },
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
{ 0, 0, YYAT_DEFAULT, 53 },
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
{ -203, 1, YYAT_ERROR, 0 },
|
{ -232, 1, YYAT_ERROR, 0 },
|
||||||
{ 0, 0, YYAT_REDUCE, 6 },
|
{ 0, 0, YYAT_REDUCE, 6 },
|
||||||
{ 0, 0, YYAT_DEFAULT, 51 },
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
{ -219, 1, YYAT_DEFAULT, 67 },
|
{ -250, 1, YYAT_DEFAULT, 71 },
|
||||||
{ 0, 0, YYAT_REDUCE, 31 },
|
{ 0, 0, YYAT_REDUCE, 33 },
|
||||||
{ 0, 0, YYAT_REDUCE, 8 },
|
{ 0, 0, YYAT_REDUCE, 8 },
|
||||||
{ 0, 0, YYAT_DEFAULT, 51 },
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
{ 0, 0, YYAT_REDUCE, 14 },
|
{ 0, 0, YYAT_REDUCE, 14 },
|
||||||
{ 0, 0, YYAT_DEFAULT, 53 },
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
{ 0, 0, YYAT_REDUCE, 27 },
|
{ 0, 0, YYAT_REDUCE, 27 },
|
||||||
{ 0, 0, YYAT_REDUCE, 26 },
|
{ 0, 0, YYAT_REDUCE, 25 },
|
||||||
{ -218, 1, YYAT_DEFAULT, 65 },
|
{ -250, 1, YYAT_DEFAULT, 69 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 16 },
|
||||||
{ 0, 0, YYAT_REDUCE, 17 },
|
{ 0, 0, YYAT_REDUCE, 17 },
|
||||||
{ 0, 0, YYAT_REDUCE, 18 },
|
{ 0, 0, YYAT_REDUCE, 18 },
|
||||||
{ 0, 0, YYAT_REDUCE, 19 },
|
{ 0, 0, YYAT_REDUCE, 19 },
|
||||||
{ 0, 0, YYAT_REDUCE, 20 },
|
{ -233, 1, YYAT_DEFAULT, 44 },
|
||||||
{ -235, 1, YYAT_DEFAULT, 40 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 30 },
|
|
||||||
{ -219, 1, YYAT_DEFAULT, 65 },
|
|
||||||
{ -219, 1, YYAT_ERROR, 0 },
|
|
||||||
{ -254, 1, YYAT_DEFAULT, 65 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 13 },
|
|
||||||
{ -221, 1, YYAT_DEFAULT, 65 },
|
|
||||||
{ -219, 1, YYAT_REDUCE, 15 },
|
|
||||||
{ -236, 1, YYAT_DEFAULT, 65 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 67 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 51 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 51 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 51 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 51 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 51 },
|
|
||||||
{ -244, 1, YYAT_DEFAULT, 53 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 67 },
|
|
||||||
{ -238, 1, YYAT_DEFAULT, 39 },
|
|
||||||
{ -248, 1, YYAT_DEFAULT, 68 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 32 },
|
{ 0, 0, YYAT_REDUCE, 32 },
|
||||||
{ 0, 0, YYAT_REDUCE, 16 },
|
{ -254, 1, YYAT_DEFAULT, 69 },
|
||||||
{ -241, 1, YYAT_REDUCE, 9 },
|
{ -254, 1, YYAT_ERROR, 0 },
|
||||||
{ -221, 1, YYAT_REDUCE, 21 },
|
{ -257, 1, YYAT_DEFAULT, 44 },
|
||||||
{ -223, 1, YYAT_REDUCE, 22 },
|
{ 0, 0, YYAT_REDUCE, 13 },
|
||||||
{ -225, 1, YYAT_REDUCE, 23 },
|
{ -258, 1, YYAT_DEFAULT, 69 },
|
||||||
{ -227, 1, YYAT_REDUCE, 24 },
|
{ -188, 1, YYAT_REDUCE, 15 },
|
||||||
{ -234, 1, YYAT_REDUCE, 28 },
|
{ -232, 1, YYAT_DEFAULT, 69 },
|
||||||
{ -244, 1, YYAT_REDUCE, 29 },
|
{ 0, 0, YYAT_DEFAULT, 71 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 55 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 71 },
|
||||||
|
{ -233, 1, YYAT_DEFAULT, 39 },
|
||||||
|
{ -258, 1, YYAT_DEFAULT, 72 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 34 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 26 },
|
||||||
|
{ -245, 1, YYAT_REDUCE, 9 },
|
||||||
|
{ -192, 1, YYAT_REDUCE, 20 },
|
||||||
|
{ -196, 1, YYAT_REDUCE, 21 },
|
||||||
|
{ -200, 1, YYAT_REDUCE, 22 },
|
||||||
|
{ -204, 1, YYAT_REDUCE, 23 },
|
||||||
|
{ -208, 1, YYAT_REDUCE, 28 },
|
||||||
|
{ -212, 1, YYAT_REDUCE, 29 },
|
||||||
|
{ -216, 1, YYAT_REDUCE, 30 },
|
||||||
|
{ -220, 1, YYAT_REDUCE, 31 },
|
||||||
{ 0, 0, YYAT_REDUCE, 11 },
|
{ 0, 0, YYAT_REDUCE, 11 },
|
||||||
{ -264, 1, YYAT_ERROR, 0 },
|
{ -266, 1, YYAT_ERROR, 0 },
|
||||||
{ 0, 0, YYAT_REDUCE, 7 },
|
{ 0, 0, YYAT_REDUCE, 7 },
|
||||||
{ -257, 1, YYAT_DEFAULT, 68 },
|
{ -257, 1, YYAT_DEFAULT, 72 },
|
||||||
{ -269, 1, YYAT_ERROR, 0 },
|
{ -271, 1, YYAT_ERROR, 0 },
|
||||||
{ 0, 0, YYAT_REDUCE, 10 },
|
{ 0, 0, YYAT_REDUCE, 10 },
|
||||||
{ 0, 0, YYAT_REDUCE, 12 }
|
{ 0, 0, YYAT_REDUCE, 12 }
|
||||||
};
|
};
|
||||||
yystateaction = stateaction;
|
yystateaction = stateaction;
|
||||||
|
|
||||||
static const yynontermgoto_t YYNEARFAR YYBASED_CODE nontermgoto[] = {
|
static const yynontermgoto_t YYNEARFAR YYBASED_CODE nontermgoto[] = {
|
||||||
{ 53, 65 },
|
{ 55, 69 },
|
||||||
{ 53, 32 },
|
{ 55, 32 },
|
||||||
{ 53, 33 },
|
{ 55, 33 },
|
||||||
{ 53, 34 },
|
{ 55, 34 },
|
||||||
{ 53, 35 },
|
{ 55, 35 },
|
||||||
{ 52, 64 },
|
{ 54, 68 },
|
||||||
{ 53, 36 },
|
{ 55, 36 },
|
||||||
{ 67, 69 },
|
{ 71, 73 },
|
||||||
{ 67, 14 },
|
{ 71, 14 },
|
||||||
{ 51, 63 },
|
{ 53, 67 },
|
||||||
{ 51, 37 },
|
{ 53, 37 },
|
||||||
{ 0, 1 },
|
{ 0, 1 },
|
||||||
{ 0, 2 },
|
{ 0, 2 },
|
||||||
{ 50, 62 },
|
{ 52, 66 },
|
||||||
{ 67, 15 },
|
{ 71, 15 },
|
||||||
{ 49, 61 },
|
{ 51, 65 },
|
||||||
{ 67, 16 },
|
{ 71, 16 },
|
||||||
{ 48, 60 },
|
{ 50, 64 },
|
||||||
{ 47, 59 },
|
{ 49, 63 },
|
||||||
{ 46, 58 },
|
{ 48, 62 },
|
||||||
{ 45, 57 },
|
{ 47, 61 },
|
||||||
|
{ 46, 60 },
|
||||||
|
{ 45, 59 },
|
||||||
{ 28, 44 },
|
{ 28, 44 },
|
||||||
{ 26, 43 },
|
{ 26, 43 },
|
||||||
{ 24, 42 },
|
{ 24, 42 },
|
||||||
|
@ -783,7 +844,7 @@ void YYPARSENAME::yytables()
|
||||||
{ 6, 20 }
|
{ 6, 20 }
|
||||||
};
|
};
|
||||||
yynontermgoto = nontermgoto;
|
yynontermgoto = nontermgoto;
|
||||||
yynontermgoto_size = 30;
|
yynontermgoto_size = 32;
|
||||||
|
|
||||||
static const yystategoto_t YYNEARFAR YYBASED_CODE stategoto[] = {
|
static const yystategoto_t YYNEARFAR YYBASED_CODE stategoto[] = {
|
||||||
{ 10, -1 },
|
{ 10, -1 },
|
||||||
|
@ -792,11 +853,11 @@ void YYPARSENAME::yytables()
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 26, 67 },
|
{ 28, 71 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 26, -1 },
|
{ 28, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
|
@ -804,17 +865,17 @@ void YYPARSENAME::yytables()
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 22, 53 },
|
{ 24, 55 },
|
||||||
{ 21, 53 },
|
{ 23, 55 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 14, 51 },
|
|
||||||
{ 21, 67 },
|
|
||||||
{ 10, -1 },
|
|
||||||
{ 0, -1 },
|
|
||||||
{ 11, 51 },
|
|
||||||
{ 0, -1 },
|
|
||||||
{ 16, 53 },
|
{ 16, 53 },
|
||||||
|
{ 23, 71 },
|
||||||
|
{ 12, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 13, 53 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 12, 53 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
|
@ -831,15 +892,19 @@ void YYPARSENAME::yytables()
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 17, 67 },
|
{ 19, 71 },
|
||||||
{ 8, 51 },
|
{ 10, 53 },
|
||||||
{ 7, 51 },
|
{ 9, 53 },
|
||||||
{ 6, 51 },
|
{ 8, 53 },
|
||||||
{ 4, 51 },
|
{ 7, 53 },
|
||||||
{ 2, 51 },
|
{ 6, 53 },
|
||||||
|
{ 4, 53 },
|
||||||
|
{ 2, 53 },
|
||||||
{ -2, -1 },
|
{ -2, -1 },
|
||||||
{ 2, 67 },
|
{ 2, 71 },
|
||||||
{ -5, 51 },
|
{ -5, 53 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
|
|
|
@ -74,13 +74,15 @@ union tagYYSTYPE {
|
||||||
#define GREATERTHAN 268
|
#define GREATERTHAN 268
|
||||||
#define PLUS 269
|
#define PLUS 269
|
||||||
#define SUBTRACT 270
|
#define SUBTRACT 270
|
||||||
#define END_STMT 271
|
#define MULTIPLY 271
|
||||||
#define OPEN_PAR 272
|
#define DIVIDE 272
|
||||||
#define CLOSE_PAR 273
|
#define END_STMT 273
|
||||||
#define BEGIN_CS 274
|
#define OPEN_PAR 274
|
||||||
#define END_CS 275
|
#define CLOSE_PAR 275
|
||||||
#define COMMA 276
|
#define BEGIN_CS 276
|
||||||
#define VARIABLE 277
|
#define END_CS 277
|
||||||
#define VALUE 278
|
#define COMMA 278
|
||||||
#define FUNCTION 279
|
#define VARIABLE 279
|
||||||
|
#define VALUE 280
|
||||||
|
#define FUNCTION 281
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -19,31 +19,33 @@
|
||||||
|
|
||||||
15 assign_expression : variable ASSIGN value
|
15 assign_expression : variable ASSIGN value
|
||||||
|
|
||||||
16 expression : OPEN_PAR expression CLOSE_PAR
|
16 expression : equal_expression
|
||||||
17 | equal_expression
|
17 | notequal_expression
|
||||||
18 | notequal_expression
|
18 | lessthan_expression
|
||||||
19 | lessthan_expression
|
19 | greaterthan_expression
|
||||||
20 | greaterthan_expression
|
|
||||||
|
|
||||||
21 equal_expression : value EQUAL value
|
20 equal_expression : value EQUAL value
|
||||||
|
|
||||||
22 notequal_expression : value NOTEQUAL value
|
21 notequal_expression : value NOTEQUAL value
|
||||||
|
|
||||||
23 lessthan_expression : value LESSTHAN value
|
22 lessthan_expression : value LESSTHAN value
|
||||||
|
|
||||||
24 greaterthan_expression : value GREATERTHAN value
|
23 greaterthan_expression : value GREATERTHAN value
|
||||||
|
|
||||||
25 variable : VARIABLE
|
24 variable : VARIABLE
|
||||||
|
|
||||||
26 value : VALUE
|
25 value : VALUE
|
||||||
|
26 | OPEN_PAR value CLOSE_PAR
|
||||||
27 | VARIABLE
|
27 | VARIABLE
|
||||||
28 | value PLUS value
|
28 | value PLUS value
|
||||||
29 | value SUBTRACT value
|
29 | value SUBTRACT value
|
||||||
30 | function
|
30 | value MULTIPLY value
|
||||||
|
31 | value DIVIDE value
|
||||||
|
32 | function
|
||||||
|
|
||||||
31 $$1 :
|
33 $$1 :
|
||||||
|
|
||||||
32 function : FUNCTION OPEN_PAR $$1 CLOSE_PAR
|
34 function : FUNCTION OPEN_PAR $$1 CLOSE_PAR
|
||||||
|
|
||||||
|
|
||||||
state 0
|
state 0
|
||||||
|
@ -151,9 +153,9 @@ state 10
|
||||||
|
|
||||||
|
|
||||||
state 11
|
state 11
|
||||||
variable : VARIABLE . (25)
|
variable : VARIABLE . (24)
|
||||||
|
|
||||||
. reduce 25
|
. reduce 24
|
||||||
|
|
||||||
|
|
||||||
state 12
|
state 12
|
||||||
|
@ -242,6 +244,7 @@ state 21
|
||||||
state 22
|
state 22
|
||||||
statement : PRINT OPEN_PAR . value CLOSE_PAR END_STMT
|
statement : PRINT OPEN_PAR . value CLOSE_PAR END_STMT
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 29
|
VARIABLE shift 29
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
@ -274,9 +277,9 @@ state 23
|
||||||
|
|
||||||
state 24
|
state 24
|
||||||
function : FUNCTION OPEN_PAR . $$1 CLOSE_PAR
|
function : FUNCTION OPEN_PAR . $$1 CLOSE_PAR
|
||||||
$$1 : . (31)
|
$$1 : . (33)
|
||||||
|
|
||||||
. reduce 31
|
. reduce 33
|
||||||
|
|
||||||
$$1 goto 42
|
$$1 goto 42
|
||||||
|
|
||||||
|
@ -290,6 +293,7 @@ state 25
|
||||||
state 26
|
state 26
|
||||||
assign_expression : variable ASSIGN . value
|
assign_expression : variable ASSIGN . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 29
|
VARIABLE shift 29
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
@ -305,19 +309,14 @@ state 27
|
||||||
|
|
||||||
|
|
||||||
state 28
|
state 28
|
||||||
expression : OPEN_PAR . expression CLOSE_PAR
|
value : OPEN_PAR . value CLOSE_PAR
|
||||||
|
|
||||||
OPEN_PAR shift 28
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 29
|
VARIABLE shift 29
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
|
||||||
expression goto 44
|
value goto 44
|
||||||
equal_expression goto 32
|
|
||||||
notequal_expression goto 33
|
|
||||||
lessthan_expression goto 34
|
|
||||||
greaterthan_expression goto 35
|
|
||||||
value goto 36
|
|
||||||
function goto 37
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
@ -328,9 +327,9 @@ state 29
|
||||||
|
|
||||||
|
|
||||||
state 30
|
state 30
|
||||||
value : VALUE . (26)
|
value : VALUE . (25)
|
||||||
|
|
||||||
. reduce 26
|
. reduce 25
|
||||||
|
|
||||||
|
|
||||||
state 31
|
state 31
|
||||||
|
@ -341,29 +340,29 @@ state 31
|
||||||
|
|
||||||
|
|
||||||
state 32
|
state 32
|
||||||
expression : equal_expression . (17)
|
expression : equal_expression . (16)
|
||||||
|
|
||||||
|
. reduce 16
|
||||||
|
|
||||||
|
|
||||||
|
state 33
|
||||||
|
expression : notequal_expression . (17)
|
||||||
|
|
||||||
. reduce 17
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
state 33
|
state 34
|
||||||
expression : notequal_expression . (18)
|
expression : lessthan_expression . (18)
|
||||||
|
|
||||||
. reduce 18
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
state 34
|
state 35
|
||||||
expression : lessthan_expression . (19)
|
expression : greaterthan_expression . (19)
|
||||||
|
|
||||||
. reduce 19
|
. reduce 19
|
||||||
|
|
||||||
|
|
||||||
state 35
|
|
||||||
expression : greaterthan_expression . (20)
|
|
||||||
|
|
||||||
. reduce 20
|
|
||||||
|
|
||||||
|
|
||||||
state 36
|
state 36
|
||||||
equal_expression : value . EQUAL value
|
equal_expression : value . EQUAL value
|
||||||
notequal_expression : value . NOTEQUAL value
|
notequal_expression : value . NOTEQUAL value
|
||||||
|
@ -371,6 +370,8 @@ state 36
|
||||||
greaterthan_expression : value . GREATERTHAN value
|
greaterthan_expression : value . GREATERTHAN value
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
value : value . SUBTRACT value
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
EQUAL shift 46
|
EQUAL shift 46
|
||||||
NOTEQUAL shift 47
|
NOTEQUAL shift 47
|
||||||
|
@ -378,34 +379,40 @@ state 36
|
||||||
GREATERTHAN shift 49
|
GREATERTHAN shift 49
|
||||||
PLUS shift 50
|
PLUS shift 50
|
||||||
SUBTRACT shift 51
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
|
||||||
|
|
||||||
state 37
|
state 37
|
||||||
value : function . (30)
|
value : function . (32)
|
||||||
|
|
||||||
. reduce 30
|
. reduce 32
|
||||||
|
|
||||||
|
|
||||||
state 38
|
state 38
|
||||||
statement : WHILE OPEN_PAR expression . CLOSE_PAR statement
|
statement : WHILE OPEN_PAR expression . CLOSE_PAR statement
|
||||||
|
|
||||||
CLOSE_PAR shift 52
|
CLOSE_PAR shift 54
|
||||||
|
|
||||||
|
|
||||||
state 39
|
state 39
|
||||||
statement : DO statement WHILE . OPEN_PAR expression CLOSE_PAR END_STMT
|
statement : DO statement WHILE . OPEN_PAR expression CLOSE_PAR END_STMT
|
||||||
|
|
||||||
OPEN_PAR shift 53
|
OPEN_PAR shift 55
|
||||||
|
|
||||||
|
|
||||||
state 40
|
state 40
|
||||||
statement : PRINT OPEN_PAR value . CLOSE_PAR END_STMT
|
statement : PRINT OPEN_PAR value . CLOSE_PAR END_STMT
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
value : value . SUBTRACT value
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
PLUS shift 50
|
PLUS shift 50
|
||||||
SUBTRACT shift 51
|
SUBTRACT shift 51
|
||||||
CLOSE_PAR shift 54
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
CLOSE_PAR shift 56
|
||||||
|
|
||||||
|
|
||||||
state 41
|
state 41
|
||||||
|
@ -417,23 +424,35 @@ state 41
|
||||||
state 42
|
state 42
|
||||||
function : FUNCTION OPEN_PAR $$1 . CLOSE_PAR
|
function : FUNCTION OPEN_PAR $$1 . CLOSE_PAR
|
||||||
|
|
||||||
CLOSE_PAR shift 55
|
CLOSE_PAR shift 57
|
||||||
|
|
||||||
|
|
||||||
state 43
|
state 43
|
||||||
assign_expression : variable ASSIGN value . (15)
|
assign_expression : variable ASSIGN value . (15)
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
value : value . SUBTRACT value
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
PLUS shift 50
|
PLUS shift 50
|
||||||
SUBTRACT shift 51
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
. reduce 15
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
state 44
|
state 44
|
||||||
expression : OPEN_PAR expression . CLOSE_PAR
|
value : OPEN_PAR value . CLOSE_PAR
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
CLOSE_PAR shift 56
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
CLOSE_PAR shift 58
|
||||||
|
|
||||||
|
|
||||||
state 45
|
state 45
|
||||||
|
@ -451,7 +470,7 @@ state 45
|
||||||
VARIABLE shift 11
|
VARIABLE shift 11
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
|
||||||
statement goto 57
|
statement goto 59
|
||||||
assign_expression goto 14
|
assign_expression goto 14
|
||||||
variable goto 15
|
variable goto 15
|
||||||
function goto 16
|
function goto 16
|
||||||
|
@ -460,28 +479,7 @@ state 45
|
||||||
state 46
|
state 46
|
||||||
equal_expression : value EQUAL . value
|
equal_expression : value EQUAL . value
|
||||||
|
|
||||||
VARIABLE shift 29
|
OPEN_PAR shift 28
|
||||||
VALUE shift 30
|
|
||||||
FUNCTION shift 12
|
|
||||||
|
|
||||||
value goto 58
|
|
||||||
function goto 37
|
|
||||||
|
|
||||||
|
|
||||||
state 47
|
|
||||||
notequal_expression : value NOTEQUAL . value
|
|
||||||
|
|
||||||
VARIABLE shift 29
|
|
||||||
VALUE shift 30
|
|
||||||
FUNCTION shift 12
|
|
||||||
|
|
||||||
value goto 59
|
|
||||||
function goto 37
|
|
||||||
|
|
||||||
|
|
||||||
state 48
|
|
||||||
lessthan_expression : value LESSTHAN . value
|
|
||||||
|
|
||||||
VARIABLE shift 29
|
VARIABLE shift 29
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
@ -490,9 +488,10 @@ state 48
|
||||||
function goto 37
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 49
|
state 47
|
||||||
greaterthan_expression : value GREATERTHAN . value
|
notequal_expression : value NOTEQUAL . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 29
|
VARIABLE shift 29
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
@ -501,9 +500,10 @@ state 49
|
||||||
function goto 37
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 50
|
state 48
|
||||||
value : value PLUS . value
|
lessthan_expression : value LESSTHAN . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 29
|
VARIABLE shift 29
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
@ -512,9 +512,10 @@ state 50
|
||||||
function goto 37
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 51
|
state 49
|
||||||
value : value SUBTRACT . value
|
greaterthan_expression : value GREATERTHAN . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 29
|
VARIABLE shift 29
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
@ -523,7 +524,55 @@ state 51
|
||||||
function goto 37
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 50
|
||||||
|
value : value PLUS . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 64
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 51
|
||||||
|
value : value SUBTRACT . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 65
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 52
|
state 52
|
||||||
|
value : value MULTIPLY . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 66
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 53
|
||||||
|
value : value DIVIDE . value
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 67
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 54
|
||||||
statement : WHILE OPEN_PAR expression CLOSE_PAR . statement
|
statement : WHILE OPEN_PAR expression CLOSE_PAR . statement
|
||||||
|
|
||||||
STOP shift 3
|
STOP shift 3
|
||||||
|
@ -537,13 +586,13 @@ state 52
|
||||||
VARIABLE shift 11
|
VARIABLE shift 11
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
|
||||||
statement goto 64
|
statement goto 68
|
||||||
assign_expression goto 14
|
assign_expression goto 14
|
||||||
variable goto 15
|
variable goto 15
|
||||||
function goto 16
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
state 53
|
state 55
|
||||||
statement : DO statement WHILE OPEN_PAR . expression CLOSE_PAR END_STMT
|
statement : DO statement WHILE OPEN_PAR . expression CLOSE_PAR END_STMT
|
||||||
|
|
||||||
OPEN_PAR shift 28
|
OPEN_PAR shift 28
|
||||||
|
@ -551,7 +600,7 @@ state 53
|
||||||
VALUE shift 30
|
VALUE shift 30
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
|
||||||
expression goto 65
|
expression goto 69
|
||||||
equal_expression goto 32
|
equal_expression goto 32
|
||||||
notequal_expression goto 33
|
notequal_expression goto 33
|
||||||
lessthan_expression goto 34
|
lessthan_expression goto 34
|
||||||
|
@ -560,116 +609,180 @@ state 53
|
||||||
function goto 37
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 54
|
state 56
|
||||||
statement : PRINT OPEN_PAR value CLOSE_PAR . END_STMT
|
statement : PRINT OPEN_PAR value CLOSE_PAR . END_STMT
|
||||||
|
|
||||||
END_STMT shift 66
|
END_STMT shift 70
|
||||||
|
|
||||||
|
|
||||||
state 55
|
|
||||||
function : FUNCTION OPEN_PAR $$1 CLOSE_PAR . (32)
|
|
||||||
|
|
||||||
. reduce 32
|
|
||||||
|
|
||||||
|
|
||||||
state 56
|
|
||||||
expression : OPEN_PAR expression CLOSE_PAR . (16)
|
|
||||||
|
|
||||||
. reduce 16
|
|
||||||
|
|
||||||
|
|
||||||
57: shift-reduce conflict (shift 67, reduce 9) on ELSE
|
|
||||||
state 57
|
state 57
|
||||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . (9)
|
function : FUNCTION OPEN_PAR $$1 CLOSE_PAR . (34)
|
||||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . ELSE statement
|
|
||||||
|
|
||||||
ELSE shift 67
|
. reduce 34
|
||||||
. reduce 9
|
|
||||||
|
|
||||||
|
|
||||||
state 58
|
state 58
|
||||||
equal_expression : value EQUAL value . (21)
|
value : OPEN_PAR value CLOSE_PAR . (26)
|
||||||
value : value . PLUS value
|
|
||||||
value : value . SUBTRACT value
|
|
||||||
|
|
||||||
PLUS shift 50
|
. reduce 26
|
||||||
SUBTRACT shift 51
|
|
||||||
. reduce 21
|
|
||||||
|
|
||||||
|
|
||||||
|
59: shift-reduce conflict (shift 71, reduce 9) on ELSE
|
||||||
state 59
|
state 59
|
||||||
notequal_expression : value NOTEQUAL value . (22)
|
statement : IF OPEN_PAR expression CLOSE_PAR statement . (9)
|
||||||
value : value . PLUS value
|
statement : IF OPEN_PAR expression CLOSE_PAR statement . ELSE statement
|
||||||
value : value . SUBTRACT value
|
|
||||||
|
|
||||||
PLUS shift 50
|
ELSE shift 71
|
||||||
SUBTRACT shift 51
|
. reduce 9
|
||||||
. reduce 22
|
|
||||||
|
|
||||||
|
|
||||||
state 60
|
state 60
|
||||||
lessthan_expression : value LESSTHAN value . (23)
|
equal_expression : value EQUAL value . (20)
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
value : value . SUBTRACT value
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
PLUS shift 50
|
PLUS shift 50
|
||||||
SUBTRACT shift 51
|
SUBTRACT shift 51
|
||||||
. reduce 23
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
. reduce 20
|
||||||
|
|
||||||
|
|
||||||
state 61
|
state 61
|
||||||
greaterthan_expression : value GREATERTHAN value . (24)
|
notequal_expression : value NOTEQUAL value . (21)
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
value : value . SUBTRACT value
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
PLUS shift 50
|
PLUS shift 50
|
||||||
SUBTRACT shift 51
|
SUBTRACT shift 51
|
||||||
. reduce 24
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
. reduce 21
|
||||||
|
|
||||||
|
|
||||||
62: shift-reduce conflict (shift 50, reduce 28) on PLUS
|
|
||||||
62: shift-reduce conflict (shift 51, reduce 28) on SUBTRACT
|
|
||||||
state 62
|
state 62
|
||||||
|
lessthan_expression : value LESSTHAN value . (22)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
. reduce 22
|
||||||
|
|
||||||
|
|
||||||
|
state 63
|
||||||
|
greaterthan_expression : value GREATERTHAN value . (23)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
. reduce 23
|
||||||
|
|
||||||
|
|
||||||
|
64: shift-reduce conflict (shift 50, reduce 28) on PLUS
|
||||||
|
64: shift-reduce conflict (shift 51, reduce 28) on SUBTRACT
|
||||||
|
64: shift-reduce conflict (shift 52, reduce 28) on MULTIPLY
|
||||||
|
64: shift-reduce conflict (shift 53, reduce 28) on DIVIDE
|
||||||
|
state 64
|
||||||
value : value PLUS value . (28)
|
value : value PLUS value . (28)
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
value : value . SUBTRACT value
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
PLUS shift 50
|
PLUS shift 50
|
||||||
SUBTRACT shift 51
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
. reduce 28
|
. reduce 28
|
||||||
|
|
||||||
|
|
||||||
63: shift-reduce conflict (shift 50, reduce 29) on PLUS
|
65: shift-reduce conflict (shift 50, reduce 29) on PLUS
|
||||||
63: shift-reduce conflict (shift 51, reduce 29) on SUBTRACT
|
65: shift-reduce conflict (shift 51, reduce 29) on SUBTRACT
|
||||||
state 63
|
65: shift-reduce conflict (shift 52, reduce 29) on MULTIPLY
|
||||||
|
65: shift-reduce conflict (shift 53, reduce 29) on DIVIDE
|
||||||
|
state 65
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
value : value SUBTRACT value . (29)
|
value : value SUBTRACT value . (29)
|
||||||
value : value . SUBTRACT value
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
PLUS shift 50
|
PLUS shift 50
|
||||||
SUBTRACT shift 51
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
. reduce 29
|
. reduce 29
|
||||||
|
|
||||||
|
|
||||||
state 64
|
66: shift-reduce conflict (shift 50, reduce 30) on PLUS
|
||||||
|
66: shift-reduce conflict (shift 51, reduce 30) on SUBTRACT
|
||||||
|
66: shift-reduce conflict (shift 52, reduce 30) on MULTIPLY
|
||||||
|
66: shift-reduce conflict (shift 53, reduce 30) on DIVIDE
|
||||||
|
state 66
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
value : value MULTIPLY value . (30)
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
. reduce 30
|
||||||
|
|
||||||
|
|
||||||
|
67: shift-reduce conflict (shift 50, reduce 31) on PLUS
|
||||||
|
67: shift-reduce conflict (shift 51, reduce 31) on SUBTRACT
|
||||||
|
67: shift-reduce conflict (shift 52, reduce 31) on MULTIPLY
|
||||||
|
67: shift-reduce conflict (shift 53, reduce 31) on DIVIDE
|
||||||
|
state 67
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
value : value . MULTIPLY value
|
||||||
|
value : value DIVIDE value . (31)
|
||||||
|
value : value . DIVIDE value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
MULTIPLY shift 52
|
||||||
|
DIVIDE shift 53
|
||||||
|
. reduce 31
|
||||||
|
|
||||||
|
|
||||||
|
state 68
|
||||||
statement : WHILE OPEN_PAR expression CLOSE_PAR statement . (11)
|
statement : WHILE OPEN_PAR expression CLOSE_PAR statement . (11)
|
||||||
|
|
||||||
. reduce 11
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
state 65
|
state 69
|
||||||
statement : DO statement WHILE OPEN_PAR expression . CLOSE_PAR END_STMT
|
statement : DO statement WHILE OPEN_PAR expression . CLOSE_PAR END_STMT
|
||||||
|
|
||||||
CLOSE_PAR shift 68
|
CLOSE_PAR shift 72
|
||||||
|
|
||||||
|
|
||||||
state 66
|
state 70
|
||||||
statement : PRINT OPEN_PAR value CLOSE_PAR END_STMT . (7)
|
statement : PRINT OPEN_PAR value CLOSE_PAR END_STMT . (7)
|
||||||
|
|
||||||
. reduce 7
|
. reduce 7
|
||||||
|
|
||||||
|
|
||||||
state 67
|
state 71
|
||||||
statement : IF OPEN_PAR expression CLOSE_PAR statement ELSE . statement
|
statement : IF OPEN_PAR expression CLOSE_PAR statement ELSE . statement
|
||||||
|
|
||||||
STOP shift 3
|
STOP shift 3
|
||||||
|
@ -683,34 +796,36 @@ state 67
|
||||||
VARIABLE shift 11
|
VARIABLE shift 11
|
||||||
FUNCTION shift 12
|
FUNCTION shift 12
|
||||||
|
|
||||||
statement goto 69
|
statement goto 73
|
||||||
assign_expression goto 14
|
assign_expression goto 14
|
||||||
variable goto 15
|
variable goto 15
|
||||||
function goto 16
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
state 68
|
state 72
|
||||||
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR . END_STMT
|
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR . END_STMT
|
||||||
|
|
||||||
END_STMT shift 70
|
END_STMT shift 74
|
||||||
|
|
||||||
|
|
||||||
state 69
|
state 73
|
||||||
statement : IF OPEN_PAR expression CLOSE_PAR statement ELSE statement . (10)
|
statement : IF OPEN_PAR expression CLOSE_PAR statement ELSE statement . (10)
|
||||||
|
|
||||||
. reduce 10
|
. reduce 10
|
||||||
|
|
||||||
|
|
||||||
state 70
|
state 74
|
||||||
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT . (12)
|
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT . (12)
|
||||||
|
|
||||||
. reduce 12
|
. reduce 12
|
||||||
|
|
||||||
|
|
||||||
State 57 contains 1 shift-reduce conflict
|
State 59 contains 1 shift-reduce conflict
|
||||||
State 62 contains 2 shift-reduce conflicts
|
State 64 contains 4 shift-reduce conflicts
|
||||||
State 63 contains 2 shift-reduce conflicts
|
State 65 contains 4 shift-reduce conflicts
|
||||||
|
State 66 contains 4 shift-reduce conflicts
|
||||||
|
State 67 contains 4 shift-reduce conflicts
|
||||||
|
|
||||||
|
|
||||||
24 tokens, 14 nonterminals
|
26 tokens, 14 nonterminals
|
||||||
33 grammar rules, 71 states
|
35 grammar rules, 75 states
|
||||||
|
|
|
@ -77,6 +77,8 @@ private:
|
||||||
%token GREATERTHAN
|
%token GREATERTHAN
|
||||||
%token PLUS
|
%token PLUS
|
||||||
%token SUBTRACT
|
%token SUBTRACT
|
||||||
|
%token MULTIPLY
|
||||||
|
%token DIVIDE
|
||||||
%token END_STMT
|
%token END_STMT
|
||||||
%token OPEN_PAR
|
%token OPEN_PAR
|
||||||
%token CLOSE_PAR
|
%token CLOSE_PAR
|
||||||
|
@ -133,8 +135,7 @@ assign_expression
|
||||||
|
|
||||||
|
|
||||||
expression
|
expression
|
||||||
:OPEN_PAR expression CLOSE_PAR {$$=$2;}
|
:equal_expression {$$=$1;}
|
||||||
|equal_expression {$$=$1;}
|
|
||||||
|notequal_expression {$$=$1;}
|
|notequal_expression {$$=$1;}
|
||||||
|lessthan_expression {$$=$1;}
|
|lessthan_expression {$$=$1;}
|
||||||
|greaterthan_expression {$$=$1;}
|
|greaterthan_expression {$$=$1;}
|
||||||
|
@ -163,11 +164,14 @@ variable
|
||||||
|
|
||||||
value
|
value
|
||||||
:VALUE {$$=new CTreeNode(VALUE_EXPR,$1);}
|
:VALUE {$$=new CTreeNode(VALUE_EXPR,$1);}
|
||||||
|
|OPEN_PAR value CLOSE_PAR {$$=$2;}
|
||||||
|VARIABLE {$$=new CTreeNode(VARIABLE_EXPR,$1);} // variable value
|
|VARIABLE {$$=new CTreeNode(VARIABLE_EXPR,$1);} // variable value
|
||||||
// |PLUS value {$$=$2;}
|
// |PLUS value {$$=$2;}
|
||||||
// |SUBTRACT value {$$=new CTreeNode(STMT_LIST,$1,new CTreeNode(
|
// |SUBTRACT value {$$=new CTreeNode(STMT_LIST,CTreeNodeCTreeNode(VALUE_EXPR,$2);}
|
||||||
|value PLUS value {$$=new CTreeNode(PLUS_EXPR,$1,$3);}
|
|value PLUS value {$$=new CTreeNode(PLUS_EXPR,$1,$3);}
|
||||||
|value SUBTRACT value {$$=new CTreeNode(SUBTRACT_EXPR,$1,$3);}
|
|value SUBTRACT value {$$=new CTreeNode(SUBTRACT_EXPR,$1,$3);}
|
||||||
|
|value MULTIPLY value {$$=new CTreeNode(MULTIPLY_EXPR,$1,$3);}
|
||||||
|
|value DIVIDE value {$$=new CTreeNode(DIVIDE_EXPR,$1,$3);}
|
||||||
|function {$$=$1;}
|
|function {$$=$1;}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -2,29 +2,13 @@
|
||||||
#include data/scripts/defs/charanim.scr
|
#include data/scripts/defs/charanim.scr
|
||||||
|
|
||||||
|
|
||||||
//do
|
/*
|
||||||
//{
|
_setCharacterAnimation(CHAR_SPONGEBOB,ANIM_QUIET);
|
||||||
// print($tmp1);
|
_setText(123);
|
||||||
// $tmp1=$tmp1+1;
|
pause;
|
||||||
// pause;
|
*/
|
||||||
//}
|
|
||||||
//while($tmp1<1);
|
|
||||||
//print(112-_setText(1));
|
|
||||||
//do
|
|
||||||
//{
|
|
||||||
// print($tmp1);
|
|
||||||
// $tmp1=$tmp1+1;
|
|
||||||
// pause;
|
|
||||||
//}
|
|
||||||
//while($tmp1<2);
|
|
||||||
//print(222);
|
|
||||||
//stop;
|
|
||||||
|
|
||||||
|
|
||||||
//_setCharacterAnimation(CHAR_SPONGEBOB,ANIM_QUIET);
|
|
||||||
//_setText(123);
|
|
||||||
//pause;
|
|
||||||
|
|
||||||
#define x $tmp1
|
#define x $tmp1
|
||||||
#define y $tmp2
|
#define y $tmp2
|
||||||
#define vx $tmp3
|
#define vx $tmp3
|
||||||
|
@ -38,16 +22,14 @@ vy=velocity;
|
||||||
while(1==1)
|
while(1==1)
|
||||||
{
|
{
|
||||||
|
|
||||||
// readout for fps :)
|
// readout for fps :)
|
||||||
$tmp0=_getFrameTime();
|
$tmp0=_getFrameTime();
|
||||||
//print($tmp0);
|
$tmp5=50;
|
||||||
$tmp5=50;
|
do{
|
||||||
do{
|
|
||||||
_drawSprite(4,$tmp5,50,10);
|
_drawSprite(4,$tmp5,50,10);
|
||||||
$tmp5=$tmp5+15;
|
$tmp5=$tmp5+20;
|
||||||
$tmp0=$tmp0-1;
|
$tmp0=$tmp0-1;
|
||||||
}while($tmp0>0);
|
}while($tmp0>0);
|
||||||
|
|
||||||
|
|
||||||
_drawSprite(0,x,y,100);
|
_drawSprite(0,x,y,100);
|
||||||
$tmp0=_getFrameTime();
|
$tmp0=_getFrameTime();
|
||||||
|
|
|
@ -295,6 +295,32 @@ PAUL_DBGMSG("pc:0x%04d sp:%03d",m_pc*2,m_sp);
|
||||||
push(val1+val2);
|
push(val1+val2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OP_MULTIPLY: // value, value pushes result to stack
|
||||||
|
val1=pop();
|
||||||
|
val2=pop();
|
||||||
|
#ifdef FULL_CODE_OUTPUT
|
||||||
|
PAUL_DBGMSG("MULTIPLY %d,%d",val1,val2);
|
||||||
|
#endif
|
||||||
|
push(val1*val2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OP_DIVIDE: // value, value pushes result to stack
|
||||||
|
val1=pop();
|
||||||
|
val2=pop();
|
||||||
|
#ifdef FULL_CODE_OUTPUT
|
||||||
|
PAUL_DBGMSG("DIVIDE %d,%d",val1,val2);
|
||||||
|
#endif
|
||||||
|
if(val2==0)
|
||||||
|
{
|
||||||
|
SYSTEM_DBGMSG("[SCRIPT] DIVIDE BY ZERO @%d",m_pc);
|
||||||
|
m_state=CRASHED_DIVIDE_BY_ZERO;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
push(val1/val2);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case OP_NEG: // value pushes result to stack
|
case OP_NEG: // value pushes result to stack
|
||||||
val1=pop();
|
val1=pop();
|
||||||
#ifdef FULL_CODE_OUTPUT
|
#ifdef FULL_CODE_OUTPUT
|
||||||
|
@ -327,7 +353,7 @@ PAUL_DBGMSG("pc:0x%04d sp:%03d",m_pc*2,m_sp);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
PAUL_DBGMSG("ILLEGAL OPCODE@%d ( %d )",m_pc,instruction);
|
SYSTEM_DBGMSG("[SCRIPT] ILLEGAL OPCODE@%d ( %d )",m_pc,instruction);
|
||||||
m_state=CRASHED_ILLEGAL_OPCODE;
|
m_state=CRASHED_ILLEGAL_OPCODE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,6 +78,7 @@ private:
|
||||||
|
|
||||||
STOPPED_STACK_NOT_EMPTY,
|
STOPPED_STACK_NOT_EMPTY,
|
||||||
CRASHED_ILLEGAL_OPCODE,
|
CRASHED_ILLEGAL_OPCODE,
|
||||||
|
CRASHED_DIVIDE_BY_ZERO,
|
||||||
}ScriptState;
|
}ScriptState;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -104,6 +105,8 @@ private:
|
||||||
OP_IS_GREATERTHAN_VALUE,// value, value pushes result ( 0 or 1 ) to stack
|
OP_IS_GREATERTHAN_VALUE,// value, value pushes result ( 0 or 1 ) to stack
|
||||||
OP_ASSIGN, // varidx, value
|
OP_ASSIGN, // varidx, value
|
||||||
OP_ADD, // value, value pushes result to stack
|
OP_ADD, // value, value pushes result to stack
|
||||||
|
OP_MULTIPLY, // value, value pushes result to stack
|
||||||
|
OP_DIVIDE, // value, value pushes result to stack
|
||||||
OP_NEG, // value pushes result to stack
|
OP_NEG, // value pushes result to stack
|
||||||
OP_PRINT, // value
|
OP_PRINT, // value
|
||||||
OP_CALL_FUNCTION, // functionnumber, argcount args pushes return value to stack
|
OP_CALL_FUNCTION, // functionnumber, argcount args pushes return value to stack
|
||||||
|
|
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue