diff -r 09afcf28ed60 -r 751532c8f3db compiler/tests/PPCCompilerTest.st --- a/compiler/tests/PPCCompilerTest.st Tue Aug 18 22:46:10 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -"{ Package: 'stx:goodies/petitparser/compiler/tests' }" - -"{ NameSpace: Smalltalk }" - -PPAbstractParserTest subclass:#PPCCompilerTest - instanceVariableNames:'parser result context node compiler id node2 id2 id1 node1 node3 - arguments configuration' - classVariableNames:'' - poolDictionaries:'' - category:'PetitCompiler-Tests-Core' -! - - -!PPCCompilerTest methodsFor:'as yet unclassified'! - -assert: p parse: whatever - ^ result := super assert: p parse: whatever. -! - -context - ^ context := PPCProfilingContext new -! - -setUp - arguments := PPCArguments default - profile: true; - yourself. - - configuration := PPCUniversalConfiguration new - arguments: arguments; - yourself. -! - -tearDown - | parserClass | - - parserClass := (Smalltalk at: #PPGeneratedParser ifAbsent: [nil]). - parserClass notNil ifTrue:[ - parserClass removeFromSystem - ]. -! ! - -!PPCCompilerTest methodsFor:'tests - guard'! - -testChoiceGuard - parser := ('foo' asParser trimmingToken / 'bar' asParser trimmingToken / $d asParser trimmingToken plus) - compileWithConfiguration: configuration. - - self assert: parser parse: 'foo'. - self assert: result inputValue = 'foo'. - self assert: (context invocations anySatisfy: [ :e | e beginsWith: 'token' ]). - - self assert: parser parse: 'bar'. - self assert: result inputValue = 'bar'. - - self assert: parser parse: ' foo'. - self assert: result inputValue = 'foo'. - - self assert: parser parse: ' d'. - self assert: result first inputValue = 'd'. - - self assert: parser fail: ''. - self assert: (context invocations noneSatisfy: [ :e | e beginsWith: 'predicate' ]). - self assert: (context invocations noneSatisfy: [ :e | e beginsWith: 'token' ]). - - self assert: parser fail: 'zorg'. - self assert: (context invocations noneSatisfy: [ :e | e beginsWith: 'token' ]). -! - -testEmptyChoiceGuard - parser := ('foo' asParser trimmingToken / 'bar' asParser trimmingToken / $d asParser trimmingToken star) - compileWithConfiguration: configuration. - - self assert: parser parse: 'foo'. - self assert: result inputValue = 'foo'. - - self assert: parser parse: 'bar'. - self assert: result inputValue = 'bar'. - - self assert: parser parse: ' foo'. - self assert: result inputValue = 'foo'. - - self assert: parser parse: ' d'. - self assert: result first inputValue = 'd'. - - self assert: parser parse: ''. - - self assert: parser parse: 'zorg' end: 0. -! - -testGuardSmalltlakToken - parser := (#letter asParser, #word asParser star) smalltalkToken compileWithConfiguration: configuration. - - self assert: parser parse: 'bar'. - self assert: (context invocations anySatisfy: [ :e | e beginsWith: 'seq' ]). - - self assert: parser fail: '123'. - self assert: (context invocations noneSatisfy: [ :e | e beginsWith: 'seq' ]). -! - -testSequenceGuard - parser := ((#any asParser, #any asParser) wrapped, (#any asParser, #any asParser)) compileWithConfiguration: configuration. - - self assert: parser parse: 'fooo' to: #(#($f $o) #($o $o)). - self assert: parser parse: 'fo oo' to: #(#($f $o) #($ $o)) end: 4. - self assert: parser fail: 'fo'. - -! - -testTrimmerGuard - parser := $a asParser trim, $b asParser compileWithConfiguration: configuration. - - self assert: parser parse: 'ab'. - self assert: parser parse: ' ab'. -! ! - -!PPCCompilerTest class methodsFor:'documentation'! - -version_HG - - ^ '$Changeset: $' -! ! -