Fix in codegen for inlined sequence nodes.
For inlined sequence nodes, generate nested ifs rather than sequential code which
does not work when inlined. The reason is that #codeReturn: in inline generates
instvar assignment, not method return, so in sequential code the next child of a sequence
will be probed even if previous failed. If that happends, the whole sequence fail and therefore
we must generate nested ifs to correctly handle this w.r.t. inlining.
"{ Package: 'stx:goodies/petitparser' }"
PPDelegateParser subclass:#PPNotParser
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'PetitParser-Parsers'
!
!PPNotParser methodsFor:'parsing'!
parseOn: aPPContext
| element memento |
memento := aPPContext remember.
element := parser parseOn: aPPContext.
aPPContext restore: memento.
^ element isPetitFailure
ifFalse: [ PPFailure message: '' context: aPPContext ]
! !
!PPNotParser class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPNotParser.st,v 1.3 2012-05-04 22:06:22 vrany Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPNotParser.st,v 1.3 2012-05-04 22:06:22 vrany Exp $'
!
version_SVN
^ '§Id: PPNotParser.st 2 2010-12-17 18:44:23Z vranyj1 §'
! !