public int Visit(DivideOpNode caller) { int left = caller.LeftSon.Accept(this); int right = caller.RightSon.Accept(this); return(left / right); }
public double Visit(DivideOpNode caller) { double left = caller.LeftSon.Accept(this); double right = caller.RightSon.Accept(this); return(left / right); }
private Node Term() { // factor ((MUL^|DIV^|MOD^) factor)* Node factorExpression = Factor(); while (LookAhead(1) == TokenType.MULTIPLY || LookAhead(1) == TokenType.DIVIDE || LookAhead(1) == TokenType.MOD) { if (LookAhead(1) == TokenType.MULTIPLY) { factorExpression = new MultiplyOpNode( Match(TokenType.MULTIPLY).Position, factorExpression, Factor()); } else if (LookAhead(1) == TokenType.DIVIDE) { factorExpression = new DivideOpNode( Match(TokenType.DIVIDE).Position, factorExpression, Factor()); } else if (LookAhead(1) == TokenType.MOD) { factorExpression = new ModOpNode( Match(TokenType.MOD).Position, factorExpression, Factor()); } } return(factorExpression); }