Пример #1
0
        public override object VisitIteratorStatement(IteratorStatementContext context)
        {
            var it = (new Iterator());

            if (context.Dot_Dot_Dot() != null || context.Dot_Dot_Greater() != null)
            {
                it.order = F;
            }
            if (context.Dot_Dot_Less() != null || context.Dot_Dot_Greater() != null)
            {
                it.close = F;
            }
            if (context.expression().Length == 2)
            {
                it.begin = (Result)(Visit(context.expression(0)));
                it.end   = (Result)(Visit(context.expression(1)));
                it.step  = (new Result()
                {
                    data = I32, text = "1"
                });
            }
            else
            {
                it.begin = (Result)(Visit(context.expression(0)));
                it.end   = (Result)(Visit(context.expression(2)));
                it.step  = (Result)(Visit(context.expression(1)));
            }
            return(it);
        }
Пример #2
0
        public override object VisitIteratorStatement([NotNull] IteratorStatementContext context)
        {
            var it = new Iterator();
            var i  = context.expression();

            it.op = context.op.Text;
            if (context.expression().Length == 2)
            {
                it.from = (Result)Visit(context.expression(0));
                it.to   = (Result)Visit(context.expression(1));
                it.step = new Result {
                    data = i32, text = "1"
                };
            }
            else
            {
                it.from = (Result)Visit(context.expression(0));
                it.to   = (Result)Visit(context.expression(1));
                it.step = (Result)Visit(context.expression(2));
            }
            return(it);
        }