Skip to content
Snippets Groups Projects
Commit 31c7ad78 authored by Paweł Kędzia's avatar Paweł Kędzia
Browse files

Added user-parser rule for parsing single rule

parent 5862c134
Branches
No related merge requests found
...@@ -323,4 +323,35 @@ boost::shared_ptr<RuleSequence> Parser::parseRuleSequence( ...@@ -323,4 +323,35 @@ boost::shared_ptr<RuleSequence> Parser::parseRuleSequence(
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
/**
* @desc Parse single rule contained in a std::string. Converts the string
* to a stream and calls parseSingleRule with it
* @arg str rule
* @return the parsed rule via a shared pointer
*/
boost::shared_ptr<Rule> Parser::parseSingleRule(
const std::string& str) const
{
std::stringstream ss (std::stringstream::in | std::stringstream::out);
ss << str;
return this->parseSingleRule(ss);
}
/**
* @desc Parse a sequence rules. Runs parse_rule_sequence rule in the parser
* grammar.
* @arg istr input stream with writed rules
* @return the parsed rule sequence via a shared pointer
*/
boost::shared_ptr<Rule> Parser::parseSingleRule(
std::istream& istr) const
{
ANTLRLexer lexer(istr);
ANTLRParser parser(lexer);
return parser.parse_single_rule(tagset_);
}
// ----------------------------------------------------------------------------
} // end Wccl ns } // end Wccl ns
...@@ -71,6 +71,13 @@ public: ...@@ -71,6 +71,13 @@ public:
boost::shared_ptr<RuleSequence> boost::shared_ptr<RuleSequence>
parseRuleSequence(std::istream&) const; parseRuleSequence(std::istream&) const;
// ---------------------------------------------------------------------------
// Parsing single rule from input string
boost::shared_ptr<Rule>
parseSingleRule(const std::string&) const;
boost::shared_ptr<Rule>
parseSingleRule(std::istream&) const;
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
const Corpus2::Tagset& tagset() const { const Corpus2::Tagset& tagset() const {
return tagset_; return tagset_;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment