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

📄 exprparser.java.svn-base

📁 实现的一个简单的语言编译器,可以编译类JAVA 的小语言
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
		int idleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int idright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		String id = (String)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				RESULT = ast.newSimpleName(id);	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("factor",7, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // term ::= term DIV factor 
            {
              Expression RESULT =null;
		int tleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).left;		int tright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).right;		Expression t = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).value;		int fleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int fright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		Expression f = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				InfixExpression ie = ast.newInfixExpression();		ie.setLeftOperand(t);		ie.setOperator(InfixExpression.Operator.DIVIDE);		ie.setRightOperand(f);		RESULT = ie;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("term",6, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // term ::= term MULT factor 
            {
              Expression RESULT =null;
		int tleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).left;		int tright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).right;		Expression t = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).value;		int fleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int fright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		Expression f = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				InfixExpression ie = ast.newInfixExpression();		ie.setLeftOperand(t);		ie.setOperator(InfixExpression.Operator.TIMES);		ie.setRightOperand(f);		RESULT = ie;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("term",6, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // term ::= factor 
            {
              Expression RESULT =null;
		int fleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int fright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		Expression f = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				RESULT = f;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("term",6, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // expression ::= expression MINUS term 
            {
              Expression RESULT =null;
		int eleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).left;		int eright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).right;		Expression e = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).value;		int tleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int tright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		Expression t = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				InfixExpression ie = ast.newInfixExpression();		ie.setLeftOperand(e);		ie.setOperator(InfixExpression.Operator.MINUS);		ie.setRightOperand(t);		RESULT = ie;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("expression",5, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // expression ::= expression PLUS term 
            {
              Expression RESULT =null;
		int eleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).left;		int eright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).right;		Expression e = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).value;		int tleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int tright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		Expression t = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				InfixExpression ie = ast.newInfixExpression();		ie.setLeftOperand(e);		ie.setOperator(InfixExpression.Operator.PLUS);		ie.setRightOperand(t);		RESULT = ie;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("expression",5, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // expression ::= term 
            {
              Expression RESULT =null;
		int tleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int tright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		Expression t = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				RESULT = t;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("expression",5, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // assignment ::= IDENTIFIER EQ expression 
            {
              Assignment RESULT =null;
		int idleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).left;		int idright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).right;		String id = (String)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)).value;		int rleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int rright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		Expression r = (Expression)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				RESULT = ast.newAssignment();		RESULT.setLeftHandSide(ast.newSimpleName(id));		RESULT.setOperator(Assignment.Operator.ASSIGN);		RESULT.setRightHandSide(r);	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("assignment",4, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-2)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // statement ::= assignment SEMICOLON 
            {
              ExpressionStatement RESULT =null;
		int asleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).left;		int asright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).right;		Assignment as = (Assignment)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).value;			RESULT = ast.newExpressionStatement(as);	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("statement",3, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // statements ::= statements statement 
            {
              List RESULT =null;
		int sleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).left;		int sright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).right;		List s = (List)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).value;		int asleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int asright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		ExpressionStatement as = (ExpressionStatement)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;			s.add(as);		RESULT = s;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("statements",2, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // statements ::= statement 
            {
              List RESULT =null;
		int asleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int asright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		ExpressionStatement as = (ExpressionStatement)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;			RESULT = new LinkedList();		RESULT.add(as);	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("statements",2, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // sequence ::= statements 
            {
              List RESULT =null;
		int bsleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int bsright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		List bs = (List)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;			RESULT = bs;	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("sequence",1, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // sequence ::= 
            {
              List RESULT =null;
			RESULT = new LinkedList();	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("sequence",1, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // goal ::= sequence 
            {
              Object RESULT =null;
		int seqleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).left;		int seqright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()).right;		List seq = (List)((java_cup.runtime.Symbol) CUP$ExprParser$stack.peek()).value;				root = ast.newBlock();		((Block)root).statements().addAll(seq);	
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("goal",0, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          return CUP$ExprParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // $START ::= goal EOF 
            {
              Object RESULT =null;
		int start_valleft = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).left;		int start_valright = ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).right;		Object start_val = (Object)((java_cup.runtime.Symbol) CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)).value;		RESULT = start_val;
              CUP$ExprParser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$ExprParser$stack.elementAt(CUP$ExprParser$top-1)), ((java_cup.runtime.Symbol)CUP$ExprParser$stack.peek()), RESULT);
            }
          /* ACCEPT */
          CUP$ExprParser$parser.done_parsing();
          return CUP$ExprParser$result;

          /* . . . . . .*/
          default:
            throw new Exception(
               "Invalid action number found in internal parse table");

        }
    }
}

⌨️ 快捷键说明

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