PPLimitedRepeatingParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 23 Nov 2015 11:14:30 +0100
changeset 551 00ebb1b85f53
parent 377 6112a403a52d
permissions -rw-r--r--
Fixed CI scripts on Windows For an unknown reason, unzip on Windows reports status code 50 (presumably "the disk is (or was) full during extraction.") even if there's plenty of space. To workaround this, simply ignore status code 50 on Windows. Sigh.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
168
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser' }"
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
PPRepeatingParser subclass:#PPLimitedRepeatingParser
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'limit'
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'PetitParser-Parsers'
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!PPLimitedRepeatingParser class methodsFor:'instance creation'!
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
on: aParser limit: aLimitParser
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	^ (self on: aParser) setLimit: aLimitParser
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
377
6112a403a52d Updated to latest version from Moose repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 168
diff changeset
    17
168
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
!PPLimitedRepeatingParser methodsFor:'accessing'!
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
children
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
	^ Array with: parser with: limit
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
limit
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	"Answer the parser that limits (or ends) this repetition."
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	^ limit
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
! !
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!PPLimitedRepeatingParser methodsFor:'initialization'!
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
setLimit: aParser
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	limit := aParser
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
! !
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    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
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    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
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    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
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ element isPetitFailure not
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
! !
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!PPLimitedRepeatingParser class methodsFor:'documentation'!
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
version
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLimitedRepeatingParser.st,v 1.1 2014-03-04 14:32:55 cg Exp $'
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
version_CVS
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
    ^ '$Header: /cvs/stx/stx/goodies/petitparser/PPLimitedRepeatingParser.st,v 1.1 2014-03-04 14:32:55 cg Exp $'
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
! !
9fa394e40830 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55