public static NeuOperation Execute( this NeuInterpreter interpreter, NeuBinaryOperator op, NeuOperation lhsResult, NeuOperation rhsResult) { switch (op.OperatorType) { case NeuBinaryOperatorType.Multiply: return(interpreter.Multiply(lhsResult, rhsResult)); /// case NeuBinaryOperatorType.Divide: return(interpreter.Divide(lhsResult, rhsResult)); /// case NeuBinaryOperatorType.Add: return(interpreter.Add(lhsResult, rhsResult)); /// case NeuBinaryOperatorType.Subtract: return(interpreter.Subtract(lhsResult, rhsResult)); /// default: throw new Exception(); } }
public static NeuBinaryExpression ParseBinaryExpression( this NeuParser parser, ISourceLocation start, Node lhs, NeuBinaryOperator op, Node rhs) { return(new NeuBinaryExpression( children: new Node[] { lhs, op, rhs }, start: start, end: parser.Tokenizer.GetLocation())); }
public static int GetPrecedence( this NeuBinaryOperator binaryOp) { switch (binaryOp.OperatorType) { case NeuBinaryOperatorType.Multiply: case NeuBinaryOperatorType.Divide: return(15); case NeuBinaryOperatorType.Add: case NeuBinaryOperatorType.Subtract: return(14); default: return(0); } }