compiler/PPCTokenizingCodeGenerator.st
changeset 467 dd13296df294
parent 465 f729f6cd3c76
child 486 0dd7eb52b5a1
equal deleted inserted replaced
466:ac2d987a03d3 467:dd13296df294
     6 	instanceVariableNames:'tokenGenerator'
     6 	instanceVariableNames:'tokenGenerator'
     7 	classVariableNames:''
     7 	classVariableNames:''
     8 	poolDictionaries:''
     8 	poolDictionaries:''
     9 	category:'PetitCompiler-Visitors'
     9 	category:'PetitCompiler-Visitors'
    10 !
    10 !
       
    11 
    11 
    12 
    12 !PPCTokenizingCodeGenerator methodsFor:'accessing'!
    13 !PPCTokenizingCodeGenerator methodsFor:'accessing'!
    13 
    14 
    14 guards
    15 guards
    15     "When tokenizing, do not use guards"
    16     "When tokenizing, do not use guards"
   146         compiler addOnLine: ' ifTrue: ['.
   147         compiler addOnLine: ' ifTrue: ['.
   147         compiler indent.
   148         compiler indent.
   148             compiler codeStoreValueOf: [ self visit: child ] intoVariable: self retvalVar.
   149             compiler codeStoreValueOf: [ self visit: child ] intoVariable: self retvalVar.
   149             compiler codeReturn: self retvalVar.
   150             compiler codeReturn: self retvalVar.
   150         compiler dedent.
   151         compiler dedent.
   151         compiler add: '].'
   152         compiler add: '] ifFalse:['
   152     ].
   153     ].
   153 
       
   154     compiler codeError: 'no choice found'.
   154     compiler codeError: 'no choice found'.
       
   155     node children size timesRepeat: [ compiler add: ']' ].
       
   156     compiler add: '.'.
       
   157 
       
   158     "Modified: / 21-05-2015 / 15:31:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   155 !
   159 !
   156 
   160 
   157 visitTokenChoiceNode: node
   161 visitTokenChoiceNode: node
   158     | trimmingToken |
   162     | trimmingToken |
   159     self assert: (node children allSatisfy: [ :e | e isMarkedForInline not ]).
   163     self assert: (node children allSatisfy: [ :e | e isMarkedForInline not ]).
   204 
   208 
   205 visitTrimmingTokenNode: node
   209 visitTrimmingTokenNode: node
   206     self error: 'shoudl not happend!!'
   210     self error: 'shoudl not happend!!'
   207 ! !
   211 ! !
   208 
   212 
       
   213 !PPCTokenizingCodeGenerator class methodsFor:'documentation'!
       
   214 
       
   215 version_HG
       
   216 
       
   217     ^ '$Changeset: <not expanded> $'
       
   218 ! !
       
   219