diff -r fd22630c7e62 -r 869853decf31 compiler/tests/extras/PPCSmalltalkParserTests.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/compiler/tests/extras/PPCSmalltalkParserTests.st Thu Jul 30 08:37:37 2015 +0100 @@ -0,0 +1,107 @@ +"{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }" + +"{ NameSpace: Smalltalk }" + +PPSmalltalkParserTests subclass:#PPCSmalltalkParserTests + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'PetitCompiler-Extras-Tests-Smalltalk' +! + +!PPCSmalltalkParserTests class methodsFor:'resources'! + +resources + ^ Array with: (PPCSetUpBeforeTearDownAfterResource for: self) +! ! + +!PPCSmalltalkParserTests class methodsFor:'testing'! + +isAbstract + ^ self == PPCSmalltalkParserTests +! ! + +!PPCSmalltalkParserTests methodsFor:'accessing'! + +compiledParser + ^ self compiledParserClass new + + "Created: / 29-07-2015 / 17:00:04 / Jan Vrany " +! + +compiledParserClass + ^ Smalltalk at: self compiledParserClassName + + "Created: / 29-07-2015 / 16:54:01 / Jan Vrany " +! + +compiledParserClassName + "Return the name of the compiled parser" + + ^ (self petitParserClass name , 'C_' , + "This is bit hacky!!" + ((self compilerConfiguration isKindOf: PPCTokenizingConfiguration) ifTrue:[ 'Tokenizing' ] ifFalse:[ 'Universal' ])) asSymbol + + "Created: / 29-07-2015 / 16:54:01 / Jan Vrany " +! + +compilerConfiguration + "Return configuration to use when compiling parser (as instance of PPCConfiguration)" + + ^ self subclassResponsibility + + "Created: / 29-07-2015 / 16:53:22 / Jan Vrany " +! + +parserClass + ^ self compiledParserClass + + "Modified: / 29-07-2015 / 18:43:08 / Jan Vrany " +! + +parserInstanceFor: aSymbol + ^ self parserClass new startSymbol: aSymbol + + "Modified: / 29-07-2015 / 18:43:43 / Jan Vrany " +! + +petitParser + ^ self petitParserClass new + + "Created: / 29-07-2015 / 17:01:41 / Jan Vrany " +! + +petitParserClass + ^ PPSmalltalkParser +! ! + +!PPCSmalltalkParserTests methodsFor:'context'! + +context + + ^ PPCContext new +! ! + +!PPCSmalltalkParserTests methodsFor:'setup & teardown'! + +setUpBefore + "Called before any of my tests is run (when resources are set up)" + | time configuration | + + configuration := self compilerConfiguration. + configuration arguments parserName: self compiledParserClassName. + time := Time millisecondsToRun: [ + self petitParser compileWithConfiguration: configuration. + ]. + Transcript show: self petitParserClass name ; show:' compiled in: '; show: time asString; show: 'ms'; cr. + + "Created: / 29-07-2015 / 16:29:38 / Jan Vrany " + "Modified: / 29-07-2015 / 18:40:47 / Jan Vrany " +! + +tearDownAfter + "Called after all my tests are ryn(when resources are torn down)" + + "Created: / 29-07-2015 / 16:33:46 / Jan Vrany " +! ! +