PetitCommonMark/software/petitcompiler/PPPossessiveRepeatingParser...

22 lines
479 B
Smalltalk

Extension { #name : 'PPPossessiveRepeatingParser' }
{ #category : '*petitcompiler' }
PPPossessiveRepeatingParser >> asCompilerNode [
((self min = 0) and: [ self max = SmallInteger maxVal ]) ifTrue: [
^ PPCStarNode new
name: self name;
child: parser;
parser: self;
yourself
].
((self min = 1) and: [ self max = SmallInteger maxVal ]) ifTrue: [
^ PPCPlusNode new
name: self name;
child: parser;
parser: self;
yourself
].
^ super asCompilerNode
]