diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index f9e9f5f6e50739d6b506056283c7cfd5aa294775..87f0574a64d173a62c11f5ecc52f905f8dbb410b 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -2085,6 +2085,19 @@ match_cond_text } ; +// Match condition - oneof(variant1(v1), variant(v2), ...) +// Returns boost::shared_ptr<OneOf> +match_cond_oneof + [const Corpus2::Tagset& tagset, Variables& vars] + returns [boost::shared_ptr<OneOf> onf] +{ + boost::shared_ptr<std::vector<ConjConditions> > variants; +} + : "oneof" LPAREN variants = match_variants [tagset, vars] RPAREN { + onf.reset(new OneOf(variants)); + } +; + // ---------------------------------------------------------------------------- // Match actions. Match action can be mark or unmark