--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/compiler/PPCOptionalNode.st Sun Oct 26 01:03:31 2014 +0000
@@ -0,0 +1,36 @@
+"{ Package: 'stx:goodies/petitparser/compiler' }"
+
+PPCDelegateNode subclass:#PPCOptionalNode
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'PetitCompiler-Nodes'
+!
+
+PPCOptionalNode comment:''
+!
+
+!PPCOptionalNode methodsFor:'as yet unclassified'!
+
+acceptsEpsilon
+ ^ true
+!
+
+acceptsEpsilonOpenSet: set
+ ^ true
+!
+
+compileWith: compiler effect: effect id: id
+ compiler startMethod: id.
+ compiler addVariable: 'retval'.
+
+ compiler add: 'retval := '.
+ compiler callOnLine: (child compileWith: compiler ).
+ compiler add: '^ error ifFalse: [ retval ] ifTrue: [ self clearError. nil ]'.
+ ^ compiler stopMethod.
+!
+
+prefix
+ ^ #opt
+! !
+