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); }
void ITreeWalker.Visit(VarStatement statement) { _declaring = true; statement.Validate(this); statement.Assignment.Accept(this); _declaring = false; }
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); }
public string VisitVarStatement(VarStatement statement) { if (statement.Initializer == null) { return(Parenthesize2("var", statement.Name)); } return(Parenthesize2("var", statement.Name, "=", statement.Initializer)); }
public Unit VisitVarStatement(VarStatement statement) { Declare(statement.Token); if (statement.Initializer != null) { Resolve(statement.Initializer); } Define(statement.Token); return(Unit.Value); }
/// <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); } }
// VarStatement public override bool Walk(VarStatement node) { return false; }
public override void PostWalk(VarStatement node) { }
public virtual void PostWalk(VarStatement node) { }
// 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); }
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); }
////////////// Statements. /// <nodoc /> public virtual void Visit(VarStatement varStatement) { }
void ITreeWalker.Visit(VarStatement statement) { statement.Validate(this); }