/// <summary>
        /// Adds LT(1) to the current parse subtree.
        /// </summary>
        /// <remarks>
        /// <para>
        /// Note that the match() routines add the node before checking for
        /// correct match.  This means that, upon mismatched token, there
        /// will a token node in the tree corresponding to where that token
        /// was expected.  For no viable alternative errors, no node will
        /// be in the tree as nothing was matched() (the lookahead failed
        /// to predict an alternative).
        /// </para>
        /// </remarks>
        protected void addCurrentTokenToParseTree()                     // throws TokenStreamException
        {
            if (inputState.guessing > 0)
            {
                return;
            }
            ParseTreeRule  root      = (ParseTreeRule)currentParseTreeRoot.Peek();
            ParseTreeToken tokenNode = null;

            if (LA(1) == Token.EOF_TYPE)
            {
                tokenNode = new ParseTreeToken(new antlr.CommonToken("EOF"));
            }
            else
            {
                tokenNode = new ParseTreeToken(LT(1));
            }
            root.addChild(tokenNode);
        }
 // throws TokenStreamException
 /// <summary>
 /// Adds LT(1) to the current parse subtree.
 /// </summary>
 /// <remarks>
 /// <para>
 /// Note that the match() routines add the node before checking for 
 /// correct match.  This means that, upon mismatched token, there 
 /// will a token node in the tree corresponding to where that token 
 /// was expected.  For no viable alternative errors, no node will 
 /// be in the tree as nothing was matched() (the lookahead failed 
 /// to predict an alternative).
 /// </para>
 /// </remarks>
 protected void addCurrentTokenToParseTree()
 {
     if (inputState.guessing > 0)
     {
         return;
     }
     var root = (ParseTreeRule) currentParseTreeRoot.Peek();
     ParseTreeToken tokenNode = null;
     if ( LA(1) == Token.EOF_TYPE )
     {
         tokenNode = new ParseTreeToken(new antlr.CommonToken("EOF"));
     }
     else
     {
         tokenNode = new ParseTreeToken(LT(1));
     }
     root.addChild(tokenNode);
 }