parser.h
来自「使用实际的编译算法的计算器 包括词法、文法分析过程」· C头文件 代码 · 共 29 行
H
29 行
#pragma once
#include "scanner.h"
#define MYSPC_BEGIN namespace my_space{
#define MYSPC_END }
MYSPC_BEGIN
enum PSTATE{SUCCESS,MAERROR,DBZ};
class Parser{
public:
Parser(Scanner &sc):_scPtr(&sc){ _curTok=(_scPtr->_ts).front(); }
void Rebind(Scanner &sc){_scPtr=≻ _curTok=(_scPtr->_ts).front();}
PSTATE Parse();
double GetRe(){return _re;}
private:
Scanner *_scPtr;
double _re;
DSTATE _curTok;
void _Match(DSTATE expTok);
double _Exp();
double _Term();
double _Factor();
};
MYSPC_END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?