/// <summary> /// Visit VarBindAssignment /// </summary> /// <param name="assignment">VarBindAssignment to check</param> public override void Visit(VarBindAssignment assignment) { assignment.GetExpression().AcceptVisitor(this); SymbolTable.AddVariableDefinition(assignment.GetIdentifier(), assignment.GetExpression()); }
public virtual void Visit(VarBindAssignment assignment) { VisitSubNodes(assignment); }
/// <summary> /// Parser for VarBindAssignment /// </summary> /// <returns>Parsed VarBindAssignment</returns> public VarBindAssignment ParseVarBindAssignment() { VarBindAssignment varBindAssignment = new VarBindAssignment(); //Parse identifier CurrentToken = TokenStream.NextToken(); varBindAssignment.SetIdentifier(CurrentToken.GetValue().ToString()); //Skip = token NextToken("=", "identifier = expression;", '='); //Parse expression varBindAssignment.SetExpression(expressionParser.ParseExpression()); //Skip ; token NextToken(";", "identifier = expression;", ';'); return varBindAssignment; }