Updated to PetitCompiler-JanKurs.118, PetitCompiler-Tests-JanKurs.46, PetitCompiler-Extras-Tests-JanKurs.11, and PetitCompiler-Benchmarks-JanKurs.11
Name: PetitCompiler-JanKurs.118
Author: JanKurs
Time: 13-05-2015, 03:59:01.292 PM
UUID: 4a8ccd94-3131-4cc7-9098-528f8e5ea0b5
Name: PetitCompiler-Tests-JanKurs.46
Author: JanKurs
Time: 04-05-2015, 04:25:06.162 PM
UUID: 9f4cf8b7-876e-4a13-9579-b833f016db66
Name: PetitCompiler-Extras-Tests-JanKurs.11
Author: JanKurs
Time: 13-05-2015, 04:27:27.940 PM
UUID: e9f30c31-fbd0-4e96-ad2a-868f88d20ea8
Name: PetitCompiler-Benchmarks-JanKurs.11
Author: JanKurs
Time: 13-05-2015, 02:21:49.932 PM
UUID: 6a23fd1e-a86f-46db-8221-cc41b778d32c
"{ 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 $'
! !