Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }