From 5cb9c82a370300c100c24eaaf94c5cdaba91ef5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <pawel.kedzia@pwr.wroc.pl>
Date: Thu, 21 Apr 2011 23:10:24 +0200
Subject: [PATCH] Added oneof() operator to the grammar

---
 libwccl/parser/grammar.g | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index f9e9f5f..87f0574 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
-- 
GitLab