compiler/PPMappedActionParser.st
changeset 502 1e45d3c96ec5
child 503 ff58cd9f1f3c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/PPMappedActionParser.st	Fri Jul 24 15:06:54 2015 +0100
@@ -0,0 +1,36 @@
+"{ Package: 'stx:goodies/petitparser/compiler' }"
+
+"{ NameSpace: Smalltalk }"
+
+PPActionParser subclass:#PPMappedActionParser
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'PetitCompiler-Parsers'
+!
+
+!PPMappedActionParser methodsFor:'converting'!
+
+asCompilerNode
+    ^ PPCMappedActionNode new
+        name: self name;
+        block: block;
+        child: parser;
+        properties: properties;
+        parser: self;
+        yourself
+
+    "Created: / 02-06-2015 / 17:27:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PPMappedActionParser methodsFor:'parsing'!
+
+parseOn: aPPContext
+    | element |
+    ^ (element := parser parseOn: aPPContext) isPetitFailure
+            ifFalse: [ block valueWithArguments: element ]
+            ifTrue: [ element ]
+
+    "Created: / 02-06-2015 / 17:15:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+