From 5b026f9cf394115b2c526f7d2728e21b4066ac46 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:09:17 +0200
Subject: [PATCH] Match variants for oneof() and longest() operators (not
 complete)

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

diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index ffebe4e..f9e9f5f 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -85,6 +85,7 @@ header {
 	#include <libwccl/ops/match/conditions/matchtext.h>
 	#include <libwccl/ops/match/conditions/conjconditions.h>
 	#include <libwccl/ops/match/conditions/tokencondition.h>
+	#include <libwccl/ops/match/conditions/oneof.h>
 	#include <libwccl/ops/match/actions/markmatch.h>
 	#include <libwccl/ops/match/actions/unmarkmatch.h>
 	#include <libwccl/ops/functions/match/submatch.h>
@@ -1992,6 +1993,28 @@ match_condition_in
 	)*
 ;
 
+// Match variants variant(v1), variant(v2), ...
+// Retutns boost::shared_ptr<std::vector<ConjConditions> >
+match_variants
+	[const Corpus2::Tagset& tagset, Variables& vars]
+	returns [boost::shared_ptr<std::vector<ConjConditions> > variants]
+{
+	variants.reset(new std::vector<ConjConditions>());
+
+	boost::shared_ptr<ConjConditions> variant;
+}
+	: "variant" LPAREN variant = match_condition [tagset, vars] RPAREN {
+		// TODO
+		// variants->push_back(variant);
+	} 
+	(
+		COMMA "variant" LPAREN variant = match_condition [tagset, vars] RPAREN {
+			// TODO
+			// variants->push_back(variant);
+		}
+	)*
+;
+
 // One of the match condition
 // Returns boost::shared_ptr<const MatchCondition>
 match_cond_all
-- 
GitLab