public void VisitValueBindingForStatement(ValueBindingForStatement valueBindingForStmt)
        {
            int tmp_counter = scope_counter;
            DecendScope();
            scope_counter = 0;

            valueBindingForStmt.Variables.AcceptWalker(this);
            valueBindingForStmt.Body.AcceptWalker(this);

            AscendScope();
            scope_counter = tmp_counter + 1;
        }
        public void VisitValueBindingForStatement(ValueBindingForStatement valueBindingForStmt)
        {
            // Walk the expression
            valueBindingForStmt.Variables.FirstOrNullObject().NameToken.AcceptWalker(this);

            BitArray opte = new BitArray(bits);
            BitArray exit = new BitArray(bits.Length, true);
            PushLoop(exit);

            valueBindingForStmt.Variables.FirstOrNullObject().Initializer.AcceptWalker(this);

            // Walk the body
            valueBindingForStmt.Body.AcceptWalker(this);

            PopLoop();

            bits.And(exit);

            // Intersect
            bits.And(opte);
        }