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