⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mjparser.java

📁 SkipOOMiniJOOL教学语言的编译器前端
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		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 + -