public void AdvancePos()
 {
     Pos++;
     if (Pos < Input.Length)
     {
         NextChar             = Input.Length > Pos + 1 ? Input[Pos + 1] : (char?)null;
         CurrentChar          = Input[Pos];
         CurrentCharLowerCase = CurrentChar.ToLower();
         sb.Append(CurrentChar);
         MatchedString = sb.ToString();
     }
 }
 public void Setup(string input)
 {
     Tags                 = new LinkedList <Tag>();
     Pos                  = 0;
     Input                = input;
     CurrentChar          = Input[Pos];
     NextChar             = Input.Length > Pos + 1 ? Input[Pos + 1] : (char?)null;
     CurrentCharLowerCase = CurrentChar.ToLower();
     sb.Clear();
     sb.Append(CurrentChar);
     MatchedString       = sb.ToString();
     NonterminalStartPos = 0;
 }