lexer.h
来自「LL1通用语法分析器」· C头文件 代码 · 共 74 行
H
74 行
/************************************************************************ Copyright IBMTC Written by Xinxi Wang**************************************************************************/#ifndef LEXER_H#define LEXER_H#include <string>#include <fstream>#include "Terminal.h"/** * 词法分析器 */class Lexer{public: void setFile(const std::string& file); /** * 返回当前标记,并且从缓冲区里面删除当前标记 * @return Terminal */ Terminal nextToken ( ); /** * 返回当前标记 */ Terminal current(); /** * @return bool */ bool hasNextToken ( ); void getToken(); std::string getBuffer(); int line(); int column(); /** * @return Lexer* */ static Lexer* getInstance ( );private: Lexer() : lineNo(0), columnNo(0) {} Lexer(const Lexer &) {}private: std::ifstream in; std::string buffer; int lineNo; int columnNo; Terminal currentToken;};#endif // LEXER_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?