<MESSAGE> : <FREEFORM_MESS> | <DEFINE_MESS> | <RULE_MESS> | <DEL_MESS>
<RULE_MESS> : (rule <ACTIVATION_LIST>)
<DEL_MESS> : (delete <ID_LIST>)
<DEFINE_MESS> : (define <DEFINE_TOKEN_LIST>)
<FREEFORM_MESS> : (freeform <CLANG_STR>)
<DEFINE_TOKEN_LIST> : <DEFINE_TOKEN_LIST> <DEFINE_TOKEN>
| <DEFINE_TOKEN>
<DEFINE_TOKEN> : (definec <CLANG_STR> <CONDITION>)
| (defined <CLANG_STR> <DIRECTIVE>)
| (definer <CLANG_STR> <REGION>)
| (definea <CLANG_STR> <ACTION>)
| (definerule <DEFINE_RULE>)
<DEFINE_RULE> : <CLANG_VAR> model <RULE>
| <CLANG_VAR> direc <RULE>
<RULE> : (<CONDITION> <DIRECTIVE_LIST>)
| (<CONDITION> <RULE_LIST>)
| <ID_LIST>
<ACTIVATION_LIST> : <ACTIVATION_LIST> <ACTIVATION_ELEMENT>
| <ACTIVATION_ELEMENT>
<ACTIVATION_ELEMENT> : (on|off <ID_LIST>)
<ACTION> : (pos <REGION>)
| (home <REGION>)
| (mark <UNUM_SET>)
| (markl <UNUM_SET>)
| (markl <REGION>)
| (oline <REGION>)
| (htype <INTEGER>)
| <CLANG_STR>
| (pass <REGION>)
| (pass <UNUM_SET>)
| (dribble <REGION>)
| (clear <REGION>)
| (shoot)
| (hold)
| (intercept)
| (tackle <UNUM_SET>)
<CONDITION> : (true)
| (false)
| (ppos <TEAM> <UNUM_SET> <INTEGER> <INTEGER> <REGION>)
| (bpos <REGION>)
| (bowner <TEAM> <UNUM_SET>)
| (playm <PLAY_MODE>)
| (and <CONDITION_LIST>)
| (or <CONDITION_LIST>)
| (not <CONDITION>)
| <CLANG_STR>
| (<COND_COMP>)
| (unum <CLANG_VAR> <UNUM_SET>)
| (unum <CLANG_STR> <UNUM_SET>)
<COND_COMP> : <TIME_COMP>
| <OPP_GOAL_COMP>
| <OUR_GOAL_COMP>
| <GOAL_DIFF_COMP>
<TIME_COMP> : time <COMP> <INTEGER>
| <INTEGER> <COMP> time
<OPP_GOAL_COMP> : opp_goals <COMP> <INTEGER>
| <INTEGER> <COMP> opp_goals
<OUR_GOAL_COMP> : our_goals <COMP> <INTEGER>
| <INTEGER> <COMP> our_goals
<GOAL_DIFF_COMP> : goal_diff <COMP> <INTEGER>
| <INTEGER> <COMP> goal_diff
<COMP> : < | <= | == | != | >= | >
<PLAY_MODE> : bko | time_over | play_on | ko_our | ko_opp
| ki_our | ki_opp | fk_our | fk_opp
| ck_our | ck_opp | gk_opp | gk_our
| gc_our | gc_opp | ag_opp | ag_our
<DIRECTIVE> : (do|dont <TEAM> <UNUM_SET> <ACTION_LIST>)
| <CLANG_STR>
<REGION> : (null)
| (arc <POINT> <REAL> <REAL> <REAL> <REAL>)
| (reg <REGION_LIST>)
| <CLANG_STR>
| <POINT>
| (tri <POINT> <POINT> <POINT>)
| (rec <POINT> <POINT>)
<POINT> : (pt <REAL> <REAL>)
| (pt ball)
| (pt <TEAM> <INTEGER>)
| (pt <TEAM> <CLANG_VAR>)
| (pt <TEAM> <CLANG_STR>)
| (<POINT_ARITH>)
<POINT_ARITH> : <POINT_ARITH> <OP> <POINT_ARITH>
| <POINT>
<OP> : + | - | * | /
<REGION_LIST> : <REGION_LIST> <REGION>
| <REGION>
<UNUM_SET> : { <UNUM_LIST> }
<UNUM_LIST> : <UNUM>
| <UNUM_LIST> <UNUM>
<UNUM> : <INTEGER> | <CLANG_VAR> | <CLANG_STR>
<ACTION_LIST> : <ACTION_LIST> <ACTION>
| <ACTION>
<DIRECTIVE_LIST> : <DIRECTIVE_LIST> <DIRECTIVE>
| <DIRECTIVE>
<CONDITION_LIST> : <CONDITION_LIST> <CONDITION>
| <CONDITION>
<RULE_LIST> : <RULE_LIST> <RULE>
| <RULE>
<ID_LIST> : <CLANG_VAR>
| (<ID_LIST2>)
| all
<ID_LIST2> : <ID_LIST2> <CLANG_VAR>
| <CLANG_VAR>
<CLANG_STR> : "[0-9A-Za-z\(\)\.\+\-\*\/\?\<\>\_ ]+"
<CLANG_VAR> : [abe-oqrt-zA-Z_]+[a-zA-Z0-9_]*
<TEAM> : our | opp
| パラメータ名 | 説明 | ||
| coach_port | 6001 | 6001 | トレーナの接続ポート |
| say_msg_size | 512 | 256 | トレーナまたはコーチが使用できる freeformメッセージの最大長 |
| say_coach_cnt_max | 128 | 128 | オンラインコーチが使用できる freeformメッセージの最大回数 |
| send_vi_step | 100 | 100 | コーチの視覚情報受信間隔 |
| clang_win_size | 100 | 100 | コーチのメッセージの使用インターバル |
| clang_define_win | 1 | 1 | 許可インターバル内でのdefineメッ セージの使用可能回数 |
| clang_rule_win | 1 | 1 | 許可インターバル内でのruleメッ セージの使用可能回数 |
| clang_del_win | 1 | 1 | 許可インターバル内でのdeleteメッ セージの使用可能回数 |
| clang_mess_delay | 50 | 50 | コーチのメッセージの配信遅延サイクル |
| clang_mess_per_cycle | 1 | 1 | play_on以外のプレイモードでのサイ クル毎のメッセージ配信数 |