📄 calcparser.java
字号:
{
map.put ( variable, i );
return i;
}
private final CalcParser parser;
/** Constructor */
CUP$CalcParser$actions(CalcParser parser) {
this.parser = parser;
}
/** Method with the actual generated action code. */
public final java_cup.runtime.Symbol CUP$CalcParser$do_action(
int CUP$CalcParser$act_num,
java_cup.runtime.lr_parser CUP$CalcParser$parser,
java.util.Stack CUP$CalcParser$stack,
int CUP$CalcParser$top)
throws java.lang.Exception
{
/* Symbol object for return from actions */
java_cup.runtime.Symbol CUP$CalcParser$result;
/* select the action based on the action number */
switch (CUP$CalcParser$act_num)
{
/*. . . . . . . . . . . . . . . . . . . .*/
case 20: // expression ::= LPAREN assignment RPAREN
{
Integer RESULT = null;
int a0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left;
int a0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).right;
Integer a0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).value;
RESULT = a0;
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 19: // expression ::= LPAREN expression RPAREN
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).value;
RESULT = e0;
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 18: // expression ::= INTEGER
{
Integer RESULT = null;
int i0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int i0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer i0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = i0;
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 17: // expression ::= VARIABLE
{
Integer RESULT = null;
int v0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int v0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
String v0 = (String)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressVariable ( v0 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 16: // expression ::= MINUS expression
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressNegate ( e0 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 15: // expression ::= expression MOD expression
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).value;
int e1left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e1right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e1 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressModulus ( e0, e1 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 14: // expression ::= expression EXP expression
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).value;
int e1left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e1right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e1 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressExponent ( e0, e1 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 13: // expression ::= expression DIVIDE expression
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).value;
int e1left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e1right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e1 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressDivide ( e0, e1 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 12: // expression ::= expression TIMES expression
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).value;
int e1left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e1right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e1 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressTimes ( e0, e1 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 11: // expression ::= expression MINUS expression
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).value;
int e1left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e1right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e1 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressMinus ( e0, e1 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 10: // expression ::= expression PLUS expression
{
Integer RESULT = null;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).value;
int e1left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e1right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e1 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actExpressPlus ( e0, e1 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(6/*expression*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 9: // assignment ::= VARIABLE ASSIGN expression
{
Integer RESULT = null;
int v0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left;
int v0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).right;
String v0 = (String)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).value;
int e0left = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left;
int e0right = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right;
Integer e0 = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).value;
RESULT = actAssignment ( v0, e0 );
CUP$CalcParser$result = new java_cup.runtime.Symbol(5/*assignment*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 8: // write ::= WRITE LPAREN assignment RPAREN
{
Object RESULT = null;
int aleft = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left;
int aright = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).right;
Integer a = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).value;
actWrite ( a );
CUP$CalcParser$result = new java_cup.runtime.Symbol(4/*write*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 7: // write ::= WRITE LPAREN expression RPAREN
{
Object RESULT = null;
int eleft = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left;
int eright = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).right;
Integer e = (Integer)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).value;
actWrite ( e );
CUP$CalcParser$result = new java_cup.runtime.Symbol(4/*write*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 6: // statement ::= error
{
Object RESULT = null;
System.out.println ( "syntax error" );
CUP$CalcParser$result = new java_cup.runtime.Symbol(3/*statement*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 5: // statement ::= write
{
Object RESULT = null;
CUP$CalcParser$result = new java_cup.runtime.Symbol(3/*statement*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 4: // statement ::= assignment
{
Object RESULT = null;
CUP$CalcParser$result = new java_cup.runtime.Symbol(3/*statement*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 3: // statementList ::= statement SEMICOLON
{
Object RESULT = null;
CUP$CalcParser$result = new java_cup.runtime.Symbol(2/*statementList*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 2: // statementList ::= statement SEMICOLON statementList
{
Object RESULT = null;
CUP$CalcParser$result = new java_cup.runtime.Symbol(2/*statementList*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 1: // program ::= statementList
{
Object RESULT = null;
CUP$CalcParser$result = new java_cup.runtime.Symbol(1/*program*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
return CUP$CalcParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 0: // $START ::= program EOF
{
Object RESULT = null;
int start_valleft = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left;
int start_valright = ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).right;
Object start_val = (Object)((java_cup.runtime.Symbol) CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).value;
RESULT = start_val;
CUP$CalcParser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$CalcParser$stack.elementAt(CUP$CalcParser$top-0)).right, RESULT);
}
/* ACCEPT */
CUP$CalcParser$parser.done_parsing();
return CUP$CalcParser$result;
/* . . . . . .*/
default:
throw new Exception(
"Invalid action number found in internal parse table");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -