示例#1
0
 public MulOp(LatteParser.EMulOpContext context) :
     base(context.expr()[0], context.expr()[1])
 {
     Mul = context.mulOp() switch
     {
         LatteParser.MultiplyContext _ => Mul.Multiply,
                                     LatteParser.DivideContext _ => Mul.Divide,
                                     LatteParser.ModuloContext _ => Mul.Modulo
     };
 }
示例#2
0
        public override LatteParser.TypeContext VisitEMulOp(LatteParser.EMulOpContext context)
        {
            var lhs = Visit(context.expr()[0]);
            var rhs = Visit(context.expr()[1]);

            if (!lhs.Equals(rhs) || !lhs.Equals(new LatteParser.TIntContext()))
            {
                Utils.StateUtils.InterruptWithMessage(context.start.Line, ErrorMessages.MulOpToNotInt);
            }

            return(new LatteParser.TIntContext());
        }