예제 #1
0
 public void Visit(IncrementTag incrementTag)
 {
     _result += incrementTag.ToString();
 }
예제 #2
0
        /// <summary>
        /// Post-increment the counter i.e. i++
        /// </summary>
        /// <param name="incrementTag"></param>
        public void Visit(IncrementTag incrementTag)
        {
            int currentIndex;
            var key = incrementTag.VarName;

            while (true)
            {
                currentIndex = _counters.GetOrAdd(key, 0);
                var newindex = (currentIndex + 1);                
                if (_counters.TryUpdate(key, newindex, currentIndex))
                {
                    break;
                }
            }

            AppendTextToCurrentAccumulator(currentIndex.ToString());
        }