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

📄 exprparser.java

📁 SkipOOMiniJOOL教学语言的编译器前端
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			file = argv[0];		boolean viewAST = true;		ASTNode block;		block = ExprParser.parse(file);		if (viewAST) {			ASTViewer viewer = new ASTViewer();			viewer.viewAST(block);		}		//added by me		//ASTNode c=p.parse(args[0]);//return the root of an ast tree/*		PrintStream outfile = null;		try {			outfile = new PrintStream(new FileOutputStream(file+".s"));		} catch(IOException e) {			System.out.println(e);			System.exit(1);		}		try{				CodeGenerator CGen=new CodeGenerator(outfile);		(block).accept(CGen);//accept				CGen.emitCode();//emit code 		System.out.println("Code successfully generated");		}		catch(Exception e) {			System.out.println("There may be some semantic errors  in the foreend");			//System.exit(1);		}				*/			/*	CodeGenerator CGen=new CodeGenerator(outfile);		(block).accept(CGen);//accept				CGen.emitCode();//emit code 		System.out.println("Code successfully generated");*/	}		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$ExprParser$actions {

	private boolean success = true;		private AST ast = AST.newAST(AST.JLS3);	private CompilationUnit root = null;		public ASTNode getAST() {		if (success) {			System.out.println("陶涛 pb03011062");			return root;		}		return null;	}	
  private final ExprParser parser;

  /** Constructor */
  CUP$ExprParser$actions(ExprParser parser) {
    this.parser = parser;
  }

  /** Method with the actual generated action code. */
  public final java_cup.runtime.Symbol CUP$ExprParser$do_action(
    int                        CUP$ExprParser$act_num,
    java_cup.runtime.lr_parser CUP$ExprParser$parser,
    java.util.Stack            CUP$ExprParser$stack,
    int                        CUP$ExprParser$top)
    throws java.lang.Exception
    {
      /* Symbol object for return from actions */
      java_cup.runtime.Symbol CUP$ExprParser$result;

      /* select the action based on the action number */
      switch (CUP$ExprParser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // primitive_type ::= VOID 
            {
              PrimitiveType RESULT = null;
				RESULT =ast.newPrimitiveType(PrimitiveType.VOID);	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(56/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // primitive_type ::= BOOLEAN 
            {
              PrimitiveType RESULT = null;
				RESULT = ast.newPrimitiveType(PrimitiveType.BOOLEAN);	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(56/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // primitive_type ::= INT 
            {
              PrimitiveType RESULT = null;
				RESULT = ast.newPrimitiveType(PrimitiveType.INT);	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(56/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // type ::= INT LBRACK INTEGER_LITERAL RBRACK 
            {
              Type RESULT = null;
		int illeft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).left;		int ilright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).right;		Integer il = (Integer)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).value;				 ArrayType aa= ast.newArrayType(ast.newPrimitiveType(PrimitiveType.INT));		 aa.setProperty("ArrayLength",il);		 RESULT = aa;	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(55/*type*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // type ::= STRING 
            {
              Type RESULT = null;
				RESULT = ast.newSimpleType(ast.newSimpleName("String"));	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(55/*type*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // type ::= primitive_type 
            {
              Type RESULT = null;
		int ptleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left;		int ptright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right;		PrimitiveType pt = (PrimitiveType)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).value;				RESULT = pt;	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(55/*type*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // argument_list ::= argument_list COMMA expression 
            {
              List RESULT = null;
		int myalleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).left;		int myalright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).right;		List myal = (List)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).value;		int myeleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left;		int myeright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right;		Expression mye = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).value;				myal.add(mye);		RESULT = myal;	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(54/*argument_list*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // argument_list ::= expression 
            {
              List RESULT = null;
		int myexpleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left;		int myexpright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right;		Expression myexp = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).value;				RESULT =new ArrayList();		RESULT.add(myexp);			
              CUP$ExprParser$result = new java_cup.runtime.Symbol(54/*argument_list*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // argument_list_opt ::= argument_list 
            {
              List RESULT = null;
		int myalleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left;		int myalright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right;		List myal = (List)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).value;				RESULT = myal;	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(53/*argument_list_opt*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // argument_list_opt ::= 
            {
              List RESULT = null;
				RESULT = new ArrayList();	
              CUP$ExprParser$result = new java_cup.runtime.Symbol(53/*argument_list_opt*/, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-0)).right, RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // return_statement ::= RETURN expression_opt SEMICOLON 
            {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -