equal
deleted
inserted
replaced
|
1 "{ Package: 'squeak:petitparser' }" |
|
2 |
|
3 PPDelegateParser subclass:#PPFlattenParser |
|
4 instanceVariableNames:'' |
|
5 classVariableNames:'' |
|
6 poolDictionaries:'' |
|
7 category:'PetitParser-Parsers' |
|
8 ! |
|
9 |
|
10 PPFlattenParser comment:'A parser that answers a flat copy of the range my delegate parses.' |
|
11 ! |
|
12 |
|
13 |
|
14 !PPFlattenParser methodsFor:'hooks'! |
|
15 |
|
16 create: aCollection start: aStartInteger stop: aStopInteger |
|
17 ^ aCollection copyFrom: aStartInteger to: aStopInteger |
|
18 ! ! |
|
19 |
|
20 !PPFlattenParser methodsFor:'parsing'! |
|
21 |
|
22 parseOn: aStream |
|
23 | start element stop | |
|
24 start := aStream position. |
|
25 element := parser parseOn: aStream. |
|
26 element isPetitFailure ifTrue: [ |
|
27 aStream position: start. |
|
28 ^ element ]. |
|
29 stop := aStream position. |
|
30 ^ self create: aStream collection start: start + 1 stop: stop |
|
31 ! ! |
|
32 |
|
33 !PPFlattenParser class methodsFor:'documentation'! |
|
34 |
|
35 version_SVN |
|
36 ^ '$Id: PPFlattenParser.st,v 1.1 2011-08-18 18:56:17 cg Exp $' |
|
37 ! ! |