compiler/tests/extras/PPCExpressionGrammarTest.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Jul 2015 08:37:37 +0100
changeset 510 869853decf31
child 529 439c4057517f
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
PPExpressionGrammarTest subclass:#PPCExpressionGrammarTest
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-Expressions'
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
!PPCExpressionGrammarTest 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
!PPCExpressionGrammarTest 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 == PPCExpressionGrammarTest
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
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
!PPCExpressionGrammarTest 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
    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
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
    27
    ^ 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
    28
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
    "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
    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
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
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
    33
    ^ 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
    34
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
    "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
    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
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
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
    39
    "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
    40
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
    ^ (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
    42
            "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
    43
            ((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
    44
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
    "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
    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
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
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
    49
    "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
    50
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
    ^ 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
    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
    "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
    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
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
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
    57
    ^ 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
    58
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
    "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
    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
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
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
    63
    ^ 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
    64
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
    "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
    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
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
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
    69
    ^ 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
    70
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
    "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
    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
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
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
    75
    ^ PPExpressionGrammar
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
! !
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
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
!PPCExpressionGrammarTest 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
    79
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
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
    81
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
    ^ 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
    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
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
!PPCExpressionGrammarTest 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
    86
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
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
    88
    "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
    89
    | 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
    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
    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
    92
    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
    93
    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
    94
        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
    95
    ].
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
    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
    97
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
    "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
    99
    "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
   100
!
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
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
   103
    "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
   104
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
    "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
   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