From bcbd29c416b96b3df54c7a360c7f05fc13e7011f Mon Sep 17 00:00:00 2001
From: Adam Wardynski <award@.(win7-laptop)>
Date: Fri, 1 Apr 2011 13:03:19 +0200
Subject: [PATCH] Removing $_ variable - you can simply use "0".

---
 libwccl/ops/match/applyoperator.cpp | 8 +++-----
 libwccl/ops/match/applyoperator.h   | 3 ---
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/libwccl/ops/match/applyoperator.cpp b/libwccl/ops/match/applyoperator.cpp
index 5074259..cfecd52 100644
--- a/libwccl/ops/match/applyoperator.cpp
+++ b/libwccl/ops/match/applyoperator.cpp
@@ -5,13 +5,11 @@
 namespace Wccl {
 
 ApplyOperator::ApplyOperator(
-	const VariableAccessor<Position>& cur_iter_pos,
 	const VariableAccessor<Match>& matches,
 	const boost::shared_ptr<const MatchOperator>& match_op,
 	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),
+		: _matches(matches),
 		  _match_op(match_op),
 		  _actions(actions),
 		  _conditions(conditions)
@@ -22,9 +20,9 @@ ApplyOperator::ApplyOperator(
 
 void ApplyOperator::execute(const ActionExecContext &context) const
 {
-	boost::shared_ptr<Position> iter_pos = context.variables()->get_fast(_cur_iter_pos);
+	boost::shared_ptr<Position> iter_pos(new Position(0));
 	boost::shared_ptr<MatchVector> matches =
-			boost::dynamic_pointer_cast<MatchVector>(context.variables()->get_fast(_matches));
+		boost::dynamic_pointer_cast<MatchVector>(context.variables()->get_fast(_matches));
 	while(context.sentence_context().is_current_inside()) {
 		// Set initial values of $_ and $m:_M variables for this iteration and launch the match:
 		iter_pos->set_value(0);
diff --git a/libwccl/ops/match/applyoperator.h b/libwccl/ops/match/applyoperator.h
index 2feea7c..65db7e9 100644
--- a/libwccl/ops/match/applyoperator.h
+++ b/libwccl/ops/match/applyoperator.h
@@ -17,14 +17,12 @@ class ApplyOperator : public Expression
 public:
 	typedef LogicalPredicate::BoolFunctionPtrVector BoolFunctionPtrVector;
 	/**
-	  * @param cur_iter_pos Accessor to the "$_" variable
 	  * @param matches Accessor to the "$m:_M" variable
 	  * @param match_op "match" operator for apply
 	  * @param actions "actions" section of apply, should not be empty
 	  * @param conditions "cond" section of apply, empty by default
 	  */
 	ApplyOperator(
-			const VariableAccessor<Position>& cur_iter_pos,
 			const VariableAccessor<Match>& matches,
 			const boost::shared_ptr<const MatchOperator>& match_op,
 			const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > >& actions,
@@ -60,7 +58,6 @@ protected:
 	virtual void execute(const ActionExecContext &context) const;
 
 private:
-	const VariableAccessor<Position> _cur_iter_pos;
 	const VariableAccessor<Match> _matches;
 	const boost::shared_ptr<const MatchOperator> _match_op;
 	const boost::shared_ptr<const std::vector<boost::shared_ptr<MatchAction> > > _actions;
-- 
GitLab