compiler/tests/PPCTokenizingVisitorTest.st
changeset 452 9f4558b3be66
child 515 b5316ef15274
equal deleted inserted replaced
438:20598d7ce9fa 452:9f4558b3be66
       
     1 "{ Package: 'stx:goodies/petitparser/compiler/tests' }"
       
     2 
       
     3 "{ NameSpace: Smalltalk }"
       
     4 
       
     5 TestCase subclass:#PPCTokenizingVisitorTest
       
     6 	instanceVariableNames:'node result visitor'
       
     7 	classVariableNames:''
       
     8 	poolDictionaries:''
       
     9 	category:'PetitCompiler-Tests-Visitors'
       
    10 !
       
    11 
       
    12 !PPCTokenizingVisitorTest methodsFor:'as yet unclassified'!
       
    13 
       
    14 assert: object type: class
       
    15     self assert: object class == class
       
    16 !
       
    17 
       
    18 setUp
       
    19     visitor := PPCTokenizingVisitor new.
       
    20 !
       
    21 
       
    22 testTokenNode1
       
    23     | nilNode |
       
    24     nilNode := PPCNilNode new.
       
    25     node := PPCTokenNode new
       
    26         child: nilNode.
       
    27     result := visitor visit: node.
       
    28     
       
    29     self assert: result type: PPCTokenizingParserNode.
       
    30     self assert: result parser type: PPCTokenConsumeNode.
       
    31     self assert: result parser child = node.
       
    32     
       
    33     self assert: result tokenizer children size = 2.
       
    34     self assert: (result tokenizer children anySatisfy: [ :e | e =  node ]).
       
    35 !
       
    36 
       
    37 testTokenizingParserNode
       
    38     node := PPCNilNode new.
       
    39     result := visitor visit: node.
       
    40     
       
    41     self assert: result type: PPCTokenizingParserNode.
       
    42     self assert: result parser = node.
       
    43     self assert: result tokenizer children size = 1.
       
    44 !
       
    45 
       
    46 testTokenizingParserNode2
       
    47     | nilNode |
       
    48     nilNode := PPCNilNode new.
       
    49     node := PPCTokenNode new
       
    50         child: nilNode.
       
    51     result := visitor visit: node.
       
    52     
       
    53     self assert: result type: PPCTokenizingParserNode.
       
    54     self assert: result parser type: PPCTokenConsumeNode.
       
    55     self assert: result parser child = node.
       
    56     
       
    57     self assert: result tokenizer children size = 2.
       
    58     self assert: (result tokenizer children anySatisfy: [ :e | e =  node ]).
       
    59 !
       
    60 
       
    61 testTrimmingTokenNode1
       
    62     | nilNode tokenNode |
       
    63     nilNode := PPCNilNode new.
       
    64     tokenNode := PPCTokenNode new
       
    65         child: nilNode.
       
    66     node := PPCTrimmingTokenNode new
       
    67         child: tokenNode;
       
    68         whitespace: nilNode;
       
    69         yourself.		
       
    70     result := visitor visit: node.
       
    71     
       
    72     self assert: result type: PPCTokenizingParserNode.
       
    73     self assert: result parser type: PPCTokenConsumeNode.
       
    74     self assert: result parser child = node.
       
    75     
       
    76     self assert: result tokenizer children size = 2.
       
    77     self assert: (result tokenizer children anySatisfy: [ :e | e =  node ]).
       
    78 ! !
       
    79