Exemple #1
0
        private VarStatement ParseVarStatement()
        {
            VarStatement ret = NewNode <VarStatement>();

            do
            {
                NextToken();
                ExpectToken(TokenType.IDENTIFIER);
                string str = StrVal;
                NextToken();
                if (Token == TokenType.ASSIGN)
                {
                    NextToken();
                    ExpressionNode val = ParseExpression(1);
                    ret.Vars.Add(new DataPair <string, ExpressionNode> {
                        Value = val, Key = str
                    });
                }
                else
                {
                    ret.Vars.Add(new DataPair <string, ExpressionNode> {
                        Key = str
                    });
                }
            } while (Token == TokenType.COMMA);
            ExpectToken(TokenType.SEMICOLON);
            NextToken();
            return(ret);
        }
Exemple #2
0
 void ITreeWalker.Visit(VarStatement statement)
 {
     _declaring = true;
     statement.Validate(this);
     statement.Assignment.Accept(this);
     _declaring = false;
 }
Exemple #3
0
        public AstNode HoistVariables(VarStatement stmnt)
        {
            Block ret = new InlineBlock();

            foreach (DataPair <string, ExpressionNode> Var in stmnt.Vars)
            {
                Variable ScopeVar = FunctionScope.Define(Var.Key);
                if (ScopeVar == null)
                {
                    stmnt.Error("Double declaration of variable");
                }
                if (Var.Value != null)
                {
                    ret.Statements.Add(new ExpressionStatement
                    {
                        Expression = new AssignmentExpression
                        {
                            Token = TokenType.ASSIGN,
                            Left  = new VariableExpression
                            {
                                Value = Var.Key
                            },
                            Right = Var.Value
                        }
                    });
                }
            }
            return(ret);
        }
Exemple #4
0
        public string VisitVarStatement(VarStatement statement)
        {
            if (statement.Initializer == null)
            {
                return(Parenthesize2("var", statement.Name));
            }

            return(Parenthesize2("var", statement.Name, "=", statement.Initializer));
        }
Exemple #5
0
        public Unit VisitVarStatement(VarStatement statement)
        {
            Declare(statement.Token);

            if (statement.Initializer != null)
            {
                Resolve(statement.Initializer);
            }

            Define(statement.Token);
            return(Unit.Value);
        }
Exemple #6
0
        /// <summary>
        /// Visits a var statement - accepts the assignment.
        /// </summary>
        public override void Visit(VarStatement statement)
        {
            var assignment = statement.Assignment as AssignmentExpression;

            if (assignment != null)
            {
                var c         = _variables.Count - 1;
                var variables = _variables[c];
                var variable  = assignment.VariableName;

                if (variable != null && !variables.Contains(variable))
                {
                    variables.Add(variable);
                }
            }

            if (Within(statement))
            {
                base.Visit(statement);
            }
        }
Exemple #7
0
 // VarStatement
 public override bool Walk(VarStatement node)
 {
     return false;
 }
Exemple #8
0
 public override void PostWalk(VarStatement node)
 {
 }
Exemple #9
0
 public virtual void PostWalk(VarStatement node)
 {
 }
Exemple #10
0
 // VarStatement
 public virtual bool Walk(VarStatement node)
 {
     return true;
 }
 /// <summary>
 /// Visits a var statement - accepts the assignment.
 /// </summary>
 public virtual void Visit(VarStatement statement)
 {
     statement.Assignment.Accept(this);
 }
Exemple #12
0
 void ITreeWalker.Visit(VarStatement statement)
 {
     Header("Statement/Variable");
     WriteProperty("Assignment", statement.Assignment);
 }
        public void TestVarStatement()
        {
            VarStatement node = new VarStatement(GetSymbolAtom(), 1, PrimitiveType.NumberType, GetExpression1(), DefaultLineInfo);

            CheckSerializationRoundTrip(node);
        }
Exemple #14
0
        ////////////// Statements.

        /// <nodoc />
        public virtual void Visit(VarStatement varStatement)
        {
        }
 void ITreeWalker.Visit(VarStatement statement)
 {
     statement.Validate(this);
 }