diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index d53ddd453636811b1d0c34d4e7ced37b4caf3e8a..3fe31155ab795f51cd4890dae3b495c752730676 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -31,6 +31,7 @@ header {
 	#include <libwccl/ops/functions/strset/getorth.h>
 	#include <libwccl/ops/functions/strset/toupper.h>
 	#include <libwccl/ops/functions/strset/tolower.h>
+	#include <libwccl/ops/functions/strset/getlemmas.h>
 
 	#include <libwccl/ops/functions/constant.h>
 	#include <libwccl/ops/functions/vargetter.h>
@@ -622,13 +623,13 @@ strset_orth
 // ----------------------------------------------------------------------------
 // Base operator.
 strset_base 
-	[const Corpus2::Tagset& /*tagset*/, Variables& vars]
+	[const Corpus2::Tagset& tagset, Variables& vars]
 	returns [boost::shared_ptr<Function<StrSet> > ret]
 {
-	boost::shared_ptr<VarGetter<Position> > pos;
+	boost::shared_ptr<Function<Position> > pos;
 }
-	: "base" LBRACKET pos = position_variable [vars] RBRACKET { 
-		// ret = TODO
+	: "base" LBRACKET pos = position_operator [tagset, vars] RBRACKET { 
+		ret.reset(new GetLemmas(pos));
 	}
 ;