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

📄 expreparser.java.svn-base

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

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

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

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

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

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

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

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

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

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // assignment ::= error EQ expression 
            {
              Assignment RESULT =null;
		int eqleft = ((java_cup.runtime.Symbol)CUP$ExprEParser$stack.elementAt(CUP$ExprEParser$top-1)).left;		int eqright = ((java_cup.runtime.Symbol)CUP$ExprEParser$stack.elementAt(CUP$ExprEParser$top-1)).right;		Object eq = (Object)((java_cup.runtime.Symbol) CUP$ExprEParser$stack.elementAt(CUP$ExprEParser$top-1)).value;		int rleft = ((java_cup.runtime.Symbol)CUP$ExprEParser$stack.peek()).left;		int rright = ((java_cup.runtime.Symbol)CUP$ExprEParser$stack.peek()).right;		Expression r = (Expression)((java_cup.runtime.Symbol) CUP$ExprEParser$stack.peek()).value;		        addError(ExprError.LvalNotIDErr,                 "Illegal left operand. Expect an identifier.",                 eqleft, eqright);                    RESULT = ast.newAssignment();        RESULT.setLeftHandSide(ast.newSimpleName(new String("error")));        RESULT.setOperator(Assignment.Operator.ASSIGN);        RESULT.setRightHandSide(r);    
              CUP$ExprEParser$result = parser.getSymbolFactory().newSymbol("assignment",4, ((java_cup.runtime.Symbol)CUP$ExprEParser$stack.elementAt(CUP$ExprEParser$top-2)), ((java_cup.runtime.Symbol)CUP$ExprEParser$stack.peek()), RESULT);
            }
          return CUP$ExprEParser$result;

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

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

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

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

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

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

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

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

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

        }
    }
}

⌨️ 快捷键说明

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