elexcompiler.h

来自「用于词法分析的词法分析器」· C头文件 代码 · 共 66 行

H
66
字号
/*  $Id: ElexCompiler.h,v 1.6 1997/05/18 10:58:07 matt Exp $  Elex compiler class.  (c) 1996 Matt Phillips.  */#ifndef _ELEXCOMP_H#define _ELEXCOMP_H#include <std/string.h>#include <compiler/ErrorMessage.h>#include <util/checks.h>#include <regexp/RegexpCompiler.h>#include "ElexScanner.h"#include "ElexScannerDef.h"class ElexCompiler{public:     // constructor  ElexCompiler (BufferedInputStream &i, ostream &co = cout);  int nErrors () const {return errors.nErrors ();}  int nWarnings () const {return errors.nWarnings ();}     ErrorMessageList &getErrors () {return errors;}  ElexScannerDef &getScannerDef () {return scannerDef;}protected:  ostream &codeOut;  ErrorMessageList errors;  ElexScanner scanner;  ElexScannerDef scannerDef;  RegexpCompiler::Symbols symbols;  // errors  void error (const char *msg);  void warning (const char *msg);  // parser subs  void parseSymbols ();  void parseDefines ();  void parseDeclarations ();  Fsm *parseRegexp ();  void parseCodeFrags ();  void outputCodeFrag ();  void parseProduction ();  void parseRegexProduction (const string &prodName);  void parseProductions ();  void parseScannerDef ();  // error handling  int mustbe (int sym);  void mustbeError (int sym);  int have (int sym);};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?