tests: add some runtime error in nitin.input
[nit.git] / src / astbuilder.nit
index 620bf49..2e500ec 100644 (file)
@@ -16,8 +16,8 @@
 module astbuilder
 
 intrude import semantize::typing
-intrude import semantize::literal
-intrude import semantize::parser
+intrude import literal
+intrude import parser
 intrude import semantize::scope
 
 # General factory to build semantic nodes in the AST of expressions
@@ -30,9 +30,9 @@ class ASTBuilder
        var anchor: nullable MClassType
 
        # Make a new Int literal
-       fun make_int(value: Int): AIntExpr
+       fun make_int(value: Int): AIntegerExpr
        do
-               return new ADecIntExpr.make(value, mmodule.get_primitive_class("Int").mclass_type)
+               return new AIntegerExpr.make(value, mmodule.int_type)
        end
 
        # Make a new instatiation
@@ -134,11 +134,13 @@ redef class AExpr
        # To create the new node `n`, we need to attach the child to it.
        # But, to put `n` where `c` was in `p`, the place has to be remembered.
        #
-       #     var p: AExpr
-       #     var c = p.c
-       #     var h = c.detach_with_placeholder
-       #     var n = astbuilder.make_XXX(c)
-       #     h.replace_with(n)
+       # ~~~nitish
+       # var p: AExpr
+       # var c = p.c
+       # var h = c.detach_with_placeholder
+       # var n = astbuilder.make_XXX(c)
+       # h.replace_with(n)
+       # ~~~
        fun detach_with_placeholder: AExpr
        do
                var h = new APlaceholderExpr.make
@@ -242,7 +244,9 @@ redef class AIfExpr
                _n_kwif = new TKwif
                _n_expr = condition
                _n_expr.parent = self
+               _n_kwthen = new TKwthen
                _n_then = new ABlockExpr.make
+               _n_kwelse = new TKwelse
                _n_else = new ABlockExpr.make
                self.mtype = mtype
                self.is_typed = true
@@ -252,15 +256,18 @@ end
 redef class AType
        private init make
        do
-               _n_id = new TClassid
+               var n_id = new TClassid
+               var n_qid = new AQclassid
+               n_qid.n_id = n_id
+               _n_qid = n_qid
        end
 end
 
-redef class ADecIntExpr
+redef class AIntegerExpr
        private init make(value: Int, t: MType)
        do
                self.value = value
-               self._n_number = new TNumber # dummy
+               self._n_integer = new TInteger # dummy
                self.mtype = t
        end
 end
@@ -290,7 +297,8 @@ redef class ACallExpr
        do
                self._n_expr = recv
                _n_args = new AListExprs
-               _n_id = new TId
+               _n_qid = new AQid
+               _n_qid.n_id = new TId
                if args != null then
                        self.n_args.n_exprs.add_all(args)
                end