From 13ef1f7e8ed1c3d9dbd1e67edec732d8f42802bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20K=C4=99dzia?= <Pawel.Kedzia@pwr.wroc.pl> Date: Tue, 19 Apr 2011 15:07:42 +0200 Subject: [PATCH] Added mark_action --- libwccl/parser/grammar.g | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index 53df790..ed4ad95 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -1944,7 +1944,23 @@ match_action match_mark_action [const Corpus2::Tagset& tagset, Variables& vars] returns [boost::shared_ptr<MarkMatch> m_act] - : "mark" LPAREN /* TODO */ RPAREN +{ + boost::shared_ptr<Function<Match> > match_to; + boost::shared_ptr<Function<Match> > match_from; +} + : "mark" LPAREN + match_from = match_fit[tagset, vars] COMMA + match_to = match_fit[tagset, vars] COMMA + annotation_name : STRING + RPAREN { + m_act.reset( + new MarkMatch( + match_from, + match_to, + ((antlr::Token*)annotation_name)->getText() + ) + ); + } ; // Match unmark action @@ -1977,6 +1993,18 @@ match_action_comma_sep )* ; +// Function<Match> is wrapper for Constant<Match> and Function<Match> +// Returns boost::shared_ptr<Function<Match> > +match_fit + [const Corpus2::Tagset& tagset, Variables& vars] + returns [boost::shared_ptr<Function<Match> > ret] +{ + // +} + : ret = match_vector_variable [vars] + | ret = match_value_const +; + /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // ANTLR LEXER -- GitLab