equal
deleted
inserted
replaced
|
1 "{ Package: 'squeak:petitparser' }" |
|
2 |
|
3 PPLiteralParser subclass:#PPLiteralObjectParser |
|
4 instanceVariableNames:'' |
|
5 classVariableNames:'' |
|
6 poolDictionaries:'' |
|
7 category:'PetitParser-Parsers' |
|
8 ! |
|
9 |
|
10 PPLiteralObjectParser comment:'A parser that accepts a single literal object, such as a character. This is the same as the predicate parser ''PPPredicateParser expect: literal'' but slightly more efficient.' |
|
11 ! |
|
12 |
|
13 |
|
14 !PPLiteralObjectParser methodsFor:'operators'! |
|
15 |
|
16 caseInsensitive |
|
17 "Answer a parser that can parse the receiver case-insensitive." |
|
18 |
|
19 literal asUppercase = literal asLowercase ifTrue: [ ^ self ]. |
|
20 ^ PPPredicateObjectParser on: [ :value | literal sameAs: value ] message: message |
|
21 ! ! |
|
22 |
|
23 !PPLiteralObjectParser methodsFor:'parsing'! |
|
24 |
|
25 parseOn: aStream |
|
26 ^ (aStream atEnd not and: [ literal = aStream uncheckedPeek ]) |
|
27 ifFalse: [ PPFailure message: message at: aStream position ] |
|
28 ifTrue: [ aStream next ] |
|
29 ! ! |
|
30 |
|
31 !PPLiteralObjectParser class methodsFor:'documentation'! |
|
32 |
|
33 version_SVN |
|
34 ^ '$Id: PPLiteralObjectParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' |
|
35 ! ! |