Fixed code generation for deterministic choice w.r.t inlining
For PPCDeterministicChoiceNode generate code in form
if ()
else if ()
else if ()
else error
instead of sequence of ifs. The former is safe w.r.t inlining.
"{ Package: 'stx:goodies/petitparser' }"
"{ NameSpace: Smalltalk }"
PPParser subclass:#PPStartOfLogicalLineParser
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'PetitParser-Parsers'
!
!PPStartOfLogicalLineParser methodsFor:'as yet unclassified'!
isBlank: character
^ (character == Character space or: [character == Character tab])
!
parseOn: aPPContext
aPPContext peek isAlphaNumeric ifFalse: [
^ PPFailure message: 'Start of logical line expected' context: aPPContext
].
aPPContext isStartOfLine ifTrue: [ ^ #startOfLogicalLine ].
[ aPPContext position ~= 0 ] whileTrue: [
aPPContext back.
(self isBlank: aPPContext peek) ifFalse: [
^ PPFailure message: 'Start of logical line expected' context: aPPContext
].
aPPContext isStartOfLine ifTrue: [ ^ #startOfLogicalLine ].
]
! !