public ParseInfo AddVariableTracker(IVariableTracker variableTracker) { if (LocalVariableTracker == null) { return new ParseInfo(this) { LocalVariableTracker = new IVariableTracker[] { variableTracker } } } ; // Create a new variable tracker array with +1 length. var variableTrackerArray = new IVariableTracker[LocalVariableTracker.Length + 1]; // Copy the current variable trackers. LocalVariableTracker.CopyTo(variableTrackerArray, 0); // Set the tracker. variableTrackerArray[LocalVariableTracker.Length] = variableTracker; return(new ParseInfo(this) { LocalVariableTracker = variableTrackerArray }); }
public ParseInfo SetVariableTracker(IVariableTracker variableTracker) => new ParseInfo(this) { LocalVariableTracker = variableTracker };