grammarparser.java
来自「SkipOOMiniJOOL教学语言的编译器前端」· Java 代码 · 共 544 行 · 第 1/3 页
JAVA
544 行
/* Symbol object for return from actions */ java_cup.runtime.Symbol CUP$GrammarParser$result; /* select the action based on the action number */ switch (CUP$GrammarParser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 24: // epsilon_with_action_opt ::= EPSILON ACTIONCODE { Epsilon RESULT = null; int codeleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int coderight = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; String code = (String)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = new Epsilon(new Action(code));
CUP$GrammarParser$result = new java_cup.runtime.Symbol(13/*epsilon_with_action_opt*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 23: // epsilon_with_action_opt ::= EPSILON { Epsilon RESULT = null; RESULT = new Epsilon(Action.NONE);
CUP$GrammarParser$result = new java_cup.runtime.Symbol(13/*epsilon_with_action_opt*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 22: // non_terminal_with_action_opt ::= NONTERMINAL ACTIONCODE { NonTerminal RESULT = null; int ntleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).left; int ntright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).right; String nt = (String)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).value; int codeleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int coderight = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; String code = (String)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = new NonTerminal(new SimpleName(nt), new Action(code));
CUP$GrammarParser$result = new java_cup.runtime.Symbol(12/*non_terminal_with_action_opt*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 21: // non_terminal_with_action_opt ::= NONTERMINAL { NonTerminal RESULT = null; int ntleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int ntright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; String nt = (String)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = new NonTerminal(new SimpleName(nt), Action.NONE);
CUP$GrammarParser$result = new java_cup.runtime.Symbol(12/*non_terminal_with_action_opt*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 20: // terminal_with_action_opt ::= TERMINAL ACTIONCODE { Terminal RESULT = null; int tleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).left; int tright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).right; String t = (String)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).value; int codeleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int coderight = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; String code = (String)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = new Terminal(new SimpleName(t), new Action(code));
CUP$GrammarParser$result = new java_cup.runtime.Symbol(11/*terminal_with_action_opt*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 19: // terminal_with_action_opt ::= TERMINAL { Terminal RESULT = null; int tleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int tright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; String t = (String)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = new Terminal(new SimpleName(t), Action.NONE);
CUP$GrammarParser$result = new java_cup.runtime.Symbol(11/*terminal_with_action_opt*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 18: // name_with_action ::= epsilon_with_action_opt { NameWithAction RESULT = null; int epleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int epright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; Epsilon ep = (Epsilon)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = ep;
CUP$GrammarParser$result = new java_cup.runtime.Symbol(10/*name_with_action*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 17: // name_with_action ::= non_terminal_with_action_opt { NameWithAction RESULT = null; int ntleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int ntright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; NonTerminal nt = (NonTerminal)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = nt;
CUP$GrammarParser$result = new java_cup.runtime.Symbol(10/*name_with_action*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 16: // name_with_action ::= terminal_with_action_opt { NameWithAction RESULT = null; int tleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int tright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; Terminal t = (Terminal)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; RESULT = t;
CUP$GrammarParser$result = new java_cup.runtime.Symbol(10/*name_with_action*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 15: // righthand_side ::= righthand_side name_with_action { RightHandSide RESULT = null; int rsleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).left; int rsright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).right; RightHandSide rs = (RightHandSide)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).value; int naleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int naright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; NameWithAction na = (NameWithAction)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; rs.getTermsAndNonTerms().add(na);
RESULT = rs;
CUP$GrammarParser$result = new java_cup.runtime.Symbol(9/*righthand_side*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 14: // righthand_side ::= name_with_action { RightHandSide RESULT = null; int naleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int naright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; NameWithAction na = (NameWithAction)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; List l = new ArrayList();
l.add(na);
RESULT = new RightHandSide(l);
CUP$GrammarParser$result = new java_cup.runtime.Symbol(9/*righthand_side*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 13: // righthand_sides ::= righthand_sides OR righthand_side { List RESULT = null; int rssleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-2)).left; int rssright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-2)).right; List rss = (List)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-2)).value; int rsleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int rsright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; RightHandSide rs = (RightHandSide)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value; rss.add(rs);
RESULT = rss;
CUP$GrammarParser$result = new java_cup.runtime.Symbol(8/*righthand_sides*/, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right, RESULT); } return CUP$GrammarParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 12: // righthand_sides ::= righthand_side { List RESULT = null; int rsleft = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).left; int rsright = ((java_cup.runtime.Symbol)CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).right; RightHandSide rs = (RightHandSide)((java_cup.runtime.Symbol) CUP$GrammarParser$stack.elementAt(CUP$GrammarParser$top-0)).value;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?