6 #define YYPARSE_PARAM parser_obj
16 void yyerror(const char *c) {
17 printf("ERROR: %s\n", c);
23 %token OBRACE EBRACE SEMICOLON DASH NUMBER QUOTES WORD BINDING OPTIONS
29 | commands options_block
33 action_command | chain_command
37 binding WORD parameter SEMICOLON
39 ((parser*)parser_obj)->setAction($2);
40 ((parser*)parser_obj)->endAction();
46 binding obrace commands ebrace
48 ((parser*)parser_obj)->endChain();
53 options_keyword OBRACE options EBRACE
57 binding_w_modifier bind_key
61 OBRACE { ((parser*)parser_obj)->startChain(); }
65 EBRACE { /* ((parser*)parser_obj)->endChain(); */ }
69 | BINDING DASH binding_w_modifier { ((parser*)parser_obj)->addModifier($1); }
73 OBRACE { ((parser*)parser_obj)->setKey($1); }
74 | EBRACE { ((parser*)parser_obj)->setKey($1); }
75 | DASH { ((parser*)parser_obj)->setKey($1); }
76 | SEMICOLON { ((parser*)parser_obj)->setKey($1); }
77 | NUMBER { ((parser*)parser_obj)->setKey($1); }
78 | WORD { ((parser*)parser_obj)->setKey($1); }
82 | NUMBER { ((parser*)parser_obj)->setArgumentNum($1); }
83 | DASH NUMBER { ((parser*)parser_obj)->setArgumentNegNum($2); }
84 | QUOTES { ((parser*)parser_obj)->setArgumentStr($1); }
96 WORD parameter SEMICOLON
97 { ((parser*)parser_obj)->setOption($1); }