Updated to latest version from Moose repository.
Name: PetitParser-JanKurs.250
Author: JanKurs
Time: 01-10-2014, 04:44:04 AM
UUID: c46eea20-51a0-4deb-8fd5-8cb99810a8b4
Repository: http://smalltalkhub.com/mc/Moose/PetitParser/main
Name: PetitTests-JanKurs.60
Author: JanKurs
Time: 29-09-2014, 11:48:10 AM
UUID: 28fd2e65-c287-4f73-b71e-5b6bb25bebaa
Repository: http://smalltalkhub.com/mc/Moose/PetitParser/main
"{ Package: 'stx:goodies/petitparser/tests' }"
PPAbstractParserTest subclass:#PPCompositeParserTest
instanceVariableNames:'parser result'
classVariableNames:''
poolDictionaries:''
category:'PetitTests-Core'
!
!PPCompositeParserTest class methodsFor:'accessing'!
resources
^ Array with: PPParserResource
! !
!PPCompositeParserTest class methodsFor:'testing'!
isAbstract
^ self name = #PPCompositeParserTest
! !
!PPCompositeParserTest methodsFor:'accessing'!
parserClass
self subclassResponsibility
!
parserInstance
^ PPParserResource current parserAt: self parserClass
!
parserInstanceFor: aSymbol
^ aSymbol = #start
ifTrue: [ self parserInstance ]
ifFalse: [
self parserInstance
productionAt: aSymbol
ifAbsent: [ self error: 'Production ' , self parserClass name , '>>' , aSymbol printString , ' not found.' ] ]
! !
!PPCompositeParserTest methodsFor:'parsing'!
fail: aString rule: aSymbol
| production context |
production := self parserInstanceFor: aSymbol.
context := self context.
result := production end parse: aString withContext: context.
self
assert: result isPetitFailure
description: 'Able to parse ' , aString printString.
^ result
!
parse: aString
^ self parse: aString rule: #start
!
parse: aString rule: aSymbol
| production context |
production := self parserInstanceFor: aSymbol.
context := self context.
result := production end parse: aString withContext: context.
self
deny: result isPetitFailure
description: 'Unable to parse ' , aString printString.
^ result
! !
!PPCompositeParserTest methodsFor:'running'!
setUp
super setUp.
parser := self parserInstance
!
tearDown
super tearDown.
parser := result := nil
! !
!PPCompositeParserTest methodsFor:'utilities'!
assert: aCollection is: anObject
self parse: aCollection.
self
assert: result = anObject
description: 'Got: ' , result printString , '; Expected: ' , anObject printString
resumable: true
! !
!PPCompositeParserTest class methodsFor:'documentation'!
version
^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPCompositeParserTest.st,v 1.2 2014-03-04 20:31:51 cg Exp $'
!
version_CVS
^ '$Header: /cvs/stx/stx/goodies/petitparser/tests/PPCompositeParserTest.st,v 1.2 2014-03-04 20:31:51 cg Exp $'
!
version_HG
^ '$Changeset: <not expanded> $'
!
version_SVN
^ '$Id: PPCompositeParserTest.st,v 1.2 2014-03-04 20:31:51 cg Exp $'
! !