compiler/tests/PEGFsaScannerIntegrationTest.st
changeset 524 f6f68d32de73
parent 515 b5316ef15274
child 529 439c4057517f
equal deleted inserted replaced
515:b5316ef15274 524:f6f68d32de73
   615 failScan: stream
   615 failScan: stream
   616     self compile.
   616     self compile.
   617 
   617 
   618     scanner initialize.
   618     scanner initialize.
   619     scanner stream: stream asPetitStream. 
   619     scanner stream: stream asPetitStream. 
   620     scanner nextToken.
   620     scanner scan_nextToken.
   621     
   621     
   622     result := scanner polyResult.
   622     result := scanner polyResult.
   623     
   623     
   624         
   624         
   625     self assert: result isEmpty
   625     self assert: result isEmpty
   628 failScan: stream token: token
   628 failScan: stream token: token
   629     self compile.
   629     self compile.
   630 
   630 
   631     scanner initialize.
   631     scanner initialize.
   632     scanner stream: stream asPetitStream. 
   632     scanner stream: stream asPetitStream. 
   633     scanner nextToken.
   633     scanner scan_nextToken.
   634     
   634     
   635     result := scanner polyResult.
   635     result := scanner polyResult.
   636     
   636     
   637         
   637         
   638     self assert: ((result includesKey: token) not)
   638     self assert: ((result includesKey: token) not)
   639 !
   639 !
   640 
   640 
   641 generate
   641 generate
       
   642     | codeGenerator |
   642     fsa name: #nextToken.
   643     fsa name: #nextToken.
   643     
   644     
   644     scanner := ((PPCScannerCodeGenerator new)
   645     codeGenerator := PPCScannerCodeGenerator new.
   645         generateAndCompile: fsa).
   646     codeGenerator arguments scannerSuperclass: PPCScanner.
       
   647     
       
   648     scanner := codeGenerator
       
   649         generateAndCompile: fsa.
   646 
   650 
   647     compiled := true
   651     compiled := true
   648 !
   652 !
   649 
   653 
   650 mergeFsa: fsa1 and: fsa2
   654 mergeFsa: fsa1 and: fsa2
   671 
   675 
   672 scan: stream token: token position: position
   676 scan: stream token: token position: position
   673     self compile.
   677     self compile.
   674 
   678 
   675     scanner stream: stream asPetitStream. 
   679     scanner stream: stream asPetitStream. 
   676     scanner nextToken.
   680     scanner scan_nextToken.
   677 
   681 
   678     result := scanner polyResult.
   682     result := scanner polyResult.
   679         
   683         
   680     self assert: result isCollection description: 'no collection returned as a result!!'.
   684     self assert: result isCollection description: 'no collection returned as a result!!'.
   681     self assert: (result isEmpty not) description: 'no token found'.
   685     self assert: (result isEmpty not) description: 'no token found'.