www.pudn.com > 12cocorc.zip > PARSER_H.FRM


//**************************************************************** 
//   CPLUS2\PARSER_H.FRM 
//   Coco/R C++ Support Frames. 
//   Author: Frankie Arzu  
// 
//   Jun 12, 1996  Version 1.06 
//      Many fixes and suggestions thanks to 
//      Pat Terry  
//   May 05, 1999  Version 1.12 
//      Added methods to parser to retrieve token position easily 
//**************************************************************** 
 
#ifndef -->ParserClass_INCLUDE 
#define -->ParserClass_INCLUDE 
 
#include "cr_parse.hpp" 
 
const int MAXSYM = -->MaxSymSets; 
const int MAXERROR = -->MaxErr; 
 
class -->ParserClass : CRParser 
{ 
  public: 
    -->ParserClass(AbsScanner *S=NULL, CRError *E=NULL) : CRParser(S,E) {}; 
    void Parse(); 
    inline void LexString(char *lex, int size) 
    { Scanner->GetString(&Scanner->CurrSym, lex, size); }; 
    inline void LexName(char *lex, int size) 
    { Scanner->GetName(&Scanner->CurrSym, lex, size); }; 
    inline long LexPos() 
    { return Scanner->CurrSym.GetPos(); }; 
    inline void LookAheadString(char *lex, int size) 
    { Scanner->GetString(&Scanner->NextSym, lex, size); }; 
    inline void LookAheadName(char *lex, int size) 
    { Scanner->GetName(&Scanner->NextSym, lex, size); }; 
    inline long LookAheadPos() 
    { return Scanner->NextSym.GetPos(); }; 
    inline int Successful() 
    { return Error->Errors == 0; } 
 
  protected: 
    static unsigned short int SymSet[][MAXSYM]; 
    virtual void Get(); 
    void ExpectWeak (int n, int follow); 
    int  WeakSeparator (int n, int syFol, int repFol); 
  private: 
    -->ProdHeaders 
}; 
 
#endif /* -->ParserClass_INCLUDE */