author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 03 Nov 2014 12:47:37 +0000 | |
changeset 408 | ead04d661728 |
parent 377 | 6112a403a52d |
permissions | -rw-r--r-- |
168 | 1 |
"{ Package: 'stx:goodies/petitparser' }" |
2 |
||
3 |
PPRepeatingParser subclass:#PPLimitedRepeatingParser |
|
4 |
instanceVariableNames:'limit' |
|
5 |
classVariableNames:'' |
|
6 |
poolDictionaries:'' |
|
7 |
category:'PetitParser-Parsers' |
|
8 |
! |
|
9 |
||
10 |
||
11 |
!PPLimitedRepeatingParser class methodsFor:'instance creation'! |
|
12 |
||
13 |
on: aParser limit: aLimitParser |
|
14 |
^ (self on: aParser) setLimit: aLimitParser |
|
15 |
! ! |
|
16 |
||
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
17 |
|
168 | 18 |
!PPLimitedRepeatingParser methodsFor:'accessing'! |
19 |
||
20 |
children |
|
21 |
^ Array with: parser with: limit |
|
22 |
! |
|
23 |
||
24 |
limit |
|
25 |
"Answer the parser that limits (or ends) this repetition." |
|
26 |
||
27 |
^ limit |
|
28 |
! ! |
|
29 |
||
30 |
!PPLimitedRepeatingParser methodsFor:'initialization'! |
|
31 |
||
32 |
setLimit: aParser |
|
33 |
limit := aParser |
|
34 |
! ! |
|
35 |
||
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
36 |
!PPLimitedRepeatingParser methodsFor:'parsing'! |
168 | 37 |
|
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
38 |
matchesLimitOn: aPPContext |
168 | 39 |
| element position | |
377
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
40 |
position := aPPContext remember. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
41 |
element := limit parseOn: aPPContext. |
6112a403a52d
Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
168
diff
changeset
|
42 |
aPPContext restore: position. |
168 | 43 |
^ element isPetitFailure not |
44 |
! ! |
|
45 |
||
46 |
!PPLimitedRepeatingParser class methodsFor:'documentation'! |
|
47 |
||
48 |
version |
|
49 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLimitedRepeatingParser.st,v 1.1 2014-03-04 14:32:55 cg Exp $' |
|
50 |
! |
|
51 |
||
52 |
version_CVS |
|
53 |
^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLimitedRepeatingParser.st,v 1.1 2014-03-04 14:32:55 cg Exp $' |
|
54 |
! ! |
|
55 |