This commit is contained in:
parent
fda1fc3ca7
commit
b56cd688ae
16 changed files with 1569 additions and 849 deletions
|
@ -35,6 +35,7 @@
|
||||||
------- */
|
------- */
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
||||||
/* Data
|
/* Data
|
||||||
|
@ -204,6 +205,7 @@ CTreeNode::CTreeNode(NodeType _type,int _data)
|
||||||
int CTreeNode::generateCode(int _write)
|
int CTreeNode::generateCode(int _write)
|
||||||
{
|
{
|
||||||
int codeSize=0;
|
int codeSize=0;
|
||||||
|
int tmp1,tmp2;
|
||||||
|
|
||||||
switch(m_type)
|
switch(m_type)
|
||||||
{
|
{
|
||||||
|
@ -248,11 +250,33 @@ int CTreeNode::generateCode(int _write)
|
||||||
codeSize+=m_children[2]->generateCode(_write);
|
codeSize+=m_children[2]->generateCode(_write);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WHILE_STMT: // while [expression, code]
|
||||||
|
tmp1=m_children[1]->generateCode(false);
|
||||||
|
tmp2=codeSize;
|
||||||
|
codeSize=m_children[0]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_PUSHVALUE,_write);
|
||||||
|
codeSize+=emit((signed short)tmp1+3,_write);
|
||||||
|
codeSize+=emit(OP_JMPF,_write);
|
||||||
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_PUSHVALUE,_write);
|
||||||
|
codeSize+=emit((signed short)-(codeSize-tmp2+2),_write);
|
||||||
|
codeSize+=emit(OP_JMP,_write);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DOWHILE_STMT: // do [code] while [expression]
|
||||||
|
tmp1=m_children[0]->generateCode(false)+m_children[1]->generateCode(false)+3;
|
||||||
|
codeSize=m_children[0]->generateCode(_write);
|
||||||
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_PUSHVALUE,_write);
|
||||||
|
codeSize+=emit((signed short)-tmp1,_write);
|
||||||
|
codeSize+=emit(OP_JMPT,_write);
|
||||||
|
break;
|
||||||
|
|
||||||
case POP_STMT: // pop
|
case POP_STMT: // pop
|
||||||
codeSize+=emit(OP_POP,_write);
|
codeSize+=emit(OP_POP,_write);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ASSIGN_EXPR: // assign [ variable, number ]
|
case ASSIGN_EXPR: // assign [variable, number]
|
||||||
codeSize+=m_children[1]->generateCode(_write);
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
codeSize+=emit(OP_PUSHVALUE,_write);
|
codeSize+=emit(OP_PUSHVALUE,_write);
|
||||||
codeSize+=emit(m_children[0]->getVariableIdx(),_write);
|
codeSize+=emit(m_children[0]->getVariableIdx(),_write);
|
||||||
|
@ -260,17 +284,29 @@ int CTreeNode::generateCode(int _write)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EQUAL_EXPR: // == [variable, value]
|
case EQUAL_EXPR: // == [variable, value]
|
||||||
codeSize+=m_children[0]->generateCode(_write);
|
|
||||||
codeSize+=m_children[1]->generateCode(_write);
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
codeSize+=emit(OP_IS_EQUAL_VALUE,_write);
|
codeSize+=emit(OP_IS_EQUAL_VALUE,_write);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NOTEQUAL_EXPR: // != [variable, value]
|
case NOTEQUAL_EXPR: // != [variable, value]
|
||||||
codeSize+=m_children[0]->generateCode(_write);
|
|
||||||
codeSize+=m_children[1]->generateCode(_write);
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
codeSize+=emit(OP_IS_NOTEQUAL_VALUE,_write);
|
codeSize+=emit(OP_IS_NOTEQUAL_VALUE,_write);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case LESSTHAN_EXPR: // [variable, value]
|
||||||
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_IS_LESSTHAN_VALUE,_write);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GREATERTHAN_EXPR: // [variable, value]
|
||||||
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_IS_GREATERTHAN_VALUE,_write);
|
||||||
|
break;
|
||||||
|
|
||||||
case VARIABLE_EXPR: // variable
|
case VARIABLE_EXPR: // variable
|
||||||
case VALUE_EXPR: // value
|
case VALUE_EXPR: // value
|
||||||
if(m_numChildren)
|
if(m_numChildren)
|
||||||
|
@ -280,8 +316,15 @@ int CTreeNode::generateCode(int _write)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PLUS_EXPR: // + [value, value]
|
case PLUS_EXPR: // + [value, value]
|
||||||
codeSize+=emitValue(m_children[0],_write);
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
codeSize+=emitValue(m_children[1],_write);
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_ADD,_write);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SUBTRACT_EXPR: // - [value, value]
|
||||||
|
codeSize+=m_children[0]->generateCode(_write);
|
||||||
|
codeSize+=m_children[1]->generateCode(_write);
|
||||||
|
codeSize+=emit(OP_NEG,_write);
|
||||||
codeSize+=emit(OP_ADD,_write);
|
codeSize+=emit(OP_ADD,_write);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -293,6 +336,7 @@ int CTreeNode::generateCode(int _write)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
printf("UNHANDLED CASE %d\n",m_type);
|
printf("UNHANDLED CASE %d\n",m_type);
|
||||||
|
exit(-2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,7 +360,7 @@ int CTreeNode::emit(unsigned short _data,int _write)
|
||||||
}
|
}
|
||||||
int CTreeNode::emitValue(CTreeNode *_child,int _write)
|
int CTreeNode::emitValue(CTreeNode *_child,int _write)
|
||||||
{
|
{
|
||||||
int codeSize;
|
int codeSize=0;
|
||||||
|
|
||||||
switch(_child->getType())
|
switch(_child->getType())
|
||||||
{
|
{
|
||||||
|
@ -328,7 +372,7 @@ int CTreeNode::emitValue(CTreeNode *_child,int _write)
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("INTERNAL ERROR IN emitValue() :(\n");
|
printf("INTERNAL ERROR IN emitValue() :(\n");
|
||||||
codeSize=0;
|
exit(-2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return codeSize;
|
return codeSize;
|
||||||
|
|
|
@ -35,15 +35,20 @@ typedef enum
|
||||||
PAUSE_STMT, // pause
|
PAUSE_STMT, // pause
|
||||||
IF_STMT, // if [expression, ifcode]
|
IF_STMT, // if [expression, ifcode]
|
||||||
IFELSE_STMT, // if [expression, ifcode, elsecode]
|
IFELSE_STMT, // if [expression, ifcode, elsecode]
|
||||||
|
WHILE_STMT, // while [expression, code]
|
||||||
|
DOWHILE_STMT, // do [code] while [expression]
|
||||||
POP_STMT, // pop
|
POP_STMT, // pop
|
||||||
|
|
||||||
// Expressions
|
// Expressions
|
||||||
ASSIGN_EXPR, // assignment [variable, value]
|
ASSIGN_EXPR, // assignment [variable, value]
|
||||||
EQUAL_EXPR, // == [variable, value]
|
EQUAL_EXPR, // == [variable, value]
|
||||||
NOTEQUAL_EXPR, // != [variable, value]
|
NOTEQUAL_EXPR, // != [variable, value]
|
||||||
|
LESSTHAN_EXPR, // < [variable, value]
|
||||||
|
GREATERTHAN_EXPR, // > [variable, value]
|
||||||
VARIABLE_EXPR, // variable
|
VARIABLE_EXPR, // variable
|
||||||
VALUE_EXPR, // value
|
VALUE_EXPR, // value
|
||||||
PLUS_EXPR, // + [value, value]
|
PLUS_EXPR, // + [value, value]
|
||||||
|
SUBTRACT_EXPR, // - [value, value]
|
||||||
FUNCTION_EXPR, // function [functionNumber]
|
FUNCTION_EXPR, // function [functionNumber]
|
||||||
}NodeType;
|
}NodeType;
|
||||||
|
|
||||||
|
@ -85,8 +90,11 @@ private:
|
||||||
OP_JMPT, // jump, value
|
OP_JMPT, // jump, value
|
||||||
OP_IS_EQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
OP_IS_EQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
||||||
OP_IS_NOTEQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
OP_IS_NOTEQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
||||||
|
OP_IS_LESSTHAN_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_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
|
||||||
};
|
};
|
||||||
|
|
|
@ -61,8 +61,10 @@ struct FunctionDef
|
||||||
---- */
|
---- */
|
||||||
static FunctionDef s_functionNames[]=
|
static FunctionDef s_functionNames[]=
|
||||||
{
|
{
|
||||||
{ "setCharacterAnimation", 2, }, // character, animation
|
{ "setCharacterAnimation", 2 }, // character,animation
|
||||||
{ "setText", 1, }, // textId
|
{ "setText", 1 }, // textId
|
||||||
|
{ "drawSprite", 4 }, // frame,x,y,ot
|
||||||
|
{ "getFrameTime", 0 }, //
|
||||||
};
|
};
|
||||||
static int s_functionCount=sizeof(s_functionNames)/sizeof(FunctionDef);
|
static int s_functionCount=sizeof(s_functionNames)/sizeof(FunctionDef);
|
||||||
|
|
||||||
|
|
|
@ -125,136 +125,171 @@ return ELSE;
|
||||||
case 6:
|
case 6:
|
||||||
{
|
{
|
||||||
#line 71 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 71 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return PAUSE;
|
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 72 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return PRINT;
|
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 73 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return ASSIGN;
|
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 74 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return EQUAL;
|
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 75 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return NOTEQUAL;
|
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 76 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return PLUS;
|
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 77 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return END_STMT;
|
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 78 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return OPEN_PAR;
|
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 79 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return CLOSE_PAR;
|
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 80 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return BEGIN_CS;
|
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 81 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return END_CS;
|
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 82 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
return COMMA;
|
return END_STMT;
|
||||||
#line 207 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 207 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
{
|
{
|
||||||
#line 85 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 83 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
yylval.variableIdx=lookupVarName(yytext+1);return VARIABLE;
|
return OPEN_PAR;
|
||||||
#line 214 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 214 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
{
|
{
|
||||||
#line 86 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 84 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
yylval.value=atoi(yytext);return VALUE;
|
return CLOSE_PAR;
|
||||||
#line 221 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 221 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
{
|
{
|
||||||
#line 89 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 85 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION;
|
return BEGIN_CS;
|
||||||
#line 228 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 228 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 21:
|
case 21:
|
||||||
{
|
{
|
||||||
#line 91 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 86 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
return END_CS;
|
||||||
#line 235 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 235 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 22:
|
case 22:
|
||||||
{
|
{
|
||||||
#line 92 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 87 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
return COMMA;
|
||||||
#line 242 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 242 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 23:
|
case 23:
|
||||||
{
|
{
|
||||||
#line 93 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 90 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
yylval.variableIdx=lookupVarName(yytext+1);return VARIABLE;
|
||||||
#line 249 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 249 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
{
|
{
|
||||||
#line 95 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 91 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
unexpectedChar();
|
yylval.value=atoi(yytext);return VALUE;
|
||||||
#line 256 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 256 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 25:
|
||||||
|
{
|
||||||
|
#line 94 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
yylval.functionNumber=lookupFunctionName(yytext+1);return FUNCTION;
|
||||||
|
#line 263 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
{
|
||||||
|
#line 96 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
|
#line 270 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
{
|
||||||
|
#line 97 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
|
#line 277 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 28:
|
||||||
|
{
|
||||||
|
#line 98 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
|
#line 284 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 29:
|
||||||
|
{
|
||||||
|
#line 100 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
unexpectedChar();
|
||||||
|
#line 291 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
yyassert(0);
|
yyassert(0);
|
||||||
break;
|
break;
|
||||||
|
@ -268,7 +303,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 97 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
#line 102 "C:\\spongebob\\Utils\\scripter\\lexer.l"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -276,7 +311,7 @@ unexpectedChar();
|
||||||
// programs section
|
// programs section
|
||||||
|
|
||||||
|
|
||||||
#line 280 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
#line 315 "C:\\spongebob\\Utils\\scripter\\lexer.cpp"
|
||||||
|
|
||||||
void YYLEXNAME::yytables()
|
void YYLEXNAME::yytables()
|
||||||
{
|
{
|
||||||
|
@ -300,9 +335,9 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 21, 21 },
|
{ 26, 26 },
|
||||||
{ 0, 33 },
|
{ 0, 40 },
|
||||||
{ 0, 44 },
|
{ 0, 54 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
@ -323,7 +358,7 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 21, 21 },
|
{ 26, 26 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 3, 1 },
|
{ 3, 1 },
|
||||||
|
@ -338,269 +373,269 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 33, 20 },
|
{ 40, 25 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 29, 8 },
|
{ 37, 11 },
|
||||||
{ 30, 9 },
|
{ 36, 10 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 31, 31 },
|
{ 38, 38 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 36, 27 },
|
{ 44, 34 },
|
||||||
{ 43, 41 },
|
{ 53, 50 },
|
||||||
{ 24, 4 },
|
{ 29, 4 },
|
||||||
{ 35, 26 },
|
{ 42, 31 },
|
||||||
{ 40, 36 },
|
{ 49, 44 },
|
||||||
{ 38, 34 },
|
{ 46, 41 },
|
||||||
{ 34, 24 },
|
{ 33, 8 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 41, 37 },
|
{ 41, 29 },
|
||||||
{ 26, 6 },
|
{ 50, 45 },
|
||||||
{ 37, 28 },
|
{ 31, 6 },
|
||||||
{ 25, 5 },
|
{ 48, 43 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 39, 35 },
|
{ 43, 32 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 32, 32 },
|
{ 39, 39 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 17 },
|
{ 0, 22 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 0, 19 },
|
{ 0, 24 },
|
||||||
{ 21, 2 },
|
{ 26, 2 },
|
||||||
{ 22, 2 },
|
{ 27, 2 },
|
||||||
{ 27, 7 },
|
{ 34, 9 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 18, 18 },
|
{ 23, 23 },
|
||||||
{ 42, 40 },
|
{ 45, 35 },
|
||||||
|
{ 32, 7 },
|
||||||
|
{ 30, 5 },
|
||||||
|
{ 52, 49 },
|
||||||
|
{ 47, 42 },
|
||||||
|
{ 51, 48 },
|
||||||
|
{ 35, 9 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 26, 2 },
|
||||||
{ 0, 0 },
|
|
||||||
{ 28, 7 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 21, 2 },
|
|
||||||
{ 9, 2 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 44, 2 },
|
|
||||||
{ 17, 2 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 12, 2 },
|
|
||||||
{ 13, 2 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 10, 2 },
|
|
||||||
{ 16, 2 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 20, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 18, 2 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 11, 2 },
|
{ 11, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
{ 54, 2 },
|
||||||
|
{ 22, 2 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 17, 2 },
|
||||||
|
{ 18, 2 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 14, 2 },
|
||||||
|
{ 21, 2 },
|
||||||
|
{ 15, 2 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 25, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 23, 2 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 16, 2 },
|
||||||
|
{ 12, 2 },
|
||||||
|
{ 10, 2 },
|
||||||
|
{ 13, 2 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 24, 2 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
|
{ 0, 0 },
|
||||||
{ 8, 2 },
|
{ 8, 2 },
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 19, 2 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 0, 0 },
|
|
||||||
{ 6, 2 },
|
{ 6, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
@ -612,69 +647,79 @@ void YYLEXNAME::yytables()
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 7, 2 },
|
{ 9, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 4, 2 },
|
{ 4, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
{ 7, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
|
{ 19, 2 },
|
||||||
{ 0, 0 },
|
{ 0, 0 },
|
||||||
{ 14, 2 },
|
{ 20, 2 }
|
||||||
{ 0, 0 },
|
|
||||||
{ 15, 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 },
|
||||||
{ -23, 210, 0 },
|
{ -28, 210, 0 },
|
||||||
{ 0, 0, 2 },
|
{ 0, 0, 2 },
|
||||||
{ 41, 20, 24 },
|
{ 50, 20, 29 },
|
||||||
{ 0, 68, 24 },
|
{ 0, 132, 29 },
|
||||||
{ 0, 60, 24 },
|
{ 43, 61, 29 },
|
||||||
{ 0, 124, 24 },
|
{ 0, 129, 29 },
|
||||||
{ 9, 1, 8 },
|
{ 29, 29, 29 },
|
||||||
{ 0, 2, 24 },
|
{ 0, 124, 29 },
|
||||||
{ 0, 0, 11 },
|
{ 11, 2, 10 },
|
||||||
{ 0, 0, 12 },
|
{ 0, 1, 29 },
|
||||||
{ 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 },
|
||||||
{ 31, 151, 24 },
|
{ 0, 0, 18 },
|
||||||
{ 0, 174, 19 },
|
{ 0, 0, 19 },
|
||||||
{ 32, 161, 24 },
|
{ 0, 0, 20 },
|
||||||
{ 0, 1, 24 },
|
{ 0, 0, 21 },
|
||||||
{ 0, 1, 22 },
|
{ 0, 0, 22 },
|
||||||
{ 0, 0, 23 },
|
{ 38, 151, 29 },
|
||||||
{ 0, 0, 24 },
|
{ 0, 174, 24 },
|
||||||
{ 0, 29, 0 },
|
{ 39, 161, 29 },
|
||||||
|
{ 0, 1, 29 },
|
||||||
|
{ 0, 1, 27 },
|
||||||
|
{ 0, 0, 28 },
|
||||||
|
{ 0, 0, 29 },
|
||||||
|
{ 0, 56, 0 },
|
||||||
{ 0, 0, 4 },
|
{ 0, 0, 4 },
|
||||||
{ 36, 22, 0 },
|
{ 44, 22, 0 },
|
||||||
|
{ 35, 67, 0 },
|
||||||
|
{ 0, 0, 7 },
|
||||||
{ 0, 17, 0 },
|
{ 0, 17, 0 },
|
||||||
{ 0, 64, 0 },
|
{ 0, 127, 0 },
|
||||||
{ 0, 0, 9 },
|
{ 0, 0, 11 },
|
||||||
{ 0, 0, 10 },
|
{ 0, 0, 12 },
|
||||||
{ 41, 1, 18 },
|
{ 50, 1, 23 },
|
||||||
{ 41, 76, 20 },
|
{ 50, 76, 25 },
|
||||||
{ -33, 1, 21 },
|
{ -40, 1, 26 },
|
||||||
{ 0, 27, 0 },
|
{ 0, 27, 0 },
|
||||||
{ 40, 71, 0 },
|
{ 49, 135, 0 },
|
||||||
|
{ 0, 62, 0 },
|
||||||
{ 0, 23, 0 },
|
{ 0, 23, 0 },
|
||||||
{ 0, 57, 0 },
|
{ 0, 58, 0 },
|
||||||
{ 0, 0, 3 },
|
{ 0, 0, 3 },
|
||||||
{ 0, 0, 5 },
|
{ 0, 0, 5 },
|
||||||
{ 0, 131, 0 },
|
{ 49, 136, 0 },
|
||||||
|
{ 0, 134, 0 },
|
||||||
{ 0, 19, 0 },
|
{ 0, 19, 0 },
|
||||||
{ 0, 0, 6 },
|
{ 0, 0, 6 },
|
||||||
{ 0, 0, 7 },
|
{ 0, 0, 8 },
|
||||||
{ -44, 2, 1 }
|
{ 0, 0, 9 },
|
||||||
|
{ -54, 2, 1 }
|
||||||
};
|
};
|
||||||
yystate = state;
|
yystate = state;
|
||||||
|
|
||||||
|
@ -703,6 +748,11 @@ void YYLEXNAME::yytables()
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
yybackup = backup;
|
yybackup = backup;
|
||||||
|
|
|
@ -68,12 +68,17 @@ YYSTYPE& yylval = *(YYSTYPE*)yyparserptr->yylvalptr;
|
||||||
stop {return STOP;}
|
stop {return STOP;}
|
||||||
if {return IF;}
|
if {return IF;}
|
||||||
else {return ELSE;}
|
else {return ELSE;}
|
||||||
|
while {return WHILE;}
|
||||||
|
do {return DO;}
|
||||||
pause {return PAUSE;}
|
pause {return PAUSE;}
|
||||||
print {return PRINT;}
|
print {return PRINT;}
|
||||||
= {return ASSIGN;}
|
= {return ASSIGN;}
|
||||||
== {return EQUAL;}
|
== {return EQUAL;}
|
||||||
!= {return NOTEQUAL;}
|
!= {return NOTEQUAL;}
|
||||||
|
\< {return LESSTHAN;}
|
||||||
|
\> {return GREATERTHAN;}
|
||||||
\+ {return PLUS;}
|
\+ {return PLUS;}
|
||||||
|
\- {return SUBTRACT;}
|
||||||
; {return END_STMT;}
|
; {return END_STMT;}
|
||||||
\( {return OPEN_PAR;}
|
\( {return OPEN_PAR;}
|
||||||
\) {return CLOSE_PAR;}
|
\) {return CLOSE_PAR;}
|
||||||
|
|
|
@ -76,7 +76,7 @@ void YYPARSENAME::yyaction(int action)
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 102 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 107 "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 106 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 111 "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 107 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 112 "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 111 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 116 "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 112 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 117 "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 113 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 118 "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 114 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 119 "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 115 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 120 "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 116 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 121 "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 117 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 122 "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"
|
||||||
}
|
}
|
||||||
|
@ -196,12 +196,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 10:
|
case 10:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[4];
|
YYSTYPE YYFAR* yya[6];
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 6);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 118 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 123 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(STMT_LIST,yyattribute(2 - 3).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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -209,12 +209,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 11:
|
case 11:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[3];
|
YYSTYPE YYFAR* yya[8];
|
||||||
yyinitdebug((void YYFAR**)yya, 3);
|
yyinitdebug((void YYFAR**)yya, 8);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 119 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 124 "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(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,8 +226,8 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 124 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 125 "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(STMT_LIST,yyattribute(2 - 3).treenode);
|
||||||
#line 232 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 232 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -235,12 +235,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 13:
|
case 13:
|
||||||
{
|
{
|
||||||
#ifdef YYDEBUG
|
#ifdef YYDEBUG
|
||||||
YYSTYPE YYFAR* yya[4];
|
YYSTYPE YYFAR* yya[3];
|
||||||
yyinitdebug((void YYFAR**)yya, 4);
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 129 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 126 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(2 - 3).treenode;
|
(*(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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -248,12 +248,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 14:
|
case 14:
|
||||||
{
|
{
|
||||||
#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 130 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 131 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).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[2];
|
YYSTYPE YYFAR* yya[4];
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 131 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 136 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(2 - 3).treenode;
|
||||||
#line 271 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 271 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -274,12 +274,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 16:
|
case 16:
|
||||||
{
|
{
|
||||||
#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 135 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 137 "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=yyattribute(1 - 1).treenode;
|
||||||
#line 284 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 284 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -287,12 +287,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 17:
|
case 17:
|
||||||
{
|
{
|
||||||
#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 139 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 138 "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=yyattribute(1 - 1).treenode;
|
||||||
#line 297 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 297 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -304,8 +304,8 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 144 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 139 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
#line 310 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 310 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -317,8 +317,8 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
yyinitdebug((void YYFAR**)yya, 2);
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#line 148 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 140 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VALUE_EXPR,yyattribute(1 - 1).value);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
#line 323 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 323 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -326,12 +326,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 20:
|
case 20:
|
||||||
{
|
{
|
||||||
#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 149 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 144 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(EQUAL_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 150 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 148 "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(NOTEQUAL_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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,12 +352,12 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 22:
|
case 22:
|
||||||
{
|
{
|
||||||
#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 151 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 152 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(LESSTHAN_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,26 +365,117 @@ s_baseTreeNode=yyattribute(1 - 1).treenode;
|
||||||
case 23:
|
case 23:
|
||||||
{
|
{
|
||||||
#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 156 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 156 "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(GREATERTHAN_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
#line 375 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 375 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 24:
|
case 24:
|
||||||
{
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[2];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 161 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
||||||
|
#line 388 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[2];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 165 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VALUE_EXPR,yyattribute(1 - 1).value);
|
||||||
|
#line 401 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[2];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 166 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(VARIABLE_EXPR,yyattribute(1 - 1).variableIdx);
|
||||||
|
#line 414 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[4];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 169 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(PLUS_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
|
#line 427 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 28:
|
||||||
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[4];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 4);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 170 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=new CTreeNode(SUBTRACT_EXPR,yyattribute(1 - 3).treenode,yyattribute(3 - 3).treenode);
|
||||||
|
#line 440 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 29:
|
||||||
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[2];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 2);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 171 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
(*(YYSTYPE YYFAR*)yyvalptr).treenode=yyattribute(1 - 1).treenode;
|
||||||
|
#line 453 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 30:
|
||||||
|
{
|
||||||
|
#ifdef YYDEBUG
|
||||||
|
YYSTYPE YYFAR* yya[3];
|
||||||
|
yyinitdebug((void YYFAR**)yya, 3);
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#line 176 "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 466 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 31:
|
||||||
|
{
|
||||||
#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 157 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 177 "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 388 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 479 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -393,14 +484,14 @@ if(yyattribute(1 - 2).functionNumber!=-1){m_functionNumber=yyattribute(1 - 2).fu
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#line 162 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
#line 182 "C:\\spongebob\\Utils\\scripter\\parser.y"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// programs section
|
// programs section
|
||||||
|
|
||||||
#line 404 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
#line 495 "C:\\spongebob\\Utils\\scripter\\parser.cpp"
|
||||||
void YYPARSENAME::yytables()
|
void YYPARSENAME::yytables()
|
||||||
{
|
{
|
||||||
yyattribute_size = sizeof(YYSTYPE);
|
yyattribute_size = sizeof(YYSTYPE);
|
||||||
|
@ -413,20 +504,25 @@ void YYPARSENAME::yytables()
|
||||||
{ "STOP", 257 },
|
{ "STOP", 257 },
|
||||||
{ "IF", 258 },
|
{ "IF", 258 },
|
||||||
{ "ELSE", 259 },
|
{ "ELSE", 259 },
|
||||||
{ "PAUSE", 260 },
|
{ "WHILE", 260 },
|
||||||
{ "PRINT", 261 },
|
{ "DO", 261 },
|
||||||
{ "ASSIGN", 262 },
|
{ "PAUSE", 262 },
|
||||||
{ "EQUAL", 263 },
|
{ "PRINT", 263 },
|
||||||
{ "NOTEQUAL", 264 },
|
{ "ASSIGN", 264 },
|
||||||
{ "PLUS", 265 },
|
{ "EQUAL", 265 },
|
||||||
{ "END_STMT", 266 },
|
{ "NOTEQUAL", 266 },
|
||||||
{ "OPEN_PAR", 267 },
|
{ "LESSTHAN", 267 },
|
||||||
{ "CLOSE_PAR", 268 },
|
{ "GREATERTHAN", 268 },
|
||||||
{ "BEGIN_CS", 269 },
|
{ "PLUS", 269 },
|
||||||
{ "END_CS", 270 },
|
{ "SUBTRACT", 270 },
|
||||||
{ "VARIABLE", 272 },
|
{ "END_STMT", 271 },
|
||||||
{ "VALUE", 273 },
|
{ "OPEN_PAR", 272 },
|
||||||
{ "FUNCTION", 274 },
|
{ "CLOSE_PAR", 273 },
|
||||||
|
{ "BEGIN_CS", 274 },
|
||||||
|
{ "END_CS", 275 },
|
||||||
|
{ "VARIABLE", 277 },
|
||||||
|
{ "VALUE", 278 },
|
||||||
|
{ "FUNCTION", 279 },
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
yysymbol = symbol;
|
yysymbol = symbol;
|
||||||
|
@ -443,18 +539,25 @@ void YYPARSENAME::yytables()
|
||||||
"statement: assign_expression END_STMT",
|
"statement: assign_expression END_STMT",
|
||||||
"statement: IF OPEN_PAR expression CLOSE_PAR statement",
|
"statement: IF OPEN_PAR expression CLOSE_PAR statement",
|
||||||
"statement: IF OPEN_PAR expression CLOSE_PAR statement ELSE statement",
|
"statement: IF OPEN_PAR expression CLOSE_PAR statement ELSE statement",
|
||||||
|
"statement: WHILE OPEN_PAR expression CLOSE_PAR statement",
|
||||||
|
"statement: DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT",
|
||||||
"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: OPEN_PAR expression CLOSE_PAR",
|
||||||
"expression: equal_expression",
|
"expression: equal_expression",
|
||||||
"expression: notequal_expression",
|
"expression: notequal_expression",
|
||||||
|
"expression: lessthan_expression",
|
||||||
|
"expression: greaterthan_expression",
|
||||||
"equal_expression: value EQUAL value",
|
"equal_expression: value EQUAL value",
|
||||||
"notequal_expression: value NOTEQUAL value",
|
"notequal_expression: value NOTEQUAL value",
|
||||||
|
"lessthan_expression: value LESSTHAN value",
|
||||||
|
"greaterthan_expression: value GREATERTHAN value",
|
||||||
"variable: VARIABLE",
|
"variable: VARIABLE",
|
||||||
"value: VALUE",
|
"value: VALUE",
|
||||||
"value: VARIABLE",
|
"value: VARIABLE",
|
||||||
"value: value PLUS value",
|
"value: value PLUS value",
|
||||||
|
"value: value SUBTRACT value",
|
||||||
"value: function",
|
"value: function",
|
||||||
"$$1:",
|
"$$1:",
|
||||||
"function: FUNCTION OPEN_PAR $$1 CLOSE_PAR"
|
"function: FUNCTION OPEN_PAR $$1 CLOSE_PAR"
|
||||||
|
@ -474,164 +577,226 @@ void YYPARSENAME::yytables()
|
||||||
{ 3, 2, 7 },
|
{ 3, 2, 7 },
|
||||||
{ 3, 5, 8 },
|
{ 3, 5, 8 },
|
||||||
{ 3, 7, 9 },
|
{ 3, 7, 9 },
|
||||||
{ 3, 3, 10 },
|
{ 3, 5, 10 },
|
||||||
{ 3, 2, 11 },
|
{ 3, 7, 11 },
|
||||||
{ 4, 3, 12 },
|
{ 3, 3, 12 },
|
||||||
{ 5, 3, 13 },
|
{ 3, 2, 13 },
|
||||||
{ 5, 1, 14 },
|
{ 4, 3, 14 },
|
||||||
{ 5, 1, 15 },
|
{ 5, 3, 15 },
|
||||||
{ 6, 3, 16 },
|
{ 5, 1, 16 },
|
||||||
{ 7, 3, 17 },
|
{ 5, 1, 17 },
|
||||||
{ 8, 1, 18 },
|
{ 5, 1, 18 },
|
||||||
{ 9, 1, 19 },
|
{ 5, 1, 19 },
|
||||||
{ 9, 1, 20 },
|
{ 6, 3, 20 },
|
||||||
{ 9, 3, 21 },
|
{ 7, 3, 21 },
|
||||||
{ 9, 1, 22 },
|
{ 8, 3, 22 },
|
||||||
{ 11, 0, 23 },
|
{ 9, 3, 23 },
|
||||||
{ 10, 4, 24 }
|
{ 10, 1, 24 },
|
||||||
|
{ 11, 1, 25 },
|
||||||
|
{ 11, 1, 26 },
|
||||||
|
{ 11, 3, 27 },
|
||||||
|
{ 11, 3, 28 },
|
||||||
|
{ 11, 1, 29 },
|
||||||
|
{ 13, 0, 30 },
|
||||||
|
{ 12, 4, 31 }
|
||||||
};
|
};
|
||||||
yyreduction = reduction;
|
yyreduction = reduction;
|
||||||
|
|
||||||
static const yytokenaction_t YYNEARFAR YYBASED_CODE tokenaction[] = {
|
static const yytokenaction_t YYNEARFAR YYBASED_CODE tokenaction[] = {
|
||||||
{ 49, YYAT_SHIFT, 3 },
|
{ 67, YYAT_SHIFT, 3 },
|
||||||
{ 49, YYAT_SHIFT, 4 },
|
{ 67, YYAT_SHIFT, 4 },
|
||||||
{ 32, YYAT_SHIFT, 40 },
|
{ 68, YYAT_SHIFT, 70 },
|
||||||
{ 49, YYAT_SHIFT, 5 },
|
{ 67, YYAT_SHIFT, 5 },
|
||||||
{ 49, YYAT_SHIFT, 6 },
|
{ 67, YYAT_SHIFT, 6 },
|
||||||
{ 32, YYAT_SHIFT, 41 },
|
{ 67, YYAT_SHIFT, 7 },
|
||||||
{ 47, YYAT_SHIFT, 40 },
|
{ 67, YYAT_SHIFT, 8 },
|
||||||
{ 2, YYAT_SHIFT, 3 },
|
{ 2, YYAT_SHIFT, 3 },
|
||||||
{ 2, YYAT_SHIFT, 4 },
|
{ 2, YYAT_SHIFT, 4 },
|
||||||
{ 49, YYAT_SHIFT, 7 },
|
{ 65, YYAT_SHIFT, 68 },
|
||||||
{ 2, YYAT_SHIFT, 5 },
|
{ 2, YYAT_SHIFT, 5 },
|
||||||
{ 2, YYAT_SHIFT, 6 },
|
{ 2, YYAT_SHIFT, 6 },
|
||||||
{ 49, YYAT_SHIFT, 8 },
|
|
||||||
{ 30, YYAT_SHIFT, 38 },
|
|
||||||
{ 30, YYAT_SHIFT, 39 },
|
|
||||||
{ 49, YYAT_SHIFT, 9 },
|
|
||||||
{ 2, YYAT_SHIFT, 7 },
|
{ 2, YYAT_SHIFT, 7 },
|
||||||
{ 49, YYAT_SHIFT, 10 },
|
|
||||||
{ 30, YYAT_ERROR, 0 },
|
|
||||||
{ 2, YYAT_SHIFT, 8 },
|
{ 2, YYAT_SHIFT, 8 },
|
||||||
{ 46, YYAT_SHIFT, 40 },
|
{ 67, YYAT_SHIFT, 9 },
|
||||||
{ 45, YYAT_SHIFT, 40 },
|
{ 40, YYAT_SHIFT, 50 },
|
||||||
|
{ 40, YYAT_SHIFT, 51 },
|
||||||
|
{ 67, YYAT_SHIFT, 10 },
|
||||||
|
{ 57, YYAT_SHIFT, 67 },
|
||||||
|
{ 40, YYAT_SHIFT, 54 },
|
||||||
|
{ 67, YYAT_SHIFT, 11 },
|
||||||
{ 2, YYAT_SHIFT, 9 },
|
{ 2, YYAT_SHIFT, 9 },
|
||||||
{ 44, YYAT_SHIFT, 49 },
|
{ 67, YYAT_SHIFT, 12 },
|
||||||
|
{ 54, YYAT_SHIFT, 66 },
|
||||||
{ 2, YYAT_SHIFT, 10 },
|
{ 2, YYAT_SHIFT, 10 },
|
||||||
{ 40, YYAT_SHIFT, 25 },
|
{ 63, YYAT_SHIFT, 50 },
|
||||||
{ 40, YYAT_SHIFT, 26 },
|
{ 63, YYAT_SHIFT, 51 },
|
||||||
{ 40, YYAT_SHIFT, 10 },
|
{ 2, YYAT_SHIFT, 11 },
|
||||||
{ 41, YYAT_SHIFT, 48 },
|
{ 51, YYAT_ERROR, 0 },
|
||||||
{ 36, YYAT_SHIFT, 43 },
|
{ 2, YYAT_SHIFT, 12 },
|
||||||
{ 35, YYAT_SHIFT, 40 },
|
{ 36, YYAT_SHIFT, 46 },
|
||||||
{ 34, YYAT_SHIFT, 42 },
|
{ 36, YYAT_SHIFT, 47 },
|
||||||
{ 27, YYAT_SHIFT, 37 },
|
{ 36, YYAT_SHIFT, 48 },
|
||||||
{ 24, YYAT_SHIFT, 24 },
|
{ 36, YYAT_SHIFT, 49 },
|
||||||
{ 19, YYAT_SHIFT, 33 },
|
{ 53, YYAT_SHIFT, 28 },
|
||||||
{ 14, YYAT_SHIFT, 23 },
|
{ 62, YYAT_SHIFT, 50 },
|
||||||
{ 13, YYAT_SHIFT, 22 },
|
{ 62, YYAT_SHIFT, 51 },
|
||||||
{ 12, YYAT_SHIFT, 21 },
|
{ 44, YYAT_SHIFT, 56 },
|
||||||
{ 10, YYAT_SHIFT, 20 },
|
{ 36, YYAT_ERROR, 0 },
|
||||||
{ 6, YYAT_SHIFT, 18 },
|
{ 53, YYAT_SHIFT, 29 },
|
||||||
{ 5, YYAT_SHIFT, 17 },
|
{ 53, YYAT_SHIFT, 30 },
|
||||||
{ 4, YYAT_SHIFT, 16 },
|
{ 53, YYAT_SHIFT, 12 },
|
||||||
{ 3, YYAT_SHIFT, 15 },
|
{ 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 },
|
||||||
|
{ 14, YYAT_SHIFT, 25 },
|
||||||
|
{ 12, YYAT_SHIFT, 24 },
|
||||||
|
{ 8, YYAT_SHIFT, 22 },
|
||||||
|
{ 7, YYAT_SHIFT, 21 },
|
||||||
|
{ 5, YYAT_SHIFT, 19 },
|
||||||
|
{ 4, YYAT_SHIFT, 18 },
|
||||||
|
{ 3, YYAT_SHIFT, 17 },
|
||||||
{ 1, YYAT_ACCEPT, 0 }
|
{ 1, YYAT_ACCEPT, 0 }
|
||||||
};
|
};
|
||||||
yytokenaction = tokenaction;
|
yytokenaction = tokenaction;
|
||||||
yytokenaction_size = 44;
|
yytokenaction_size = 68;
|
||||||
|
|
||||||
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 },
|
||||||
{ 43, 1, YYAT_ERROR, 0 },
|
{ 67, 1, YYAT_ERROR, 0 },
|
||||||
{ -250, 1, YYAT_REDUCE, 1 },
|
{ -250, 1, YYAT_REDUCE, 1 },
|
||||||
{ -224, 1, YYAT_DEFAULT, 41 },
|
{ -205, 1, YYAT_DEFAULT, 68 },
|
||||||
{ -226, 1, YYAT_DEFAULT, 10 },
|
{ -207, 1, YYAT_DEFAULT, 39 },
|
||||||
{ -226, 1, YYAT_DEFAULT, 41 },
|
{ -208, 1, YYAT_DEFAULT, 39 },
|
||||||
{ -228, 1, YYAT_DEFAULT, 10 },
|
{ 0, 0, YYAT_DEFAULT, 67 },
|
||||||
|
{ -208, 1, YYAT_DEFAULT, 68 },
|
||||||
|
{ -210, 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, 19 },
|
|
||||||
{ -229, 1, YYAT_ERROR, 0 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 2 },
|
|
||||||
{ -229, 1, YYAT_DEFAULT, 41 },
|
|
||||||
{ -226, 1, YYAT_ERROR, 0 },
|
|
||||||
{ -231, 1, YYAT_DEFAULT, 41 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 5 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 24 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 6 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 40 },
|
|
||||||
{ -236, 1, YYAT_DEFAULT, 49 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 24 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 8 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 40 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 12 },
|
|
||||||
{ -234, 1, YYAT_DEFAULT, 40 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 21 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 20 },
|
|
||||||
{ -236, 1, YYAT_DEFAULT, 36 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 15 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 16 },
|
|
||||||
{ -250, 1, YYAT_DEFAULT, 32 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 23 },
|
|
||||||
{ -263, 1, YYAT_DEFAULT, 36 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 11 },
|
|
||||||
{ -237, 1, YYAT_DEFAULT, 36 },
|
|
||||||
{ -235, 1, YYAT_REDUCE, 13 },
|
|
||||||
{ -239, 1, YYAT_ERROR, 0 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 49 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 40 },
|
|
||||||
{ 0, 0, YYAT_DEFAULT, 40 },
|
|
||||||
{ -247, 1, YYAT_ERROR, 0 },
|
|
||||||
{ -238, 1, YYAT_ERROR, 0 },
|
|
||||||
{ 0, 0, YYAT_REDUCE, 25 },
|
{ 0, 0, YYAT_REDUCE, 25 },
|
||||||
|
{ -211, 1, YYAT_DEFAULT, 39 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 2 },
|
||||||
|
{ -211, 1, YYAT_DEFAULT, 68 },
|
||||||
|
{ -205, 1, YYAT_ERROR, 0 },
|
||||||
|
{ -213, 1, YYAT_DEFAULT, 68 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 5 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 53 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 53 },
|
||||||
|
{ -203, 1, YYAT_ERROR, 0 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 6 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 51 },
|
||||||
|
{ -219, 1, YYAT_DEFAULT, 67 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 31 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 8 },
|
||||||
|
{ 0, 0, YYAT_DEFAULT, 51 },
|
||||||
{ 0, 0, YYAT_REDUCE, 14 },
|
{ 0, 0, YYAT_REDUCE, 14 },
|
||||||
{ -236, 1, YYAT_REDUCE, 9 },
|
{ 0, 0, YYAT_DEFAULT, 53 },
|
||||||
{ -244, 1, YYAT_REDUCE, 17 },
|
{ 0, 0, YYAT_REDUCE, 27 },
|
||||||
{ -245, 1, YYAT_REDUCE, 18 },
|
{ 0, 0, YYAT_REDUCE, 26 },
|
||||||
{ -259, 1, YYAT_REDUCE, 22 },
|
{ -218, 1, YYAT_DEFAULT, 65 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 17 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 18 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 19 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 20 },
|
||||||
|
{ -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, 16 },
|
||||||
|
{ -241, 1, YYAT_REDUCE, 9 },
|
||||||
|
{ -221, 1, YYAT_REDUCE, 21 },
|
||||||
|
{ -223, 1, YYAT_REDUCE, 22 },
|
||||||
|
{ -225, 1, YYAT_REDUCE, 23 },
|
||||||
|
{ -227, 1, YYAT_REDUCE, 24 },
|
||||||
|
{ -234, 1, YYAT_REDUCE, 28 },
|
||||||
|
{ -244, 1, YYAT_REDUCE, 29 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 11 },
|
||||||
|
{ -264, 1, YYAT_ERROR, 0 },
|
||||||
{ 0, 0, YYAT_REDUCE, 7 },
|
{ 0, 0, YYAT_REDUCE, 7 },
|
||||||
{ -257, 1, YYAT_DEFAULT, 41 },
|
{ -257, 1, YYAT_DEFAULT, 68 },
|
||||||
{ 0, 0, YYAT_REDUCE, 10 }
|
{ -269, 1, YYAT_ERROR, 0 },
|
||||||
|
{ 0, 0, YYAT_REDUCE, 10 },
|
||||||
|
{ 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[] = {
|
||||||
{ 49, 50 },
|
{ 53, 65 },
|
||||||
{ 49, 12 },
|
{ 53, 32 },
|
||||||
{ 24, 36 },
|
{ 53, 33 },
|
||||||
{ 24, 28 },
|
{ 53, 34 },
|
||||||
{ 24, 29 },
|
{ 53, 35 },
|
||||||
{ 49, 13 },
|
{ 52, 64 },
|
||||||
{ 24, 30 },
|
{ 53, 36 },
|
||||||
{ 49, 14 },
|
{ 67, 69 },
|
||||||
{ 40, 47 },
|
{ 67, 14 },
|
||||||
{ 40, 31 },
|
{ 51, 63 },
|
||||||
|
{ 51, 37 },
|
||||||
{ 0, 1 },
|
{ 0, 1 },
|
||||||
{ 0, 2 },
|
{ 0, 2 },
|
||||||
{ 39, 46 },
|
{ 50, 62 },
|
||||||
{ 38, 45 },
|
{ 67, 15 },
|
||||||
{ 37, 44 },
|
{ 49, 61 },
|
||||||
{ 22, 35 },
|
{ 67, 16 },
|
||||||
{ 20, 34 },
|
{ 48, 60 },
|
||||||
{ 19, 11 },
|
{ 47, 59 },
|
||||||
{ 18, 32 },
|
{ 46, 58 },
|
||||||
{ 16, 27 },
|
{ 45, 57 },
|
||||||
{ 8, 19 }
|
{ 28, 44 },
|
||||||
|
{ 26, 43 },
|
||||||
|
{ 24, 42 },
|
||||||
|
{ 23, 13 },
|
||||||
|
{ 22, 40 },
|
||||||
|
{ 19, 38 },
|
||||||
|
{ 18, 31 },
|
||||||
|
{ 10, 23 },
|
||||||
|
{ 6, 20 }
|
||||||
};
|
};
|
||||||
yynontermgoto = nontermgoto;
|
yynontermgoto = nontermgoto;
|
||||||
yynontermgoto_size = 21;
|
yynontermgoto_size = 30;
|
||||||
|
|
||||||
static const yystategoto_t YYNEARFAR YYBASED_CODE stategoto[] = {
|
static const yystategoto_t YYNEARFAR YYBASED_CODE stategoto[] = {
|
||||||
{ 9, -1 },
|
{ 10, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, 19 },
|
{ 0, 23 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
|
{ 26, 67 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 18, -1 },
|
{ 0, -1 },
|
||||||
|
{ 26, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
|
@ -639,15 +804,17 @@ void YYPARSENAME::yytables()
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 14, 24 },
|
{ 22, 53 },
|
||||||
|
{ 21, 53 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 9, 40 },
|
|
||||||
{ 14, 49 },
|
|
||||||
{ 5, -1 },
|
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 6, 40 },
|
{ 14, 51 },
|
||||||
|
{ 21, 67 },
|
||||||
|
{ 10, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ -3, 40 },
|
{ 11, 51 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 16, 53 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
|
@ -660,10 +827,19 @@ void YYPARSENAME::yytables()
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 11, 49 },
|
{ 0, -1 },
|
||||||
{ 4, 40 },
|
{ 0, -1 },
|
||||||
{ 3, 40 },
|
{ 0, -1 },
|
||||||
{ -1, -1 },
|
{ 0, -1 },
|
||||||
|
{ 17, 67 },
|
||||||
|
{ 8, 51 },
|
||||||
|
{ 7, 51 },
|
||||||
|
{ 6, 51 },
|
||||||
|
{ 4, 51 },
|
||||||
|
{ 2, 51 },
|
||||||
|
{ -2, -1 },
|
||||||
|
{ 2, 67 },
|
||||||
|
{ -5, 51 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
|
@ -672,7 +848,14 @@ void YYPARSENAME::yytables()
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ 0, -1 },
|
{ 0, -1 },
|
||||||
{ -3, -1 },
|
{ 0, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 4, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
|
{ 0, -1 },
|
||||||
{ 0, -1 }
|
{ 0, -1 }
|
||||||
};
|
};
|
||||||
yystategoto = stategoto;
|
yystategoto = stategoto;
|
||||||
|
|
|
@ -63,19 +63,24 @@ union tagYYSTYPE {
|
||||||
#define STOP 257
|
#define STOP 257
|
||||||
#define IF 258
|
#define IF 258
|
||||||
#define ELSE 259
|
#define ELSE 259
|
||||||
#define PAUSE 260
|
#define WHILE 260
|
||||||
#define PRINT 261
|
#define DO 261
|
||||||
#define ASSIGN 262
|
#define PAUSE 262
|
||||||
#define EQUAL 263
|
#define PRINT 263
|
||||||
#define NOTEQUAL 264
|
#define ASSIGN 264
|
||||||
#define PLUS 265
|
#define EQUAL 265
|
||||||
#define END_STMT 266
|
#define NOTEQUAL 266
|
||||||
#define OPEN_PAR 267
|
#define LESSTHAN 267
|
||||||
#define CLOSE_PAR 268
|
#define GREATERTHAN 268
|
||||||
#define BEGIN_CS 269
|
#define PLUS 269
|
||||||
#define END_CS 270
|
#define SUBTRACT 270
|
||||||
#define COMMA 271
|
#define END_STMT 271
|
||||||
#define VARIABLE 272
|
#define OPEN_PAR 272
|
||||||
#define VALUE 273
|
#define CLOSE_PAR 273
|
||||||
#define FUNCTION 274
|
#define BEGIN_CS 274
|
||||||
|
#define END_CS 275
|
||||||
|
#define COMMA 276
|
||||||
|
#define VARIABLE 277
|
||||||
|
#define VALUE 278
|
||||||
|
#define FUNCTION 279
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -12,29 +12,38 @@
|
||||||
8 | assign_expression END_STMT
|
8 | assign_expression END_STMT
|
||||||
9 | IF OPEN_PAR expression CLOSE_PAR statement
|
9 | IF OPEN_PAR expression CLOSE_PAR statement
|
||||||
10 | IF OPEN_PAR expression CLOSE_PAR statement ELSE statement
|
10 | IF OPEN_PAR expression CLOSE_PAR statement ELSE statement
|
||||||
11 | BEGIN_CS statement_list END_CS
|
11 | WHILE OPEN_PAR expression CLOSE_PAR statement
|
||||||
12 | function END_STMT
|
12 | DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT
|
||||||
|
13 | BEGIN_CS statement_list END_CS
|
||||||
|
14 | function END_STMT
|
||||||
|
|
||||||
13 assign_expression : variable ASSIGN value
|
15 assign_expression : variable ASSIGN value
|
||||||
|
|
||||||
14 expression : OPEN_PAR expression CLOSE_PAR
|
16 expression : OPEN_PAR expression CLOSE_PAR
|
||||||
15 | equal_expression
|
17 | equal_expression
|
||||||
16 | notequal_expression
|
18 | notequal_expression
|
||||||
|
19 | lessthan_expression
|
||||||
|
20 | greaterthan_expression
|
||||||
|
|
||||||
17 equal_expression : value EQUAL value
|
21 equal_expression : value EQUAL value
|
||||||
|
|
||||||
18 notequal_expression : value NOTEQUAL value
|
22 notequal_expression : value NOTEQUAL value
|
||||||
|
|
||||||
19 variable : VARIABLE
|
23 lessthan_expression : value LESSTHAN value
|
||||||
|
|
||||||
20 value : VALUE
|
24 greaterthan_expression : value GREATERTHAN value
|
||||||
21 | VARIABLE
|
|
||||||
22 | value PLUS value
|
|
||||||
23 | function
|
|
||||||
|
|
||||||
24 $$1 :
|
25 variable : VARIABLE
|
||||||
|
|
||||||
25 function : FUNCTION OPEN_PAR $$1 CLOSE_PAR
|
26 value : VALUE
|
||||||
|
27 | VARIABLE
|
||||||
|
28 | value PLUS value
|
||||||
|
29 | value SUBTRACT value
|
||||||
|
30 | function
|
||||||
|
|
||||||
|
31 $$1 :
|
||||||
|
|
||||||
|
32 function : FUNCTION OPEN_PAR $$1 CLOSE_PAR
|
||||||
|
|
||||||
|
|
||||||
state 0
|
state 0
|
||||||
|
@ -59,420 +68,649 @@ state 2
|
||||||
|
|
||||||
STOP shift 3
|
STOP shift 3
|
||||||
IF shift 4
|
IF shift 4
|
||||||
PAUSE shift 5
|
WHILE shift 5
|
||||||
PRINT shift 6
|
DO shift 6
|
||||||
END_STMT shift 7
|
PAUSE shift 7
|
||||||
BEGIN_CS shift 8
|
PRINT shift 8
|
||||||
VARIABLE shift 9
|
END_STMT shift 9
|
||||||
FUNCTION shift 10
|
BEGIN_CS shift 10
|
||||||
|
VARIABLE shift 11
|
||||||
|
FUNCTION shift 12
|
||||||
. reduce 1
|
. reduce 1
|
||||||
|
|
||||||
statement goto 11
|
statement goto 13
|
||||||
assign_expression goto 12
|
assign_expression goto 14
|
||||||
variable goto 13
|
variable goto 15
|
||||||
function goto 14
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
state 3
|
state 3
|
||||||
statement : STOP . END_STMT
|
statement : STOP . END_STMT
|
||||||
|
|
||||||
END_STMT shift 15
|
END_STMT shift 17
|
||||||
|
|
||||||
|
|
||||||
state 4
|
state 4
|
||||||
statement : IF . OPEN_PAR expression CLOSE_PAR statement
|
statement : IF . OPEN_PAR expression CLOSE_PAR statement
|
||||||
statement : IF . OPEN_PAR expression CLOSE_PAR statement ELSE statement
|
statement : IF . OPEN_PAR expression CLOSE_PAR statement ELSE statement
|
||||||
|
|
||||||
OPEN_PAR shift 16
|
|
||||||
|
|
||||||
|
|
||||||
state 5
|
|
||||||
statement : PAUSE . END_STMT
|
|
||||||
|
|
||||||
END_STMT shift 17
|
|
||||||
|
|
||||||
|
|
||||||
state 6
|
|
||||||
statement : PRINT . OPEN_PAR value CLOSE_PAR END_STMT
|
|
||||||
|
|
||||||
OPEN_PAR shift 18
|
OPEN_PAR shift 18
|
||||||
|
|
||||||
|
|
||||||
|
state 5
|
||||||
|
statement : WHILE . OPEN_PAR expression CLOSE_PAR statement
|
||||||
|
|
||||||
|
OPEN_PAR shift 19
|
||||||
|
|
||||||
|
|
||||||
|
state 6
|
||||||
|
statement : DO . statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT
|
||||||
|
|
||||||
|
STOP shift 3
|
||||||
|
IF shift 4
|
||||||
|
WHILE shift 5
|
||||||
|
DO shift 6
|
||||||
|
PAUSE shift 7
|
||||||
|
PRINT shift 8
|
||||||
|
END_STMT shift 9
|
||||||
|
BEGIN_CS shift 10
|
||||||
|
VARIABLE shift 11
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
statement goto 20
|
||||||
|
assign_expression goto 14
|
||||||
|
variable goto 15
|
||||||
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
state 7
|
state 7
|
||||||
|
statement : PAUSE . END_STMT
|
||||||
|
|
||||||
|
END_STMT shift 21
|
||||||
|
|
||||||
|
|
||||||
|
state 8
|
||||||
|
statement : PRINT . OPEN_PAR value CLOSE_PAR END_STMT
|
||||||
|
|
||||||
|
OPEN_PAR shift 22
|
||||||
|
|
||||||
|
|
||||||
|
state 9
|
||||||
statement : END_STMT . (4)
|
statement : END_STMT . (4)
|
||||||
|
|
||||||
. reduce 4
|
. reduce 4
|
||||||
|
|
||||||
|
|
||||||
state 8
|
state 10
|
||||||
statement : BEGIN_CS . statement_list END_CS
|
statement : BEGIN_CS . statement_list END_CS
|
||||||
statement_list : . (3)
|
statement_list : . (3)
|
||||||
|
|
||||||
. reduce 3
|
. reduce 3
|
||||||
|
|
||||||
statement_list goto 19
|
statement_list goto 23
|
||||||
|
|
||||||
|
|
||||||
state 9
|
|
||||||
variable : VARIABLE . (19)
|
|
||||||
|
|
||||||
. reduce 19
|
|
||||||
|
|
||||||
|
|
||||||
state 10
|
|
||||||
function : FUNCTION . OPEN_PAR $$1 CLOSE_PAR
|
|
||||||
|
|
||||||
OPEN_PAR shift 20
|
|
||||||
|
|
||||||
|
|
||||||
state 11
|
state 11
|
||||||
|
variable : VARIABLE . (25)
|
||||||
|
|
||||||
|
. reduce 25
|
||||||
|
|
||||||
|
|
||||||
|
state 12
|
||||||
|
function : FUNCTION . OPEN_PAR $$1 CLOSE_PAR
|
||||||
|
|
||||||
|
OPEN_PAR shift 24
|
||||||
|
|
||||||
|
|
||||||
|
state 13
|
||||||
statement_list : statement_list statement . (2)
|
statement_list : statement_list statement . (2)
|
||||||
|
|
||||||
. reduce 2
|
. reduce 2
|
||||||
|
|
||||||
|
|
||||||
state 12
|
state 14
|
||||||
statement : assign_expression . END_STMT
|
statement : assign_expression . END_STMT
|
||||||
|
|
||||||
END_STMT shift 21
|
END_STMT shift 25
|
||||||
|
|
||||||
|
|
||||||
state 13
|
|
||||||
assign_expression : variable . ASSIGN value
|
|
||||||
|
|
||||||
ASSIGN shift 22
|
|
||||||
|
|
||||||
|
|
||||||
state 14
|
|
||||||
statement : function . END_STMT
|
|
||||||
|
|
||||||
END_STMT shift 23
|
|
||||||
|
|
||||||
|
|
||||||
state 15
|
state 15
|
||||||
|
assign_expression : variable . ASSIGN value
|
||||||
|
|
||||||
|
ASSIGN shift 26
|
||||||
|
|
||||||
|
|
||||||
|
state 16
|
||||||
|
statement : function . END_STMT
|
||||||
|
|
||||||
|
END_STMT shift 27
|
||||||
|
|
||||||
|
|
||||||
|
state 17
|
||||||
statement : STOP END_STMT . (5)
|
statement : STOP END_STMT . (5)
|
||||||
|
|
||||||
. reduce 5
|
. reduce 5
|
||||||
|
|
||||||
|
|
||||||
state 16
|
state 18
|
||||||
statement : IF OPEN_PAR . expression CLOSE_PAR statement
|
statement : IF OPEN_PAR . expression CLOSE_PAR statement
|
||||||
statement : IF OPEN_PAR . expression CLOSE_PAR statement ELSE statement
|
statement : IF OPEN_PAR . expression CLOSE_PAR statement ELSE statement
|
||||||
|
|
||||||
OPEN_PAR shift 24
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 25
|
VARIABLE shift 29
|
||||||
VALUE shift 26
|
VALUE shift 30
|
||||||
FUNCTION shift 10
|
FUNCTION shift 12
|
||||||
|
|
||||||
expression goto 27
|
expression goto 31
|
||||||
equal_expression goto 28
|
equal_expression goto 32
|
||||||
notequal_expression goto 29
|
notequal_expression goto 33
|
||||||
value goto 30
|
lessthan_expression goto 34
|
||||||
function goto 31
|
greaterthan_expression goto 35
|
||||||
|
value goto 36
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 17
|
state 19
|
||||||
|
statement : WHILE OPEN_PAR . expression CLOSE_PAR statement
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
expression goto 38
|
||||||
|
equal_expression goto 32
|
||||||
|
notequal_expression goto 33
|
||||||
|
lessthan_expression goto 34
|
||||||
|
greaterthan_expression goto 35
|
||||||
|
value goto 36
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 20
|
||||||
|
statement : DO statement . WHILE OPEN_PAR expression CLOSE_PAR END_STMT
|
||||||
|
|
||||||
|
WHILE shift 39
|
||||||
|
|
||||||
|
|
||||||
|
state 21
|
||||||
statement : PAUSE END_STMT . (6)
|
statement : PAUSE END_STMT . (6)
|
||||||
|
|
||||||
. reduce 6
|
. reduce 6
|
||||||
|
|
||||||
|
|
||||||
state 18
|
state 22
|
||||||
statement : PRINT OPEN_PAR . value CLOSE_PAR END_STMT
|
statement : PRINT OPEN_PAR . value CLOSE_PAR END_STMT
|
||||||
|
|
||||||
VARIABLE shift 25
|
VARIABLE shift 29
|
||||||
VALUE shift 26
|
VALUE shift 30
|
||||||
FUNCTION shift 10
|
FUNCTION shift 12
|
||||||
|
|
||||||
value goto 32
|
value goto 40
|
||||||
function goto 31
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 19
|
state 23
|
||||||
statement_list : statement_list . statement
|
statement_list : statement_list . statement
|
||||||
statement : BEGIN_CS statement_list . END_CS
|
statement : BEGIN_CS statement_list . END_CS
|
||||||
|
|
||||||
STOP shift 3
|
STOP shift 3
|
||||||
IF shift 4
|
IF shift 4
|
||||||
PAUSE shift 5
|
WHILE shift 5
|
||||||
PRINT shift 6
|
DO shift 6
|
||||||
END_STMT shift 7
|
PAUSE shift 7
|
||||||
BEGIN_CS shift 8
|
PRINT shift 8
|
||||||
END_CS shift 33
|
END_STMT shift 9
|
||||||
VARIABLE shift 9
|
BEGIN_CS shift 10
|
||||||
FUNCTION shift 10
|
END_CS shift 41
|
||||||
|
VARIABLE shift 11
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
statement goto 11
|
statement goto 13
|
||||||
assign_expression goto 12
|
assign_expression goto 14
|
||||||
variable goto 13
|
variable goto 15
|
||||||
function goto 14
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
state 20
|
state 24
|
||||||
function : FUNCTION OPEN_PAR . $$1 CLOSE_PAR
|
function : FUNCTION OPEN_PAR . $$1 CLOSE_PAR
|
||||||
$$1 : . (24)
|
$$1 : . (31)
|
||||||
|
|
||||||
. reduce 24
|
. reduce 31
|
||||||
|
|
||||||
$$1 goto 34
|
$$1 goto 42
|
||||||
|
|
||||||
|
|
||||||
state 21
|
state 25
|
||||||
statement : assign_expression END_STMT . (8)
|
statement : assign_expression END_STMT . (8)
|
||||||
|
|
||||||
. reduce 8
|
. reduce 8
|
||||||
|
|
||||||
|
|
||||||
state 22
|
state 26
|
||||||
assign_expression : variable ASSIGN . value
|
assign_expression : variable ASSIGN . value
|
||||||
|
|
||||||
VARIABLE shift 25
|
VARIABLE shift 29
|
||||||
VALUE shift 26
|
VALUE shift 30
|
||||||
FUNCTION shift 10
|
FUNCTION shift 12
|
||||||
|
|
||||||
value goto 35
|
value goto 43
|
||||||
function goto 31
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 23
|
state 27
|
||||||
statement : function END_STMT . (12)
|
statement : function END_STMT . (14)
|
||||||
|
|
||||||
. reduce 12
|
. reduce 14
|
||||||
|
|
||||||
|
|
||||||
state 24
|
state 28
|
||||||
expression : OPEN_PAR . expression CLOSE_PAR
|
expression : OPEN_PAR . expression CLOSE_PAR
|
||||||
|
|
||||||
OPEN_PAR shift 24
|
OPEN_PAR shift 28
|
||||||
VARIABLE shift 25
|
VARIABLE shift 29
|
||||||
VALUE shift 26
|
VALUE shift 30
|
||||||
FUNCTION shift 10
|
FUNCTION shift 12
|
||||||
|
|
||||||
expression goto 36
|
expression goto 44
|
||||||
equal_expression goto 28
|
equal_expression goto 32
|
||||||
notequal_expression goto 29
|
notequal_expression goto 33
|
||||||
value goto 30
|
lessthan_expression goto 34
|
||||||
function goto 31
|
greaterthan_expression goto 35
|
||||||
|
value goto 36
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 25
|
state 29
|
||||||
value : VARIABLE . (21)
|
value : VARIABLE . (27)
|
||||||
|
|
||||||
. reduce 21
|
. reduce 27
|
||||||
|
|
||||||
|
|
||||||
state 26
|
state 30
|
||||||
value : VALUE . (20)
|
value : VALUE . (26)
|
||||||
|
|
||||||
|
. reduce 26
|
||||||
|
|
||||||
|
|
||||||
|
state 31
|
||||||
|
statement : IF OPEN_PAR expression . CLOSE_PAR statement
|
||||||
|
statement : IF OPEN_PAR expression . CLOSE_PAR statement ELSE statement
|
||||||
|
|
||||||
|
CLOSE_PAR shift 45
|
||||||
|
|
||||||
|
|
||||||
|
state 32
|
||||||
|
expression : equal_expression . (17)
|
||||||
|
|
||||||
|
. reduce 17
|
||||||
|
|
||||||
|
|
||||||
|
state 33
|
||||||
|
expression : notequal_expression . (18)
|
||||||
|
|
||||||
|
. reduce 18
|
||||||
|
|
||||||
|
|
||||||
|
state 34
|
||||||
|
expression : lessthan_expression . (19)
|
||||||
|
|
||||||
|
. reduce 19
|
||||||
|
|
||||||
|
|
||||||
|
state 35
|
||||||
|
expression : greaterthan_expression . (20)
|
||||||
|
|
||||||
. reduce 20
|
. reduce 20
|
||||||
|
|
||||||
|
|
||||||
state 27
|
state 36
|
||||||
statement : IF OPEN_PAR expression . CLOSE_PAR statement
|
|
||||||
statement : IF OPEN_PAR expression . CLOSE_PAR statement ELSE statement
|
|
||||||
|
|
||||||
CLOSE_PAR shift 37
|
|
||||||
|
|
||||||
|
|
||||||
state 28
|
|
||||||
expression : equal_expression . (15)
|
|
||||||
|
|
||||||
. reduce 15
|
|
||||||
|
|
||||||
|
|
||||||
state 29
|
|
||||||
expression : notequal_expression . (16)
|
|
||||||
|
|
||||||
. reduce 16
|
|
||||||
|
|
||||||
|
|
||||||
state 30
|
|
||||||
equal_expression : value . EQUAL value
|
equal_expression : value . EQUAL value
|
||||||
notequal_expression : value . NOTEQUAL value
|
notequal_expression : value . NOTEQUAL value
|
||||||
|
lessthan_expression : value . LESSTHAN value
|
||||||
|
greaterthan_expression : value . GREATERTHAN value
|
||||||
value : value . PLUS value
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
EQUAL shift 38
|
EQUAL shift 46
|
||||||
NOTEQUAL shift 39
|
NOTEQUAL shift 47
|
||||||
PLUS shift 40
|
LESSTHAN shift 48
|
||||||
|
GREATERTHAN shift 49
|
||||||
|
PLUS shift 50
|
||||||
state 31
|
SUBTRACT shift 51
|
||||||
value : function . (23)
|
|
||||||
|
|
||||||
. reduce 23
|
|
||||||
|
|
||||||
|
|
||||||
state 32
|
|
||||||
statement : PRINT OPEN_PAR value . CLOSE_PAR END_STMT
|
|
||||||
value : value . PLUS value
|
|
||||||
|
|
||||||
PLUS shift 40
|
|
||||||
CLOSE_PAR shift 41
|
|
||||||
|
|
||||||
|
|
||||||
state 33
|
|
||||||
statement : BEGIN_CS statement_list END_CS . (11)
|
|
||||||
|
|
||||||
. reduce 11
|
|
||||||
|
|
||||||
|
|
||||||
state 34
|
|
||||||
function : FUNCTION OPEN_PAR $$1 . CLOSE_PAR
|
|
||||||
|
|
||||||
CLOSE_PAR shift 42
|
|
||||||
|
|
||||||
|
|
||||||
state 35
|
|
||||||
assign_expression : variable ASSIGN value . (13)
|
|
||||||
value : value . PLUS value
|
|
||||||
|
|
||||||
PLUS shift 40
|
|
||||||
. reduce 13
|
|
||||||
|
|
||||||
|
|
||||||
state 36
|
|
||||||
expression : OPEN_PAR expression . CLOSE_PAR
|
|
||||||
|
|
||||||
CLOSE_PAR shift 43
|
|
||||||
|
|
||||||
|
|
||||||
state 37
|
state 37
|
||||||
|
value : function . (30)
|
||||||
|
|
||||||
|
. reduce 30
|
||||||
|
|
||||||
|
|
||||||
|
state 38
|
||||||
|
statement : WHILE OPEN_PAR expression . CLOSE_PAR statement
|
||||||
|
|
||||||
|
CLOSE_PAR shift 52
|
||||||
|
|
||||||
|
|
||||||
|
state 39
|
||||||
|
statement : DO statement WHILE . OPEN_PAR expression CLOSE_PAR END_STMT
|
||||||
|
|
||||||
|
OPEN_PAR shift 53
|
||||||
|
|
||||||
|
|
||||||
|
state 40
|
||||||
|
statement : PRINT OPEN_PAR value . CLOSE_PAR END_STMT
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
CLOSE_PAR shift 54
|
||||||
|
|
||||||
|
|
||||||
|
state 41
|
||||||
|
statement : BEGIN_CS statement_list END_CS . (13)
|
||||||
|
|
||||||
|
. reduce 13
|
||||||
|
|
||||||
|
|
||||||
|
state 42
|
||||||
|
function : FUNCTION OPEN_PAR $$1 . CLOSE_PAR
|
||||||
|
|
||||||
|
CLOSE_PAR shift 55
|
||||||
|
|
||||||
|
|
||||||
|
state 43
|
||||||
|
assign_expression : variable ASSIGN value . (15)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
. reduce 15
|
||||||
|
|
||||||
|
|
||||||
|
state 44
|
||||||
|
expression : OPEN_PAR expression . CLOSE_PAR
|
||||||
|
|
||||||
|
CLOSE_PAR shift 56
|
||||||
|
|
||||||
|
|
||||||
|
state 45
|
||||||
statement : IF OPEN_PAR expression CLOSE_PAR . statement
|
statement : IF OPEN_PAR expression CLOSE_PAR . statement
|
||||||
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
|
||||||
IF shift 4
|
IF shift 4
|
||||||
PAUSE shift 5
|
WHILE shift 5
|
||||||
PRINT shift 6
|
DO shift 6
|
||||||
END_STMT shift 7
|
PAUSE shift 7
|
||||||
BEGIN_CS shift 8
|
PRINT shift 8
|
||||||
VARIABLE shift 9
|
END_STMT shift 9
|
||||||
FUNCTION shift 10
|
BEGIN_CS shift 10
|
||||||
|
VARIABLE shift 11
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
statement goto 44
|
statement goto 57
|
||||||
assign_expression goto 12
|
assign_expression goto 14
|
||||||
variable goto 13
|
variable goto 15
|
||||||
function goto 14
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
state 38
|
|
||||||
equal_expression : value EQUAL . value
|
|
||||||
|
|
||||||
VARIABLE shift 25
|
|
||||||
VALUE shift 26
|
|
||||||
FUNCTION shift 10
|
|
||||||
|
|
||||||
value goto 45
|
|
||||||
function goto 31
|
|
||||||
|
|
||||||
|
|
||||||
state 39
|
|
||||||
notequal_expression : value NOTEQUAL . value
|
|
||||||
|
|
||||||
VARIABLE shift 25
|
|
||||||
VALUE shift 26
|
|
||||||
FUNCTION shift 10
|
|
||||||
|
|
||||||
value goto 46
|
|
||||||
function goto 31
|
|
||||||
|
|
||||||
|
|
||||||
state 40
|
|
||||||
value : value PLUS . value
|
|
||||||
|
|
||||||
VARIABLE shift 25
|
|
||||||
VALUE shift 26
|
|
||||||
FUNCTION shift 10
|
|
||||||
|
|
||||||
value goto 47
|
|
||||||
function goto 31
|
|
||||||
|
|
||||||
|
|
||||||
state 41
|
|
||||||
statement : PRINT OPEN_PAR value CLOSE_PAR . END_STMT
|
|
||||||
|
|
||||||
END_STMT shift 48
|
|
||||||
|
|
||||||
|
|
||||||
state 42
|
|
||||||
function : FUNCTION OPEN_PAR $$1 CLOSE_PAR . (25)
|
|
||||||
|
|
||||||
. reduce 25
|
|
||||||
|
|
||||||
|
|
||||||
state 43
|
|
||||||
expression : OPEN_PAR expression CLOSE_PAR . (14)
|
|
||||||
|
|
||||||
. reduce 14
|
|
||||||
|
|
||||||
|
|
||||||
44: shift-reduce conflict (shift 49, reduce 9) on ELSE
|
|
||||||
state 44
|
|
||||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . (9)
|
|
||||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . ELSE statement
|
|
||||||
|
|
||||||
ELSE shift 49
|
|
||||||
. reduce 9
|
|
||||||
|
|
||||||
|
|
||||||
state 45
|
|
||||||
equal_expression : value EQUAL value . (17)
|
|
||||||
value : value . PLUS value
|
|
||||||
|
|
||||||
PLUS shift 40
|
|
||||||
. reduce 17
|
|
||||||
|
|
||||||
|
|
||||||
state 46
|
state 46
|
||||||
notequal_expression : value NOTEQUAL value . (18)
|
equal_expression : value EQUAL . value
|
||||||
value : value . PLUS value
|
|
||||||
|
|
||||||
PLUS shift 40
|
VARIABLE shift 29
|
||||||
. reduce 18
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 58
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
47: shift-reduce conflict (shift 40, reduce 22) on PLUS
|
|
||||||
state 47
|
state 47
|
||||||
value : value PLUS value . (22)
|
notequal_expression : value NOTEQUAL . value
|
||||||
value : value . PLUS value
|
|
||||||
|
|
||||||
PLUS shift 40
|
VARIABLE shift 29
|
||||||
. reduce 22
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 59
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
state 48
|
state 48
|
||||||
|
lessthan_expression : value LESSTHAN . value
|
||||||
|
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 60
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 49
|
||||||
|
greaterthan_expression : value GREATERTHAN . value
|
||||||
|
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 61
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 50
|
||||||
|
value : value PLUS . value
|
||||||
|
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 62
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 51
|
||||||
|
value : value SUBTRACT . value
|
||||||
|
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
value goto 63
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 52
|
||||||
|
statement : WHILE OPEN_PAR expression CLOSE_PAR . statement
|
||||||
|
|
||||||
|
STOP shift 3
|
||||||
|
IF shift 4
|
||||||
|
WHILE shift 5
|
||||||
|
DO shift 6
|
||||||
|
PAUSE shift 7
|
||||||
|
PRINT shift 8
|
||||||
|
END_STMT shift 9
|
||||||
|
BEGIN_CS shift 10
|
||||||
|
VARIABLE shift 11
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
statement goto 64
|
||||||
|
assign_expression goto 14
|
||||||
|
variable goto 15
|
||||||
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
|
state 53
|
||||||
|
statement : DO statement WHILE OPEN_PAR . expression CLOSE_PAR END_STMT
|
||||||
|
|
||||||
|
OPEN_PAR shift 28
|
||||||
|
VARIABLE shift 29
|
||||||
|
VALUE shift 30
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
|
expression goto 65
|
||||||
|
equal_expression goto 32
|
||||||
|
notequal_expression goto 33
|
||||||
|
lessthan_expression goto 34
|
||||||
|
greaterthan_expression goto 35
|
||||||
|
value goto 36
|
||||||
|
function goto 37
|
||||||
|
|
||||||
|
|
||||||
|
state 54
|
||||||
|
statement : PRINT OPEN_PAR value CLOSE_PAR . END_STMT
|
||||||
|
|
||||||
|
END_STMT shift 66
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
statement : IF OPEN_PAR expression CLOSE_PAR statement . (9)
|
||||||
|
statement : IF OPEN_PAR expression CLOSE_PAR statement . ELSE statement
|
||||||
|
|
||||||
|
ELSE shift 67
|
||||||
|
. reduce 9
|
||||||
|
|
||||||
|
|
||||||
|
state 58
|
||||||
|
equal_expression : value EQUAL value . (21)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
. reduce 21
|
||||||
|
|
||||||
|
|
||||||
|
state 59
|
||||||
|
notequal_expression : value NOTEQUAL value . (22)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
. reduce 22
|
||||||
|
|
||||||
|
|
||||||
|
state 60
|
||||||
|
lessthan_expression : value LESSTHAN value . (23)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
. reduce 23
|
||||||
|
|
||||||
|
|
||||||
|
state 61
|
||||||
|
greaterthan_expression : value GREATERTHAN value . (24)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
. reduce 24
|
||||||
|
|
||||||
|
|
||||||
|
62: shift-reduce conflict (shift 50, reduce 28) on PLUS
|
||||||
|
62: shift-reduce conflict (shift 51, reduce 28) on SUBTRACT
|
||||||
|
state 62
|
||||||
|
value : value PLUS value . (28)
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
. reduce 28
|
||||||
|
|
||||||
|
|
||||||
|
63: shift-reduce conflict (shift 50, reduce 29) on PLUS
|
||||||
|
63: shift-reduce conflict (shift 51, reduce 29) on SUBTRACT
|
||||||
|
state 63
|
||||||
|
value : value . PLUS value
|
||||||
|
value : value SUBTRACT value . (29)
|
||||||
|
value : value . SUBTRACT value
|
||||||
|
|
||||||
|
PLUS shift 50
|
||||||
|
SUBTRACT shift 51
|
||||||
|
. reduce 29
|
||||||
|
|
||||||
|
|
||||||
|
state 64
|
||||||
|
statement : WHILE OPEN_PAR expression CLOSE_PAR statement . (11)
|
||||||
|
|
||||||
|
. reduce 11
|
||||||
|
|
||||||
|
|
||||||
|
state 65
|
||||||
|
statement : DO statement WHILE OPEN_PAR expression . CLOSE_PAR END_STMT
|
||||||
|
|
||||||
|
CLOSE_PAR shift 68
|
||||||
|
|
||||||
|
|
||||||
|
state 66
|
||||||
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 49
|
state 67
|
||||||
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
|
||||||
IF shift 4
|
IF shift 4
|
||||||
PAUSE shift 5
|
WHILE shift 5
|
||||||
PRINT shift 6
|
DO shift 6
|
||||||
END_STMT shift 7
|
PAUSE shift 7
|
||||||
BEGIN_CS shift 8
|
PRINT shift 8
|
||||||
VARIABLE shift 9
|
END_STMT shift 9
|
||||||
FUNCTION shift 10
|
BEGIN_CS shift 10
|
||||||
|
VARIABLE shift 11
|
||||||
|
FUNCTION shift 12
|
||||||
|
|
||||||
statement goto 50
|
statement goto 69
|
||||||
assign_expression goto 12
|
assign_expression goto 14
|
||||||
variable goto 13
|
variable goto 15
|
||||||
function goto 14
|
function goto 16
|
||||||
|
|
||||||
|
|
||||||
state 50
|
state 68
|
||||||
|
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR . END_STMT
|
||||||
|
|
||||||
|
END_STMT shift 70
|
||||||
|
|
||||||
|
|
||||||
|
state 69
|
||||||
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 44 contains 1 shift-reduce conflict
|
state 70
|
||||||
State 47 contains 1 shift-reduce conflict
|
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT . (12)
|
||||||
|
|
||||||
|
. reduce 12
|
||||||
|
|
||||||
|
|
||||||
19 tokens, 12 nonterminals
|
State 57 contains 1 shift-reduce conflict
|
||||||
26 grammar rules, 51 states
|
State 62 contains 2 shift-reduce conflicts
|
||||||
|
State 63 contains 2 shift-reduce conflicts
|
||||||
|
|
||||||
|
|
||||||
|
24 tokens, 14 nonterminals
|
||||||
|
33 grammar rules, 71 states
|
||||||
|
|
|
@ -66,12 +66,17 @@ private:
|
||||||
%token STOP
|
%token STOP
|
||||||
%token IF
|
%token IF
|
||||||
%token ELSE
|
%token ELSE
|
||||||
|
%token WHILE
|
||||||
|
%token DO
|
||||||
%token PAUSE
|
%token PAUSE
|
||||||
%token PRINT
|
%token PRINT
|
||||||
%token ASSIGN
|
%token ASSIGN
|
||||||
%token EQUAL
|
%token EQUAL
|
||||||
%token NOTEQUAL
|
%token NOTEQUAL
|
||||||
|
%token LESSTHAN
|
||||||
|
%token GREATERTHAN
|
||||||
%token PLUS
|
%token PLUS
|
||||||
|
%token SUBTRACT
|
||||||
%token END_STMT
|
%token END_STMT
|
||||||
%token OPEN_PAR
|
%token OPEN_PAR
|
||||||
%token CLOSE_PAR
|
%token CLOSE_PAR
|
||||||
|
@ -85,7 +90,7 @@ private:
|
||||||
|
|
||||||
%type <treenode> program statement_list statement
|
%type <treenode> program statement_list statement
|
||||||
%type <treenode> assign_expression
|
%type <treenode> assign_expression
|
||||||
%type <treenode> expression equal_expression notequal_expression
|
%type <treenode> expression equal_expression notequal_expression lessthan_expression greaterthan_expression
|
||||||
%type <treenode> variable
|
%type <treenode> variable
|
||||||
%type <treenode> value
|
%type <treenode> value
|
||||||
%type <treenode> function
|
%type <treenode> function
|
||||||
|
@ -115,6 +120,8 @@ statement
|
||||||
|assign_expression END_STMT {$$=$1;}
|
|assign_expression END_STMT {$$=$1;}
|
||||||
|IF OPEN_PAR expression CLOSE_PAR statement {$$=new CTreeNode(IF_STMT,$3,$5);}
|
|IF OPEN_PAR expression CLOSE_PAR statement {$$=new CTreeNode(IF_STMT,$3,$5);}
|
||||||
|IF OPEN_PAR expression CLOSE_PAR statement ELSE statement {$$=new CTreeNode(IFELSE_STMT,$3,$5,$7);}
|
|IF OPEN_PAR expression CLOSE_PAR statement ELSE statement {$$=new CTreeNode(IFELSE_STMT,$3,$5,$7);}
|
||||||
|
|WHILE OPEN_PAR expression CLOSE_PAR statement {$$=new CTreeNode(WHILE_STMT,$3,$5);}
|
||||||
|
|DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT {$$=new CTreeNode(DOWHILE_STMT,$2,$5);}
|
||||||
|BEGIN_CS statement_list END_CS {$$=new CTreeNode(STMT_LIST,$2);}
|
|BEGIN_CS statement_list END_CS {$$=new CTreeNode(STMT_LIST,$2);}
|
||||||
|function END_STMT {$$=new CTreeNode(STMT_LIST,$1,new CTreeNode(POP_STMT));}
|
|function END_STMT {$$=new CTreeNode(STMT_LIST,$1,new CTreeNode(POP_STMT));}
|
||||||
;
|
;
|
||||||
|
@ -129,6 +136,8 @@ expression
|
||||||
:OPEN_PAR expression CLOSE_PAR {$$=$2;}
|
:OPEN_PAR expression CLOSE_PAR {$$=$2;}
|
||||||
|equal_expression {$$=$1;}
|
|equal_expression {$$=$1;}
|
||||||
|notequal_expression {$$=$1;}
|
|notequal_expression {$$=$1;}
|
||||||
|
|lessthan_expression {$$=$1;}
|
||||||
|
|greaterthan_expression {$$=$1;}
|
||||||
;
|
;
|
||||||
|
|
||||||
equal_expression
|
equal_expression
|
||||||
|
@ -139,6 +148,14 @@ notequal_expression
|
||||||
:value NOTEQUAL value {$$=new CTreeNode(NOTEQUAL_EXPR,$1,$3);}
|
:value NOTEQUAL value {$$=new CTreeNode(NOTEQUAL_EXPR,$1,$3);}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
lessthan_expression
|
||||||
|
:value LESSTHAN value {$$=new CTreeNode(LESSTHAN_EXPR,$1,$3);}
|
||||||
|
;
|
||||||
|
|
||||||
|
greaterthan_expression
|
||||||
|
:value GREATERTHAN value {$$=new CTreeNode(GREATERTHAN_EXPR,$1,$3);}
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
variable
|
variable
|
||||||
:VARIABLE {$$=new CTreeNode(VARIABLE_EXPR,$1);} // variable id
|
:VARIABLE {$$=new CTreeNode(VARIABLE_EXPR,$1);} // variable id
|
||||||
|
@ -147,7 +164,10 @@ variable
|
||||||
value
|
value
|
||||||
:VALUE {$$=new CTreeNode(VALUE_EXPR,$1);}
|
:VALUE {$$=new CTreeNode(VALUE_EXPR,$1);}
|
||||||
|VARIABLE {$$=new CTreeNode(VARIABLE_EXPR,$1);} // variable value
|
|VARIABLE {$$=new CTreeNode(VARIABLE_EXPR,$1);} // variable value
|
||||||
|
// |PLUS value {$$=$2;}
|
||||||
|
// |SUBTRACT value {$$=new CTreeNode(STMT_LIST,$1,new CTreeNode(
|
||||||
|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);}
|
||||||
|function {$$=$1;}
|
|function {$$=$1;}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -57,9 +57,16 @@ static int s_numGlobalVarNames=sizeof(s_globalVarNames)/sizeof(char *);
|
||||||
|
|
||||||
static char *s_localVarNames[]=
|
static char *s_localVarNames[]=
|
||||||
{
|
{
|
||||||
|
"tmp0",
|
||||||
"tmp1",
|
"tmp1",
|
||||||
"tmp2",
|
"tmp2",
|
||||||
"tmp3",
|
"tmp3",
|
||||||
|
"tmp4",
|
||||||
|
"tmp5",
|
||||||
|
"tmp6",
|
||||||
|
"tmp7",
|
||||||
|
"tmp8",
|
||||||
|
"tmp9",
|
||||||
};
|
};
|
||||||
static int s_numLocalVarNames=sizeof(s_localVarNames)/sizeof(char *);
|
static int s_numLocalVarNames=sizeof(s_localVarNames)/sizeof(char *);
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,74 @@
|
||||||
#include data/scripts/defs.scr
|
#include data/scripts/defs/defs.scr
|
||||||
|
#include data/scripts/defs/charanim.scr
|
||||||
|
|
||||||
|
|
||||||
//$tmp1=11;
|
//do
|
||||||
//$tmp2=22;
|
//{
|
||||||
//$tmp3=_setCharacterExpression(1,2);
|
// print($tmp1);
|
||||||
//$tmp3=_setCharacterExpression($tmp1,$tmp2);
|
// $tmp1=$tmp1+1;
|
||||||
print($tmp3);
|
// pause;
|
||||||
$tmp3=_setText(123);
|
//}
|
||||||
|
//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 y $tmp2
|
||||||
|
#define vx $tmp3
|
||||||
|
#define vy $tmp4
|
||||||
|
#define velocity 5
|
||||||
|
|
||||||
|
x=100;
|
||||||
|
y=100;
|
||||||
|
vx=velocity;
|
||||||
|
vy=velocity;
|
||||||
|
while(1==1)
|
||||||
|
{
|
||||||
|
_drawSprite(0,x,y,100);
|
||||||
|
|
||||||
|
$tmp0=_getFrameTime();
|
||||||
|
print($tmp0);
|
||||||
|
do
|
||||||
|
{
|
||||||
|
x=x+vx;
|
||||||
|
if(x>512)
|
||||||
|
{
|
||||||
|
vx=0-velocity;
|
||||||
|
x=x-velocity;
|
||||||
|
}
|
||||||
|
else if(x<0)
|
||||||
|
{
|
||||||
|
vx=velocity;
|
||||||
|
x=x+velocity;
|
||||||
|
}
|
||||||
|
|
||||||
|
y=y+vy;
|
||||||
|
if(y>256)
|
||||||
|
{
|
||||||
|
vy=0-velocity;
|
||||||
|
y=y-velocity;
|
||||||
|
}
|
||||||
|
else if(y<0)
|
||||||
|
{
|
||||||
|
vy=velocity;
|
||||||
|
y=y+velocity;
|
||||||
|
}
|
||||||
|
$tmp0=$tmp0-1;
|
||||||
|
}
|
||||||
|
while($tmp0>0);
|
||||||
|
pause;
|
||||||
|
}
|
||||||
stop;
|
stop;
|
|
@ -22,6 +22,10 @@
|
||||||
#include "system\dbg.h"
|
#include "system\dbg.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __SYSTEM_GSTATE_H__
|
||||||
|
#include "system\gstate.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Std Lib
|
/* Std Lib
|
||||||
------- */
|
------- */
|
||||||
|
@ -48,8 +52,10 @@ typedef struct
|
||||||
Function Prototypes
|
Function Prototypes
|
||||||
------------------- */
|
------------------- */
|
||||||
|
|
||||||
static signed short func_setCharacterExpression(unsigned short *_args);
|
static signed short func_setCharacterAnimation(unsigned short *_args);
|
||||||
static signed short func_setText(unsigned short *_args);
|
static signed short func_setText(unsigned short *_args);
|
||||||
|
static signed short func_drawSprite(unsigned short *_args);
|
||||||
|
static signed short func_getFrameTime(unsigned short *_args);
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
@ -58,8 +64,10 @@ static signed short func_setText(unsigned short *_args);
|
||||||
|
|
||||||
static FunctionDef s_functionDefs[]=
|
static FunctionDef s_functionDefs[]=
|
||||||
{
|
{
|
||||||
{ func_setCharacterExpression, 2 }, // character, expression
|
{ func_setCharacterAnimation, 2 }, // character,animation
|
||||||
{ func_setText, 1 }, // textId
|
{ func_setText, 1 }, // textId
|
||||||
|
{ func_drawSprite, 4 }, // frame,x,y,ot
|
||||||
|
{ func_getFrameTime, 0 }, //
|
||||||
};
|
};
|
||||||
static const int s_numFunctionDefs=sizeof(s_functionDefs)/sizeof(FunctionDef);
|
static const int s_numFunctionDefs=sizeof(s_functionDefs)/sizeof(FunctionDef);
|
||||||
|
|
||||||
|
@ -86,10 +94,10 @@ signed short callFunction(int _functionNumber,int _argCount,unsigned short *_arg
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
Params:
|
Params: character,animation
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
static signed short func_setCharacterExpression(unsigned short *_args)
|
static signed short func_setCharacterAnimation(unsigned short *_args)
|
||||||
{
|
{
|
||||||
return _args[0];
|
return _args[0];
|
||||||
}
|
}
|
||||||
|
@ -98,7 +106,7 @@ static signed short func_setCharacterExpression(unsigned short *_args)
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
Params:
|
Params: textid
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
static signed short func_setText(unsigned short *_args)
|
static signed short func_setText(unsigned short *_args)
|
||||||
|
@ -107,5 +115,39 @@ static signed short func_setText(unsigned short *_args)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params: frame,x,y,ot
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
#include "gfx\sprbank.h"
|
||||||
|
SpriteBank *sb=NULL;
|
||||||
|
static signed short func_drawSprite(unsigned short *_args)
|
||||||
|
{
|
||||||
|
sFrameHdr *fh;
|
||||||
|
if(!sb)
|
||||||
|
{
|
||||||
|
sb=new ("sb") SpriteBank;
|
||||||
|
sb->load(UI_UIGFX_SPR);
|
||||||
|
}
|
||||||
|
fh=sb->getFrameHeader(_args[0]);
|
||||||
|
sb->printFT4(_args[0],_args[1]-(fh->W/2),_args[2]-(fh->H/2),0,0,_args[3]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params: textid
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
static signed short func_getFrameTime(unsigned short *_args)
|
||||||
|
{
|
||||||
|
return GameState::getFramesSinceLast();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================
|
/*===========================================================================
|
||||||
end */
|
end */
|
||||||
|
|
|
@ -259,6 +259,24 @@ PAUL_DBGMSG("pc:0x%04d sp:%03d",m_pc*2,m_sp);
|
||||||
push(val1!=val2);
|
push(val1!=val2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OP_IS_LESSTHAN_VALUE: // value, value pushes result ( 0 or 1 ) to stack
|
||||||
|
val1=pop();
|
||||||
|
val2=pop();
|
||||||
|
#ifdef FULL_CODE_OUTPUT
|
||||||
|
PAUL_DBGMSG("OP_IS_LESSTHAN_VALUE %d,%d",val1,val2);
|
||||||
|
#endif
|
||||||
|
push(val1<val2);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OP_IS_GREATERTHAN_VALUE:// value, value pushes result ( 0 or 1 ) to stack
|
||||||
|
val1=pop();
|
||||||
|
val2=pop();
|
||||||
|
#ifdef FULL_CODE_OUTPUT
|
||||||
|
PAUL_DBGMSG("OP_IS_GREATERTHAN_VALUE %d,%d",val1,val2);
|
||||||
|
#endif
|
||||||
|
push(val1>val2);
|
||||||
|
break;
|
||||||
|
|
||||||
case OP_ASSIGN: // varidx, value
|
case OP_ASSIGN: // varidx, value
|
||||||
val1=pop();
|
val1=pop();
|
||||||
val2=pop();
|
val2=pop();
|
||||||
|
@ -277,6 +295,14 @@ PAUL_DBGMSG("pc:0x%04d sp:%03d",m_pc*2,m_sp);
|
||||||
push(val1+val2);
|
push(val1+val2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OP_NEG: // value pushes result to stack
|
||||||
|
val1=pop();
|
||||||
|
#ifdef FULL_CODE_OUTPUT
|
||||||
|
PAUL_DBGMSG("NEG %d",val1);
|
||||||
|
#endif
|
||||||
|
push(-val1);
|
||||||
|
break;
|
||||||
|
|
||||||
case OP_PRINT: // value
|
case OP_PRINT: // value
|
||||||
val1=pop();
|
val1=pop();
|
||||||
PAUL_DBGMSG("PRINT %d",val1);
|
PAUL_DBGMSG("PRINT %d",val1);
|
||||||
|
@ -291,7 +317,7 @@ PAUL_DBGMSG("pc:0x%04d sp:%03d",m_pc*2,m_sp);
|
||||||
ASSERT(val2<MAX_FUNCTION_ARGS); // Too many args.. just increase the #define to fix this
|
ASSERT(val2<MAX_FUNCTION_ARGS); // Too many args.. just increase the #define to fix this
|
||||||
for(i=0;i<val2;i++)
|
for(i=0;i<val2;i++)
|
||||||
{
|
{
|
||||||
s_argBuffer[i]=pop();
|
s_argBuffer[val2-i-1]=pop();
|
||||||
}
|
}
|
||||||
val3=callFunction(val1,val2,s_argBuffer);
|
val3=callFunction(val1,val2,s_argBuffer);
|
||||||
#ifdef FULL_CODE_OUTPUT
|
#ifdef FULL_CODE_OUTPUT
|
||||||
|
|
|
@ -55,9 +55,16 @@ private:
|
||||||
// Local vars
|
// Local vars
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
TMP0,
|
||||||
TMP1,
|
TMP1,
|
||||||
TMP2,
|
TMP2,
|
||||||
TMP3,
|
TMP3,
|
||||||
|
TMP4,
|
||||||
|
TMP5,
|
||||||
|
TMP6,
|
||||||
|
TMP7,
|
||||||
|
TMP8,
|
||||||
|
TMP9,
|
||||||
NUM_LOCAL_VARS,
|
NUM_LOCAL_VARS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -93,8 +100,11 @@ private:
|
||||||
OP_JMPT, // jump, value
|
OP_JMPT, // jump, value
|
||||||
OP_IS_EQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
OP_IS_EQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
||||||
OP_IS_NOTEQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
OP_IS_NOTEQUAL_VALUE, // value, value pushes result ( 0 or 1 ) to stack
|
||||||
|
OP_IS_LESSTHAN_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_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.
|
@ -445,6 +445,14 @@ SOURCE=..\..\..\source\sound\xmplay.h
|
||||||
# PROP Default_Filter ""
|
# PROP Default_Filter ""
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\system\clickcount.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\system\clickcount.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\source\system\dbg.cpp
|
SOURCE=..\..\..\source\system\dbg.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@ -646,13 +654,21 @@ SOURCE=..\..\..\data\translations\text.dat
|
||||||
# End Group
|
# End Group
|
||||||
# Begin Group "scripts"
|
# Begin Group "scripts"
|
||||||
|
|
||||||
|
# PROP Default_Filter ""
|
||||||
|
# Begin Group "defs"
|
||||||
|
|
||||||
# PROP Default_Filter ""
|
# PROP Default_Filter ""
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\data\scripts\defs.scr
|
SOURCE=..\..\..\data\scripts\defs\charanim.scr
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\data\scripts\defs\defs.scr
|
||||||
|
# End Source File
|
||||||
|
# End Group
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\data\scripts\test.scr
|
SOURCE=..\..\..\data\scripts\test.scr
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue