Codegen: added support for smart action node compiling.
Avoid creation of intermediate result collection for action nodes if all references
to action block's argument (i.e., the nodes collection) is in form of:
* <nodes> at: <numeric constant>
* <nodes> first (second, third...
"{ Package: 'stx:goodies/petitparser' }"
"{ NameSpace: Smalltalk }"
PPParser subclass:#PPStartOfWordParser
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'PetitParser-Parsers'
!
!PPStartOfWordParser methodsFor:'as yet unclassified'!
acceptsEpsilon
^ true
!
parseOn: aPPContext
aPPContext atEnd ifTrue: [
^ PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
].
(aPPContext position == 0) ifTrue: [
(aPPContext peek isAlphaNumeric) ifTrue: [
^ #startOfWord
] ifFalse: [
^ PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
]
].
aPPContext back.
aPPContext peek isAlphaNumeric ifTrue: [
^ PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
].
aPPContext next.
^ aPPContext peek isAlphaNumeric ifTrue: [ #startOfWord ] ifFalse: [
PPFailure message: 'Start of word expected' context: aPPContext at: aPPContext position
]
! !