]> Dogcows Code - chaz/openbox/blobdiff - util/epist/epist.y
s/__openbox_version/OPENBOX_VERSION
[chaz/openbox] / util / epist / epist.y
index 60fe9aaaa9f88519b3919dc4423f019276202bb5..d956a4cabc02ce835d6b6f2b67610a18f22fa66a 100644 (file)
@@ -20,12 +20,13 @@ void yyerror(const char *c) {
 
 %}
 
-%token OBRACE EBRACE SEMICOLON DASH ACTION BINDING NUMBER QUOTES WORD  
+%token OBRACE EBRACE SEMICOLON DASH NUMBER QUOTES WORD BINDING OPTIONS
 
 %%
 
 commands:
     | commands command
+    | commands options_block
     ;
 
 command:
@@ -33,7 +34,7 @@ command:
     ;
 
 action_command:
-    binding ACTION parameter SEMICOLON
+    binding WORD parameter SEMICOLON
     {
         ((parser*)parser_obj)->setAction($2);
         ((parser*)parser_obj)->endAction();
@@ -48,6 +49,10 @@ chain_command:
     }
     ;
 
+options_block:
+    options_keyword OBRACE options EBRACE
+    ;
+
 binding:
     binding_w_modifier bind_key
     ;
@@ -59,7 +64,7 @@ obrace:
 ebrace:
     EBRACE { /* ((parser*)parser_obj)->endChain(); */ }
     ;
-    
+
 binding_w_modifier:
     | BINDING DASH binding_w_modifier { ((parser*)parser_obj)->addModifier($1); }
     ;
@@ -72,11 +77,24 @@ bind_key:
     | NUMBER     { ((parser*)parser_obj)->setKey($1); }
     | WORD       { ((parser*)parser_obj)->setKey($1); }
     ;
-    
+
 parameter:
-    | NUMBER      { ((parser*)parser_obj)->setArgument($1); }
-    | DASH NUMBER { ((parser*)parser_obj)->setArgument($1); }
-    | QUOTES      { ((parser*)parser_obj)->setArgument($1); }
+    | NUMBER      { ((parser*)parser_obj)->setArgumentNum($1); }
+    | DASH NUMBER { ((parser*)parser_obj)->setArgumentNegNum($2); }
+    | QUOTES      { ((parser*)parser_obj)->setArgumentStr($1); }
+    ;
+
+options_keyword:
+    OPTIONS
+    ;
+
+options:
+    | options option
+    ;
+
+option:
+    WORD parameter SEMICOLON
+    { ((parser*)parser_obj)->setOption($1); }
     ;
 
 %%
This page took 0.025245 seconds and 4 git commands to generate.