compiler/tests/PPCOptimizeChoicesTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 29 Aug 2015 07:56:14 +0100
changeset 534 a949c4fe44df
parent 529 439c4057517f
child 535 a8feb0f47574
permissions -rw-r--r--
PPCConfiguration refactoring: [6/10]: use #runPass: instead of self-sends. ...in PPCConfiguration>>invokePhases. This is a preparation for removing #invokePhases completely and configuring the compilation via list of phases.

"{ Package: 'stx:goodies/petitparser/compiler/tests' }"

"{ NameSpace: Smalltalk }"

TestCase subclass:#PPCOptimizeChoicesTest
	instanceVariableNames:'node result visitor configuration'
	classVariableNames:''
	poolDictionaries:''
	category:'PetitCompiler-Tests-Visitors'
!

!PPCOptimizeChoicesTest methodsFor:'as yet unclassified'!

asPPCTree: parser
    ^ parser compileWithConfiguration: configuration
!

setUp
    | options |
    super setUp.

    visitor := PPCOptimizeChoices new.
    
    options := PPCCompilationOptions default
        profile: true.
                
    configuration := PPCPluggableConfiguration on: [ :_self | 
        _self runPass: PPCCacheFirstFollowPass.
    ].
    configuration options: options.

    "Modified: / 29-08-2015 / 07:30:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

testHasCommonPrefix
    | foo bar |
    foo := 'foo' asParser name: 'foo'; yourself.
    bar := 'bar' asParser.
    
    node := self asPPCTree: (foo, bar) / foo.

    self assert: (visitor hasCommonPrefix: node children).
! !