public override void ConstructLocalVariableStatement(LocalVariableStatement node) { this.WriteIndented("local "); for (var i = 0; i < node.Variables.Count; i++) { this.ConstructVariableExpression(( VariableExpression )node.Variables[i]); if (i < node.Variables.Count - 1) { this.Write(", "); } } if (node.Assignments.Count > 0) { this.Write(" = "); for (var i = 0; i < node.Assignments.Count; i++) { this.ConstructInternal(node.Assignments[i]); if (i < node.Assignments.Count - 1) { this.Write(", "); } } } if (node.HasSemicolon) { this.Write(';'); } }
protected virtual ASTNode FoldLocalVariableStatement(LocalVariableStatement node, params Object[] args) { node.SetVariables(this.FoldNodeList(node.Variables)); node.SetAssignments(this.FoldNodeList(node.Assignments)); if (node.Variables.Count == 0) { return(null); } return(node); }
protected virtual Object[] AnalyseLocalVariableStatement(LocalVariableStatement node, params Object[] args) { foreach (ASTNode var in node.Variables) { this.Analyse(var); } foreach (ASTNode val in node.Assignments) { this.Analyse(val); } return(null); }
protected override Object[] AnalyseLocalVariableStatement(LocalVariableStatement node, params Object[] args) { foreach (ASTNode assign in node.Assignments) { this.Analyse(assign); } for (var i = 0; i < node.Variables.Count; i++) { if (i < node.Assignments.Count) { this.ProcessAssignment(node.Variables[i], node.Assignments[i]); } else { this.State[node.Variables[i]] = NilExpression.Nil; } } return(null); }
public abstract void ConstructLocalVariableStatement(LocalVariableStatement node);