compiler/TSemanticAnalyser.st
changeset 11 6d39860d0fdb
parent 9 569bf5707c7e
child 13 97090c2baa33
--- a/compiler/TSemanticAnalyser.st	Mon Sep 14 16:27:00 2015 +0100
+++ b/compiler/TSemanticAnalyser.st	Wed Sep 16 05:29:43 2015 +0100
@@ -67,11 +67,22 @@
 !
 
 acceptLiteralNode: aRBLiteralNode
+    | value |
+
     super acceptLiteralNode: aRBLiteralNode.
-    aRBLiteralNode binding: (TConstantBinding value: aRBLiteralNode value).
+    value := aRBLiteralNode value.
+    value isInteger ifTrue:[ 
+        aRBLiteralNode binding: (TConstantBinding value: value type: (context environment binding lookupClassSIntegerW) type).
+        ^ self.
+    ].
+    value isBoolean ifTrue:[ 
+        aRBLiteralNode binding: (TConstantBinding value: (value ifTrue:[1] ifFalse:[0]) type: (context environment binding lookupClassBoolean) type).
+        ^ self.
+    ].
+    self erorr: 'Unsupported constant'.
 
     "Created: / 25-08-2015 / 23:17:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 02-09-2015 / 10:34:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-09-2015 / 08:27:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 acceptMethodNode: aMethodNode