compiler/tests/extras/PPCAbstractParserTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Jul 2015 08:37:37 +0100
changeset 510 869853decf31
child 516 3b81c9e53352
permissions -rw-r--r--
Tests refactoring - use generated test cases to make sure all posibilities are tested. Do not generate resource for all combinations, use PPCSetUpBeforeTearDownAfterResource instead that delegates parser compilation to the testcase itself (it calls it's #setUpBefore method).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
510
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/compiler/tests/extras' }"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
PPAbstractParserTest subclass:#PPCAbstractParserTest
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'PetitCompiler-Extras-Tests-Support'
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!PPCAbstractParserTest class methodsFor:'resources'!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
resources
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    ^ Array with: (PPCSetUpBeforeTearDownAfterResource for: self)
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
! !
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!PPCAbstractParserTest class methodsFor:'testing'!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
isAbstract
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    ^ self == PPCAbstractParserTest
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    "Modified: / 30-07-2015 / 07:28:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
! !
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
!PPCAbstractParserTest methodsFor:'accessing'!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
compiledParser
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    ^ self compiledParserClass new
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    "Created: / 29-07-2015 / 17:00:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
compiledParserClass
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    ^ Smalltalk at: self compiledParserClassName
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    "Created: / 29-07-2015 / 16:54:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
compiledParserClassName
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    "Return the name of the compiled parser"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    ^ (self petitParserClass name , 'C_' , 
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
            "This is bit hacky!!"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
            ((self compilerConfiguration isKindOf: PPCTokenizingConfiguration) ifTrue:[ 'Tokenizing' ] ifFalse:[ 'Universal' ])) asSymbol
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: / 29-07-2015 / 16:54:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
compilerConfiguration
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
    "Return configuration to use when compiling parser (as instance of PPCConfiguration)"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    ^ self subclassResponsibility
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    "Created: / 29-07-2015 / 16:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
parserClass
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    ^ self compiledParserClass
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    "Modified: / 29-07-2015 / 18:43:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
parserInstanceFor: aSymbol
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    ^ self parserClass new startSymbol: aSymbol
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    "Modified: / 29-07-2015 / 18:43:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
petitParser
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    ^ self petitParserClass new
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    "Created: / 29-07-2015 / 17:01:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
petitParserClass
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "Return the name of the petit parser to compile"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    ^ self subclassResponsibility
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    "Created: / 29-07-2015 / 17:01:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
! !
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
!PPCAbstractParserTest methodsFor:'context'!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
context
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    ^ PPCContext new 
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
! !
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
!PPCAbstractParserTest methodsFor:'setup & teardown'!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
setUpBefore
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    "Called before any of my tests is run (when resources are set up)"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    | time configuration |
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    configuration := self compilerConfiguration.
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    configuration arguments parserName: self compiledParserClassName.
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    time := Time millisecondsToRun: [
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
        self petitParser compileWithConfiguration: configuration.
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
    ].
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    Transcript show: self petitParserClass name ; show:' compiled in: '; show: time asString; show: 'ms'; cr.
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    "Created: / 29-07-2015 / 16:29:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    "Modified: / 29-07-2015 / 18:40:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
!
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
tearDownAfter
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    "Called after all my tests are ryn(when resources are torn down)"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
    "Created: / 29-07-2015 / 16:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
! !
869853decf31 Tests refactoring - use generated test cases to make sure all posibilities are tested.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113