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