From fa2ea2b1824ca3c5177befb4de912307606ad084 Mon Sep 17 00:00:00 2001 From: Adam Wardynski <award@.(win7-laptop)> Date: Fri, 29 Apr 2011 21:44:45 +0200 Subject: [PATCH] Add imports section to parsing wccl files. --- libwccl/parser/grammar.g | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index 4af6cf5..685f9bc 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -99,6 +99,8 @@ header { // Wccl whole file syntax #include <libwccl/wcclfile.h> + #include <libwccl/lexicon/lexiconparser.h> + // Unicode String #include <unicode/uniset.h> #include <unicode/unistr.h> @@ -302,7 +304,8 @@ parse_wccl_file wccl_file = boost::make_shared<WcclFile>(tagset); boost::shared_ptr<TagRuleSequence> rule_seq; } - : (any_operator_section [*wccl_file] )* + : (imports_section [*wccl_file])? + (any_operator_section [*wccl_file] )* ( rule_seq = parse_tag_rule_sequence [tagset] { wccl_file->set_tag_rules(rule_seq); } (any_operator_section [*wccl_file] )* @@ -1826,6 +1829,19 @@ match_operator /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// +imports_section [WcclFile& wccl_file] + : (import [wccl_file])+ +; + +import [WcclFile& wccl_file] + : "import" LPAREN file_path : STRING COMMA lexicon_name : STRING RPAREN { + wccl_file.import_lexicon( + LexiconParser::parse_lexicon( + token_ref_to_std_string(lexicon_name), + token_ref_to_std_string(file_path))); + } +; + any_operator_section [WcclFile& wccl_file] { -- GitLab