diff --git a/libwccl/ops/rulesequence.cpp b/libwccl/ops/rulesequence.cpp index b5c1f8ac681b7f4f6889019bece07e4df167bad2..e82a8133058961c4cc33b164cf7fd92454d1b320 100644 --- a/libwccl/ops/rulesequence.cpp +++ b/libwccl/ops/rulesequence.cpp @@ -4,7 +4,7 @@ namespace Wccl { -Bool RuleSequence::execute_once(const boost::shared_ptr<Corpus2::Sentence>& sentence) +Bool TagRuleSequence::execute_once(const boost::shared_ptr<Corpus2::Sentence>& sentence) { if(!sentence || sentence->empty()) { throw InvalidArgument( @@ -24,7 +24,7 @@ Bool RuleSequence::execute_once(const boost::shared_ptr<Corpus2::Sentence>& sent return changed; } -int RuleSequence::execute_until_done(const boost::shared_ptr<Corpus2::Sentence>& sentence, int max_iter) +int TagRuleSequence::execute_until_done(const boost::shared_ptr<Corpus2::Sentence>& sentence, int max_iter) { if(max_iter < 0) { throw InvalidArgument( diff --git a/libwccl/ops/rulesequence.h b/libwccl/ops/rulesequence.h index 1015a9bf25e6b776a2eaf2988de36485f7471b4b..671271e7359b01703bd9059978de07ae54730168 100644 --- a/libwccl/ops/rulesequence.h +++ b/libwccl/ops/rulesequence.h @@ -11,12 +11,12 @@ namespace Wccl { * for all positions of a Sentence. * @note The class methods are not thread-safe */ -class RuleSequence : public std::vector<TagRule> +class TagRuleSequence : public std::vector<TagRule> { public: - RuleSequence(std::vector<TagRule> rules); + TagRuleSequence(std::vector<TagRule> rules); - RuleSequence(); + TagRuleSequence(); /** * Executes all contained Rules sequentially, once for each position @@ -73,17 +73,17 @@ public: //--- implementation details --- // inline -RuleSequence::RuleSequence(std::vector<TagRule> rules) +TagRuleSequence::TagRuleSequence(std::vector<TagRule> rules) : std::vector<TagRule>(rules) { } inline -RuleSequence::RuleSequence() +TagRuleSequence::TagRuleSequence() : std::vector<TagRule>() { } inline -Bool RuleSequence::operator()(const boost::shared_ptr<Corpus2::Sentence>& sentence) { +Bool TagRuleSequence::operator()(const boost::shared_ptr<Corpus2::Sentence>& sentence) { return execute_once(sentence); } diff --git a/libwccl/parser/Parser.cpp b/libwccl/parser/Parser.cpp index f78dec74c16f61a6715715de4d968d9eb4522fd1..54813edf5482b18d0079cb71347386819b8ae79a 100644 --- a/libwccl/parser/Parser.cpp +++ b/libwccl/parser/Parser.cpp @@ -392,18 +392,18 @@ boost::shared_ptr<FunctionalOperator> Parser::parseAnyOperator( /** * @desc Parse rule sequence contained in a std::string. Converts the string - * to a stream and calls parseRuleSequence with it + * to a stream and calls parseTagRuleSequence with it * @arg str rules string * @return the parsed rule sequence via a shared pointer */ -boost::shared_ptr<RuleSequence> Parser::parseRuleSequence( +boost::shared_ptr<TagRuleSequence> Parser::parseTagRuleSequence( const std::string& str) const { std::stringstream ss (std::stringstream::in | std::stringstream::out); ss << str; try { - return this->parseRuleSequence(ss); + return this->parseTagRuleSequence(ss); } catch (ParserException&) { throw; @@ -416,12 +416,12 @@ boost::shared_ptr<RuleSequence> Parser::parseRuleSequence( * @arg istr input stream with writed rules * @return the parsed rule sequence via a shared pointer */ -boost::shared_ptr<RuleSequence> Parser::parseRuleSequence( +boost::shared_ptr<TagRuleSequence> Parser::parseTagRuleSequence( std::istream& istr) const { ANTLRLexer lexer(istr); ANTLRParser parser(lexer); - boost::shared_ptr<RuleSequence> res; + boost::shared_ptr<TagRuleSequence> res; try { res = parser.parse_rule_sequence(tagset_); diff --git a/libwccl/parser/Parser.h b/libwccl/parser/Parser.h index 0d7e49cf4b4520d1a41f0a6111813ffa78629e88..0f619e7229f0fa4c965ee9b0f0506d6f453e782f 100644 --- a/libwccl/parser/Parser.h +++ b/libwccl/parser/Parser.h @@ -69,10 +69,10 @@ public: // --------------------------------------------------------------------------- // Parsing rule sequence from input string - boost::shared_ptr<RuleSequence> - parseRuleSequence(const std::string& rule_string) const; - boost::shared_ptr<RuleSequence> - parseRuleSequence(std::istream& is) const; + boost::shared_ptr<TagRuleSequence> + parseTagRuleSequence(const std::string& rule_string) const; + boost::shared_ptr<TagRuleSequence> + parseTagRuleSequence(std::istream& is) const; // --------------------------------------------------------------------------- // Parsing single rule from input string diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index 0a4d7952d443790f8bc6c1f8cceedb5ce2df7f5e..00324e02fbc6e5beb39420e9bb636f2f1914e846 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -247,10 +247,10 @@ parse_single_rule ; // Rule for parsing rules section in the wccl file -// Returns boost::shared_ptr<RuleSequence> +// Returns boost::shared_ptr<TagRuleSequence> parse_rule_sequence [const Corpus2::Tagset& tagset] - returns [boost::shared_ptr<RuleSequence> rule_seq] + returns [boost::shared_ptr<TagRuleSequence> rule_seq] { ParsingScope scope(tagset); } @@ -1856,12 +1856,12 @@ rule // Rule sequence rule_sequence [ParsingScope& scope] - returns [boost::shared_ptr<RuleSequence> rule_seq] + returns [boost::shared_ptr<TagRuleSequence> rule_seq] { // FIXME czy tutaj przypadkiem nie powinno byc shared_ptr? boost::shared_ptr<TagRule> rle; - rule_seq.reset(new RuleSequence()); + rule_seq.reset(new TagRuleSequence()); } : rle = rule [scope] { rule_seq->push_back(*rle); @@ -1877,7 +1877,7 @@ rule_sequence // This is wrapper for rule_sequence in rules section in the wccl file rules [ParsingScope& scope] - returns [boost::shared_ptr<RuleSequence> rule_seq] + returns [boost::shared_ptr<TagRuleSequence> rule_seq] : "rules" LPAREN rule_seq = rule_sequence [scope] RPAREN { // } diff --git a/tests/datarule.cpp b/tests/datarule.cpp index 24d0d4fd267816f45e1a86ae19574c3891bea099..b85e858fec5051ac770d2119bf34ae049fb53acb 100644 --- a/tests/datarule.cpp +++ b/tests/datarule.cpp @@ -109,7 +109,7 @@ void test_one_rule_item_actual(const rule_compare_test& c) std::string rf = c.rule_file.string(); std::ifstream is(rf.c_str()); BOOST_REQUIRE(is.good()); - boost::shared_ptr<Wccl::RuleSequence> rules = parser.parseRuleSequence(is); + boost::shared_ptr<Wccl::TagRuleSequence> rules = parser.parseTagRuleSequence(is); for (size_t i = 0; i < chunk->sentences().size(); ++i) { Corpus2::Sentence::Ptr sentence = chunk->sentences()[i]->clone_shared(); Corpus2::Sentence::Ptr expected_sentence = expected->sentences()[i]; diff --git a/wccl-apps/wccl-rules.cpp b/wccl-apps/wccl-rules.cpp index e25257cabddb07a3ce520a683a05882e78108f16..9a8c15a36893cf711da8f9e85134af95727e3e66 100644 --- a/wccl-apps/wccl-rules.cpp +++ b/wccl-apps/wccl-rules.cpp @@ -31,16 +31,16 @@ namespace { }; } -bool load_more_rules(Wccl::Parser& parser, const std::string& filename, Wccl::RuleSequence& rules) +bool load_more_rules(Wccl::Parser& parser, const std::string& filename, Wccl::TagRuleSequence& rules) { - boost::shared_ptr<Wccl::RuleSequence> ret; + boost::shared_ptr<Wccl::TagRuleSequence> ret; try { std::ifstream is(filename.c_str()); if (!is.good()) { throw Wccl::FileNotFound(filename, "", __FUNCTION__); } - ret = parser.parseRuleSequence(is); + ret = parser.parseTagRuleSequence(is); if (ret) { if (!quiet) { std::cerr << "Loaded " << ret->size() << " rule(s) from " @@ -73,7 +73,7 @@ bool load_more_rules(Wccl::Parser& parser, const std::string& filename, Wccl::Ru } void apply_rules(boost::shared_ptr<Corpus2::TokenReader> reader, - boost::shared_ptr<Corpus2::TokenWriter> writer, Wccl::RuleSequence& rules, + boost::shared_ptr<Corpus2::TokenWriter> writer, Wccl::TagRuleSequence& rules, const options& opts) { Corpus2::TokenTimer& timer = Corpus2::global_timer(); @@ -197,7 +197,7 @@ int main(int argc, char** argv) try { const Corpus2::Tagset& tagset = Corpus2::get_named_tagset(tagset_load); Wccl::Parser parser(tagset); - Wccl::RuleSequence rules; + Wccl::TagRuleSequence rules; foreach (const std::string& f, ccl_files) { size_t sz = rules.size(); if (!load_more_rules(parser, f, rules)) {