Skip to content
Snippets Groups Projects
Commit 9e3c6e9c authored by Adam Wardynski's avatar Adam Wardynski
Browse files

Change type of some fields of ApplyOperator.

parent f5bf93e5
Branches
No related merge requests found
......@@ -8,8 +8,8 @@ ApplyOperator::ApplyOperator(
const VariableAccessor<Position>& cur_iter_pos,
const VariableAccessor<Match>& matches,
const boost::shared_ptr<const MatchOperator>& match_op,
const std::vector<boost::shared_ptr<const MatchAction> >& actions,
const std::vector<boost::shared_ptr<const Function<Bool> > >& conditions)
const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > >& actions,
const boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >& conditions)
: _cur_iter_pos(cur_iter_pos),
_matches(matches),
_match_op(match_op),
......@@ -17,7 +17,7 @@ ApplyOperator::ApplyOperator(
_conditions(conditions)
{
BOOST_ASSERT(_match_op);
BOOST_ASSERT(actions.size() > 0);
BOOST_ASSERT(actions->size() > 0);
}
void ApplyOperator::execute(const ActionExecContext &context) const
......@@ -32,12 +32,12 @@ void ApplyOperator::execute(const ActionExecContext &context) const
boost::shared_ptr<Match> match = _match_op->apply(iter_pos, context);
// Execute the actions only if match isn't empty and all post-conditions are met:
bool should_act = !match->empty();
for(size_t i = 0; should_act && i < _conditions.size(); ++i) {
should_act = _conditions[i]->apply(context)->get_value();
for(size_t i = 0; should_act && i < _conditions->size(); ++i) {
should_act = (*_conditions)[i]->apply(context)->get_value();
}
if (should_act) {
matches->append(match); // the match goes to $m:_M[0]
foreach (const boost::shared_ptr<const MatchAction>& action, _actions) {
foreach (const boost::shared_ptr<MatchAction>& action, *_actions) {
action->execute(context);
}
}
......@@ -55,22 +55,22 @@ std::string ApplyOperator::to_string(const Corpus2::Tagset& tagset) const
{
std::ostringstream ostream;
ostream << name() << "(" << _match_op->to_string(tagset) << ", ";
if (!_conditions.empty()) {
if (!_conditions->empty()) {
ostream << "cond(";
for(size_t i = 0; i < _conditions.size(); ++i) {
for(size_t i = 0; i < _conditions->size(); ++i) {
if (i != 0) {
ostream << ", ";
}
ostream << _conditions[i]->to_string(tagset);
ostream << (*_conditions)[i]->to_string(tagset);
}
ostream << "), ";
}
ostream << "actions(";
for(size_t i = 0; i < _actions.size(); ++i) {
for(size_t i = 0; i < _actions->size(); ++i) {
if (i != 0) {
ostream << ", ";
}
ostream << _actions[i]->to_string(tagset);
ostream << (*_actions)[i]->to_string(tagset);
}
ostream << "))";
return ostream.str();
......@@ -79,22 +79,22 @@ std::string ApplyOperator::to_string(const Corpus2::Tagset& tagset) const
std::ostream& ApplyOperator::write_to(std::ostream &ostream) const
{
ostream << name() << "(" << *_match_op << ", ";
if (!_conditions.empty()) {
if (!_conditions->empty()) {
ostream << "cond(";
for(size_t i = 0; i < _conditions.size(); ++i) {
for(size_t i = 0; i < _conditions->size(); ++i) {
if (i != 0) {
ostream << ", ";
}
ostream << *_conditions[i];
ostream << *(*_conditions)[i];
}
ostream << "), ";
}
ostream << "actions(";
for(size_t i = 0; i < _actions.size(); ++i) {
for(size_t i = 0; i < (*_actions).size(); ++i) {
if (i != 0) {
ostream << ", ";
}
ostream << *_actions[i];
ostream << *(*_actions)[i];
}
ostream << "))";
return ostream;
......
......@@ -26,8 +26,10 @@ public:
const VariableAccessor<Position>& cur_iter_pos,
const VariableAccessor<Match>& matches,
const boost::shared_ptr<const MatchOperator>& match_op,
const std::vector<boost::shared_ptr<const MatchAction> >& actions,
const std::vector<boost::shared_ptr<const Function<Bool> > >& conditions = (std::vector<boost::shared_ptr<const Function<Bool> > >()));
const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > >& actions,
const boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >& conditions
= boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >(
new boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > >()));
/**
* @returns Name of the operator.
......@@ -61,8 +63,8 @@ private:
const VariableAccessor<Position> _cur_iter_pos;
const VariableAccessor<Match> _matches;
const boost::shared_ptr<const MatchOperator> _match_op;
const std::vector<boost::shared_ptr<const MatchAction> > _actions;
const std::vector<boost::shared_ptr<const Function<Bool> > > _conditions;
const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > > _actions;
const boost::shared_ptr<const std::vector<boost::shared_ptr<Function<Bool> > > > _conditions;
};
} /* end ns Wccl */
......
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