token_r.cpp
来自「数据结构与程序设计教材源码 数据结构与程序设计教材源码」· C++ 代码 · 共 58 行
CPP
58 行
bool is_parameter(const Token_record &r)
{
const char *temp = (r.name).c_str();
if (r.kind == operand && ('0' > temp[0] || temp[0] > '9'))
return true;
else
return false;
}
Token_record attributes(const String &identifier)
{
Token_record r;
r.name = identifier;
const char *temp = identifier.c_str();
r.value = 0.0;
if ('0' <= temp[0] && temp[0] <= '9') {
r.kind = operand;
r.value = get_num(temp);
}
else if (identifier == ";") r.kind = end_expression;
else if (identifier == "(") r.kind = leftparen;
else if (identifier == ")") r.kind = rightparen;
else if (identifier == "~" || identifier == "abs" ||
identifier == "sqr" || identifier == "lg" ||
identifier == "sqrt" || identifier == "exp" ||
identifier== "ln" || identifier == "round" ||
identifier == "sin" || identifier == "cos" ||
identifier == "arctan" || identifier == "trunc") {
r.kind = unaryop;
r.priority = 6;
}
else if (identifier == "!" || identifier == "%") {
r.kind = rightunaryop;
r.priority = 6;
}
else if (identifier == "+" || identifier == "-") {
r.kind = binaryop;
r.priority = 4;
}
else if (identifier == "*" || identifier == "/" ||
identifier == "^" ) {
r.kind = binaryop;
r.priority = 5;
}
else if ( identifier == "^" ) {
r.kind = binaryop;
r.priority = 6;
}
else
r.kind = operand;
return r;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?