📄 mjparser.java
字号:
block = MJParser.parse(file); if (viewAST) { ASTViewer viewer = new ASTViewer(); viewer.viewAST(block); } } public void report_fatal_error(String s,Object o) { System.out.println("fatal error ,I don't know handle this problem ,sorry ..."); } public void report_error(String s,Object o){ System.out.println("error ,I don't know handle this problem ,sorry ..."); } public void syntax_error(Symbol s){ System.out.println("Syntax error ,I don't know handle this problem ,sorry ..."); } public void unrecovered_syntax_error(Symbol s){ System.out.println("unrecovered syntax error ,I don't know handle this problem ,sorry ..."); } }/** Cup generated class to encapsulate user supplied action code.*/class CUP$MJParser$actions { private boolean success = true; private AST ast = AST.newAST(AST.JLS3); private CompilationUnit root = null; public ASTNode getAST() { if (success) { return root; } return null; } private final MJParser parser; /** Constructor */ CUP$MJParser$actions(MJParser parser) { this.parser = parser; } /** Method with the actual generated action code. */ public final java_cup.runtime.Symbol CUP$MJParser$do_action( int CUP$MJParser$act_num, java_cup.runtime.lr_parser CUP$MJParser$parser, java.util.Stack CUP$MJParser$stack, int CUP$MJParser$top) throws java.lang.Exception { /* Symbol object for return from actions */ java_cup.runtime.Symbol CUP$MJParser$result; /* select the action based on the action number */ switch (CUP$MJParser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 130: // primitive_type ::= VOID { PrimitiveType RESULT = null; RESULT =ast.newPrimitiveType(PrimitiveType.VOID); CUP$MJParser$result = new java_cup.runtime.Symbol(56/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 129: // primitive_type ::= BOOLEAN { PrimitiveType RESULT = null; RESULT = ast.newPrimitiveType(PrimitiveType.BOOLEAN); CUP$MJParser$result = new java_cup.runtime.Symbol(56/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 128: // primitive_type ::= INT { PrimitiveType RESULT = null; RESULT = ast.newPrimitiveType(PrimitiveType.INT); CUP$MJParser$result = new java_cup.runtime.Symbol(56/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 127: // type ::= INT LBRACK INTEGER_LITERAL RBRACK { Type RESULT = null; int illeft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).left; int ilright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).right; Integer il = (Integer)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).value; ArrayType aa= ast.newArrayType(ast.newPrimitiveType(PrimitiveType.INT)); aa.setProperty("length",il); RESULT = aa; CUP$MJParser$result = new java_cup.runtime.Symbol(55/*type*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 126: // type ::= STRING { Type RESULT = null; RESULT = ast.newSimpleType(ast.newSimpleName("String")); CUP$MJParser$result = new java_cup.runtime.Symbol(55/*type*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 125: // type ::= primitive_type { Type RESULT = null; int ptleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left; int ptright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right; PrimitiveType pt = (PrimitiveType)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).value; RESULT = pt; CUP$MJParser$result = new java_cup.runtime.Symbol(55/*type*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 124: // argument_list ::= argument_list COMMA expression { List RESULT = null; int myalleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-2)).left; int myalright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-2)).right; List myal = (List)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-2)).value; int myeleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left; int myeright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right; Expression mye = (Expression)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).value; myal.add(mye); RESULT = myal; CUP$MJParser$result = new java_cup.runtime.Symbol(54/*argument_list*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 123: // argument_list ::= expression { List RESULT = null; int myexpleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left; int myexpright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right; Expression myexp = (Expression)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).value; RESULT =new ArrayList(); RESULT.add(myexp); CUP$MJParser$result = new java_cup.runtime.Symbol(54/*argument_list*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 122: // argument_list_opt ::= argument_list { List RESULT = null; int myalleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left; int myalright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right; List myal = (List)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).value; RESULT = myal; CUP$MJParser$result = new java_cup.runtime.Symbol(53/*argument_list_opt*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 121: // argument_list_opt ::= { List RESULT = null; RESULT = new ArrayList(); CUP$MJParser$result = new java_cup.runtime.Symbol(53/*argument_list_opt*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 120: // return_statement ::= RETURN expression_opt SEMICOLON { ReturnStatement RESULT = null; int eoleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).left; int eoright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).right; Expression eo = (Expression)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).value; RESULT = ast.newReturnStatement(); RESULT.setExpression(eo); CUP$MJParser$result = new java_cup.runtime.Symbol(52/*return_statement*/, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right, RESULT); } return CUP$MJParser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 119: // local_variable_declaration ::= type variable_declarators { VariableDeclarationStatement RESULT = null; int tleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).left; int tright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).right; Type t = (Type)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-1)).value; int vdleft = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).left; int vdright = ((java_cup.runtime.Symbol)CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).right; List vd = (List)((java_cup.runtime.Symbol) CUP$MJParser$stack.elementAt(CUP$MJParser$top-0)).value; VariableDeclarationFragment vdf=ast.newVariableDeclarationFragment(); vdf.setName((SimpleName)(vd.get(0))); RESULT = ast.newVariableDeclarationStatement(vdf);//(VariableDeclarationFragment)vd.get(0) RESULT.setType(t); for(int i=1;i<vd.size();i++){ VariableDeclarationFragment vdftmp=ast.newVariableDeclarationFragment(); vdftmp.setName((SimpleName)vd.get(i));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -