compiler/tests/PPCOverlappingTokensTest.st
changeset 542 bb97dcbe2359
parent 538 16e8536f5cfb
equal deleted inserted replaced
541:ac763af77fc2 542:bb97dcbe2359
    85     self assert: result third inputValue = ':='.
    85     self assert: result third inputValue = ':='.
    86     self assert: result last inputValue = 'another'.
    86     self assert: result last inputValue = 'another'.
    87 !
    87 !
    88 
    88 
    89 testOverlappingSmalltalkLike2
    89 testOverlappingSmalltalkLike2
    90     <skip> "/ JK: please remove this once fixed...     
    90     ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[  
       
    91         self skipIf: true description: 'JK, remove this once fixed'.
       
    92     ].   
    91 
    93 
    92     p := (keywordToken, idToken) star, idToken, assignmentToken, idToken.
    94     p := (keywordToken, idToken) star, idToken, assignmentToken, idToken.
    93     self compile: p.
    95     self compile: p.
    94     
    96     
    95     self assert: parser parse: 'foo: bar 
    97     self assert: parser parse: 'foo: bar 
   101     
   103     
   102     true ifTrue: [ ^ self ].
   104     true ifTrue: [ ^ self ].
   103     "skip for simple tokenizer"
   105     "skip for simple tokenizer"
   104     self assert: context tokenReadCount == 2 description: 'too many token reads?'.
   106     self assert: context tokenReadCount == 2 description: 'too many token reads?'.
   105 
   107 
   106     "Modified: / 17-08-2015 / 22:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   108     "Modified: / 08-09-2015 / 01:52:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   107 !
   109 !
   108 
   110 
   109 testOverlappingToken
   111 testOverlappingToken
   110     p := (unaryToken ==> [ :e | #unary ]) / (keywordToken ==> [:e | #kw ]).
   112     p := (unaryToken ==> [ :e | #unary ]) / (keywordToken ==> [:e | #kw ]).
   111     self compile: p.
   113     self compile: p.
   138     self assert: parser parse: 'foo '.
   140     self assert: parser parse: 'foo '.
   139     self assert: result == #unary.	
   141     self assert: result == #unary.	
   140 !
   142 !
   141 
   143 
   142 testOverlappingTokenStar
   144 testOverlappingTokenStar
   143     <skip> "/ JK: please remove this once fixed...     
   145     ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[  
       
   146         self skipIf: true description: 'JK, remove this once fixed'.
       
   147     ].   
   144 
   148 
   145     p := (fooToken ==> [ :e | #foo ]) / (idToken ==> [:e | #id ]).
   149     p := (fooToken ==> [ :e | #foo ]) / (idToken ==> [:e | #id ]).
   146     self compile: p star.
   150     self compile: p star.
   147     
   151     
   148     self assert: parser parse: 'foo bar foo bar'.
   152     self assert: parser parse: 'foo bar foo bar'.
   153     
   157     
   154     true ifTrue: [ ^ self ].
   158     true ifTrue: [ ^ self ].
   155     "skip for simple tokenizer"
   159     "skip for simple tokenizer"
   156     self assert: context tokenReadCount == 1 description: 'too many token reads?'.
   160     self assert: context tokenReadCount == 1 description: 'too many token reads?'.
   157 
   161 
   158     "Modified: / 17-08-2015 / 22:35:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   162     "Modified: / 08-09-2015 / 01:53:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   159 !
   163 !
   160 
   164 
   161 testOverlappingTokenStar2
   165 testOverlappingTokenStar2
   162     <skip> "/ JK: please remove this once fixed...     
   166     ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[  
       
   167         self skipIf: true description: 'JK, remove this once fixed'.
       
   168     ].   
   163 
   169 
   164     p := (fooToken / idToken).
   170     p := (fooToken / idToken).
   165     self compile: p star.
   171     self compile: p star.
   166     
   172     
   167     self assert: parser parse: '  foo   bar    foo bar'.
   173     self assert: parser parse: '  foo   bar    foo bar'.
   172     
   178     
   173     true ifTrue: [ ^ self ].
   179     true ifTrue: [ ^ self ].
   174     "skip for simple tokenizer"
   180     "skip for simple tokenizer"
   175     self assert: context tokenReadCount == 1 description: 'too many token reads?'.
   181     self assert: context tokenReadCount == 1 description: 'too many token reads?'.
   176 
   182 
   177     "Modified: / 17-08-2015 / 22:35:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   183     "Modified: / 08-09-2015 / 01:53:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   178 !
   184 !
   179 
   185 
   180 testSanityAsignment
   186 testSanityAsignment
   181     self compile: assignmentToken.
   187     self compile: assignmentToken.
   182     self assert: parser parse: ':='.
   188     self assert: parser parse: ':='.