Beispiel #1
0
        public void Resolve(VBAParser.ForNextStmtContext context)
        {
            var expressions = context.expression();

            // In "For expr1 = expr2" the "expr1 = expr2" part is treated as a single expression.
            var assignmentExpr = ((VBAParser.RelationalOpContext)expressions[0]);

            ResolveStartValueAssignmentOfForNext(assignmentExpr);

            ResolveToValueOfForNext(expressions[1]);

            var stepStatement = context.stepStmt();

            if (stepStatement != null)
            {
                Resolve(stepStatement);
            }

            const int firstNextExpressionIndex = 2;

            for (var exprIndex = firstNextExpressionIndex; exprIndex < expressions.Length; exprIndex++)
            {
                ResolveDefault(expressions[exprIndex]);
            }
        }
            public override void EnterForNextStmt([NotNull] VBAParser.ForNextStmtContext context)
            {
                var stepStatement = context.stepStmt();

                if (stepStatement == null)
                {
                    return;
                }

                var stepText = stepStatement.expression().GetText();

                if (stepText == "1")
                {
                    SaveContext(stepStatement);
                }
            }