private TinyValue Divide(TinyUnityParser.MultExpressionContext context) { TinyValue lhs = this.Visit(context.expression(0)); TinyValue rhs = this.Visit(context.expression(1)); if (lhs == null || rhs == null) { throw new EvalException("unknown operator type: " + context.op.Type, context); } if (lhs.value is float && rhs.value is float) { return(new TinyValue((float)lhs.value / (float)rhs.value)); } throw new EvalException(context); }
public override TinyValue VisitMultExpression([NotNull] TinyUnityParser.MultExpressionContext context) { switch (context.op.Type) { case TinyUnityLexer.Multiply: return(Multiply(context)); case TinyUnityLexer.Divide: return(Divide(context)); case TinyUnityLexer.Modulus: return(Modulus(context)); default: throw new EvalException("unknown operator type: " + context.op.Type, context); } }