30 lines
944 B
Smalltalk
30 lines
944 B
Smalltalk
|
"
|
||
|
A PPEndOfFileParser is parser that will will return true if the stream position is at the end, returns failure otherwise.
|
||
|
|
||
|
The diffirenece between PPEndOfFIleParser and PPEndOfInputParser is:
|
||
|
- PPEndOfFileParser can be created using #eof asParser
|
||
|
- PPEndOfInputParser can be created by using parser end
|
||
|
- PPEndOfFileParser does not delegate to any other parser
|
||
|
- PPEndOfInputParser parsers its delegate and then decides if the input is at the end.
|
||
|
|
||
|
The PPEndOfFileParser can be used to accept some input only if it is at the end of the input, e.g:
|
||
|
|
||
|
('a' asParser, #eof asParser) parse: 'a'
|
||
|
('a' asParser, #eof asParser) parse: 'aa'
|
||
|
|
||
|
"
|
||
|
Class {
|
||
|
#name : 'PPEndOfFileParser',
|
||
|
#superclass : 'PPParser',
|
||
|
#category : 'PetitParser-Parsers'
|
||
|
}
|
||
|
|
||
|
{ #category : 'parsing' }
|
||
|
PPEndOfFileParser >> parseOn: aPPContext [
|
||
|
(aPPContext atEnd) ifFalse:
|
||
|
[
|
||
|
^ PPFailure message: 'end of input expected' context: aPPContext.
|
||
|
].
|
||
|
^ #'end-of-input'
|
||
|
]
|