author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 03 Nov 2014 11:30:59 +0000 | |
changeset 407 | a0e6299c7337 |
parent 377 | 6112a403a52d |
child 411 | 06b96374dd10 |
permissions | -rw-r--r-- |
4 | 1 |
"{ Package: 'stx:goodies/petitparser' }" |
0 | 2 |
|
3 |
PPDelegateParser subclass:#PPTrimmingParser |
|
4 |
instanceVariableNames:'trimmer' |
|
5 |
classVariableNames:'' |
|
6 |
poolDictionaries:'' |
|
7 |
category:'PetitParser-Parsers' |
|
8 |
! |
|
9 |
||
10 |
||
11 |
!PPTrimmingParser class methodsFor:'instance creation'! |
|
12 |
||
13 |
on: aParser trimmer: aTrimParser |
|
14 |
^ self new |
|
15 |
setParser: aParser; |
|
16 |
setTrimmer: aTrimParser; |
|
17 |
yourself |
|
18 |
! ! |
|
19 |
||
20 |
!PPTrimmingParser methodsFor:'initialization'! |
|
21 |
||
22 |
setTrimmer: aParser |
|
23 |
trimmer := aParser |
|
24 |
! ! |
|
25 |
||
26 |
!PPTrimmingParser methodsFor:'operations'! |
|
27 |
||
28 |
trim |
|
29 |
"There is no point in trimming more than once." |
|
30 |
||
31 |
^ self |
|
32 |
! ! |
|
33 |
||
34 |
!PPTrimmingParser methodsFor:'parsing'! |
|
35 |
||
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
36 |
parseOn: aPPContext |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
37 |
| memento element | |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
38 |
memento := aPPContext remember. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
39 |
[ (trimmer parseOn: aPPContext) isPetitFailure ] |
0 | 40 |
whileFalse. |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
41 |
element := parser parseOn: aPPContext. |
0 | 42 |
element isPetitFailure ifTrue: [ |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
43 |
aPPContext restore: memento. |
0 | 44 |
^ element ]. |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
45 |
[ (trimmer parseOn: aPPContext) isPetitFailure ] |
0 | 46 |
whileFalse. |
47 |
^ element |
|
48 |
! ! |
|
49 |
||
50 |
!PPTrimmingParser class methodsFor:'documentation'! |
|
51 |
||
39 | 52 |
version |
53 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPTrimmingParser.st,v 1.3 2012-05-04 22:05:38 vrany Exp $' |
|
54 |
! |
|
55 |
||
56 |
version_CVS |
|
57 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPTrimmingParser.st,v 1.3 2012-05-04 22:05:38 vrany Exp $' |
|
58 |
! |
|
59 |
||
0 | 60 |
version_SVN |
39 | 61 |
^ '§Id: PPTrimmingParser.st 2 2010-12-17 18:44:23Z vranyj1 §' |
0 | 62 |
! ! |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
39
diff
changeset
|
63 |