📄 exptoken.h
字号:
#include <vector>
#include "CToken.h"
using namespace std;
class EToken
{
public:
char ETokenLeft[10]; //left var of an exp
char ETokenOp_1; //op
char ETokenR_1[10];//right var
double ETokenRN_1;//right var
double ETokenRN_2;//right var
char ETokenR_Op_1; //right op
char ETokenR_2[10];//right 2 var
char ETokenEnd[10];//end discriminator
int ETokenKind;
EToken();
// EToken(const EToken& P);
void IniEToken();//initiation
//x1=x2+x3;
};
class ETokenMap //存放有关表达式类型的类
{
public:
char A_ETokenLeft[10]; //left var of an exp
char A_ETokenOp_1; //op
char A_ETokenR_1[10];//right var
char A_ETokenR_Op_1; //right op
char A_ETokenR_2[10];//right 2 var
char A_ETokenEnd[10];//end discriminator
//x1=x2+x3;
};
class ETokenMan
{
private:
vector<ETokenMap> AExpStack;
int CToken_Index;
int GenExpToken(CTokens* T,EToken *PEToken);
public:
vector<EToken> ExpStack;
ETokenMan();
~ETokenMan();
int GetExp(CTokens* TT);
int GetExpNum();
};
//int printEtokens();
//变量表的类
class CVarToken
{
public:
char VarName[10];
double VarValue;
CVarToken();
};
class CVarMan
{
public:
int GenVarStack(CTokens* T);
vector<CVarToken> VarStack;//变量表
int QueryVstack(char* VarN);//返回变量的值
int PutInValue(char* VarN,double* VarVal);//give a value
int GetVarStackLgth();
int CleanStack();
int PrintVarS();
double ExpOpMan(char* op,char* PCVar,double P2,double P3);//符号操作
int ManAExp(EToken* TE);
int GenFinalES(ETokenMan* TEM );
int GenERVar();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -