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

📄 coach_lang_par.yy

📁 在LINUX下运行的仿真机器人服务器源代码
💻 YY
📖 第 1 页 / 共 2 页
字号:
/* -*-bison-*- *//* *Copyright:    Copyright (C) 2001 RoboCup Soccer Server Maintainance Group.        Patrick Riley, Tom Howard, Itsuki Noda, Mikhail Prokopenko, Jan Wendler     This file is part of SoccerServer.    SoccerServer is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *EndCopyright: */%{#include "clangbuilder.h"#include "clangparser.h"#include "serverparam.h"#define    yymaxdepth RCSS_CLANG_maxdepth#define    yyparse    RCSS_CLANG_parse#define    yylex      RCSS_CLANG_lex#define    yyerror    RCSS_CLANG_error#define    yylval     RCSS_CLANG_lval#define    yychar     RCSS_CLANG_char#define    yydebug    RCSS_CLANG_debug#define    yypact     RCSS_CLANG_pact#define    yyr1       RCSS_CLANG_r1#define    yyr2       RCSS_CLANG_r2#define    yydef      RCSS_CLANG_def#define    yychk      RCSS_CLANG_chk#define    yypgo      RCSS_CLANG_pgo#define    yyact      RCSS_CLANG_act#define    yyexca     RCSS_CLANG_exca#define    yyerrflag  RCSS_CLANG_errflag#define    yynerrs    RCSS_CLANG_nerrs#define    yyps       RCSS_CLANG_ps#define    yypv       RCSS_CLANG_pv#define    yys        RCSS_CLANG_s#define    yy_yys     RCSS_CLANG_yys#define    yystate    RCSS_CLANG_state#define    yytmp      RCSS_CLANG_tmp#define    yyv        RCSS_CLANG_v#define    yy_yyv     RCSS_CLANG_yyv#define    yyval      RCSS_CLANG_val#define    yylloc     RCSS_CLANG_lloc#define    yyreds     RCSS_CLANG_reds#define    yytoks     RCSS_CLANG_toks#define    yylhs      RCSS_CLANG_yylhs#define    yylen      RCSS_CLANG_yylen#define    yydefred   RCSS_CLANG_yydefred#define    yydgoto    RCSS_CLANG_yydgoto#define    yysindex   RCSS_CLANG_yysindex#define    yyrindex   RCSS_CLANG_yyrindex#define    yygindex   RCSS_CLANG_yygindex#define    yytable    RCSS_CLANG_yytable#define    yycheck    RCSS_CLANG_yycheck#define    yyname     RCSS_CLANG_yyname#define    yyrule     RCSS_CLANG_yyrule#define YYERROR_VERBOSEvoid yyerror (const char* s);int yyerror (char* s);#define YYPARSE_PARAM paramnamespace{  rcss::clang::Parser::Param&  getParam( void* param )  {     static rcss::clang::Parser::Param* cached_param                    = reinterpret_cast< rcss::clang::Parser::Param* >( param );    if( cached_param != param )      cached_param = reinterpret_cast< rcss::clang::Parser::Param* >( param );    return *cached_param;  }  inline  rcss::clang::Builder&  getBuilder( void* param )  { return getParam( param ).getBuilder(); }#define YYSTYPE rcss::clang::Parser::Lexer::Holder    inline  int  yylex( YYSTYPE* holder, rcss::clang::Parser::Param& param )  {    int rval =  param.getLexer().lex( *holder );//    cout << rval << endl;    return rval;  }}#define YYLEX_PARAM getParam( param )#define BUILDER getBuilder( param )%}     /* BISON DECLARATIONS */%pure_parser%token RCSS_CLANG_INT%token RCSS_CLANG_REAL%token RCSS_CLANG_STR%token RCSS_CLANG_VAR%token RCSS_CLANG_LP "("%token RCSS_CLANG_RP ")"%token RCSS_CLANG_LB "{"%token RCSS_CLANG_RB "}"%token RCSS_CLANG_SAY "say"%token RCSS_CLANG_HEAR "hear"%token RCSS_CLANG_COACH_SIDE%token RCSS_CLANG_META "meta"%token RCSS_CLANG_FREEFORM "freeform"%token RCSS_CLANG_UNSUPP "unsupported_clang"%token RCSS_CLANG_INFO "info"%token RCSS_CLANG_ADVICE "advice"%token RCSS_CLANG_DEFINE "define"%token RCSS_CLANG_DEFINEC "definec"%token RCSS_CLANG_DEFINED "defined"%token RCSS_CLANG_DEFINER "definer"%token RCSS_CLANG_DEFINEA "definea"/* meta stuff */%token RCSS_CLANG_VER "ver"/* region stuff */%token RCSS_CLANG_NULL_REGION "null"%token RCSS_CLANG_QUAD "quad"%token RCSS_CLANG_ARC "arc"%token RCSS_CLANG_PT "pt"%token RCSS_CLANG_REG "reg"%token RCSS_CLANG_TRI "tri"%token RCSS_CLANG_REC "rec"%token RCSS_CLANG_BALL "ball"/* action stuff */%token RCSS_CLANG_POS "pos"%token RCSS_CLANG_HOME "home"%token RCSS_CLANG_BALLTO "bto"%token RCSS_CLANG_MARK "mark"%token RCSS_CLANG_MARK_LINE "markl"%token RCSS_CLANG_OFFLINE "oline"%token RCSS_CLANG_HTYPE "htype"%token RCSS_CLANG_BMOVE_TOKEN/* directive stuff */%token RCSS_CLANG_DO_DONT%token RCSS_CLANG_TEAM/* condition stuff */%token RCSS_CLANG_TRUE_KW "true"%token RCSS_CLANG_FALSE_KW "false"%token RCSS_CLANG_PPOS "ppos"%token RCSS_CLANG_BPOS "bpos"%token RCSS_CLANG_BOWNER "bowner"%token RCSS_CLANG_AND "and"%token RCSS_CLANG_OR "or"%token RCSS_CLANG_NOT "not"%token RCSS_CLANG_PLAY_MODE_KW "playm"%token    RCSS_CLANG_PLAY_MODE%token RCSS_CLANG_CLEAR "clear"%token RCSS_CLANG_L "<"%token RCSS_CLANG_G ">"%token RCSS_CLANG_E "=="%token RCSS_CLANG_NE "!="%token RCSS_CLANG_LE "<="%token RCSS_CLANG_GE ">="%token RCSS_CLANG_PLUS "+"%token RCSS_CLANG_MINUS "-"%token RCSS_CLANG_MULT "*"%token RCSS_CLANG_DIV "/"%token RCSS_CLANG_TIME "time"%token RCSS_CLANG_OPP_GOAL "opp_goals"%token RCSS_CLANG_OUR_GOAL "own_goals"%token RCSS_CLANG_GOAL_DIFF "goal_diff"%token RCSS_CLANG_UNUM "unum"%token RCSS_CLANG_PASS "pass"%token RCSS_CLANG_DRIBBLE "dribble"%token RCSS_CLANG_SHOOT "shoot"%token RCSS_CLANG_HOLD "hold"%token RCSS_CLANG_INTERCEPT "intercept"%token RCSS_CLANG_TACKLE "tackle"%token RCSS_CLANG_RULE "rule"%token RCSS_CLANG_ON_OFF "on|off"%token RCSS_CLANG_ALL "all"%token RCSS_CLANG_DEL "delete"%token RCSS_CLANG_DEFRULE "definerule"%token RCSS_CLANG_MODEL "model"%token RCSS_CLANG_DIREC "direc"/* the ERROR token is an error from lex and is never used below */%token    RCSS_CLANG_ERROR%left RCSS_CLANG_E RCSS_CLANG_NE%left RCSS_CLANG_L RCSS_CLANG_G RCSS_CLANG_LE RCSS_CLANG_GE%left RCSS_CLANG_PLUS RCSS_CLANG_MINUS%left RCSS_CLANG_MULT RCSS_CLANG_DIV %start command%%/* Grammar RULES */command : RCSS_CLANG_LP RCSS_CLANG_SAY message RCSS_CLANG_RP        | message         | RCSS_CLANG_LP RCSS_CLANG_HEAR RCSS_CLANG_INT          RCSS_CLANG_COACH_SIDE RCSS_CLANG_INT message RCSS_CLANG_RP           {             $$ = $5;            BUILDER.setTime( $3.getInt() );            BUILDER.setSide( $4.getInt() );            BUILDER.setTimeRecv( $5.getInt() );          };message : meta_mess             | freeform_mess         | info_mess             | advice_mess           | define_mess           | unsupp_mess           | rule_mess        | del_mess;rule_mess : RCSS_CLANG_LP RCSS_CLANG_RULE activation_list RCSS_CLANG_RP            { BUILDER.buildRuleMsg();              BUILDER.setVer( 8 ); } ;activation_list : activation_list activation_element {}                 | activation_element {};activation_element : RCSS_CLANG_LP RCSS_CLANG_ON_OFF id_list RCSS_CLANG_RP                { BUILDER.buildActivateRules( $2.getBool() ); };id_list : RCSS_CLANG_VAR           { BUILDER.buildRuleID( $1.getStr() );             BUILDER.buildRuleIDList(); }        | RCSS_CLANG_LP id_list2 RCSS_CLANG_RP           { BUILDER.buildRuleIDList(); }        | RCSS_CLANG_ALL          { BUILDER.buildRuleIDListALL(); };id_list2 : id_list2 RCSS_CLANG_VAR            { BUILDER.buildRuleID( $2.getStr() ); }          | RCSS_CLANG_VAR            { BUILDER.buildRuleID( $1.getStr() ); };del_mess : RCSS_CLANG_LP RCSS_CLANG_DEL id_list RCSS_CLANG_RP           { BUILDER.buildDelMsg();             BUILDER.setVer( 8 ); };/* meta messages */meta_mess : RCSS_CLANG_LP RCSS_CLANG_META meta_token_list RCSS_CLANG_RP            { BUILDER.buildMetaMsg();              BUILDER.setVer( 7 ); } ;meta_token_list : meta_token_list meta_token                 | meta_token ;meta_token : RCSS_CLANG_LP RCSS_CLANG_VER num RCSS_CLANG_RP              { BUILDER.buildMetaTokenVer( $3.getDoub() ); } ;/* define messages */define_mess : RCSS_CLANG_LP RCSS_CLANG_DEFINE define_token_list RCSS_CLANG_RP              { BUILDER.buildDefineMsg();                BUILDER.setVer( 8, 7 ); };define_token_list : define_token_list define_token                   | define_token ;define_token : RCSS_CLANG_LP RCSS_CLANG_DEFINEC RCSS_CLANG_STR               condition RCSS_CLANG_RP                          { BUILDER.buildDefineCond( rcss::stripQuotes( $3.getStr() ) ); }              | RCSS_CLANG_LP RCSS_CLANG_DEFINED               RCSS_CLANG_STR directive RCSS_CLANG_RP               { BUILDER.buildDefineDir( rcss::stripQuotes( $3.getStr() ) ); }              | RCSS_CLANG_LP RCSS_CLANG_DEFINER               RCSS_CLANG_STR region RCSS_CLANG_RP               { BUILDER.buildDefineReg( rcss::stripQuotes( $3.getStr() ) ); }              | RCSS_CLANG_LP RCSS_CLANG_DEFINEA               RCSS_CLANG_STR action RCSS_CLANG_RP               { BUILDER.buildDefineAct( rcss::stripQuotes( $3.getStr() ) ); }              | RCSS_CLANG_LP RCSS_CLANG_DEFRULE define_rule RCSS_CLANG_RP               { BUILDER.setVer( 8 ); };define_rule : RCSS_CLANG_VAR RCSS_CLANG_MODEL rule             { BUILDER.buildDefineModelRule( $1.getStr() ); }            | RCSS_CLANG_VAR RCSS_CLANG_DIREC rule            { BUILDER.buildDefineDirectiveRule( $1.getStr() ); };rule : RCSS_CLANG_LP condition directive_list RCSS_CLANG_RP       { BUILDER.buildSimpleRule(); }     | RCSS_CLANG_LP condition rule_list RCSS_CLANG_RP       { BUILDER.buildNestedRule(); }     | id_list       { BUILDER.buildIDRule(); };rule_list : rule_list rule          | rule;

⌨️ 快捷键说明

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