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 + -
显示快捷键?