diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index ae10dc4c8e11d0a7a8dfc7dc46d5480279130835..e12c6918828f63a09964e0d79b60e06dba1763a4 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -1403,6 +1403,20 @@ rule boost::shared_ptr<Function<Bool> > condition; boost::shared_ptr<std::vector<boost::shared_ptr<Action> > > actions; } + : "rule" LPAREN name: STRING COMMA + (condition = bool_operator [tagset, vars] COMMA)? + actions = action_sequence [tagset, vars] + RPAREN { + if (condition) { + rle.reset( + new Rule(token_ref_to_std_string(name), vars, actions, condition)); + } + else { + rle.reset( + new Rule(token_ref_to_std_string(name), vars, actions)); + } + } +/* : "rule" LPAREN name: STRING COMMA ( (bool_operator[tagset, vars]) => @@ -1423,6 +1437,7 @@ rule ) ) RPAREN +*/ ; // Rule sequence