예제 #1
0
        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
 };