internal void Push(Token token)
 {
     tokenList.Insert(0, token);
 }
        private void HandleSyntaxError(LRActionList actionList, Token read)
        {
            List<Symbol> expectedSymbols = new List<Symbol>();
            for (int i = 0; i < actionList.Count; i++)
            {
                Symbol actionSymbol = actionList[i];
                switch (actionSymbol.Type)
                {
                    case SymbolType.Content:
                    case SymbolType.End:
                    case SymbolType.GroupStart:
                    case SymbolType.GroupEnd:
                        expectedSymbols.Add(actionSymbol);
                        break;
                }
            }

            OnSyntaxError(read.EndPosition, read.Data, String.Join(",", expectedSymbols));
        }
 internal void Enqueue(Token token)
 {
     tokenList.Add(token);
 }
 protected virtual void OnTokenRead(Token token)
 {
     if (TokenRead != null)
     {
         TokenRead(token);
     }
 }