⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parsepred.cc

📁 2007年机器人足球世界杯3D仿真组亚军
💻 CC
字号:
#include "parser.ih"rPredicate Parser::parsePred(){  rPredicate pred;  Token tok;  // LPARENT  tok = lex();  if (tok.type != Token::lparent)    throw parser_error("parser error, expected '('");  // ID or LPARENT  tok = lex();  if (tok.type == Token::lparent)  {    // Create list predicate.    pred = new Predicate(Predicate::type_list);    lexPushBack(tok);  } else if (tok.type == Token::id)    pred = new Predicate(tok.value,Predicate::type_node);  else    throw parser_error("parser error, expected '(' or ID");  // Parse until we lex a RPARENT token.  while (tok.type != Token::rparent) {    // RPARENT | PRED | ID    tok = lex();    switch (tok.type) {    case Token::id:      // add id to predicate.      pred->push(new Predicate(tok.value,Predicate::type_leave));      break;    case Token::lparent:      // add predicate to predicate.      lexPushBack(tok);      pred->push(parsePred());      break;    case Token::rparent:      // done parsing predicate.           break;    default:      throw parser_error("parser error, expected LPARENT, RPARENT or ID");    };  }   return pred;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -