📄 lexer.h
字号:
/************************************************************************ 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -