// lookahead includes empty.
 public override TokenSet Init_PreCheckSet(ParseNode_Root parser)
 {
     if (FirstSet == null)
     {
         FirstSet = new TokenSet(node.Init_PreCheckSet(parser));
         FirstSet.AddEmpty();
     }
     return(FirstSet);
 }
 public override TokenSet Init_PreCheckSet(ParseNode_Root parser)
 {
     if (FirstSet == null)
     {
         if (inProgress)
         {
             throw new Exception(m_sNtName + ": recursive lookahead");
         }
         inProgress = true;
         FirstSet   = rhs.Init_PreCheckSet(parser);
     }
     return(FirstSet);
 }