nitj: implement variable declaration
authorAlexandre Terrasa <alexandre@moz-code.org>
Fri, 17 Jul 2015 18:23:12 +0000 (14:23 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Tue, 21 Jul 2015 21:23:20 +0000 (17:23 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/compiler/java_compiler.nit

index 7a7bf1e..73859a1 100644 (file)
@@ -805,6 +805,33 @@ redef class AImplicitSelfExpr
        redef fun expr(v) do return v.frame.as(not null).arguments.first
 end
 
+redef class AVardeclExpr
+       redef fun stmt(v) do
+               var variable = self.variable.as(not null)
+               var ne = self.n_expr
+               var decl = v.variable(variable)
+               if ne != null then
+                       var i = v.expr(ne, variable.declared_type)
+                       v.assign(decl, i)
+               end
+       end
+end
+
+redef class AVarExpr
+       redef fun expr(v) do
+               return v.variable(self.variable.as(not null))
+       end
+end
+
+redef class AVarAssignExpr
+       redef fun expr(v) do
+               var variable = self.variable.as(not null)
+               var i = v.expr(self.n_value, variable.declared_type)
+               v.assign(v.variable(variable), i)
+               return i
+       end
+end
+
 redef class AIntExpr
        redef fun expr(v) do return v.int_instance(self.value.as(not null))
 end