compiler/TSemanticAnalyser.st
changeset 11 6d39860d0fdb
parent 9 569bf5707c7e
child 13 97090c2baa33
equal deleted inserted replaced
10:2b9beeac547e 11:6d39860d0fdb
    65     "Created: / 25-08-2015 / 22:30:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    65     "Created: / 25-08-2015 / 22:30:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    66     "Modified: / 14-09-2015 / 14:04:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    66     "Modified: / 14-09-2015 / 14:04:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    67 !
    67 !
    68 
    68 
    69 acceptLiteralNode: aRBLiteralNode
    69 acceptLiteralNode: aRBLiteralNode
       
    70     | value |
       
    71 
    70     super acceptLiteralNode: aRBLiteralNode.
    72     super acceptLiteralNode: aRBLiteralNode.
    71     aRBLiteralNode binding: (TConstantBinding value: aRBLiteralNode value).
    73     value := aRBLiteralNode value.
       
    74     value isInteger ifTrue:[ 
       
    75         aRBLiteralNode binding: (TConstantBinding value: value type: (context environment binding lookupClassSIntegerW) type).
       
    76         ^ self.
       
    77     ].
       
    78     value isBoolean ifTrue:[ 
       
    79         aRBLiteralNode binding: (TConstantBinding value: (value ifTrue:[1] ifFalse:[0]) type: (context environment binding lookupClassBoolean) type).
       
    80         ^ self.
       
    81     ].
       
    82     self erorr: 'Unsupported constant'.
    72 
    83 
    73     "Created: / 25-08-2015 / 23:17:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    84     "Created: / 25-08-2015 / 23:17:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    74     "Modified: / 02-09-2015 / 10:34:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    85     "Modified: / 15-09-2015 / 08:27:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    75 !
    86 !
    76 
    87 
    77 acceptMethodNode: aMethodNode
    88 acceptMethodNode: aMethodNode
    78     | scope bindingForSelf |
    89     | scope bindingForSelf |
    79 
    90