Extension { #name : 'PPTrimmingParser' } { #category : '*petitcompiler' } PPTrimmingParser >> asCompilerNode [ ^ PPCTrimNode new child: parser; " JK HACK ALERT, because trimmer is not included in children, it will never be asked to be translated into the PPCNode when building compiler tree. We have to do it on our own :( " trimmer: trimmer star asCompilerTree; name: self name; parser: self; yourself ] { #category : '*petitcompiler' } PPTrimmingParser >> parseOn: aPPContext [ | memento element | memento := aPPContext remember. [ (trimmer parseOn: aPPContext) isPetitFailure ] whileFalse. element := parser parseOn: aPPContext. element isPetitFailure ifTrue: [ aPPContext restore: memento. ^ element ]. [ (trimmer parseOn: aPPContext) isPetitFailure ] whileFalse. ^ element ]