From 2bf7fcb49d3668948366fa97529c58a684dff992 Mon Sep 17 00:00:00 2001
From: Adam Wardynski <award@.(B-4.4.46a)>
Date: Wed, 12 Jan 2011 15:30:28 +0100
Subject: [PATCH] Function to return function returning Position(0)

---
 libwccl/CMakeLists.txt |  1 +
 libwccl/ops/action.cpp | 15 +++++++++++++++
 libwccl/ops/action.h   | 13 ++++++-------
 3 files changed, 22 insertions(+), 7 deletions(-)
 create mode 100644 libwccl/ops/action.cpp

diff --git a/libwccl/CMakeLists.txt b/libwccl/CMakeLists.txt
index 13dacc5..25eb988 100644
--- a/libwccl/CMakeLists.txt
+++ b/libwccl/CMakeLists.txt
@@ -27,6 +27,7 @@ endif(WIN32)
 
 SET(libwccl_STAT_SRC
 	exception.cpp
+	ops/action.cpp
 	ops/formatters.cpp
 	ops/functions/bool/iteration.cpp
 	ops/functions/bool/iterations/atleast.cpp
diff --git a/libwccl/ops/action.cpp b/libwccl/ops/action.cpp
new file mode 100644
index 0000000..4bcf570
--- /dev/null
+++ b/libwccl/ops/action.cpp
@@ -0,0 +1,15 @@
+#include <libwccl/ops/action.h>
+#include <libwccl/ops/functions/constant.h>
+namespace Wccl {
+
+namespace detail {
+
+boost::shared_ptr<Function<Position> > CurrentPos()
+{
+	static boost::shared_ptr<Function<Position> > current(
+			new Constant<Position>(Position(0)));
+	return current;
+}
+
+} /* end ns detail */
+} /* end ns Wccl */
diff --git a/libwccl/ops/action.h b/libwccl/ops/action.h
index 666030c..12c21f6 100644
--- a/libwccl/ops/action.h
+++ b/libwccl/ops/action.h
@@ -1,14 +1,9 @@
 #ifndef LIBWCCL_OPS_ACTION_H
 #define LIBWCCL_OPS_ACTION_H
 
-#include <boost/shared_ptr.hpp>
-#include <boost/assert.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-
-#include <libwccl/ops/expression.h>
-#include <libwccl/values/value.h>
 #include <libwccl/ops/actionexeccontext.h>
+#include <libwccl/ops/function.h>
+
 
 namespace Wccl {
 
@@ -28,6 +23,10 @@ public:
 	virtual Bool execute(const ActionExecContext& context) const = 0;
 };
 
+namespace detail {
+	boost::shared_ptr<Function<Position> > CurrentPos();
+}
+
 } /* end ns Wccl */
 
 #endif // LIBWCCL_OPS_ACTION_H
-- 
GitLab