我有一个算法试图调用一个优先级函数,以便比较一个运算符是否比另一个运算符具有更高的优先级。我有一个错误说我无法将类型 Token 转换为 char,我想知道我将如何去做。
enter code here
int precedence(char op)
{
if (op == '*' || op == '/') return 0;
return 1;
}
bool comparePrecedence(char a, char b)
{
return precedence(a) < precedence(b);
}
double eval_infix_expr(vector<Token> ie, map<string,double> sym_tab)
{
vector<Token> postfix_expr;
vector<Token> tok_list;
vector<Token> t1;
stack <Token> stack;
while(!(ie.empty())){
for(size_t i = 0; i < ie.size() ; i++){
Token tok = ie[i];
if(!(tok.type == OPERATOR)){
postfix_expr.push_back(tok);
}else if(tok.type == OPERATOR){
while(precedence(tok)){}
}
}
}