PPChoiceParser.st
changeset 377 6112a403a52d
parent 36 4fe8e6295f9e
child 642 77d5fddb6462
equal deleted inserted replaced
376:a2656b27cace 377:6112a403a52d
    14 	^ self copyWith: aRule
    14 	^ self copyWith: aRule
    15 ! !
    15 ! !
    16 
    16 
    17 !PPChoiceParser methodsFor:'parsing'!
    17 !PPChoiceParser methodsFor:'parsing'!
    18 
    18 
    19 parseOn: aStream
    19 parseOn: aPPContext
    20 	"This is optimized code that avoids unnecessary block activations, do not change. When all choices fail, the last failure is answered."
    20 	"This is optimized code that avoids unnecessary block activations, do not change. When all choices fail, the last failure is answered."
    21 
    21 
    22 	| element |
    22 	| element |
    23 	1 to: parsers size do: [ :index |
    23 	1 to: parsers size do: [ :index |
    24 		element := (parsers at: index)
    24 		element := (parsers at: index)
    25 			parseOn: aStream.
    25 			parseOn: aPPContext.
    26 		element isPetitFailure
    26 		element isPetitFailure
    27 			ifFalse: [ ^ element ] ].
    27 			ifFalse: [ ^ element ] ].
    28 	^ element
    28 	^ element
    29 ! !
    29 ! !
    30 
    30 
    39 !
    39 !
    40 
    40 
    41 version_SVN
    41 version_SVN
    42     ^ '§Id: PPChoiceParser.st 2 2010-12-17 18:44:23Z vranyj1 §'
    42     ^ '§Id: PPChoiceParser.st 2 2010-12-17 18:44:23Z vranyj1 §'
    43 ! !
    43 ! !
       
    44