Merge: introduce Sequence::prepend
authorJean Privat <jean@pryen.org>
Mon, 18 Aug 2014 13:11:17 +0000 (09:11 -0400)
committerJean Privat <jean@pryen.org>
Mon, 18 Aug 2014 13:11:17 +0000 (09:11 -0400)
How could people live without having a working prepend?

Pull-Request: #675
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>

48 files changed:
contrib/pep8analysis/src/flow_analysis/framework.nit
contrib/physical_interface_for_mpd_on_rpi/physical_interface_for_mpd_on_rpi.nit
examples/calculator.nit
lib/android/audio.nit
lib/bucketed_game.nit
lib/curl/curl.nit
lib/nitcc_runtime.nit
lib/nitcorn/http_request.nit
lib/nitcorn/sessions.nit
lib/perfect_hashing.nit
lib/realtime.nit
lib/socket/socket.nit
lib/standard/collection/array.nit
lib/standard/ropes.nit
src/abstract_compiler.nit
src/auto_super_init.nit
src/check_annotation.nit
src/coloring.nit
src/doc/doc_templates.nit
src/rapid_type_analysis.nit
src/test_parser.nit
src/toolcontext.nit
src/vm.nit
tests/base_attr.nit
tests/base_attr_gen.nit
tests/base_attr_isset.nit
tests/base_attr_nullable.nit
tests/base_attr_nullable_int.nit
tests/base_prot_sig.nit
tests/base_prot_sig2.nit
tests/base_simple.nit
tests/base_virtual_type3.nit
tests/base_virtual_type_self.nit
tests/bench_netsim.nit
tests/bench_random_n_sort.nit
tests/example_objet.nit
tests/rterror_attr_def.nit
tests/sav/base_init_nosuper.res [new file with mode: 0644]
tests/sav/base_init_nosuper_alt1.res [new file with mode: 0644]
tests/sav/base_init_nosuper_alt2.res [new file with mode: 0644]
tests/sav/base_init_nosuper_alt3.res [new file with mode: 0644]
tests/sav/test_new_native_alt1.res
tests/sav/test_parser_args1.res
tests/sav/test_parser_args2.res
tests/string_ffi_ref_test.nit
tests/test_create.nit
tests/test_gtk.nit
tests/test_operator_brackets.nit

index a2e9e65..e32246c 100644 (file)
@@ -3,20 +3,14 @@ import cfg
 class FlowAnalysis[S]
        super Visitor
 
-       var current_in:  nullable S writable
-       var current_out: nullable S writable
+       var current_in:  nullable S = default_in_set is writable
+       var current_out: nullable S = default_in_set is writable
 
        fun in_set(bb: BasicBlock): nullable S is abstract
        fun out_set(bb: BasicBlock): nullable S is abstract
        fun in_set=(bb: BasicBlock, s: S) is abstract
        fun out_set=(bb: BasicBlock, s: S) is abstract
 
-       init
-       do
-               current_in = default_in_set
-               current_out = default_in_set
-       end
-
        redef fun visit( node ) do node.visit_all(self)
 
        # If false, it is a backwards analysis
index d8b1785..335444a 100644 (file)
@@ -34,18 +34,18 @@ class PhysicalInterface
        fun server: String do return "localhost"
        fun port: Int do return 6600
 
-       var but_play: Switch
-       var but_playlist_a: Switch
+       var but_play: Switch is noinit
+       var but_playlist_a: Switch is noinit
 
-       var vol: RotaryEncoder
+       var vol: RotaryEncoder is noinit
        var vol_step = 2
 
-       var lcd: HD44780
+       var lcd: HD44780 is noinit
 
-       var lcd_backlight: RPiPin
+       var lcd_backlight: RPiPin is noinit
        var lcd_backlight_delay = 1000
 
-       var buzzer: Buzzer
+       var buzzer: Buzzer is noinit
 
        init
        do
index 541f4d2..37792bd 100644 (file)
@@ -92,12 +92,12 @@ end
 class CalculatorGui
        super GtkCallable
 
-       var win : GtkWindow
-       var container : GtkGrid
+       var win : GtkWindow is noinit
+       var container : GtkGrid is noinit
 
-       var lbl_disp : GtkLabel
-       var but_eq : GtkButton
-       var but_dot : GtkButton
+       var lbl_disp : GtkLabel is noinit
+       var but_eq : GtkButton is noinit
+       var but_dot : GtkButton is noinit
 
        var context = new CalculatorContext
 
index 3fce628..480238f 100644 (file)
@@ -135,7 +135,7 @@ end
 
 # Used to play sound, best suited for sounds effects in apps or games
 class SoundPool
-       private var nsoundpool: NativeSoundPool
+       private var nsoundpool: NativeSoundPool is noinit
        # The maximum number of simultaneous streams for this SoundPool
        var max_streams writable = 10
 
index b326d29..cdedc32 100644 (file)
@@ -38,7 +38,7 @@ class Buckets[G: Game]
        super Turnable[G]
        type BUCKET: HashSet[Bucketable[G]]
 
-       private var buckets: Array[BUCKET]
+       private var buckets: Array[BUCKET] is noinit
 
        private var next_bucket: nullable BUCKET = null
        private var current_bucket_key: Int = -1
index 33b56a9..fd6e359 100644 (file)
@@ -21,11 +21,10 @@ import curl_c
 
 # Top level of Curl
 class Curl
-       protected var prim_curl: CCurl
+       protected var prim_curl = new CCurl.easy_init
 
        init
        do
-               self.prim_curl = new CCurl.easy_init
                assert curlInstance:self.prim_curl.is_init else
                        print "Curl must be instancied to be used"
                end
index 9d455c8..c71ea6b 100644 (file)
@@ -99,7 +99,7 @@ abstract class Parser
 
        # The current state
        # Used by generated parsers
-       var state: LRState
+       var state: LRState is noinit
 
        init
        do
index 85aef12..1a49e0c 100644 (file)
@@ -61,7 +61,7 @@ end
 # The main method is `parse_http_request`.
 class HttpRequestParser
        # The current `HttpRequest` under construction
-       private var http_request: HttpRequest
+       private var http_request: HttpRequest is noinit
 
        # Untreated body
        private var body = ""
index 9ed5f53..8ae26ac 100644 (file)
@@ -31,7 +31,7 @@ import http_response
 class Session
 
        # Hashed id used both client and server side to identify this `Session`
-       var id_hash: String
+       var id_hash: String is noinit
 
        init
        do
index a4b8417..1a74641 100644 (file)
@@ -24,19 +24,17 @@ class Perfecthashing
        # Union of interval for implementing perfect numbering
        # Represents the interval of free identifiers
        # A null value represents the upper bound of identifier
-       private var interval: List[Couple[nullable Int, nullable Int]]
+       private var interval = new List[Couple[nullable Int, nullable Int]]
 
        # An array used as a temporary Hashtable for 
        # checking there is no collision between identifiers
-       private var tempht: Array[nullable Int]
+       private var tempht = new Array[nullable Int]
 
        # Initialize the structure of free identifiers
        init
        do
                # By default, all identifiers are available
-               interval = new List[Couple[nullable Int, nullable Int]]
                interval.push(new Couple[nullable Int, nullable Int](1, null))
-               tempht = new Array[nullable Int]
        end
        
        # Returns a mask composed by discriminants bits
index 38a601c..68b7834 100644 (file)
@@ -71,16 +71,10 @@ end
 # Keeps track of real time
 class Clock
        # Time at instanciation
-       protected var time_at_beginning : Timespec
+       protected var time_at_beginning = new Timespec.monotonic_now
 
        # Time at last time a lapse method was called
-       protected var time_at_last_lapse : Timespec
-
-       init
-       do
-               time_at_beginning = new Timespec.monotonic_now
-               time_at_last_lapse = new Timespec.monotonic_now
-       end
+       protected var time_at_last_lapse = new Timespec.monotonic_now
 
        # Smallest time frame reported by clock
        fun resolution : Timespec `{
index 8c96d17..d82e1e5 100644 (file)
@@ -211,8 +211,7 @@ class Socket
 end
 
 class SocketSet
-       var sset: FFSocketSet
-       init do sset = new FFSocketSet end
+       var sset = new FFSocketSet
        fun set(s: Socket) do sset.set(s.socket) end
        fun is_set(s: Socket): Bool do return sset.is_set(s.socket) end
        fun zero do sset.zero end
index 9482c8f..3b1b3cd 100644 (file)
@@ -531,7 +531,7 @@ class ArrayMap[K: Object, E]
        end
 
        # Internal storage.
-       var _items: Array[Couple[K,E]]
+       var _items = new Array[Couple[K,E]]
 
        # fast remove the ith element of the array
        private fun remove_at_index(i: Int)
@@ -560,12 +560,6 @@ class ArrayMap[K: Object, E]
                end
                return -1
        end
-
-       # A new empty map.
-       init
-       do
-               _items = new Array[Couple[K,E]]
-       end
 end
 
 private class ArrayMapKeys[K: Object, E]
index ebc3377..843096f 100644 (file)
@@ -122,7 +122,7 @@ abstract class Rope
        private var leaf_cache: nullable LeafCache = null
 
        # Empty Rope
-       init do from("")
+       init do root = new StringLeaf("".as(FlatString))
 
        # Creates a new Rope with `s` as root
        init from(s: String) do
index 04ce034..6656d5b 100644 (file)
@@ -1829,6 +1829,7 @@ redef class AMethPropdef
                if auto_super_inits != null then
                        var args = [arguments.first]
                        for auto_super_init in auto_super_inits do
+                               assert auto_super_init.mproperty != mpropdef.mproperty
                                args.clear
                                for i in [0..auto_super_init.msignature.arity+1[ do
                                        args.add(arguments[i])
@@ -1852,6 +1853,8 @@ redef class AMethPropdef
                        else
                                compile_externmeth_to_c(v, mpropdef, arguments)
                        end
+               else
+                       abort
                end
        end
 
index c13fb36..92ee003 100644 (file)
@@ -43,7 +43,7 @@ private class AutoSuperInitVisitor
                n.visit_all(self)
        end
 
-       var has_explicit_super_init: Bool = false
+       var has_explicit_super_init: nullable ANode = null
 end
 
 
@@ -59,8 +59,14 @@ redef class AMethPropdef
                var anchor = mclassdef.bound_mtype
                var recvtype = mclassdef.mclass.mclass_type
 
+               # Get the annotation, but check its pertinence before returning
+               var nosuper = get_single_annotation("nosuper", modelbuilder)
+
                # Collect only for constructors
-               if not mpropdef.mproperty.is_init then return
+               if not mpropdef.mproperty.is_init then
+                       if nosuper != null then modelbuilder.error(nosuper, "Error: nosuper only in `init`")
+                       return
+               end
 
                # FIXME: THIS IS STUPID (be here to keep the old code working)
                if not mpropdef.mclassdef.is_intro then return
@@ -79,9 +85,15 @@ redef class AMethPropdef
                if nblock != null then
                        var v = new AutoSuperInitVisitor
                        v.enter_visit(nblock)
-                       if v.has_explicit_super_init then return
+                       var anode = v.has_explicit_super_init
+                       if anode != null then
+                               if nosuper != null then modelbuilder.error(anode, "Error: method is annotated nosuper but a constructor call is present")
+                               return
+                       end
                end
 
+               if nosuper != null then return
+
                # Still here? So it means that we must determine what super inits need to be automatically invoked
 
                var auto_super_inits = new Array[CallSite]
@@ -149,7 +161,7 @@ redef class ASendExpr
                var mproperty = self.callsite.mproperty
                if mproperty == null then return
                if mproperty.is_init then
-                       v.has_explicit_super_init = true
+                       v.has_explicit_super_init = self
                end
        end
 end
@@ -159,6 +171,6 @@ redef class ASuperExpr
        do
                # If the super is a standard call-next-method then there it is considered am explicit super init call
                # The the super is a "super int" then it is also an explicit super init call
-               v.has_explicit_super_init = true
+               v.has_explicit_super_init = self
        end
 end
index 8641e27..e374876 100644 (file)
@@ -81,6 +81,7 @@ noinit
 readonly
 writable
 cached
+nosuper
 
 pkgconfig
 c_compiler_option
index 0b4532d..aa65f32 100644 (file)
@@ -177,18 +177,16 @@ class POSetColorer[E: Object]
                assert is_colored
                return poset_cache
        end
-       private var poset_cache: POSet[E]
+       private var poset_cache: POSet[E] is noinit
 
        # REQUIRE: is_colored
        fun conflicts: Map[E, Set[E]] do
                assert is_colored
                return conflicts_cache
        end
-       private var conflicts_cache: Map[E, Set[E]]
+       private var conflicts_cache: Map[E, Set[E]] is noinit
 
-       private var graph: POSetConflictGraph[E]
-
-       init do end
+       private var graph: POSetConflictGraph[E] is noinit
 
        # Start coloring on given POSet
        fun colorize(poset: POSet[E]) do
index edbc58b..7650feb 100644 (file)
@@ -23,25 +23,25 @@ class TplPage
        super Template
 
        # Page title in HTML header
-       var title: String writable
+       var title: String is writable, noinit
 
        # Directory where css, js and other assets can be found
-       var shareurl: String writable
+       var shareurl: String is writable, noinit
 
        # Attributes of the body tag element
        var body_attrs = new Array[TagAttribute]
 
        # Top menu template if any
-       var topmenu: TplTopMenu writable
+       var topmenu: TplTopMenu is writable, noinit
 
        # Sidebar template if any
-       var sidebar: nullable TplSidebar writable
+       var sidebar: nullable TplSidebar = null is writable
 
        # Content of the page in form a TplSection
        var sections = new Array[TplSection]
 
        # Footer content if any
-       var footer: nullable Streamable writable
+       var footer: nullable Streamable = null is writable
 
        # JS scripts to append at the end of the body
        var scripts = new Array[TplScript]
@@ -150,7 +150,7 @@ class TplTopMenu
        super Template
 
        # Brand link to display in first position of the top menu
-       private var brand: nullable Streamable writable
+       private var brand: nullable Streamable = null is writable
        # Elements of the topmenu
        private var elts = new Array[Streamable]
 
@@ -511,15 +511,13 @@ class TplDefinition
        super Template
 
        # Comment to display
-       var comment: nullable Streamable writable
+       var comment: nullable Streamable = null is writable
 
        # Namespace for this definition
-       var namespace: nullable Streamable writable
+       var namespace: nullable Streamable = null is writable
 
        # Location link to display
-       var location: nullable Streamable writable
-
-       init do end
+       var location: nullable Streamable = null is writable
 
        private fun render_info do
                add "<div class='info text-right'>"
@@ -802,7 +800,7 @@ class TplScript
        super Template
 
        var attrs = new Array[TagAttribute]
-       var content: nullable Streamable writable
+       var content: nullable Streamable = null is writable
 
        init do
                attrs.add(new TagAttribute("type", "text/javascript"))
index 2a4e8f2..ceca71d 100644 (file)
@@ -239,6 +239,7 @@ class RapidTypeAnalysis
                                # It is an init for a class?
                                if mmeth.name == "init" then
                                        var nclassdef = self.modelbuilder.mclassdef2nclassdef[mmethoddef.mclassdef]
+                                       assert mmethoddef == nclassdef.mfree_init
                                        var super_inits = nclassdef.super_inits
                                        if super_inits != null then
                                                #assert args.length == 1
@@ -422,11 +423,12 @@ class RapidTypeAnalysis
 
        fun add_super_send(recv: MType, mpropdef: MMethodDef)
        do
+               assert mpropdef.has_supercall
                if live_super_sends.has(mpropdef) then return
                #print "new super prop: {mpropdef}"
                live_super_sends.add(mpropdef)
-               for t in live_types do
-                       try_super_send(t, mpropdef)
+               for c in live_classes do
+                       try_super_send(c.intro.bound_mtype, mpropdef)
                end
        end
 end
index 193a734..f654f5b 100644 (file)
@@ -22,7 +22,7 @@ import parser_util
 
 class PrintTreeVisitor
        super Visitor
-       private var rank: Int
+       private var rank: Int = 0
        redef fun visit(n)
        do
                if n isa Token then
@@ -34,11 +34,6 @@ class PrintTreeVisitor
                n.visit_all(self)
                rank = rank - 1
        end
-
-       init
-       do
-               rank = 0
-       end
 end
 
 var no_print = false
index d25d3fd..5bfd18d 100644 (file)
@@ -300,7 +300,7 @@ class ToolContext
        end
 
        # The identified root directory of the Nit project
-       var nit_dir: nullable String
+       var nit_dir: nullable String = null
 
        private fun compute_nit_dir: nullable String
        do
index 73d8683..754b8ec 100644 (file)
@@ -357,18 +357,16 @@ end
 # and informations to perform subtyping tests
 class VTable
        # The mask to perform perfect hashing
-       var mask: Int
+       var mask: Int is noinit
 
        # Unique identifier given by perfect hashing
-       var id: Int
+       var id: Int is noinit
 
        # Pointer to the c-allocated area, represents the virtual table
-       var internal_vtable: Pointer
+       var internal_vtable: Pointer is noinit
 
        # The short classname of this class
-       var classname: String
-
-       init do end
+       var classname: String is noinit
 end
 
 redef class Instance
index 4daed95..a21188b 100644 (file)
@@ -24,8 +24,8 @@ class Int
 end
 
 class Foo
-       var a1: Int
-       var a2: Int
+       var a1: Int is noinit
+       var a2: Int is noinit
        fun run
        do
                _a1.output
@@ -41,7 +41,7 @@ end
 
 class Bar
        super Foo
-       var a3: Int
+       var a3: Int is noinit
        redef fun run
        do
                _a1.output
index 8a8a346..ad4c947 100644 (file)
@@ -17,9 +17,9 @@
 import kernel
 
 class A[E]
-       var e: E
-       init do end
+       var e: E is noinit
 end
+
 var i = 1
 var a = new A[nullable Int]#alt1#
 #alt1#var a = new A[Int]
index 5fc7e11..c1a1fea 100644 (file)
@@ -30,13 +30,13 @@ end
 
 class Integer
        var val: Int
-       init(val: Int) do _val = val
+
        fun output do _val.output
 end
 
 class Foo
-       var a1: Integer
-       var a2: Integer
+       var a1: Integer is noinit
+       var a2: Integer is noinit
        fun run
        do
                _a1.output
@@ -64,9 +64,9 @@ end
 
 class Bar
        super Foo
-       var a3: Integer#alt1# #alt2#
+       var a3: Integer is noinit#alt1# #alt2#
        #alt1#var a3: Integer = new Integer(9000)
-       #alt2#var a3: nullable Integer
+       #alt2#var a3: nullable Integer is noinit
        redef fun run
        do
                _a1.output
@@ -82,7 +82,7 @@ class Bar
 
        init
        do
-               nop
+               if false then super # no auto super init call
                show(4)
                _a1 = new Integer(10)
                show(5)
index 1d0ddab..ae29324 100644 (file)
@@ -18,7 +18,7 @@ import end
 
 interface Object
 end
-
+enum Bool end
 enum Int
        fun output is intern
        fun +(o: Int): Int is intern
@@ -31,8 +31,8 @@ class Integer
 end
 
 class Foo
-       var a1: Integer
-       var a2: Integer
+       var a1: Integer is noinit
+       var a2: Integer is noinit
        fun run
        do
                _a1.output
@@ -58,7 +58,7 @@ end
 
 class Bar
        super Foo
-       var a3: Integer
+       var a3: Integer is noinit
        redef fun run
        do
                _a1.output
@@ -68,7 +68,7 @@ class Bar
 
        init
        do
-               nop
+               if false then super # no auto super init call
                #alt3#run
                _a1 = new Integer(10)
                #alt4#run_other(self)
index 3276d2c..03c7d88 100644 (file)
@@ -18,15 +18,15 @@ import end
 
 interface Object
 end
-
+enum Bool end
 enum Int
        fun output is intern
        fun +(o: Int): Int is intern
 end
 
 class Foo
-       var a1: Int
-       var a2: Int
+       var a1: Int is noinit
+       var a2: Int is noinit
        fun run
        do
                _a1.output
@@ -52,7 +52,7 @@ end
 
 class Bar
        super Foo
-       var a3: Int
+       var a3: Int is noinit
        redef fun run
        do
                _a1.output
@@ -62,7 +62,7 @@ class Bar
 
        init
        do
-               nop
+               if false then super # no auto super init call
                #alt3#run
                _a1 = 10
                #alt4#run_other(self)
index f78b9b5..22d361e 100644 (file)
@@ -18,9 +18,9 @@ class A
        protected fun proA(a: A) do end
        private fun priA(a: A) do end
 
-       var vpubA: nullable A is writable
-       protected var vproA: nullable A is protected writable
-       private var vpriA: nullable A
+       var vpubA: nullable A is writable, noinit
+       protected var vproA: nullable A is protected writable, noinit
+       private var vpriA: nullable A is noinit
 
        var vpubA2 = new A is writable
        protected var vproA2 = new A is protected writable
@@ -30,15 +30,15 @@ class A
        #alt2#protected fun proB(a: B) do end
        private fun priB(a: B) do end
 
-       #alt3#var vpubB: nullable B is writable
-       #alt4#protected var vproB: nullable B is protected writable
-       private var vpriB: nullable B
+       #alt3#var vpubB: nullable B is writable, noinit
+       #alt4#protected var vproB: nullable B is protected writable, noinit
+       private var vpriB: nullable B is noinit
 
        #alt5#var vpubB2 = new B is writable
        #alt6#protected var vproB2 = new B is protected writable
        private var vpriB2 = new B
 
-       init do end
+
 end
 
 private class B
@@ -46,9 +46,9 @@ private class B
        #alt7#protected fun proA(a: A) do end
        private fun priA(a: A) do end
 
-       var vpubA: nullable A is writable
-       #alt7#protected var vproA: nullable A is protected writable
-       private var vpriA: nullable A
+       var vpubA: nullable A is writable, noinit
+       #alt7#protected var vproA: nullable A is protected writable, noinit
+       private var vpriA: nullable A is noinit
 
        var vpubA2 = new A is writable
        #alt7#protected var vproA2 = new A is protected writable
@@ -58,13 +58,13 @@ private class B
        #alt7#protected fun proB(a: B) do end
        private fun priB(a: B) do end
 
-       var vpubB: nullable B is writable
-       #alt7#protected var vproB: nullable B is protected writable
-       private var vpriB: nullable B
+       var vpubB: nullable B is writable, noinit
+       #alt7#protected var vproB: nullable B is protected writable, noinit
+       private var vpriB: nullable B is noinit
 
        var vpubB2 = new B is writable
        #alt7#protected var vproB2 = new B is protected writable
        private var vpriB2 = new B
 
-       init do end
+
 end
index 89fff9e..23f8e73 100644 (file)
@@ -20,9 +20,9 @@ class C
        #alt2#protected fun proA(a: A) do end
        private fun priA(a: A) do end
 
-       #alt3#var vpubA: nullable A is writable
-       #alt4#protected var vproA: nullable A is protected writable
-       private var vpriA: nullable A
+       #alt3#var vpubA: nullable A is writable, noinit
+       #alt4#protected var vproA: nullable A is protected writable, noinit
+       private var vpriA: nullable A is noinit
 
        #alt5#var vpubA2 = new A is writable
        #alt6#protected var vproA2 = new A is protected writable
@@ -35,8 +35,8 @@ private class D
        fun pubA(a: A) do end
        private fun priA(a: A) do end
 
-       var vpubA: nullable A is writable
-       private var vpriA: nullable A
+       var vpubA: nullable A is writable, noinit
+       private var vpriA: nullable A is noinit
 
        var vpubA2 = new A is writable
        private var vpriA2 = new A
index a8a645f..76d0dd9 100644 (file)
@@ -33,10 +33,6 @@ class A
        do
                0.output
        end
-
-       init
-       do
-       end
 end
 
 class B
index 545092f..b05b4e8 100644 (file)
@@ -19,10 +19,10 @@ import base_virtual_type2
 
 class C
        super A
-       var tab: nullable Array[E] is writable
-       init do end
+       var tab: nullable Array[E] = null is writable
 end
 
+
 var c = new C
 c.tab = new Array[T]
 c.tab.add(new U)
index e599f1b..cf1dbd9 100644 (file)
@@ -18,13 +18,13 @@ import kernel
 
 class A[E]
        type T: E
-       var t: T
+       var t: T is noinit
        fun foo(t: T) do end
        fun foo2: T do return _t
        fun bar(t: A[T]) do end
        fun bar2: A[T] do return self
 
-       init do end
+
 end
 
 class B
index accbb45..f784635 100644 (file)
@@ -31,8 +31,7 @@ class WakeUpNode
        do
                _scheduler.add_event(self, d)
        end
-       var scheduler: Scheduler
-       init do end
+       var scheduler: Scheduler is noinit
 end
 
 class NodeSource
index 513e78e..1e1c5bd 100644 (file)
@@ -32,12 +32,7 @@ redef class Int
 end
 
 class Integer
-       var value: Int
-
-       init
-       do
-               value = 42
-       end
+       var value: Int = 42
 end
 
 var n = 100
index f5aaf0d..891a3d9 100644 (file)
@@ -208,8 +208,8 @@ end
 
 class Rayon
 private
-       var stock: Array[Produit]               # Des produits en stock
-       var rubrique: String                    # La catégorie des produits stockés
+       var stock: Array[Produit] is noinit             # Des produits en stock
+       var rubrique: String is noinit                  # La catégorie des produits stockés
 
        # Cette fonction est utilisé par to_s pour afficher un petit titre
        fun to_s_head: String
@@ -300,8 +300,6 @@ private
        # pour obtenir la quantité de clous dans le rayon, et :
        #       r.quantite("clous") = 15
        # pour mettre le nombre de clous Ã  15
-
-       init do end
 end
 
 class RayonNormal
index 744ff2b..99093f7 100644 (file)
@@ -21,7 +21,7 @@ end
 
 class A
        var o: Object = 'c'
-       var a: I
+       var a: I is noinit
        var b: nullable I = null
        #alt2#var c: I = self.a
        #alt3#var d: I = self.b.as(not null)
diff --git a/tests/sav/base_init_nosuper.res b/tests/sav/base_init_nosuper.res
new file mode 100644 (file)
index 0000000..1191247
--- /dev/null
@@ -0,0 +1,2 @@
+1
+2
diff --git a/tests/sav/base_init_nosuper_alt1.res b/tests/sav/base_init_nosuper_alt1.res
new file mode 100644 (file)
index 0000000..3328062
--- /dev/null
@@ -0,0 +1,3 @@
+1
+1
+2
diff --git a/tests/sav/base_init_nosuper_alt2.res b/tests/sav/base_init_nosuper_alt2.res
new file mode 100644 (file)
index 0000000..bc300cc
--- /dev/null
@@ -0,0 +1 @@
+alt/base_init_nosuper_alt2.nit:27,13--19: Error: nosuper only in `init`
diff --git a/tests/sav/base_init_nosuper_alt3.res b/tests/sav/base_init_nosuper_alt3.res
new file mode 100644 (file)
index 0000000..80861af
--- /dev/null
@@ -0,0 +1 @@
+alt/base_init_nosuper_alt3.nit:24,3--7: Error: method is annotated nosuper but a constructor call is present
index 855a24d..0d3a41d 100644 (file)
@@ -1,4 +1,4 @@
-Runtime error: Cast failed. Expected `NativeArray#0`, got `Bool` (../lib/standard/collection/array.nit:759)
+Runtime error: Cast failed. Expected `NativeArray#0`, got `Bool` (../lib/standard/collection/array.nit:753)
 NativeString
 N
 Nit
index dcea069..3134b52 100644 (file)
@@ -1,5 +1,5 @@
-Start ../src/test_parser.nit:17,1--152,1
-  AModule ../src/test_parser.nit:17,1--151,3
+Start ../src/test_parser.nit:17,1--147,1
+  AModule ../src/test_parser.nit:17,1--146,3
     AModuledecl ../src/test_parser.nit:17,1--18,18
       ADoc ../src/test_parser.nit:17,1--18,0
         TComment "# Program used to test the NIT parser\n" ../src/test_parser.nit:17,1--18,0
@@ -17,7 +17,7 @@ Start ../src/test_parser.nit:17,1--152,1
       TKwimport "import" ../src/test_parser.nit:21,1--6
       AModuleName ../src/test_parser.nit:21,8--18
         TId "parser_util" ../src/test_parser.nit:21,8--18
-    AStdClassdef ../src/test_parser.nit:23,1--42,3
+    AStdClassdef ../src/test_parser.nit:23,1--37,3
       APublicVisibility ../src/test_parser.nit:23,1
       AConcreteClasskind ../src/test_parser.nit:23,1--5
         TKwclass "class" ../src/test_parser.nit:23,1--5
@@ -26,13 +26,15 @@ Start ../src/test_parser.nit:17,1--152,1
         TKwsuper "super" ../src/test_parser.nit:24,2--6
         AType ../src/test_parser.nit:24,8--14
           TClassid "Visitor" ../src/test_parser.nit:24,8--14
-      AAttrPropdef ../src/test_parser.nit:25,2--22
+      AAttrPropdef ../src/test_parser.nit:25,2--26
         APrivateVisibility ../src/test_parser.nit:25,2--8
           TKwprivate "private" ../src/test_parser.nit:25,2--8
         TKwvar "var" ../src/test_parser.nit:25,10--12
         TId "rank" ../src/test_parser.nit:25,14--17
         AType ../src/test_parser.nit:25,20--22
           TClassid "Int" ../src/test_parser.nit:25,20--22
+        ADecIntExpr ../src/test_parser.nit:25,26
+          TNumber "0" ../src/test_parser.nit:25,26
       AConcreteMethPropdef ../src/test_parser.nit:26,2--36,4
         TKwredef "redef" ../src/test_parser.nit:26,2--6
         APublicVisibility ../src/test_parser.nit:26,8
@@ -167,873 +169,860 @@ Start ../src/test_parser.nit:17,1--152,1
               ADecIntExpr ../src/test_parser.nit:35,17
                 TNumber "1" ../src/test_parser.nit:35,17
           TKwend "end" ../src/test_parser.nit:36,2--4
-      AConcreteInitPropdef ../src/test_parser.nit:38,2--41,4
-        APublicVisibility ../src/test_parser.nit:38,2
-        TKwinit "init" ../src/test_parser.nit:38,2--5
-        ASignature ../src/test_parser.nit:40,3
-        ABlockExpr ../src/test_parser.nit:40,3--41,4
-          ACallAssignExpr ../src/test_parser.nit:40,3--10
-            AImplicitSelfExpr ../src/test_parser.nit:40,3
-            TId "rank" ../src/test_parser.nit:40,3--6
-            AListExprs ../src/test_parser.nit:40,8
-            TAssign "=" ../src/test_parser.nit:40,8
-            ADecIntExpr ../src/test_parser.nit:40,10
-              TNumber "0" ../src/test_parser.nit:40,10
-          TKwend "end" ../src/test_parser.nit:41,2--4
-      TKwend "end" ../src/test_parser.nit:42,1--3
-    AMainClassdef ../src/test_parser.nit:44,1--151,3
-      AMainMethPropdef ../src/test_parser.nit:44,1--151,3
-        ABlockExpr ../src/test_parser.nit:44,1--151,3
-          AVardeclExpr ../src/test_parser.nit:44,1--20
-            TKwvar "var" ../src/test_parser.nit:44,1--3
-            TId "no_print" ../src/test_parser.nit:44,5--12
-            TAssign "=" ../src/test_parser.nit:44,14
-            AFalseExpr ../src/test_parser.nit:44,16--20
-              TKwfalse "false" ../src/test_parser.nit:44,16--20
-          AVardeclExpr ../src/test_parser.nit:45,1--22
-            TKwvar "var" ../src/test_parser.nit:45,1--3
-            TId "only_lexer" ../src/test_parser.nit:45,5--14
-            TAssign "=" ../src/test_parser.nit:45,16
-            AFalseExpr ../src/test_parser.nit:45,18--22
-              TKwfalse "false" ../src/test_parser.nit:45,18--22
-          AVardeclExpr ../src/test_parser.nit:46,1--21
-            TKwvar "var" ../src/test_parser.nit:46,1--3
-            TId "need_help" ../src/test_parser.nit:46,5--13
-            TAssign "=" ../src/test_parser.nit:46,15
-            AFalseExpr ../src/test_parser.nit:46,17--21
-              TKwfalse "false" ../src/test_parser.nit:46,17--21
-          AVardeclExpr ../src/test_parser.nit:47,1--19
-            TKwvar "var" ../src/test_parser.nit:47,1--3
-            TId "no_file" ../src/test_parser.nit:47,5--11
-            TAssign "=" ../src/test_parser.nit:47,13
-            AFalseExpr ../src/test_parser.nit:47,15--19
-              TKwfalse "false" ../src/test_parser.nit:47,15--19
-          AVardeclExpr ../src/test_parser.nit:48,1--23
-            TKwvar "var" ../src/test_parser.nit:48,1--3
-            TId "interactive" ../src/test_parser.nit:48,5--15
-            TAssign "=" ../src/test_parser.nit:48,17
-            AFalseExpr ../src/test_parser.nit:48,19--23
-              TKwfalse "false" ../src/test_parser.nit:48,19--23
-          AWhileExpr ../src/test_parser.nit:50,1--68,3
-            TKwwhile "while" ../src/test_parser.nit:50,1--5
-            AAndExpr ../src/test_parser.nit:50,7--57
-              ANotExpr ../src/test_parser.nit:50,7--23
-                TKwnot "not" ../src/test_parser.nit:50,7--9
-                ACallExpr ../src/test_parser.nit:50,11--23
-                  ACallExpr ../src/test_parser.nit:50,11--14
-                    AImplicitSelfExpr ../src/test_parser.nit:50,11
-                    TId "args" ../src/test_parser.nit:50,11--14
-                    AListExprs ../src/test_parser.nit:50,14
-                  TId "is_empty" ../src/test_parser.nit:50,16--23
-                  AListExprs ../src/test_parser.nit:50,23
-              AEqExpr ../src/test_parser.nit:50,29--57
-                ACallExpr ../src/test_parser.nit:50,29--50
-                  ACallExpr ../src/test_parser.nit:50,29--44
-                    ACallExpr ../src/test_parser.nit:50,29--38
-                      ACallExpr ../src/test_parser.nit:50,29--32
-                        AImplicitSelfExpr ../src/test_parser.nit:50,29
-                        TId "args" ../src/test_parser.nit:50,29--32
-                        AListExprs ../src/test_parser.nit:50,32
-                      TId "first" ../src/test_parser.nit:50,34--38
-                      AListExprs ../src/test_parser.nit:50,38
-                    TId "chars" ../src/test_parser.nit:50,40--44
-                    AListExprs ../src/test_parser.nit:50,44
-                  TId "first" ../src/test_parser.nit:50,46--50
-                  AListExprs ../src/test_parser.nit:50,50
-                ACharExpr ../src/test_parser.nit:50,55--57
-                  TChar "\'-\'" ../src/test_parser.nit:50,55--57
-            TKwdo "do" ../src/test_parser.nit:50,59--60
-            ABlockExpr ../src/test_parser.nit:51,2--68,3
-              AIfExpr ../src/test_parser.nit:51,2--66,4
-                TKwif "if" ../src/test_parser.nit:51,2--3
-                AEqExpr ../src/test_parser.nit:51,5--22
-                  ACallExpr ../src/test_parser.nit:51,5--14
-                    ACallExpr ../src/test_parser.nit:51,5--8
-                      AImplicitSelfExpr ../src/test_parser.nit:51,5
-                      TId "args" ../src/test_parser.nit:51,5--8
-                      AListExprs ../src/test_parser.nit:51,8
-                    TId "first" ../src/test_parser.nit:51,10--14
-                    AListExprs ../src/test_parser.nit:51,14
-                  AStringExpr ../src/test_parser.nit:51,19--22
-                    TString "\"-n\"" ../src/test_parser.nit:51,19--22
-                ABlockExpr ../src/test_parser.nit:52,3--17
-                  ACallAssignExpr ../src/test_parser.nit:52,3--17
-                    AImplicitSelfExpr ../src/test_parser.nit:52,3
-                    TId "no_print" ../src/test_parser.nit:52,3--10
-                    AListExprs ../src/test_parser.nit:52,12
-                    TAssign "=" ../src/test_parser.nit:52,12
-                    ATrueExpr ../src/test_parser.nit:52,14--17
-                      TKwtrue "true" ../src/test_parser.nit:52,14--17
-                AIfExpr ../src/test_parser.nit:53,7--66,4
-                  TKwif "if" ../src/test_parser.nit:53,7--8
-                  AEqExpr ../src/test_parser.nit:53,10--27
-                    ACallExpr ../src/test_parser.nit:53,10--19
-                      ACallExpr ../src/test_parser.nit:53,10--13
-                        AImplicitSelfExpr ../src/test_parser.nit:53,10
-                        TId "args" ../src/test_parser.nit:53,10--13
-                        AListExprs ../src/test_parser.nit:53,13
-                      TId "first" ../src/test_parser.nit:53,15--19
-                      AListExprs ../src/test_parser.nit:53,19
-                    AStringExpr ../src/test_parser.nit:53,24--27
-                      TString "\"-l\"" ../src/test_parser.nit:53,24--27
-                  ABlockExpr ../src/test_parser.nit:54,3--19
-                    ACallAssignExpr ../src/test_parser.nit:54,3--19
-                      AImplicitSelfExpr ../src/test_parser.nit:54,3
-                      TId "only_lexer" ../src/test_parser.nit:54,3--12
-                      AListExprs ../src/test_parser.nit:54,14
-                      TAssign "=" ../src/test_parser.nit:54,14
-                      ATrueExpr ../src/test_parser.nit:54,16--19
-                        TKwtrue "true" ../src/test_parser.nit:54,16--19
-                  AIfExpr ../src/test_parser.nit:55,7--66,4
-                    TKwif "if" ../src/test_parser.nit:55,7--8
-                    AEqExpr ../src/test_parser.nit:55,10--27
-                      ACallExpr ../src/test_parser.nit:55,10--19
-                        ACallExpr ../src/test_parser.nit:55,10--13
-                          AImplicitSelfExpr ../src/test_parser.nit:55,10
-                          TId "args" ../src/test_parser.nit:55,10--13
-                          AListExprs ../src/test_parser.nit:55,13
-                        TId "first" ../src/test_parser.nit:55,15--19
-                        AListExprs ../src/test_parser.nit:55,19
-                      AStringExpr ../src/test_parser.nit:55,24--27
-                        TString "\"-p\"" ../src/test_parser.nit:55,24--27
-                    ABlockExpr ../src/test_parser.nit:56,3--20
-                      ACallAssignExpr ../src/test_parser.nit:56,3--20
-                        AImplicitSelfExpr ../src/test_parser.nit:56,3
-                        TId "only_lexer" ../src/test_parser.nit:56,3--12
-                        AListExprs ../src/test_parser.nit:56,14
-                        TAssign "=" ../src/test_parser.nit:56,14
-                        AFalseExpr ../src/test_parser.nit:56,16--20
-                          TKwfalse "false" ../src/test_parser.nit:56,16--20
-                    AIfExpr ../src/test_parser.nit:57,7--66,4
-                      TKwif "if" ../src/test_parser.nit:57,7--8
-                      AEqExpr ../src/test_parser.nit:57,10--27
-                        ACallExpr ../src/test_parser.nit:57,10--19
-                          ACallExpr ../src/test_parser.nit:57,10--13
-                            AImplicitSelfExpr ../src/test_parser.nit:57,10
-                            TId "args" ../src/test_parser.nit:57,10--13
-                            AListExprs ../src/test_parser.nit:57,13
-                          TId "first" ../src/test_parser.nit:57,15--19
-                          AListExprs ../src/test_parser.nit:57,19
-                        AStringExpr ../src/test_parser.nit:57,24--27
-                          TString "\"-e\"" ../src/test_parser.nit:57,24--27
-                      ABlockExpr ../src/test_parser.nit:58,3--16
-                        ACallAssignExpr ../src/test_parser.nit:58,3--16
-                          AImplicitSelfExpr ../src/test_parser.nit:58,3
-                          TId "no_file" ../src/test_parser.nit:58,3--9
-                          AListExprs ../src/test_parser.nit:58,11
-                          TAssign "=" ../src/test_parser.nit:58,11
-                          ATrueExpr ../src/test_parser.nit:58,13--16
-                            TKwtrue "true" ../src/test_parser.nit:58,13--16
-                      AIfExpr ../src/test_parser.nit:59,7--66,4
-                        TKwif "if" ../src/test_parser.nit:59,7--8
-                        AEqExpr ../src/test_parser.nit:59,10--27
-                          ACallExpr ../src/test_parser.nit:59,10--19
-                            ACallExpr ../src/test_parser.nit:59,10--13
-                              AImplicitSelfExpr ../src/test_parser.nit:59,10
-                              TId "args" ../src/test_parser.nit:59,10--13
-                              AListExprs ../src/test_parser.nit:59,13
-                            TId "first" ../src/test_parser.nit:59,15--19
-                            AListExprs ../src/test_parser.nit:59,19
-                          AStringExpr ../src/test_parser.nit:59,24--27
-                            TString "\"-i\"" ../src/test_parser.nit:59,24--27
-                        ABlockExpr ../src/test_parser.nit:60,3--20
-                          ACallAssignExpr ../src/test_parser.nit:60,3--20
-                            AImplicitSelfExpr ../src/test_parser.nit:60,3
-                            TId "interactive" ../src/test_parser.nit:60,3--13
-                            AListExprs ../src/test_parser.nit:60,15
-                            TAssign "=" ../src/test_parser.nit:60,15
-                            ATrueExpr ../src/test_parser.nit:60,17--20
-                              TKwtrue "true" ../src/test_parser.nit:60,17--20
-                        AIfExpr ../src/test_parser.nit:61,7--66,4
-                          TKwif "if" ../src/test_parser.nit:61,7--8
-                          AOrExpr ../src/test_parser.nit:61,10--49
-                            AEqExpr ../src/test_parser.nit:61,10--27
-                              ACallExpr ../src/test_parser.nit:61,10--19
-                                ACallExpr ../src/test_parser.nit:61,10--13
-                                  AImplicitSelfExpr ../src/test_parser.nit:61,10
-                                  TId "args" ../src/test_parser.nit:61,10--13
-                                  AListExprs ../src/test_parser.nit:61,13
-                                TId "first" ../src/test_parser.nit:61,15--19
-                                AListExprs ../src/test_parser.nit:61,19
-                              AStringExpr ../src/test_parser.nit:61,24--27
-                                TString "\"-h\"" ../src/test_parser.nit:61,24--27
-                            AEqExpr ../src/test_parser.nit:61,32--49
-                              ACallExpr ../src/test_parser.nit:61,32--41
-                                ACallExpr ../src/test_parser.nit:61,32--35
-                                  AImplicitSelfExpr ../src/test_parser.nit:61,32
-                                  TId "args" ../src/test_parser.nit:61,32--35
-                                  AListExprs ../src/test_parser.nit:61,35
-                                TId "first" ../src/test_parser.nit:61,37--41
-                                AListExprs ../src/test_parser.nit:61,41
-                              AStringExpr ../src/test_parser.nit:61,46--49
-                                TString "\"-?\"" ../src/test_parser.nit:61,46--49
-                          ABlockExpr ../src/test_parser.nit:62,3--18
-                            ACallAssignExpr ../src/test_parser.nit:62,3--18
-                              AImplicitSelfExpr ../src/test_parser.nit:62,3
-                              TId "need_help" ../src/test_parser.nit:62,3--11
-                              AListExprs ../src/test_parser.nit:62,13
-                              TAssign "=" ../src/test_parser.nit:62,13
-                              ATrueExpr ../src/test_parser.nit:62,15--18
-                                TKwtrue "true" ../src/test_parser.nit:62,15--18
-                          ABlockExpr ../src/test_parser.nit:64,3--66,4
-                            ACallExpr ../src/test_parser.nit:64,3--48
-                              ACallExpr ../src/test_parser.nit:64,3--8
-                                AImplicitSelfExpr ../src/test_parser.nit:64,3
-                                TId "stderr" ../src/test_parser.nit:64,3--8
-                                AListExprs ../src/test_parser.nit:64,8
-                              TId "write" ../src/test_parser.nit:64,10--14
-                              AParExprs ../src/test_parser.nit:64,15--48
-                                TOpar "(" ../src/test_parser.nit:64,15
-                                ASuperstringExpr ../src/test_parser.nit:64,16--47
-                                  AStartStringExpr ../src/test_parser.nit:64,16--32
-                                    TStartString "\"Unknown option {" ../src/test_parser.nit:64,16--32
-                                  ACallExpr ../src/test_parser.nit:64,33--42
-                                    ACallExpr ../src/test_parser.nit:64,33--36
-                                      AImplicitSelfExpr ../src/test_parser.nit:64,33
-                                      TId "args" ../src/test_parser.nit:64,33--36
-                                      AListExprs ../src/test_parser.nit:64,36
-                                    TId "first" ../src/test_parser.nit:64,38--42
-                                    AListExprs ../src/test_parser.nit:64,42
-                                  AEndStringExpr ../src/test_parser.nit:64,43--47
-                                    TEndString "}.\\n\"" ../src/test_parser.nit:64,43--47
-                                TCpar ")" ../src/test_parser.nit:64,48
-                            ACallExpr ../src/test_parser.nit:65,3--9
-                              AImplicitSelfExpr ../src/test_parser.nit:65,3
-                              TId "exit" ../src/test_parser.nit:65,3--6
-                              AParExprs ../src/test_parser.nit:65,7--9
-                                TOpar "(" ../src/test_parser.nit:65,7
-                                ADecIntExpr ../src/test_parser.nit:65,8
-                                  TNumber "0" ../src/test_parser.nit:65,8
-                                TCpar ")" ../src/test_parser.nit:65,9
-                            TKwend "end" ../src/test_parser.nit:66,2--4
-              ACallExpr ../src/test_parser.nit:67,2--11
-                ACallExpr ../src/test_parser.nit:67,2--5
-                  AImplicitSelfExpr ../src/test_parser.nit:67,2
-                  TId "args" ../src/test_parser.nit:67,2--5
-                  AListExprs ../src/test_parser.nit:67,5
-                TId "shift" ../src/test_parser.nit:67,7--11
-                AListExprs ../src/test_parser.nit:67,11
-              TKwend "end" ../src/test_parser.nit:68,1--3
-          AIfExpr ../src/test_parser.nit:70,1--151,3
-            TKwif "if" ../src/test_parser.nit:70,1--2
-            AOrExpr ../src/test_parser.nit:70,4--51
-              AParExpr ../src/test_parser.nit:70,4--38
-                TOpar "(" ../src/test_parser.nit:70,4
-                AAndExpr ../src/test_parser.nit:70,5--37
-                  ACallExpr ../src/test_parser.nit:70,5--17
-                    ACallExpr ../src/test_parser.nit:70,5--8
-                      AImplicitSelfExpr ../src/test_parser.nit:70,5
-                      TId "args" ../src/test_parser.nit:70,5--8
-                      AListExprs ../src/test_parser.nit:70,8
-                    TId "is_empty" ../src/test_parser.nit:70,10--17
-                    AListExprs ../src/test_parser.nit:70,17
-                  ANotExpr ../src/test_parser.nit:70,23--37
-                    TKwnot "not" ../src/test_parser.nit:70,23--25
-                    ACallExpr ../src/test_parser.nit:70,27--37
-                      AImplicitSelfExpr ../src/test_parser.nit:70,27
-                      TId "interactive" ../src/test_parser.nit:70,27--37
-                      AListExprs ../src/test_parser.nit:70,37
-                TCpar ")" ../src/test_parser.nit:70,38
-              ACallExpr ../src/test_parser.nit:70,43--51
-                AImplicitSelfExpr ../src/test_parser.nit:70,43
-                TId "need_help" ../src/test_parser.nit:70,43--51
-                AListExprs ../src/test_parser.nit:70,51
-            ABlockExpr ../src/test_parser.nit:71,2--81,30
-              ACallExpr ../src/test_parser.nit:71,2--16
+      TKwend "end" ../src/test_parser.nit:37,1--3
+    AMainClassdef ../src/test_parser.nit:39,1--146,3
+      AMainMethPropdef ../src/test_parser.nit:39,1--146,3
+        ABlockExpr ../src/test_parser.nit:39,1--146,3
+          AVardeclExpr ../src/test_parser.nit:39,1--20
+            TKwvar "var" ../src/test_parser.nit:39,1--3
+            TId "no_print" ../src/test_parser.nit:39,5--12
+            TAssign "=" ../src/test_parser.nit:39,14
+            AFalseExpr ../src/test_parser.nit:39,16--20
+              TKwfalse "false" ../src/test_parser.nit:39,16--20
+          AVardeclExpr ../src/test_parser.nit:40,1--22
+            TKwvar "var" ../src/test_parser.nit:40,1--3
+            TId "only_lexer" ../src/test_parser.nit:40,5--14
+            TAssign "=" ../src/test_parser.nit:40,16
+            AFalseExpr ../src/test_parser.nit:40,18--22
+              TKwfalse "false" ../src/test_parser.nit:40,18--22
+          AVardeclExpr ../src/test_parser.nit:41,1--21
+            TKwvar "var" ../src/test_parser.nit:41,1--3
+            TId "need_help" ../src/test_parser.nit:41,5--13
+            TAssign "=" ../src/test_parser.nit:41,15
+            AFalseExpr ../src/test_parser.nit:41,17--21
+              TKwfalse "false" ../src/test_parser.nit:41,17--21
+          AVardeclExpr ../src/test_parser.nit:42,1--19
+            TKwvar "var" ../src/test_parser.nit:42,1--3
+            TId "no_file" ../src/test_parser.nit:42,5--11
+            TAssign "=" ../src/test_parser.nit:42,13
+            AFalseExpr ../src/test_parser.nit:42,15--19
+              TKwfalse "false" ../src/test_parser.nit:42,15--19
+          AVardeclExpr ../src/test_parser.nit:43,1--23
+            TKwvar "var" ../src/test_parser.nit:43,1--3
+            TId "interactive" ../src/test_parser.nit:43,5--15
+            TAssign "=" ../src/test_parser.nit:43,17
+            AFalseExpr ../src/test_parser.nit:43,19--23
+              TKwfalse "false" ../src/test_parser.nit:43,19--23
+          AWhileExpr ../src/test_parser.nit:45,1--63,3
+            TKwwhile "while" ../src/test_parser.nit:45,1--5
+            AAndExpr ../src/test_parser.nit:45,7--57
+              ANotExpr ../src/test_parser.nit:45,7--23
+                TKwnot "not" ../src/test_parser.nit:45,7--9
+                ACallExpr ../src/test_parser.nit:45,11--23
+                  ACallExpr ../src/test_parser.nit:45,11--14
+                    AImplicitSelfExpr ../src/test_parser.nit:45,11
+                    TId "args" ../src/test_parser.nit:45,11--14
+                    AListExprs ../src/test_parser.nit:45,14
+                  TId "is_empty" ../src/test_parser.nit:45,16--23
+                  AListExprs ../src/test_parser.nit:45,23
+              AEqExpr ../src/test_parser.nit:45,29--57
+                ACallExpr ../src/test_parser.nit:45,29--50
+                  ACallExpr ../src/test_parser.nit:45,29--44
+                    ACallExpr ../src/test_parser.nit:45,29--38
+                      ACallExpr ../src/test_parser.nit:45,29--32
+                        AImplicitSelfExpr ../src/test_parser.nit:45,29
+                        TId "args" ../src/test_parser.nit:45,29--32
+                        AListExprs ../src/test_parser.nit:45,32
+                      TId "first" ../src/test_parser.nit:45,34--38
+                      AListExprs ../src/test_parser.nit:45,38
+                    TId "chars" ../src/test_parser.nit:45,40--44
+                    AListExprs ../src/test_parser.nit:45,44
+                  TId "first" ../src/test_parser.nit:45,46--50
+                  AListExprs ../src/test_parser.nit:45,50
+                ACharExpr ../src/test_parser.nit:45,55--57
+                  TChar "\'-\'" ../src/test_parser.nit:45,55--57
+            TKwdo "do" ../src/test_parser.nit:45,59--60
+            ABlockExpr ../src/test_parser.nit:46,2--63,3
+              AIfExpr ../src/test_parser.nit:46,2--61,4
+                TKwif "if" ../src/test_parser.nit:46,2--3
+                AEqExpr ../src/test_parser.nit:46,5--22
+                  ACallExpr ../src/test_parser.nit:46,5--14
+                    ACallExpr ../src/test_parser.nit:46,5--8
+                      AImplicitSelfExpr ../src/test_parser.nit:46,5
+                      TId "args" ../src/test_parser.nit:46,5--8
+                      AListExprs ../src/test_parser.nit:46,8
+                    TId "first" ../src/test_parser.nit:46,10--14
+                    AListExprs ../src/test_parser.nit:46,14
+                  AStringExpr ../src/test_parser.nit:46,19--22
+                    TString "\"-n\"" ../src/test_parser.nit:46,19--22
+                ABlockExpr ../src/test_parser.nit:47,3--17
+                  ACallAssignExpr ../src/test_parser.nit:47,3--17
+                    AImplicitSelfExpr ../src/test_parser.nit:47,3
+                    TId "no_print" ../src/test_parser.nit:47,3--10
+                    AListExprs ../src/test_parser.nit:47,12
+                    TAssign "=" ../src/test_parser.nit:47,12
+                    ATrueExpr ../src/test_parser.nit:47,14--17
+                      TKwtrue "true" ../src/test_parser.nit:47,14--17
+                AIfExpr ../src/test_parser.nit:48,7--61,4
+                  TKwif "if" ../src/test_parser.nit:48,7--8
+                  AEqExpr ../src/test_parser.nit:48,10--27
+                    ACallExpr ../src/test_parser.nit:48,10--19
+                      ACallExpr ../src/test_parser.nit:48,10--13
+                        AImplicitSelfExpr ../src/test_parser.nit:48,10
+                        TId "args" ../src/test_parser.nit:48,10--13
+                        AListExprs ../src/test_parser.nit:48,13
+                      TId "first" ../src/test_parser.nit:48,15--19
+                      AListExprs ../src/test_parser.nit:48,19
+                    AStringExpr ../src/test_parser.nit:48,24--27
+                      TString "\"-l\"" ../src/test_parser.nit:48,24--27
+                  ABlockExpr ../src/test_parser.nit:49,3--19
+                    ACallAssignExpr ../src/test_parser.nit:49,3--19
+                      AImplicitSelfExpr ../src/test_parser.nit:49,3
+                      TId "only_lexer" ../src/test_parser.nit:49,3--12
+                      AListExprs ../src/test_parser.nit:49,14
+                      TAssign "=" ../src/test_parser.nit:49,14
+                      ATrueExpr ../src/test_parser.nit:49,16--19
+                        TKwtrue "true" ../src/test_parser.nit:49,16--19
+                  AIfExpr ../src/test_parser.nit:50,7--61,4
+                    TKwif "if" ../src/test_parser.nit:50,7--8
+                    AEqExpr ../src/test_parser.nit:50,10--27
+                      ACallExpr ../src/test_parser.nit:50,10--19
+                        ACallExpr ../src/test_parser.nit:50,10--13
+                          AImplicitSelfExpr ../src/test_parser.nit:50,10
+                          TId "args" ../src/test_parser.nit:50,10--13
+                          AListExprs ../src/test_parser.nit:50,13
+                        TId "first" ../src/test_parser.nit:50,15--19
+                        AListExprs ../src/test_parser.nit:50,19
+                      AStringExpr ../src/test_parser.nit:50,24--27
+                        TString "\"-p\"" ../src/test_parser.nit:50,24--27
+                    ABlockExpr ../src/test_parser.nit:51,3--20
+                      ACallAssignExpr ../src/test_parser.nit:51,3--20
+                        AImplicitSelfExpr ../src/test_parser.nit:51,3
+                        TId "only_lexer" ../src/test_parser.nit:51,3--12
+                        AListExprs ../src/test_parser.nit:51,14
+                        TAssign "=" ../src/test_parser.nit:51,14
+                        AFalseExpr ../src/test_parser.nit:51,16--20
+                          TKwfalse "false" ../src/test_parser.nit:51,16--20
+                    AIfExpr ../src/test_parser.nit:52,7--61,4
+                      TKwif "if" ../src/test_parser.nit:52,7--8
+                      AEqExpr ../src/test_parser.nit:52,10--27
+                        ACallExpr ../src/test_parser.nit:52,10--19
+                          ACallExpr ../src/test_parser.nit:52,10--13
+                            AImplicitSelfExpr ../src/test_parser.nit:52,10
+                            TId "args" ../src/test_parser.nit:52,10--13
+                            AListExprs ../src/test_parser.nit:52,13
+                          TId "first" ../src/test_parser.nit:52,15--19
+                          AListExprs ../src/test_parser.nit:52,19
+                        AStringExpr ../src/test_parser.nit:52,24--27
+                          TString "\"-e\"" ../src/test_parser.nit:52,24--27
+                      ABlockExpr ../src/test_parser.nit:53,3--16
+                        ACallAssignExpr ../src/test_parser.nit:53,3--16
+                          AImplicitSelfExpr ../src/test_parser.nit:53,3
+                          TId "no_file" ../src/test_parser.nit:53,3--9
+                          AListExprs ../src/test_parser.nit:53,11
+                          TAssign "=" ../src/test_parser.nit:53,11
+                          ATrueExpr ../src/test_parser.nit:53,13--16
+                            TKwtrue "true" ../src/test_parser.nit:53,13--16
+                      AIfExpr ../src/test_parser.nit:54,7--61,4
+                        TKwif "if" ../src/test_parser.nit:54,7--8
+                        AEqExpr ../src/test_parser.nit:54,10--27
+                          ACallExpr ../src/test_parser.nit:54,10--19
+                            ACallExpr ../src/test_parser.nit:54,10--13
+                              AImplicitSelfExpr ../src/test_parser.nit:54,10
+                              TId "args" ../src/test_parser.nit:54,10--13
+                              AListExprs ../src/test_parser.nit:54,13
+                            TId "first" ../src/test_parser.nit:54,15--19
+                            AListExprs ../src/test_parser.nit:54,19
+                          AStringExpr ../src/test_parser.nit:54,24--27
+                            TString "\"-i\"" ../src/test_parser.nit:54,24--27
+                        ABlockExpr ../src/test_parser.nit:55,3--20
+                          ACallAssignExpr ../src/test_parser.nit:55,3--20
+                            AImplicitSelfExpr ../src/test_parser.nit:55,3
+                            TId "interactive" ../src/test_parser.nit:55,3--13
+                            AListExprs ../src/test_parser.nit:55,15
+                            TAssign "=" ../src/test_parser.nit:55,15
+                            ATrueExpr ../src/test_parser.nit:55,17--20
+                              TKwtrue "true" ../src/test_parser.nit:55,17--20
+                        AIfExpr ../src/test_parser.nit:56,7--61,4
+                          TKwif "if" ../src/test_parser.nit:56,7--8
+                          AOrExpr ../src/test_parser.nit:56,10--49
+                            AEqExpr ../src/test_parser.nit:56,10--27
+                              ACallExpr ../src/test_parser.nit:56,10--19
+                                ACallExpr ../src/test_parser.nit:56,10--13
+                                  AImplicitSelfExpr ../src/test_parser.nit:56,10
+                                  TId "args" ../src/test_parser.nit:56,10--13
+                                  AListExprs ../src/test_parser.nit:56,13
+                                TId "first" ../src/test_parser.nit:56,15--19
+                                AListExprs ../src/test_parser.nit:56,19
+                              AStringExpr ../src/test_parser.nit:56,24--27
+                                TString "\"-h\"" ../src/test_parser.nit:56,24--27
+                            AEqExpr ../src/test_parser.nit:56,32--49
+                              ACallExpr ../src/test_parser.nit:56,32--41
+                                ACallExpr ../src/test_parser.nit:56,32--35
+                                  AImplicitSelfExpr ../src/test_parser.nit:56,32
+                                  TId "args" ../src/test_parser.nit:56,32--35
+                                  AListExprs ../src/test_parser.nit:56,35
+                                TId "first" ../src/test_parser.nit:56,37--41
+                                AListExprs ../src/test_parser.nit:56,41
+                              AStringExpr ../src/test_parser.nit:56,46--49
+                                TString "\"-?\"" ../src/test_parser.nit:56,46--49
+                          ABlockExpr ../src/test_parser.nit:57,3--18
+                            ACallAssignExpr ../src/test_parser.nit:57,3--18
+                              AImplicitSelfExpr ../src/test_parser.nit:57,3
+                              TId "need_help" ../src/test_parser.nit:57,3--11
+                              AListExprs ../src/test_parser.nit:57,13
+                              TAssign "=" ../src/test_parser.nit:57,13
+                              ATrueExpr ../src/test_parser.nit:57,15--18
+                                TKwtrue "true" ../src/test_parser.nit:57,15--18
+                          ABlockExpr ../src/test_parser.nit:59,3--61,4
+                            ACallExpr ../src/test_parser.nit:59,3--48
+                              ACallExpr ../src/test_parser.nit:59,3--8
+                                AImplicitSelfExpr ../src/test_parser.nit:59,3
+                                TId "stderr" ../src/test_parser.nit:59,3--8
+                                AListExprs ../src/test_parser.nit:59,8
+                              TId "write" ../src/test_parser.nit:59,10--14
+                              AParExprs ../src/test_parser.nit:59,15--48
+                                TOpar "(" ../src/test_parser.nit:59,15
+                                ASuperstringExpr ../src/test_parser.nit:59,16--47
+                                  AStartStringExpr ../src/test_parser.nit:59,16--32
+                                    TStartString "\"Unknown option {" ../src/test_parser.nit:59,16--32
+                                  ACallExpr ../src/test_parser.nit:59,33--42
+                                    ACallExpr ../src/test_parser.nit:59,33--36
+                                      AImplicitSelfExpr ../src/test_parser.nit:59,33
+                                      TId "args" ../src/test_parser.nit:59,33--36
+                                      AListExprs ../src/test_parser.nit:59,36
+                                    TId "first" ../src/test_parser.nit:59,38--42
+                                    AListExprs ../src/test_parser.nit:59,42
+                                  AEndStringExpr ../src/test_parser.nit:59,43--47
+                                    TEndString "}.\\n\"" ../src/test_parser.nit:59,43--47
+                                TCpar ")" ../src/test_parser.nit:59,48
+                            ACallExpr ../src/test_parser.nit:60,3--9
+                              AImplicitSelfExpr ../src/test_parser.nit:60,3
+                              TId "exit" ../src/test_parser.nit:60,3--6
+                              AParExprs ../src/test_parser.nit:60,7--9
+                                TOpar "(" ../src/test_parser.nit:60,7
+                                ADecIntExpr ../src/test_parser.nit:60,8
+                                  TNumber "0" ../src/test_parser.nit:60,8
+                                TCpar ")" ../src/test_parser.nit:60,9
+                            TKwend "end" ../src/test_parser.nit:61,2--4
+              ACallExpr ../src/test_parser.nit:62,2--11
+                ACallExpr ../src/test_parser.nit:62,2--5
+                  AImplicitSelfExpr ../src/test_parser.nit:62,2
+                  TId "args" ../src/test_parser.nit:62,2--5
+                  AListExprs ../src/test_parser.nit:62,5
+                TId "shift" ../src/test_parser.nit:62,7--11
+                AListExprs ../src/test_parser.nit:62,11
+              TKwend "end" ../src/test_parser.nit:63,1--3
+          AIfExpr ../src/test_parser.nit:65,1--146,3
+            TKwif "if" ../src/test_parser.nit:65,1--2
+            AOrExpr ../src/test_parser.nit:65,4--51
+              AParExpr ../src/test_parser.nit:65,4--38
+                TOpar "(" ../src/test_parser.nit:65,4
+                AAndExpr ../src/test_parser.nit:65,5--37
+                  ACallExpr ../src/test_parser.nit:65,5--17
+                    ACallExpr ../src/test_parser.nit:65,5--8
+                      AImplicitSelfExpr ../src/test_parser.nit:65,5
+                      TId "args" ../src/test_parser.nit:65,5--8
+                      AListExprs ../src/test_parser.nit:65,8
+                    TId "is_empty" ../src/test_parser.nit:65,10--17
+                    AListExprs ../src/test_parser.nit:65,17
+                  ANotExpr ../src/test_parser.nit:65,23--37
+                    TKwnot "not" ../src/test_parser.nit:65,23--25
+                    ACallExpr ../src/test_parser.nit:65,27--37
+                      AImplicitSelfExpr ../src/test_parser.nit:65,27
+                      TId "interactive" ../src/test_parser.nit:65,27--37
+                      AListExprs ../src/test_parser.nit:65,37
+                TCpar ")" ../src/test_parser.nit:65,38
+              ACallExpr ../src/test_parser.nit:65,43--51
+                AImplicitSelfExpr ../src/test_parser.nit:65,43
+                TId "need_help" ../src/test_parser.nit:65,43--51
+                AListExprs ../src/test_parser.nit:65,51
+            ABlockExpr ../src/test_parser.nit:66,2--76,30
+              ACallExpr ../src/test_parser.nit:66,2--16
+                AImplicitSelfExpr ../src/test_parser.nit:66,2
+                TId "print" ../src/test_parser.nit:66,2--6
+                AParExprs ../src/test_parser.nit:66,7--16
+                  TOpar "(" ../src/test_parser.nit:66,7
+                  AStringExpr ../src/test_parser.nit:66,8--15
+                    TString "\"usage:\"" ../src/test_parser.nit:66,8--15
+                  TCpar ")" ../src/test_parser.nit:66,16
+              ACallExpr ../src/test_parser.nit:67,2--54
+                AImplicitSelfExpr ../src/test_parser.nit:67,2
+                TId "print" ../src/test_parser.nit:67,2--6
+                AParExprs ../src/test_parser.nit:67,7--54
+                  TOpar "(" ../src/test_parser.nit:67,7
+                  AStringExpr ../src/test_parser.nit:67,8--53
+                    TString "\"  test_parser [options]... <filename.nit>...\"" ../src/test_parser.nit:67,8--53
+                  TCpar ")" ../src/test_parser.nit:67,54
+              ACallExpr ../src/test_parser.nit:68,2--49
+                AImplicitSelfExpr ../src/test_parser.nit:68,2
+                TId "print" ../src/test_parser.nit:68,2--6
+                AParExprs ../src/test_parser.nit:68,7--49
+                  TOpar "(" ../src/test_parser.nit:68,7
+                  AStringExpr ../src/test_parser.nit:68,8--48
+                    TString "\"  test_parser -e [options]... <text>...\"" ../src/test_parser.nit:68,8--48
+                  TCpar ")" ../src/test_parser.nit:68,49
+              ACallExpr ../src/test_parser.nit:69,2--39
+                AImplicitSelfExpr ../src/test_parser.nit:69,2
+                TId "print" ../src/test_parser.nit:69,2--6
+                AParExprs ../src/test_parser.nit:69,7--39
+                  TOpar "(" ../src/test_parser.nit:69,7
+                  AStringExpr ../src/test_parser.nit:69,8--38
+                    TString "\"  test_parser -i [options]...\"" ../src/test_parser.nit:69,8--38
+                  TCpar ")" ../src/test_parser.nit:69,39
+              ACallExpr ../src/test_parser.nit:70,2--18
+                AImplicitSelfExpr ../src/test_parser.nit:70,2
+                TId "print" ../src/test_parser.nit:70,2--6
+                AParExprs ../src/test_parser.nit:70,7--18
+                  TOpar "(" ../src/test_parser.nit:70,7
+                  AStringExpr ../src/test_parser.nit:70,8--17
+                    TString "\"options:\"" ../src/test_parser.nit:70,8--17
+                  TCpar ")" ../src/test_parser.nit:70,18
+              ACallExpr ../src/test_parser.nit:71,2--36
                 AImplicitSelfExpr ../src/test_parser.nit:71,2
                 TId "print" ../src/test_parser.nit:71,2--6
-                AParExprs ../src/test_parser.nit:71,7--16
+                AParExprs ../src/test_parser.nit:71,7--36
                   TOpar "(" ../src/test_parser.nit:71,7
-                  AStringExpr ../src/test_parser.nit:71,8--15
-                    TString "\"usage:\"" ../src/test_parser.nit:71,8--15
-                  TCpar ")" ../src/test_parser.nit:71,16
-              ACallExpr ../src/test_parser.nit:72,2--54
+                  AStringExpr ../src/test_parser.nit:71,8--35
+                    TString "\"  -n\11do not print anything\"" ../src/test_parser.nit:71,8--35
+                  TCpar ")" ../src/test_parser.nit:71,36
+              ACallExpr ../src/test_parser.nit:72,2--25
                 AImplicitSelfExpr ../src/test_parser.nit:72,2
                 TId "print" ../src/test_parser.nit:72,2--6
-                AParExprs ../src/test_parser.nit:72,7--54
+                AParExprs ../src/test_parser.nit:72,7--25
                   TOpar "(" ../src/test_parser.nit:72,7
-                  AStringExpr ../src/test_parser.nit:72,8--53
-                    TString "\"  test_parser [options]... <filename.nit>...\"" ../src/test_parser.nit:72,8--53
-                  TCpar ")" ../src/test_parser.nit:72,54
-              ACallExpr ../src/test_parser.nit:73,2--49
+                  AStringExpr ../src/test_parser.nit:72,8--24
+                    TString "\"  -l\11only lexer\"" ../src/test_parser.nit:72,8--24
+                  TCpar ")" ../src/test_parser.nit:72,25
+              ACallExpr ../src/test_parser.nit:73,2--41
                 AImplicitSelfExpr ../src/test_parser.nit:73,2
                 TId "print" ../src/test_parser.nit:73,2--6
-                AParExprs ../src/test_parser.nit:73,7--49
+                AParExprs ../src/test_parser.nit:73,7--41
                   TOpar "(" ../src/test_parser.nit:73,7
-                  AStringExpr ../src/test_parser.nit:73,8--48
-                    TString "\"  test_parser -e [options]... <text>...\"" ../src/test_parser.nit:73,8--48
-                  TCpar ")" ../src/test_parser.nit:73,49
-              ACallExpr ../src/test_parser.nit:74,2--39
+                  AStringExpr ../src/test_parser.nit:73,8--40
+                    TString "\"  -p\11lexer and parser (default)\"" ../src/test_parser.nit:73,8--40
+                  TCpar ")" ../src/test_parser.nit:73,41
+              ACallExpr ../src/test_parser.nit:74,2--68
                 AImplicitSelfExpr ../src/test_parser.nit:74,2
                 TId "print" ../src/test_parser.nit:74,2--6
-                AParExprs ../src/test_parser.nit:74,7--39
+                AParExprs ../src/test_parser.nit:74,7--68
                   TOpar "(" ../src/test_parser.nit:74,7
-                  AStringExpr ../src/test_parser.nit:74,8--38
-                    TString "\"  test_parser -i [options]...\"" ../src/test_parser.nit:74,8--38
-                  TCpar ")" ../src/test_parser.nit:74,39
-              ACallExpr ../src/test_parser.nit:75,2--18
+                  AStringExpr ../src/test_parser.nit:74,8--67
+                    TString "\"  -e\11instead on files, each argument is a content to parse\"" ../src/test_parser.nit:74,8--67
+                  TCpar ")" ../src/test_parser.nit:74,68
+              ACallExpr ../src/test_parser.nit:75,2--51
                 AImplicitSelfExpr ../src/test_parser.nit:75,2
                 TId "print" ../src/test_parser.nit:75,2--6
-                AParExprs ../src/test_parser.nit:75,7--18
+                AParExprs ../src/test_parser.nit:75,7--51
                   TOpar "(" ../src/test_parser.nit:75,7
-                  AStringExpr ../src/test_parser.nit:75,8--17
-                    TString "\"options:\"" ../src/test_parser.nit:75,8--17
-                  TCpar ")" ../src/test_parser.nit:75,18
-              ACallExpr ../src/test_parser.nit:76,2--36
+                  AStringExpr ../src/test_parser.nit:75,8--50
+                    TString "\"  -i\11tree to parse are read interactively\"" ../src/test_parser.nit:75,8--50
+                  TCpar ")" ../src/test_parser.nit:75,51
+              ACallExpr ../src/test_parser.nit:76,2--30
                 AImplicitSelfExpr ../src/test_parser.nit:76,2
                 TId "print" ../src/test_parser.nit:76,2--6
-                AParExprs ../src/test_parser.nit:76,7--36
+                AParExprs ../src/test_parser.nit:76,7--30
                   TOpar "(" ../src/test_parser.nit:76,7
-                  AStringExpr ../src/test_parser.nit:76,8--35
-                    TString "\"  -n\11do not print anything\"" ../src/test_parser.nit:76,8--35
-                  TCpar ")" ../src/test_parser.nit:76,36
-              ACallExpr ../src/test_parser.nit:77,2--25
-                AImplicitSelfExpr ../src/test_parser.nit:77,2
-                TId "print" ../src/test_parser.nit:77,2--6
-                AParExprs ../src/test_parser.nit:77,7--25
-                  TOpar "(" ../src/test_parser.nit:77,7
-                  AStringExpr ../src/test_parser.nit:77,8--24
-                    TString "\"  -l\11only lexer\"" ../src/test_parser.nit:77,8--24
-                  TCpar ")" ../src/test_parser.nit:77,25
-              ACallExpr ../src/test_parser.nit:78,2--41
-                AImplicitSelfExpr ../src/test_parser.nit:78,2
-                TId "print" ../src/test_parser.nit:78,2--6
-                AParExprs ../src/test_parser.nit:78,7--41
-                  TOpar "(" ../src/test_parser.nit:78,7
-                  AStringExpr ../src/test_parser.nit:78,8--40
-                    TString "\"  -p\11lexer and parser (default)\"" ../src/test_parser.nit:78,8--40
-                  TCpar ")" ../src/test_parser.nit:78,41
-              ACallExpr ../src/test_parser.nit:79,2--68
-                AImplicitSelfExpr ../src/test_parser.nit:79,2
-                TId "print" ../src/test_parser.nit:79,2--6
-                AParExprs ../src/test_parser.nit:79,7--68
-                  TOpar "(" ../src/test_parser.nit:79,7
-                  AStringExpr ../src/test_parser.nit:79,8--67
-                    TString "\"  -e\11instead on files, each argument is a content to parse\"" ../src/test_parser.nit:79,8--67
-                  TCpar ")" ../src/test_parser.nit:79,68
-              ACallExpr ../src/test_parser.nit:80,2--51
-                AImplicitSelfExpr ../src/test_parser.nit:80,2
-                TId "print" ../src/test_parser.nit:80,2--6
-                AParExprs ../src/test_parser.nit:80,7--51
-                  TOpar "(" ../src/test_parser.nit:80,7
-                  AStringExpr ../src/test_parser.nit:80,8--50
-                    TString "\"  -i\11tree to parse are read interactively\"" ../src/test_parser.nit:80,8--50
-                  TCpar ")" ../src/test_parser.nit:80,51
-              ACallExpr ../src/test_parser.nit:81,2--30
-                AImplicitSelfExpr ../src/test_parser.nit:81,2
-                TId "print" ../src/test_parser.nit:81,2--6
-                AParExprs ../src/test_parser.nit:81,7--30
-                  TOpar "(" ../src/test_parser.nit:81,7
-                  AStringExpr ../src/test_parser.nit:81,8--29
-                    TString "\"  -h\11print this help\"" ../src/test_parser.nit:81,8--29
-                  TCpar ")" ../src/test_parser.nit:81,30
-            AIfExpr ../src/test_parser.nit:82,6--151,3
-              TKwif "if" ../src/test_parser.nit:82,6--7
-              ACallExpr ../src/test_parser.nit:82,9--19
-                AImplicitSelfExpr ../src/test_parser.nit:82,9
-                TId "interactive" ../src/test_parser.nit:82,9--19
-                AListExprs ../src/test_parser.nit:82,19
-              ABlockExpr ../src/test_parser.nit:83,2--116,4
-                AIfExpr ../src/test_parser.nit:83,2--92,4
-                  TKwif "if" ../src/test_parser.nit:83,2--3
-                  ACallExpr ../src/test_parser.nit:83,5--14
-                    AImplicitSelfExpr ../src/test_parser.nit:83,5
-                    TId "only_lexer" ../src/test_parser.nit:83,5--14
-                    AListExprs ../src/test_parser.nit:83,14
-                  ABlockExpr ../src/test_parser.nit:84,3--85,8
-                    ACallExpr ../src/test_parser.nit:84,3--44
-                      AImplicitSelfExpr ../src/test_parser.nit:84,3
-                      TId "print" ../src/test_parser.nit:84,3--7
-                      AListExprs ../src/test_parser.nit:84,9--44
-                        AStringExpr ../src/test_parser.nit:84,9--44
-                          TString "\"Error: -l and -i are incompatibles\"" ../src/test_parser.nit:84,9--44
-                    ACallExpr ../src/test_parser.nit:85,3--8
-                      AImplicitSelfExpr ../src/test_parser.nit:85,3
-                      TId "exit" ../src/test_parser.nit:85,3--6
-                      AListExprs ../src/test_parser.nit:85,8
-                        ADecIntExpr ../src/test_parser.nit:85,8
-                          TNumber "1" ../src/test_parser.nit:85,8
-                  AIfExpr ../src/test_parser.nit:86,7--92,4
-                    TKwif "if" ../src/test_parser.nit:86,7--8
-                    ACallExpr ../src/test_parser.nit:86,10--16
-                      AImplicitSelfExpr ../src/test_parser.nit:86,10
-                      TId "no_file" ../src/test_parser.nit:86,10--16
-                      AListExprs ../src/test_parser.nit:86,16
-                    ABlockExpr ../src/test_parser.nit:87,3--88,8
-                      ACallExpr ../src/test_parser.nit:87,3--44
-                        AImplicitSelfExpr ../src/test_parser.nit:87,3
-                        TId "print" ../src/test_parser.nit:87,3--7
-                        AListExprs ../src/test_parser.nit:87,9--44
-                          AStringExpr ../src/test_parser.nit:87,9--44
-                            TString "\"Error: -e and -i are incompatibles\"" ../src/test_parser.nit:87,9--44
-                      ACallExpr ../src/test_parser.nit:88,3--8
-                        AImplicitSelfExpr ../src/test_parser.nit:88,3
-                        TId "exit" ../src/test_parser.nit:88,3--6
-                        AListExprs ../src/test_parser.nit:88,8
-                          ADecIntExpr ../src/test_parser.nit:88,8
-                            TNumber "1" ../src/test_parser.nit:88,8
-                    AIfExpr ../src/test_parser.nit:89,7--92,4
-                      TKwif "if" ../src/test_parser.nit:89,7--8
-                      ANotExpr ../src/test_parser.nit:89,10--26
-                        TKwnot "not" ../src/test_parser.nit:89,10--12
-                        ACallExpr ../src/test_parser.nit:89,14--26
-                          ACallExpr ../src/test_parser.nit:89,14--17
-                            AImplicitSelfExpr ../src/test_parser.nit:89,14
-                            TId "args" ../src/test_parser.nit:89,14--17
-                            AListExprs ../src/test_parser.nit:89,17
-                          TId "is_empty" ../src/test_parser.nit:89,19--26
-                          AListExprs ../src/test_parser.nit:89,26
-                      ABlockExpr ../src/test_parser.nit:90,3--91,8
-                        ACallExpr ../src/test_parser.nit:90,3--43
-                          AImplicitSelfExpr ../src/test_parser.nit:90,3
-                          TId "print" ../src/test_parser.nit:90,3--7
-                          AListExprs ../src/test_parser.nit:90,9--43
-                            AStringExpr ../src/test_parser.nit:90,9--43
-                              TString "\"Error: -i works without arguments\"" ../src/test_parser.nit:90,9--43
-                        ACallExpr ../src/test_parser.nit:91,3--8
-                          AImplicitSelfExpr ../src/test_parser.nit:91,3
-                          TId "exit" ../src/test_parser.nit:91,3--6
-                          AListExprs ../src/test_parser.nit:91,8
-                            ADecIntExpr ../src/test_parser.nit:91,8
-                              TNumber "1" ../src/test_parser.nit:91,8
-                      ABlockExpr ../src/test_parser.nit:92,2--4
-                        TKwend "end" ../src/test_parser.nit:92,2--4
-                AVardeclExpr ../src/test_parser.nit:94,2--25
-                  TKwvar "var" ../src/test_parser.nit:94,2--4
-                  TId "tc" ../src/test_parser.nit:94,6--7
-                  TAssign "=" ../src/test_parser.nit:94,9
-                  ANewExpr ../src/test_parser.nit:94,11--25
-                    TKwnew "new" ../src/test_parser.nit:94,11--13
-                    AType ../src/test_parser.nit:94,15--25
-                      TClassid "ToolContext" ../src/test_parser.nit:94,15--25
-                    AListExprs ../src/test_parser.nit:94,25
-                ALoopExpr ../src/test_parser.nit:96,2--116,4
-                  TKwloop "loop" ../src/test_parser.nit:96,2--5
-                  ABlockExpr ../src/test_parser.nit:97,3--116,4
-                    AVardeclExpr ../src/test_parser.nit:97,3--37
-                      TKwvar "var" ../src/test_parser.nit:97,3--5
-                      TId "n" ../src/test_parser.nit:97,7
-                      TAssign "=" ../src/test_parser.nit:97,9
-                      ACallExpr ../src/test_parser.nit:97,11--37
-                        ACallExpr ../src/test_parser.nit:97,11--12
-                          AImplicitSelfExpr ../src/test_parser.nit:97,11
-                          TId "tc" ../src/test_parser.nit:97,11--12
-                          AListExprs ../src/test_parser.nit:97,12
-                        TId "interactive_parse" ../src/test_parser.nit:97,14--30
-                        AParExprs ../src/test_parser.nit:97,31--37
-                          TOpar "(" ../src/test_parser.nit:97,31
-                          AStringExpr ../src/test_parser.nit:97,32--36
-                            TString "\"-->\"" ../src/test_parser.nit:97,32--36
-                          TCpar ")" ../src/test_parser.nit:97,37
-                    AIfExpr ../src/test_parser.nit:98,3--106,5
-                      TKwif "if" ../src/test_parser.nit:98,3--4
-                      AIsaExpr ../src/test_parser.nit:98,6--18
-                        ACallExpr ../src/test_parser.nit:98,6
-                          AImplicitSelfExpr ../src/test_parser.nit:98,6
-                          TId "n" ../src/test_parser.nit:98,6
-                          AListExprs ../src/test_parser.nit:98,6
-                        AType ../src/test_parser.nit:98,12--18
-                          TClassid "TString" ../src/test_parser.nit:98,12--18
-                      ABlockExpr ../src/test_parser.nit:99,4--105,11
-                        AVardeclExpr ../src/test_parser.nit:99,4--17
-                          TKwvar "var" ../src/test_parser.nit:99,4--6
-                          TId "s" ../src/test_parser.nit:99,8
-                          TAssign "=" ../src/test_parser.nit:99,10
-                          ACallExpr ../src/test_parser.nit:99,12--17
-                            ACallExpr ../src/test_parser.nit:99,12
-                              AImplicitSelfExpr ../src/test_parser.nit:99,12
-                              TId "n" ../src/test_parser.nit:99,12
-                              AListExprs ../src/test_parser.nit:99,12
-                            TId "text" ../src/test_parser.nit:99,14--17
-                            AListExprs ../src/test_parser.nit:99,17
-                        AIfExpr ../src/test_parser.nit:100,4--104,6
-                          TKwif "if" ../src/test_parser.nit:100,4--5
-                          AEqExpr ../src/test_parser.nit:100,7--15
-                            ACallExpr ../src/test_parser.nit:100,7
-                              AImplicitSelfExpr ../src/test_parser.nit:100,7
-                              TId "s" ../src/test_parser.nit:100,7
-                              AListExprs ../src/test_parser.nit:100,7
-                            AStringExpr ../src/test_parser.nit:100,12--15
-                              TString "\":q\"" ../src/test_parser.nit:100,12--15
-                          ABlockExpr ../src/test_parser.nit:101,5--9
-                            ABreakExpr ../src/test_parser.nit:101,5--9
-                              TKwbreak "break" ../src/test_parser.nit:101,5--9
-                          ABlockExpr ../src/test_parser.nit:103,5--104,6
-                            ACallExpr ../src/test_parser.nit:103,5--24
-                              AImplicitSelfExpr ../src/test_parser.nit:103,5
-                              TId "print" ../src/test_parser.nit:103,5--9
-                              AListExprs ../src/test_parser.nit:103,11--24
-                                AStringExpr ../src/test_parser.nit:103,11--24
-                                  TString "\"`:q` to quit\"" ../src/test_parser.nit:103,11--24
-                            TKwend "end" ../src/test_parser.nit:104,4--6
+                  AStringExpr ../src/test_parser.nit:76,8--29
+                    TString "\"  -h\11print this help\"" ../src/test_parser.nit:76,8--29
+                  TCpar ")" ../src/test_parser.nit:76,30
+            AIfExpr ../src/test_parser.nit:77,6--146,3
+              TKwif "if" ../src/test_parser.nit:77,6--7
+              ACallExpr ../src/test_parser.nit:77,9--19
+                AImplicitSelfExpr ../src/test_parser.nit:77,9
+                TId "interactive" ../src/test_parser.nit:77,9--19
+                AListExprs ../src/test_parser.nit:77,19
+              ABlockExpr ../src/test_parser.nit:78,2--111,4
+                AIfExpr ../src/test_parser.nit:78,2--87,4
+                  TKwif "if" ../src/test_parser.nit:78,2--3
+                  ACallExpr ../src/test_parser.nit:78,5--14
+                    AImplicitSelfExpr ../src/test_parser.nit:78,5
+                    TId "only_lexer" ../src/test_parser.nit:78,5--14
+                    AListExprs ../src/test_parser.nit:78,14
+                  ABlockExpr ../src/test_parser.nit:79,3--80,8
+                    ACallExpr ../src/test_parser.nit:79,3--44
+                      AImplicitSelfExpr ../src/test_parser.nit:79,3
+                      TId "print" ../src/test_parser.nit:79,3--7
+                      AListExprs ../src/test_parser.nit:79,9--44
+                        AStringExpr ../src/test_parser.nit:79,9--44
+                          TString "\"Error: -l and -i are incompatibles\"" ../src/test_parser.nit:79,9--44
+                    ACallExpr ../src/test_parser.nit:80,3--8
+                      AImplicitSelfExpr ../src/test_parser.nit:80,3
+                      TId "exit" ../src/test_parser.nit:80,3--6
+                      AListExprs ../src/test_parser.nit:80,8
+                        ADecIntExpr ../src/test_parser.nit:80,8
+                          TNumber "1" ../src/test_parser.nit:80,8
+                  AIfExpr ../src/test_parser.nit:81,7--87,4
+                    TKwif "if" ../src/test_parser.nit:81,7--8
+                    ACallExpr ../src/test_parser.nit:81,10--16
+                      AImplicitSelfExpr ../src/test_parser.nit:81,10
+                      TId "no_file" ../src/test_parser.nit:81,10--16
+                      AListExprs ../src/test_parser.nit:81,16
+                    ABlockExpr ../src/test_parser.nit:82,3--83,8
+                      ACallExpr ../src/test_parser.nit:82,3--44
+                        AImplicitSelfExpr ../src/test_parser.nit:82,3
+                        TId "print" ../src/test_parser.nit:82,3--7
+                        AListExprs ../src/test_parser.nit:82,9--44
+                          AStringExpr ../src/test_parser.nit:82,9--44
+                            TString "\"Error: -e and -i are incompatibles\"" ../src/test_parser.nit:82,9--44
+                      ACallExpr ../src/test_parser.nit:83,3--8
+                        AImplicitSelfExpr ../src/test_parser.nit:83,3
+                        TId "exit" ../src/test_parser.nit:83,3--6
+                        AListExprs ../src/test_parser.nit:83,8
+                          ADecIntExpr ../src/test_parser.nit:83,8
+                            TNumber "1" ../src/test_parser.nit:83,8
+                    AIfExpr ../src/test_parser.nit:84,7--87,4
+                      TKwif "if" ../src/test_parser.nit:84,7--8
+                      ANotExpr ../src/test_parser.nit:84,10--26
+                        TKwnot "not" ../src/test_parser.nit:84,10--12
+                        ACallExpr ../src/test_parser.nit:84,14--26
+                          ACallExpr ../src/test_parser.nit:84,14--17
+                            AImplicitSelfExpr ../src/test_parser.nit:84,14
+                            TId "args" ../src/test_parser.nit:84,14--17
+                            AListExprs ../src/test_parser.nit:84,17
+                          TId "is_empty" ../src/test_parser.nit:84,19--26
+                          AListExprs ../src/test_parser.nit:84,26
+                      ABlockExpr ../src/test_parser.nit:85,3--86,8
+                        ACallExpr ../src/test_parser.nit:85,3--43
+                          AImplicitSelfExpr ../src/test_parser.nit:85,3
+                          TId "print" ../src/test_parser.nit:85,3--7
+                          AListExprs ../src/test_parser.nit:85,9--43
+                            AStringExpr ../src/test_parser.nit:85,9--43
+                              TString "\"Error: -i works without arguments\"" ../src/test_parser.nit:85,9--43
+                        ACallExpr ../src/test_parser.nit:86,3--8
+                          AImplicitSelfExpr ../src/test_parser.nit:86,3
+                          TId "exit" ../src/test_parser.nit:86,3--6
+                          AListExprs ../src/test_parser.nit:86,8
+                            ADecIntExpr ../src/test_parser.nit:86,8
+                              TNumber "1" ../src/test_parser.nit:86,8
+                      ABlockExpr ../src/test_parser.nit:87,2--4
+                        TKwend "end" ../src/test_parser.nit:87,2--4
+                AVardeclExpr ../src/test_parser.nit:89,2--25
+                  TKwvar "var" ../src/test_parser.nit:89,2--4
+                  TId "tc" ../src/test_parser.nit:89,6--7
+                  TAssign "=" ../src/test_parser.nit:89,9
+                  ANewExpr ../src/test_parser.nit:89,11--25
+                    TKwnew "new" ../src/test_parser.nit:89,11--13
+                    AType ../src/test_parser.nit:89,15--25
+                      TClassid "ToolContext" ../src/test_parser.nit:89,15--25
+                    AListExprs ../src/test_parser.nit:89,25
+                ALoopExpr ../src/test_parser.nit:91,2--111,4
+                  TKwloop "loop" ../src/test_parser.nit:91,2--5
+                  ABlockExpr ../src/test_parser.nit:92,3--111,4
+                    AVardeclExpr ../src/test_parser.nit:92,3--37
+                      TKwvar "var" ../src/test_parser.nit:92,3--5
+                      TId "n" ../src/test_parser.nit:92,7
+                      TAssign "=" ../src/test_parser.nit:92,9
+                      ACallExpr ../src/test_parser.nit:92,11--37
+                        ACallExpr ../src/test_parser.nit:92,11--12
+                          AImplicitSelfExpr ../src/test_parser.nit:92,11
+                          TId "tc" ../src/test_parser.nit:92,11--12
+                          AListExprs ../src/test_parser.nit:92,12
+                        TId "interactive_parse" ../src/test_parser.nit:92,14--30
+                        AParExprs ../src/test_parser.nit:92,31--37
+                          TOpar "(" ../src/test_parser.nit:92,31
+                          AStringExpr ../src/test_parser.nit:92,32--36
+                            TString "\"-->\"" ../src/test_parser.nit:92,32--36
+                          TCpar ")" ../src/test_parser.nit:92,37
+                    AIfExpr ../src/test_parser.nit:93,3--101,5
+                      TKwif "if" ../src/test_parser.nit:93,3--4
+                      AIsaExpr ../src/test_parser.nit:93,6--18
+                        ACallExpr ../src/test_parser.nit:93,6
+                          AImplicitSelfExpr ../src/test_parser.nit:93,6
+                          TId "n" ../src/test_parser.nit:93,6
+                          AListExprs ../src/test_parser.nit:93,6
+                        AType ../src/test_parser.nit:93,12--18
+                          TClassid "TString" ../src/test_parser.nit:93,12--18
+                      ABlockExpr ../src/test_parser.nit:94,4--100,11
+                        AVardeclExpr ../src/test_parser.nit:94,4--17
+                          TKwvar "var" ../src/test_parser.nit:94,4--6
+                          TId "s" ../src/test_parser.nit:94,8
+                          TAssign "=" ../src/test_parser.nit:94,10
+                          ACallExpr ../src/test_parser.nit:94,12--17
+                            ACallExpr ../src/test_parser.nit:94,12
+                              AImplicitSelfExpr ../src/test_parser.nit:94,12
+                              TId "n" ../src/test_parser.nit:94,12
+                              AListExprs ../src/test_parser.nit:94,12
+                            TId "text" ../src/test_parser.nit:94,14--17
+                            AListExprs ../src/test_parser.nit:94,17
+                        AIfExpr ../src/test_parser.nit:95,4--99,6
+                          TKwif "if" ../src/test_parser.nit:95,4--5
+                          AEqExpr ../src/test_parser.nit:95,7--15
+                            ACallExpr ../src/test_parser.nit:95,7
+                              AImplicitSelfExpr ../src/test_parser.nit:95,7
+                              TId "s" ../src/test_parser.nit:95,7
+                              AListExprs ../src/test_parser.nit:95,7
+                            AStringExpr ../src/test_parser.nit:95,12--15
+                              TString "\":q\"" ../src/test_parser.nit:95,12--15
+                          ABlockExpr ../src/test_parser.nit:96,5--9
+                            ABreakExpr ../src/test_parser.nit:96,5--9
+                              TKwbreak "break" ../src/test_parser.nit:96,5--9
+                          ABlockExpr ../src/test_parser.nit:98,5--99,6
+                            ACallExpr ../src/test_parser.nit:98,5--24
+                              AImplicitSelfExpr ../src/test_parser.nit:98,5
+                              TId "print" ../src/test_parser.nit:98,5--9
+                              AListExprs ../src/test_parser.nit:98,11--24
+                                AStringExpr ../src/test_parser.nit:98,11--24
+                                  TString "\"`:q` to quit\"" ../src/test_parser.nit:98,11--24
+                            TKwend "end" ../src/test_parser.nit:99,4--6
+                        AContinueExpr ../src/test_parser.nit:100,4--11
+                          TKwcontinue "continue" ../src/test_parser.nit:100,4--11
+                      ABlockExpr ../src/test_parser.nit:101,3--5
+                        TKwend "end" ../src/test_parser.nit:101,3--5
+                    AIfExpr ../src/test_parser.nit:103,3--106,5
+                      TKwif "if" ../src/test_parser.nit:103,3--4
+                      AIsaExpr ../src/test_parser.nit:103,6--17
+                        ACallExpr ../src/test_parser.nit:103,6
+                          AImplicitSelfExpr ../src/test_parser.nit:103,6
+                          TId "n" ../src/test_parser.nit:103,6
+                          AListExprs ../src/test_parser.nit:103,6
+                        AType ../src/test_parser.nit:103,12--17
+                          TClassid "AError" ../src/test_parser.nit:103,12--17
+                      ABlockExpr ../src/test_parser.nit:104,4--105,11
+                        ACallExpr ../src/test_parser.nit:104,4--57
+                          AImplicitSelfExpr ../src/test_parser.nit:104,4
+                          TId "print" ../src/test_parser.nit:104,4--8
+                          AListExprs ../src/test_parser.nit:104,10--57
+                            ASuperstringExpr ../src/test_parser.nit:104,10--57
+                              AStartStringExpr ../src/test_parser.nit:104,10--11
+                                TStartString "\"{" ../src/test_parser.nit:104,10--11
+                              ACallExpr ../src/test_parser.nit:104,12--42
+                                ACallExpr ../src/test_parser.nit:104,12--21
+                                  ACallExpr ../src/test_parser.nit:104,12
+                                    AImplicitSelfExpr ../src/test_parser.nit:104,12
+                                    TId "n" ../src/test_parser.nit:104,12
+                                    AListExprs ../src/test_parser.nit:104,12
+                                  TId "location" ../src/test_parser.nit:104,14--21
+                                  AListExprs ../src/test_parser.nit:104,21
+                                TId "colored_line" ../src/test_parser.nit:104,23--34
+                                AParExprs ../src/test_parser.nit:104,35--42
+                                  TOpar "(" ../src/test_parser.nit:104,35
+                                  AStringExpr ../src/test_parser.nit:104,36--41
+                                    TString "\"0;31\"" ../src/test_parser.nit:104,36--41
+                                  TCpar ")" ../src/test_parser.nit:104,42
+                              AMidStringExpr ../src/test_parser.nit:104,43--46
+                                TMidString "}: {" ../src/test_parser.nit:104,43--46
+                              ACallExpr ../src/test_parser.nit:104,47--55
+                                ACallExpr ../src/test_parser.nit:104,47
+                                  AImplicitSelfExpr ../src/test_parser.nit:104,47
+                                  TId "n" ../src/test_parser.nit:104,47
+                                  AListExprs ../src/test_parser.nit:104,47
+                                TId "message" ../src/test_parser.nit:104,49--55
+                                AListExprs ../src/test_parser.nit:104,55
+                              AEndStringExpr ../src/test_parser.nit:104,56--57
+                                TEndString "}\"" ../src/test_parser.nit:104,56--57
                         AContinueExpr ../src/test_parser.nit:105,4--11
                           TKwcontinue "continue" ../src/test_parser.nit:105,4--11
                       ABlockExpr ../src/test_parser.nit:106,3--5
                         TKwend "end" ../src/test_parser.nit:106,3--5
-                    AIfExpr ../src/test_parser.nit:108,3--111,5
+                    AIfExpr ../src/test_parser.nit:108,3--110,5
                       TKwif "if" ../src/test_parser.nit:108,3--4
-                      AIsaExpr ../src/test_parser.nit:108,6--17
-                        ACallExpr ../src/test_parser.nit:108,6
-                          AImplicitSelfExpr ../src/test_parser.nit:108,6
-                          TId "n" ../src/test_parser.nit:108,6
-                          AListExprs ../src/test_parser.nit:108,6
-                        AType ../src/test_parser.nit:108,12--17
-                          TClassid "AError" ../src/test_parser.nit:108,12--17
-                      ABlockExpr ../src/test_parser.nit:109,4--110,11
-                        ACallExpr ../src/test_parser.nit:109,4--57
-                          AImplicitSelfExpr ../src/test_parser.nit:109,4
-                          TId "print" ../src/test_parser.nit:109,4--8
-                          AListExprs ../src/test_parser.nit:109,10--57
-                            ASuperstringExpr ../src/test_parser.nit:109,10--57
-                              AStartStringExpr ../src/test_parser.nit:109,10--11
-                                TStartString "\"{" ../src/test_parser.nit:109,10--11
-                              ACallExpr ../src/test_parser.nit:109,12--42
-                                ACallExpr ../src/test_parser.nit:109,12--21
-                                  ACallExpr ../src/test_parser.nit:109,12
-                                    AImplicitSelfExpr ../src/test_parser.nit:109,12
-                                    TId "n" ../src/test_parser.nit:109,12
-                                    AListExprs ../src/test_parser.nit:109,12
-                                  TId "location" ../src/test_parser.nit:109,14--21
-                                  AListExprs ../src/test_parser.nit:109,21
-                                TId "colored_line" ../src/test_parser.nit:109,23--34
-                                AParExprs ../src/test_parser.nit:109,35--42
-                                  TOpar "(" ../src/test_parser.nit:109,35
-                                  AStringExpr ../src/test_parser.nit:109,36--41
-                                    TString "\"0;31\"" ../src/test_parser.nit:109,36--41
-                                  TCpar ")" ../src/test_parser.nit:109,42
-                              AMidStringExpr ../src/test_parser.nit:109,43--46
-                                TMidString "}: {" ../src/test_parser.nit:109,43--46
-                              ACallExpr ../src/test_parser.nit:109,47--55
-                                ACallExpr ../src/test_parser.nit:109,47
-                                  AImplicitSelfExpr ../src/test_parser.nit:109,47
-                                  TId "n" ../src/test_parser.nit:109,47
-                                  AListExprs ../src/test_parser.nit:109,47
-                                TId "message" ../src/test_parser.nit:109,49--55
-                                AListExprs ../src/test_parser.nit:109,55
-                              AEndStringExpr ../src/test_parser.nit:109,56--57
-                                TEndString "}\"" ../src/test_parser.nit:109,56--57
-                        AContinueExpr ../src/test_parser.nit:110,4--11
-                          TKwcontinue "continue" ../src/test_parser.nit:110,4--11
-                      ABlockExpr ../src/test_parser.nit:111,3--5
-                        TKwend "end" ../src/test_parser.nit:111,3--5
-                    AIfExpr ../src/test_parser.nit:113,3--115,5
-                      TKwif "if" ../src/test_parser.nit:113,3--4
-                      ANotExpr ../src/test_parser.nit:113,6--17
-                        TKwnot "not" ../src/test_parser.nit:113,6--8
-                        ACallExpr ../src/test_parser.nit:113,10--17
-                          AImplicitSelfExpr ../src/test_parser.nit:113,10
-                          TId "no_print" ../src/test_parser.nit:113,10--17
-                          AListExprs ../src/test_parser.nit:113,17
-                      ABlockExpr ../src/test_parser.nit:114,4--40
-                        ACallExpr ../src/test_parser.nit:114,4--40
-                          AParExpr ../src/test_parser.nit:114,4--25
-                            TOpar "(" ../src/test_parser.nit:114,4
-                            ANewExpr ../src/test_parser.nit:114,5--24
-                              TKwnew "new" ../src/test_parser.nit:114,5--7
-                              AType ../src/test_parser.nit:114,9--24
-                                TClassid "PrintTreeVisitor" ../src/test_parser.nit:114,9--24
-                              AListExprs ../src/test_parser.nit:114,24
-                            TCpar ")" ../src/test_parser.nit:114,25
-                          TId "enter_visit" ../src/test_parser.nit:114,27--37
-                          AParExprs ../src/test_parser.nit:114,38--40
-                            TOpar "(" ../src/test_parser.nit:114,38
-                            ACallExpr ../src/test_parser.nit:114,39
-                              AImplicitSelfExpr ../src/test_parser.nit:114,39
-                              TId "n" ../src/test_parser.nit:114,39
-                              AListExprs ../src/test_parser.nit:114,39
-                            TCpar ")" ../src/test_parser.nit:114,40
-                      ABlockExpr ../src/test_parser.nit:115,3--5
-                        TKwend "end" ../src/test_parser.nit:115,3--5
-                    TKwend "end" ../src/test_parser.nit:116,2--4
-              ABlockExpr ../src/test_parser.nit:118,2--151,3
-                AForExpr ../src/test_parser.nit:118,2--150,4
-                  TKwfor "for" ../src/test_parser.nit:118,2--4
-                  TId "a" ../src/test_parser.nit:118,6
-                  ACallExpr ../src/test_parser.nit:118,11--14
-                    AImplicitSelfExpr ../src/test_parser.nit:118,11
-                    TId "args" ../src/test_parser.nit:118,11--14
-                    AListExprs ../src/test_parser.nit:118,14
-                  TKwdo "do" ../src/test_parser.nit:118,16--17
-                  ABlockExpr ../src/test_parser.nit:119,3--150,4
-                    AVardeclExpr ../src/test_parser.nit:119,3--12
-                      TKwvar "var" ../src/test_parser.nit:119,3--5
-                      TId "source" ../src/test_parser.nit:119,7--12
-                    AIfExpr ../src/test_parser.nit:120,3--126,5
-                      TKwif "if" ../src/test_parser.nit:120,3--4
-                      ACallExpr ../src/test_parser.nit:120,6--12
-                        AImplicitSelfExpr ../src/test_parser.nit:120,6
-                        TId "no_file" ../src/test_parser.nit:120,6--12
-                        AListExprs ../src/test_parser.nit:120,12
-                      ABlockExpr ../src/test_parser.nit:121,4--45
-                        ACallAssignExpr ../src/test_parser.nit:121,4--45
-                          AImplicitSelfExpr ../src/test_parser.nit:121,4
-                          TId "source" ../src/test_parser.nit:121,4--9
-                          AListExprs ../src/test_parser.nit:121,11
-                          TAssign "=" ../src/test_parser.nit:121,11
-                          ANewExpr ../src/test_parser.nit:121,13--45
-                            TKwnew "new" ../src/test_parser.nit:121,13--15
-                            AType ../src/test_parser.nit:121,17--26
-                              TClassid "SourceFile" ../src/test_parser.nit:121,17--26
-                            TId "from_string" ../src/test_parser.nit:121,28--38
-                            AParExprs ../src/test_parser.nit:121,39--45
-                              TOpar "(" ../src/test_parser.nit:121,39
-                              AStringExpr ../src/test_parser.nit:121,40--41
-                                TString "\"\"" ../src/test_parser.nit:121,40--41
-                              ACallExpr ../src/test_parser.nit:121,44
-                                AImplicitSelfExpr ../src/test_parser.nit:121,44
-                                TId "a" ../src/test_parser.nit:121,44
-                                AListExprs ../src/test_parser.nit:121,44
-                              TCpar ")" ../src/test_parser.nit:121,45
-                      ABlockExpr ../src/test_parser.nit:123,4--126,5
-                        AVardeclExpr ../src/test_parser.nit:123,4--31
-                          TKwvar "var" ../src/test_parser.nit:123,4--6
-                          TId "f" ../src/test_parser.nit:123,8
-                          TAssign "=" ../src/test_parser.nit:123,10
-                          ANewExpr ../src/test_parser.nit:123,12--31
-                            TKwnew "new" ../src/test_parser.nit:123,12--14
-                            AType ../src/test_parser.nit:123,16--23
-                              TClassid "IFStream" ../src/test_parser.nit:123,16--23
-                            TId "open" ../src/test_parser.nit:123,25--28
-                            AParExprs ../src/test_parser.nit:123,29--31
-                              TOpar "(" ../src/test_parser.nit:123,29
-                              ACallExpr ../src/test_parser.nit:123,30
-                                AImplicitSelfExpr ../src/test_parser.nit:123,30
-                                TId "a" ../src/test_parser.nit:123,30
-                                AListExprs ../src/test_parser.nit:123,30
-                              TCpar ")" ../src/test_parser.nit:123,31
-                        ACallAssignExpr ../src/test_parser.nit:124,4--32
-                          AImplicitSelfExpr ../src/test_parser.nit:124,4
-                          TId "source" ../src/test_parser.nit:124,4--9
-                          AListExprs ../src/test_parser.nit:124,11
-                          TAssign "=" ../src/test_parser.nit:124,11
-                          ANewExpr ../src/test_parser.nit:124,13--32
-                            TKwnew "new" ../src/test_parser.nit:124,13--15
-                            AType ../src/test_parser.nit:124,17--26
-                              TClassid "SourceFile" ../src/test_parser.nit:124,17--26
-                            AParExprs ../src/test_parser.nit:124,27--32
-                              TOpar "(" ../src/test_parser.nit:124,27
-                              ACallExpr ../src/test_parser.nit:124,28
-                                AImplicitSelfExpr ../src/test_parser.nit:124,28
-                                TId "a" ../src/test_parser.nit:124,28
-                                AListExprs ../src/test_parser.nit:124,28
-                              ACallExpr ../src/test_parser.nit:124,31
-                                AImplicitSelfExpr ../src/test_parser.nit:124,31
-                                TId "f" ../src/test_parser.nit:124,31
-                                AListExprs ../src/test_parser.nit:124,31
-                              TCpar ")" ../src/test_parser.nit:124,32
-                        ACallExpr ../src/test_parser.nit:125,4--10
-                          ACallExpr ../src/test_parser.nit:125,4
-                            AImplicitSelfExpr ../src/test_parser.nit:125,4
-                            TId "f" ../src/test_parser.nit:125,4
-                            AListExprs ../src/test_parser.nit:125,4
-                          TId "close" ../src/test_parser.nit:125,6--10
-                          AListExprs ../src/test_parser.nit:125,10
-                        TKwend "end" ../src/test_parser.nit:126,3--5
-                    AVardeclExpr ../src/test_parser.nit:127,3--31
-                      TKwvar "var" ../src/test_parser.nit:127,3--5
-                      TId "lexer" ../src/test_parser.nit:127,7--11
-                      TAssign "=" ../src/test_parser.nit:127,13
-                      ANewExpr ../src/test_parser.nit:127,15--31
-                        TKwnew "new" ../src/test_parser.nit:127,15--17
-                        AType ../src/test_parser.nit:127,19--23
-                          TClassid "Lexer" ../src/test_parser.nit:127,19--23
-                        AParExprs ../src/test_parser.nit:127,24--31
-                          TOpar "(" ../src/test_parser.nit:127,24
-                          ACallExpr ../src/test_parser.nit:127,25--30
-                            AImplicitSelfExpr ../src/test_parser.nit:127,25
-                            TId "source" ../src/test_parser.nit:127,25--30
-                            AListExprs ../src/test_parser.nit:127,30
-                          TCpar ")" ../src/test_parser.nit:127,31
-                    AIfExpr ../src/test_parser.nit:128,3--149,5
-                      TKwif "if" ../src/test_parser.nit:128,3--4
-                      ACallExpr ../src/test_parser.nit:128,6--15
-                        AImplicitSelfExpr ../src/test_parser.nit:128,6
-                        TId "only_lexer" ../src/test_parser.nit:128,6--15
-                        AListExprs ../src/test_parser.nit:128,15
-                      ABlockExpr ../src/test_parser.nit:129,4--135,6
-                        AVardeclExpr ../src/test_parser.nit:129,4--25
-                          TKwvar "var" ../src/test_parser.nit:129,4--6
-                          TId "token" ../src/test_parser.nit:129,8--12
-                          TAssign "=" ../src/test_parser.nit:129,14
-                          ACallExpr ../src/test_parser.nit:129,16--25
-                            ACallExpr ../src/test_parser.nit:129,16--20
-                              AImplicitSelfExpr ../src/test_parser.nit:129,16
-                              TId "lexer" ../src/test_parser.nit:129,16--20
-                              AListExprs ../src/test_parser.nit:129,20
-                            TId "next" ../src/test_parser.nit:129,22--25
-                            AListExprs ../src/test_parser.nit:129,25
-                        AWhileExpr ../src/test_parser.nit:130,4--135,6
-                          TKwwhile "while" ../src/test_parser.nit:130,4--8
-                          ANotExpr ../src/test_parser.nit:130,10--26
-                            TKwnot "not" ../src/test_parser.nit:130,10--12
-                            AIsaExpr ../src/test_parser.nit:130,14--26
-                              ACallExpr ../src/test_parser.nit:130,14--18
-                                AImplicitSelfExpr ../src/test_parser.nit:130,14
-                                TId "token" ../src/test_parser.nit:130,14--18
-                                AListExprs ../src/test_parser.nit:130,18
-                              AType ../src/test_parser.nit:130,24--26
-                                TClassid "EOF" ../src/test_parser.nit:130,24--26
-                          TKwdo "do" ../src/test_parser.nit:130,28--29
-                          ABlockExpr ../src/test_parser.nit:131,5--135,6
-                            AIfExpr ../src/test_parser.nit:131,5--133,7
-                              TKwif "if" ../src/test_parser.nit:131,5--6
-                              ANotExpr ../src/test_parser.nit:131,8--19
-                                TKwnot "not" ../src/test_parser.nit:131,8--10
-                                ACallExpr ../src/test_parser.nit:131,12--19
-                                  AImplicitSelfExpr ../src/test_parser.nit:131,12
-                                  TId "no_print" ../src/test_parser.nit:131,12--19
-                                  AListExprs ../src/test_parser.nit:131,19
-                              ABlockExpr ../src/test_parser.nit:132,6--64
-                                ACallExpr ../src/test_parser.nit:132,6--64
-                                  AImplicitSelfExpr ../src/test_parser.nit:132,6
-                                  TId "print" ../src/test_parser.nit:132,6--10
-                                  AParExprs ../src/test_parser.nit:132,11--64
-                                    TOpar "(" ../src/test_parser.nit:132,11
-                                    ASuperstringExpr ../src/test_parser.nit:132,12--63
-                                      AStartStringExpr ../src/test_parser.nit:132,12--27
-                                        TStartString "\"Read token at {" ../src/test_parser.nit:132,12--27
-                                      ACallExpr ../src/test_parser.nit:132,28--41
-                                        ACallExpr ../src/test_parser.nit:132,28--32
-                                          AImplicitSelfExpr ../src/test_parser.nit:132,28
-                                          TId "token" ../src/test_parser.nit:132,28--32
-                                          AListExprs ../src/test_parser.nit:132,32
-                                        TId "location" ../src/test_parser.nit:132,34--41
-                                        AListExprs ../src/test_parser.nit:132,41
-                                      AMidStringExpr ../src/test_parser.nit:132,42--50
-                                        TMidString "} text=\'{" ../src/test_parser.nit:132,42--50
-                                      ACallExpr ../src/test_parser.nit:132,51--60
-                                        ACallExpr ../src/test_parser.nit:132,51--55
-                                          AImplicitSelfExpr ../src/test_parser.nit:132,51
-                                          TId "token" ../src/test_parser.nit:132,51--55
-                                          AListExprs ../src/test_parser.nit:132,55
-                                        TId "text" ../src/test_parser.nit:132,57--60
-                                        AListExprs ../src/test_parser.nit:132,60
-                                      AEndStringExpr ../src/test_parser.nit:132,61--63
-                                        TEndString "}\'\"" ../src/test_parser.nit:132,61--63
-                                    TCpar ")" ../src/test_parser.nit:132,64
-                              ABlockExpr ../src/test_parser.nit:133,5--7
-                                TKwend "end" ../src/test_parser.nit:133,5--7
-                            ACallAssignExpr ../src/test_parser.nit:134,5--22
-                              AImplicitSelfExpr ../src/test_parser.nit:134,5
-                              TId "token" ../src/test_parser.nit:134,5--9
-                              AListExprs ../src/test_parser.nit:134,11
-                              TAssign "=" ../src/test_parser.nit:134,11
-                              ACallExpr ../src/test_parser.nit:134,13--22
-                                ACallExpr ../src/test_parser.nit:134,13--17
-                                  AImplicitSelfExpr ../src/test_parser.nit:134,13
-                                  TId "lexer" ../src/test_parser.nit:134,13--17
-                                  AListExprs ../src/test_parser.nit:134,17
-                                TId "next" ../src/test_parser.nit:134,19--22
-                                AListExprs ../src/test_parser.nit:134,22
-                            TKwend "end" ../src/test_parser.nit:135,4--6
-                      ABlockExpr ../src/test_parser.nit:137,4--149,5
-                        AVardeclExpr ../src/test_parser.nit:137,4--33
-                          TKwvar "var" ../src/test_parser.nit:137,4--6
-                          TId "parser" ../src/test_parser.nit:137,8--13
-                          TAssign "=" ../src/test_parser.nit:137,15
-                          ANewExpr ../src/test_parser.nit:137,17--33
-                            TKwnew "new" ../src/test_parser.nit:137,17--19
-                            AType ../src/test_parser.nit:137,21--26
-                              TClassid "Parser" ../src/test_parser.nit:137,21--26
-                            AParExprs ../src/test_parser.nit:137,27--33
-                              TOpar "(" ../src/test_parser.nit:137,27
-                              ACallExpr ../src/test_parser.nit:137,28--32
-                                AImplicitSelfExpr ../src/test_parser.nit:137,28
-                                TId "lexer" ../src/test_parser.nit:137,28--32
-                                AListExprs ../src/test_parser.nit:137,32
-                              TCpar ")" ../src/test_parser.nit:137,33
-                        AVardeclExpr ../src/test_parser.nit:138,4--26
-                          TKwvar "var" ../src/test_parser.nit:138,4--6
-                          TId "tree" ../src/test_parser.nit:138,8--11
-                          TAssign "=" ../src/test_parser.nit:138,13
-                          ACallExpr ../src/test_parser.nit:138,15--26
-                            ACallExpr ../src/test_parser.nit:138,15--20
-                              AImplicitSelfExpr ../src/test_parser.nit:138,15
-                              TId "parser" ../src/test_parser.nit:138,15--20
-                              AListExprs ../src/test_parser.nit:138,20
-                            TId "parse" ../src/test_parser.nit:138,22--26
-                            AListExprs ../src/test_parser.nit:138,26
-                        AVardeclExpr ../src/test_parser.nit:140,4--25
-                          TKwvar "var" ../src/test_parser.nit:140,4--6
-                          TId "error" ../src/test_parser.nit:140,8--12
-                          TAssign "=" ../src/test_parser.nit:140,14
-                          ACallExpr ../src/test_parser.nit:140,16--25
-                            ACallExpr ../src/test_parser.nit:140,16--19
-                              AImplicitSelfExpr ../src/test_parser.nit:140,16
-                              TId "tree" ../src/test_parser.nit:140,16--19
-                              AListExprs ../src/test_parser.nit:140,19
-                            TId "n_eof" ../src/test_parser.nit:140,21--25
-                            AListExprs ../src/test_parser.nit:140,25
-                        AIfExpr ../src/test_parser.nit:141,4--144,6
+                      ANotExpr ../src/test_parser.nit:108,6--17
+                        TKwnot "not" ../src/test_parser.nit:108,6--8
+                        ACallExpr ../src/test_parser.nit:108,10--17
+                          AImplicitSelfExpr ../src/test_parser.nit:108,10
+                          TId "no_print" ../src/test_parser.nit:108,10--17
+                          AListExprs ../src/test_parser.nit:108,17
+                      ABlockExpr ../src/test_parser.nit:109,4--40
+                        ACallExpr ../src/test_parser.nit:109,4--40
+                          AParExpr ../src/test_parser.nit:109,4--25
+                            TOpar "(" ../src/test_parser.nit:109,4
+                            ANewExpr ../src/test_parser.nit:109,5--24
+                              TKwnew "new" ../src/test_parser.nit:109,5--7
+                              AType ../src/test_parser.nit:109,9--24
+                                TClassid "PrintTreeVisitor" ../src/test_parser.nit:109,9--24
+                              AListExprs ../src/test_parser.nit:109,24
+                            TCpar ")" ../src/test_parser.nit:109,25
+                          TId "enter_visit" ../src/test_parser.nit:109,27--37
+                          AParExprs ../src/test_parser.nit:109,38--40
+                            TOpar "(" ../src/test_parser.nit:109,38
+                            ACallExpr ../src/test_parser.nit:109,39
+                              AImplicitSelfExpr ../src/test_parser.nit:109,39
+                              TId "n" ../src/test_parser.nit:109,39
+                              AListExprs ../src/test_parser.nit:109,39
+                            TCpar ")" ../src/test_parser.nit:109,40
+                      ABlockExpr ../src/test_parser.nit:110,3--5
+                        TKwend "end" ../src/test_parser.nit:110,3--5
+                    TKwend "end" ../src/test_parser.nit:111,2--4
+              ABlockExpr ../src/test_parser.nit:113,2--146,3
+                AForExpr ../src/test_parser.nit:113,2--145,4
+                  TKwfor "for" ../src/test_parser.nit:113,2--4
+                  TId "a" ../src/test_parser.nit:113,6
+                  ACallExpr ../src/test_parser.nit:113,11--14
+                    AImplicitSelfExpr ../src/test_parser.nit:113,11
+                    TId "args" ../src/test_parser.nit:113,11--14
+                    AListExprs ../src/test_parser.nit:113,14
+                  TKwdo "do" ../src/test_parser.nit:113,16--17
+                  ABlockExpr ../src/test_parser.nit:114,3--145,4
+                    AVardeclExpr ../src/test_parser.nit:114,3--12
+                      TKwvar "var" ../src/test_parser.nit:114,3--5
+                      TId "source" ../src/test_parser.nit:114,7--12
+                    AIfExpr ../src/test_parser.nit:115,3--121,5
+                      TKwif "if" ../src/test_parser.nit:115,3--4
+                      ACallExpr ../src/test_parser.nit:115,6--12
+                        AImplicitSelfExpr ../src/test_parser.nit:115,6
+                        TId "no_file" ../src/test_parser.nit:115,6--12
+                        AListExprs ../src/test_parser.nit:115,12
+                      ABlockExpr ../src/test_parser.nit:116,4--45
+                        ACallAssignExpr ../src/test_parser.nit:116,4--45
+                          AImplicitSelfExpr ../src/test_parser.nit:116,4
+                          TId "source" ../src/test_parser.nit:116,4--9
+                          AListExprs ../src/test_parser.nit:116,11
+                          TAssign "=" ../src/test_parser.nit:116,11
+                          ANewExpr ../src/test_parser.nit:116,13--45
+                            TKwnew "new" ../src/test_parser.nit:116,13--15
+                            AType ../src/test_parser.nit:116,17--26
+                              TClassid "SourceFile" ../src/test_parser.nit:116,17--26
+                            TId "from_string" ../src/test_parser.nit:116,28--38
+                            AParExprs ../src/test_parser.nit:116,39--45
+                              TOpar "(" ../src/test_parser.nit:116,39
+                              AStringExpr ../src/test_parser.nit:116,40--41
+                                TString "\"\"" ../src/test_parser.nit:116,40--41
+                              ACallExpr ../src/test_parser.nit:116,44
+                                AImplicitSelfExpr ../src/test_parser.nit:116,44
+                                TId "a" ../src/test_parser.nit:116,44
+                                AListExprs ../src/test_parser.nit:116,44
+                              TCpar ")" ../src/test_parser.nit:116,45
+                      ABlockExpr ../src/test_parser.nit:118,4--121,5
+                        AVardeclExpr ../src/test_parser.nit:118,4--31
+                          TKwvar "var" ../src/test_parser.nit:118,4--6
+                          TId "f" ../src/test_parser.nit:118,8
+                          TAssign "=" ../src/test_parser.nit:118,10
+                          ANewExpr ../src/test_parser.nit:118,12--31
+                            TKwnew "new" ../src/test_parser.nit:118,12--14
+                            AType ../src/test_parser.nit:118,16--23
+                              TClassid "IFStream" ../src/test_parser.nit:118,16--23
+                            TId "open" ../src/test_parser.nit:118,25--28
+                            AParExprs ../src/test_parser.nit:118,29--31
+                              TOpar "(" ../src/test_parser.nit:118,29
+                              ACallExpr ../src/test_parser.nit:118,30
+                                AImplicitSelfExpr ../src/test_parser.nit:118,30
+                                TId "a" ../src/test_parser.nit:118,30
+                                AListExprs ../src/test_parser.nit:118,30
+                              TCpar ")" ../src/test_parser.nit:118,31
+                        ACallAssignExpr ../src/test_parser.nit:119,4--32
+                          AImplicitSelfExpr ../src/test_parser.nit:119,4
+                          TId "source" ../src/test_parser.nit:119,4--9
+                          AListExprs ../src/test_parser.nit:119,11
+                          TAssign "=" ../src/test_parser.nit:119,11
+                          ANewExpr ../src/test_parser.nit:119,13--32
+                            TKwnew "new" ../src/test_parser.nit:119,13--15
+                            AType ../src/test_parser.nit:119,17--26
+                              TClassid "SourceFile" ../src/test_parser.nit:119,17--26
+                            AParExprs ../src/test_parser.nit:119,27--32
+                              TOpar "(" ../src/test_parser.nit:119,27
+                              ACallExpr ../src/test_parser.nit:119,28
+                                AImplicitSelfExpr ../src/test_parser.nit:119,28
+                                TId "a" ../src/test_parser.nit:119,28
+                                AListExprs ../src/test_parser.nit:119,28
+                              ACallExpr ../src/test_parser.nit:119,31
+                                AImplicitSelfExpr ../src/test_parser.nit:119,31
+                                TId "f" ../src/test_parser.nit:119,31
+                                AListExprs ../src/test_parser.nit:119,31
+                              TCpar ")" ../src/test_parser.nit:119,32
+                        ACallExpr ../src/test_parser.nit:120,4--10
+                          ACallExpr ../src/test_parser.nit:120,4
+                            AImplicitSelfExpr ../src/test_parser.nit:120,4
+                            TId "f" ../src/test_parser.nit:120,4
+                            AListExprs ../src/test_parser.nit:120,4
+                          TId "close" ../src/test_parser.nit:120,6--10
+                          AListExprs ../src/test_parser.nit:120,10
+                        TKwend "end" ../src/test_parser.nit:121,3--5
+                    AVardeclExpr ../src/test_parser.nit:122,3--31
+                      TKwvar "var" ../src/test_parser.nit:122,3--5
+                      TId "lexer" ../src/test_parser.nit:122,7--11
+                      TAssign "=" ../src/test_parser.nit:122,13
+                      ANewExpr ../src/test_parser.nit:122,15--31
+                        TKwnew "new" ../src/test_parser.nit:122,15--17
+                        AType ../src/test_parser.nit:122,19--23
+                          TClassid "Lexer" ../src/test_parser.nit:122,19--23
+                        AParExprs ../src/test_parser.nit:122,24--31
+                          TOpar "(" ../src/test_parser.nit:122,24
+                          ACallExpr ../src/test_parser.nit:122,25--30
+                            AImplicitSelfExpr ../src/test_parser.nit:122,25
+                            TId "source" ../src/test_parser.nit:122,25--30
+                            AListExprs ../src/test_parser.nit:122,30
+                          TCpar ")" ../src/test_parser.nit:122,31
+                    AIfExpr ../src/test_parser.nit:123,3--144,5
+                      TKwif "if" ../src/test_parser.nit:123,3--4
+                      ACallExpr ../src/test_parser.nit:123,6--15
+                        AImplicitSelfExpr ../src/test_parser.nit:123,6
+                        TId "only_lexer" ../src/test_parser.nit:123,6--15
+                        AListExprs ../src/test_parser.nit:123,15
+                      ABlockExpr ../src/test_parser.nit:124,4--130,6
+                        AVardeclExpr ../src/test_parser.nit:124,4--25
+                          TKwvar "var" ../src/test_parser.nit:124,4--6
+                          TId "token" ../src/test_parser.nit:124,8--12
+                          TAssign "=" ../src/test_parser.nit:124,14
+                          ACallExpr ../src/test_parser.nit:124,16--25
+                            ACallExpr ../src/test_parser.nit:124,16--20
+                              AImplicitSelfExpr ../src/test_parser.nit:124,16
+                              TId "lexer" ../src/test_parser.nit:124,16--20
+                              AListExprs ../src/test_parser.nit:124,20
+                            TId "next" ../src/test_parser.nit:124,22--25
+                            AListExprs ../src/test_parser.nit:124,25
+                        AWhileExpr ../src/test_parser.nit:125,4--130,6
+                          TKwwhile "while" ../src/test_parser.nit:125,4--8
+                          ANotExpr ../src/test_parser.nit:125,10--26
+                            TKwnot "not" ../src/test_parser.nit:125,10--12
+                            AIsaExpr ../src/test_parser.nit:125,14--26
+                              ACallExpr ../src/test_parser.nit:125,14--18
+                                AImplicitSelfExpr ../src/test_parser.nit:125,14
+                                TId "token" ../src/test_parser.nit:125,14--18
+                                AListExprs ../src/test_parser.nit:125,18
+                              AType ../src/test_parser.nit:125,24--26
+                                TClassid "EOF" ../src/test_parser.nit:125,24--26
+                          TKwdo "do" ../src/test_parser.nit:125,28--29
+                          ABlockExpr ../src/test_parser.nit:126,5--130,6
+                            AIfExpr ../src/test_parser.nit:126,5--128,7
+                              TKwif "if" ../src/test_parser.nit:126,5--6
+                              ANotExpr ../src/test_parser.nit:126,8--19
+                                TKwnot "not" ../src/test_parser.nit:126,8--10
+                                ACallExpr ../src/test_parser.nit:126,12--19
+                                  AImplicitSelfExpr ../src/test_parser.nit:126,12
+                                  TId "no_print" ../src/test_parser.nit:126,12--19
+                                  AListExprs ../src/test_parser.nit:126,19
+                              ABlockExpr ../src/test_parser.nit:127,6--64
+                                ACallExpr ../src/test_parser.nit:127,6--64
+                                  AImplicitSelfExpr ../src/test_parser.nit:127,6
+                                  TId "print" ../src/test_parser.nit:127,6--10
+                                  AParExprs ../src/test_parser.nit:127,11--64
+                                    TOpar "(" ../src/test_parser.nit:127,11
+                                    ASuperstringExpr ../src/test_parser.nit:127,12--63
+                                      AStartStringExpr ../src/test_parser.nit:127,12--27
+                                        TStartString "\"Read token at {" ../src/test_parser.nit:127,12--27
+                                      ACallExpr ../src/test_parser.nit:127,28--41
+                                        ACallExpr ../src/test_parser.nit:127,28--32
+                                          AImplicitSelfExpr ../src/test_parser.nit:127,28
+                                          TId "token" ../src/test_parser.nit:127,28--32
+                                          AListExprs ../src/test_parser.nit:127,32
+                                        TId "location" ../src/test_parser.nit:127,34--41
+                                        AListExprs ../src/test_parser.nit:127,41
+                                      AMidStringExpr ../src/test_parser.nit:127,42--50
+                                        TMidString "} text=\'{" ../src/test_parser.nit:127,42--50
+                                      ACallExpr ../src/test_parser.nit:127,51--60
+                                        ACallExpr ../src/test_parser.nit:127,51--55
+                                          AImplicitSelfExpr ../src/test_parser.nit:127,51
+                                          TId "token" ../src/test_parser.nit:127,51--55
+                                          AListExprs ../src/test_parser.nit:127,55
+                                        TId "text" ../src/test_parser.nit:127,57--60
+                                        AListExprs ../src/test_parser.nit:127,60
+                                      AEndStringExpr ../src/test_parser.nit:127,61--63
+                                        TEndString "}\'\"" ../src/test_parser.nit:127,61--63
+                                    TCpar ")" ../src/test_parser.nit:127,64
+                              ABlockExpr ../src/test_parser.nit:128,5--7
+                                TKwend "end" ../src/test_parser.nit:128,5--7
+                            ACallAssignExpr ../src/test_parser.nit:129,5--22
+                              AImplicitSelfExpr ../src/test_parser.nit:129,5
+                              TId "token" ../src/test_parser.nit:129,5--9
+                              AListExprs ../src/test_parser.nit:129,11
+                              TAssign "=" ../src/test_parser.nit:129,11
+                              ACallExpr ../src/test_parser.nit:129,13--22
+                                ACallExpr ../src/test_parser.nit:129,13--17
+                                  AImplicitSelfExpr ../src/test_parser.nit:129,13
+                                  TId "lexer" ../src/test_parser.nit:129,13--17
+                                  AListExprs ../src/test_parser.nit:129,17
+                                TId "next" ../src/test_parser.nit:129,19--22
+                                AListExprs ../src/test_parser.nit:129,22
+                            TKwend "end" ../src/test_parser.nit:130,4--6
+                      ABlockExpr ../src/test_parser.nit:132,4--144,5
+                        AVardeclExpr ../src/test_parser.nit:132,4--33
+                          TKwvar "var" ../src/test_parser.nit:132,4--6
+                          TId "parser" ../src/test_parser.nit:132,8--13
+                          TAssign "=" ../src/test_parser.nit:132,15
+                          ANewExpr ../src/test_parser.nit:132,17--33
+                            TKwnew "new" ../src/test_parser.nit:132,17--19
+                            AType ../src/test_parser.nit:132,21--26
+                              TClassid "Parser" ../src/test_parser.nit:132,21--26
+                            AParExprs ../src/test_parser.nit:132,27--33
+                              TOpar "(" ../src/test_parser.nit:132,27
+                              ACallExpr ../src/test_parser.nit:132,28--32
+                                AImplicitSelfExpr ../src/test_parser.nit:132,28
+                                TId "lexer" ../src/test_parser.nit:132,28--32
+                                AListExprs ../src/test_parser.nit:132,32
+                              TCpar ")" ../src/test_parser.nit:132,33
+                        AVardeclExpr ../src/test_parser.nit:133,4--26
+                          TKwvar "var" ../src/test_parser.nit:133,4--6
+                          TId "tree" ../src/test_parser.nit:133,8--11
+                          TAssign "=" ../src/test_parser.nit:133,13
+                          ACallExpr ../src/test_parser.nit:133,15--26
+                            ACallExpr ../src/test_parser.nit:133,15--20
+                              AImplicitSelfExpr ../src/test_parser.nit:133,15
+                              TId "parser" ../src/test_parser.nit:133,15--20
+                              AListExprs ../src/test_parser.nit:133,20
+                            TId "parse" ../src/test_parser.nit:133,22--26
+                            AListExprs ../src/test_parser.nit:133,26
+                        AVardeclExpr ../src/test_parser.nit:135,4--25
+                          TKwvar "var" ../src/test_parser.nit:135,4--6
+                          TId "error" ../src/test_parser.nit:135,8--12
+                          TAssign "=" ../src/test_parser.nit:135,14
+                          ACallExpr ../src/test_parser.nit:135,16--25
+                            ACallExpr ../src/test_parser.nit:135,16--19
+                              AImplicitSelfExpr ../src/test_parser.nit:135,16
+                              TId "tree" ../src/test_parser.nit:135,16--19
+                              AListExprs ../src/test_parser.nit:135,19
+                            TId "n_eof" ../src/test_parser.nit:135,21--25
+                            AListExprs ../src/test_parser.nit:135,25
+                        AIfExpr ../src/test_parser.nit:136,4--139,6
+                          TKwif "if" ../src/test_parser.nit:136,4--5
+                          AIsaExpr ../src/test_parser.nit:136,7--22
+                            ACallExpr ../src/test_parser.nit:136,7--11
+                              AImplicitSelfExpr ../src/test_parser.nit:136,7
+                              TId "error" ../src/test_parser.nit:136,7--11
+                              AListExprs ../src/test_parser.nit:136,11
+                            AType ../src/test_parser.nit:136,17--22
+                              TClassid "AError" ../src/test_parser.nit:136,17--22
+                          ABlockExpr ../src/test_parser.nit:137,5--138,10
+                            ACallExpr ../src/test_parser.nit:137,5--58
+                              AImplicitSelfExpr ../src/test_parser.nit:137,5
+                              TId "print" ../src/test_parser.nit:137,5--9
+                              AParExprs ../src/test_parser.nit:137,10--58
+                                TOpar "(" ../src/test_parser.nit:137,10
+                                ASuperstringExpr ../src/test_parser.nit:137,11--57
+                                  AStartStringExpr ../src/test_parser.nit:137,11--21
+                                    TStartString "\"Error at {" ../src/test_parser.nit:137,11--21
+                                  ACallExpr ../src/test_parser.nit:137,22--35
+                                    ACallExpr ../src/test_parser.nit:137,22--26
+                                      AImplicitSelfExpr ../src/test_parser.nit:137,22
+                                      TId "error" ../src/test_parser.nit:137,22--26
+                                      AListExprs ../src/test_parser.nit:137,26
+                                    TId "location" ../src/test_parser.nit:137,28--35
+                                    AListExprs ../src/test_parser.nit:137,35
+                                  AMidStringExpr ../src/test_parser.nit:137,36--42
+                                    TMidString "}:\\n\\t{" ../src/test_parser.nit:137,36--42
+                                  ACallExpr ../src/test_parser.nit:137,43--55
+                                    ACallExpr ../src/test_parser.nit:137,43--47
+                                      AImplicitSelfExpr ../src/test_parser.nit:137,43
+                                      TId "error" ../src/test_parser.nit:137,43--47
+                                      AListExprs ../src/test_parser.nit:137,47
+                                    TId "message" ../src/test_parser.nit:137,49--55
+                                    AListExprs ../src/test_parser.nit:137,55
+                                  AEndStringExpr ../src/test_parser.nit:137,56--57
+                                    TEndString "}\"" ../src/test_parser.nit:137,56--57
+                                TCpar ")" ../src/test_parser.nit:137,58
+                            AReturnExpr ../src/test_parser.nit:138,5--10
+                              TKwreturn "return" ../src/test_parser.nit:138,5--10
+                          ABlockExpr ../src/test_parser.nit:139,4--6
+                            TKwend "end" ../src/test_parser.nit:139,4--6
+                        AIfExpr ../src/test_parser.nit:141,4--143,6
                           TKwif "if" ../src/test_parser.nit:141,4--5
-                          AIsaExpr ../src/test_parser.nit:141,7--22
-                            ACallExpr ../src/test_parser.nit:141,7--11
-                              AImplicitSelfExpr ../src/test_parser.nit:141,7
-                              TId "error" ../src/test_parser.nit:141,7--11
-                              AListExprs ../src/test_parser.nit:141,11
-                            AType ../src/test_parser.nit:141,17--22
-                              TClassid "AError" ../src/test_parser.nit:141,17--22
-                          ABlockExpr ../src/test_parser.nit:142,5--143,10
-                            ACallExpr ../src/test_parser.nit:142,5--58
-                              AImplicitSelfExpr ../src/test_parser.nit:142,5
-                              TId "print" ../src/test_parser.nit:142,5--9
-                              AParExprs ../src/test_parser.nit:142,10--58
-                                TOpar "(" ../src/test_parser.nit:142,10
-                                ASuperstringExpr ../src/test_parser.nit:142,11--57
-                                  AStartStringExpr ../src/test_parser.nit:142,11--21
-                                    TStartString "\"Error at {" ../src/test_parser.nit:142,11--21
-                                  ACallExpr ../src/test_parser.nit:142,22--35
-                                    ACallExpr ../src/test_parser.nit:142,22--26
-                                      AImplicitSelfExpr ../src/test_parser.nit:142,22
-                                      TId "error" ../src/test_parser.nit:142,22--26
-                                      AListExprs ../src/test_parser.nit:142,26
-                                    TId "location" ../src/test_parser.nit:142,28--35
-                                    AListExprs ../src/test_parser.nit:142,35
-                                  AMidStringExpr ../src/test_parser.nit:142,36--42
-                                    TMidString "}:\\n\\t{" ../src/test_parser.nit:142,36--42
-                                  ACallExpr ../src/test_parser.nit:142,43--55
-                                    ACallExpr ../src/test_parser.nit:142,43--47
-                                      AImplicitSelfExpr ../src/test_parser.nit:142,43
-                                      TId "error" ../src/test_parser.nit:142,43--47
-                                      AListExprs ../src/test_parser.nit:142,47
-                                    TId "message" ../src/test_parser.nit:142,49--55
-                                    AListExprs ../src/test_parser.nit:142,55
-                                  AEndStringExpr ../src/test_parser.nit:142,56--57
-                                    TEndString "}\"" ../src/test_parser.nit:142,56--57
-                                TCpar ")" ../src/test_parser.nit:142,58
-                            AReturnExpr ../src/test_parser.nit:143,5--10
-                              TKwreturn "return" ../src/test_parser.nit:143,5--10
-                          ABlockExpr ../src/test_parser.nit:144,4--6
-                            TKwend "end" ../src/test_parser.nit:144,4--6
-                        AIfExpr ../src/test_parser.nit:146,4--148,6
-                          TKwif "if" ../src/test_parser.nit:146,4--5
-                          ANotExpr ../src/test_parser.nit:146,7--18
-                            TKwnot "not" ../src/test_parser.nit:146,7--9
-                            ACallExpr ../src/test_parser.nit:146,11--18
-                              AImplicitSelfExpr ../src/test_parser.nit:146,11
-                              TId "no_print" ../src/test_parser.nit:146,11--18
-                              AListExprs ../src/test_parser.nit:146,18
-                          ABlockExpr ../src/test_parser.nit:147,5--44
-                            ACallExpr ../src/test_parser.nit:147,5--44
-                              AParExpr ../src/test_parser.nit:147,5--26
-                                TOpar "(" ../src/test_parser.nit:147,5
-                                ANewExpr ../src/test_parser.nit:147,6--25
-                                  TKwnew "new" ../src/test_parser.nit:147,6--8
-                                  AType ../src/test_parser.nit:147,10--25
-                                    TClassid "PrintTreeVisitor" ../src/test_parser.nit:147,10--25
-                                  AListExprs ../src/test_parser.nit:147,25
-                                TCpar ")" ../src/test_parser.nit:147,26
-                              TId "enter_visit" ../src/test_parser.nit:147,28--38
-                              AParExprs ../src/test_parser.nit:147,39--44
-                                TOpar "(" ../src/test_parser.nit:147,39
-                                ACallExpr ../src/test_parser.nit:147,40--43
-                                  AImplicitSelfExpr ../src/test_parser.nit:147,40
-                                  TId "tree" ../src/test_parser.nit:147,40--43
-                                  AListExprs ../src/test_parser.nit:147,43
-                                TCpar ")" ../src/test_parser.nit:147,44
-                          ABlockExpr ../src/test_parser.nit:148,4--6
-                            TKwend "end" ../src/test_parser.nit:148,4--6
-                        TKwend "end" ../src/test_parser.nit:149,3--5
-                    TKwend "end" ../src/test_parser.nit:150,2--4
-                TKwend "end" ../src/test_parser.nit:151,1--3
-  EOF "" ../src/test_parser.nit:152,1
+                          ANotExpr ../src/test_parser.nit:141,7--18
+                            TKwnot "not" ../src/test_parser.nit:141,7--9
+                            ACallExpr ../src/test_parser.nit:141,11--18
+                              AImplicitSelfExpr ../src/test_parser.nit:141,11
+                              TId "no_print" ../src/test_parser.nit:141,11--18
+                              AListExprs ../src/test_parser.nit:141,18
+                          ABlockExpr ../src/test_parser.nit:142,5--44
+                            ACallExpr ../src/test_parser.nit:142,5--44
+                              AParExpr ../src/test_parser.nit:142,5--26
+                                TOpar "(" ../src/test_parser.nit:142,5
+                                ANewExpr ../src/test_parser.nit:142,6--25
+                                  TKwnew "new" ../src/test_parser.nit:142,6--8
+                                  AType ../src/test_parser.nit:142,10--25
+                                    TClassid "PrintTreeVisitor" ../src/test_parser.nit:142,10--25
+                                  AListExprs ../src/test_parser.nit:142,25
+                                TCpar ")" ../src/test_parser.nit:142,26
+                              TId "enter_visit" ../src/test_parser.nit:142,28--38
+                              AParExprs ../src/test_parser.nit:142,39--44
+                                TOpar "(" ../src/test_parser.nit:142,39
+                                ACallExpr ../src/test_parser.nit:142,40--43
+                                  AImplicitSelfExpr ../src/test_parser.nit:142,40
+                                  TId "tree" ../src/test_parser.nit:142,40--43
+                                  AListExprs ../src/test_parser.nit:142,43
+                                TCpar ")" ../src/test_parser.nit:142,44
+                          ABlockExpr ../src/test_parser.nit:143,4--6
+                            TKwend "end" ../src/test_parser.nit:143,4--6
+                        TKwend "end" ../src/test_parser.nit:144,3--5
+                    TKwend "end" ../src/test_parser.nit:145,2--4
+                TKwend "end" ../src/test_parser.nit:146,1--3
+  EOF "" ../src/test_parser.nit:147,1
index ceb4e1d..36dd49b 100644 (file)
@@ -61,7 +61,9 @@ Read token at ../src/test_parser.nit:25,10--12 text='var'
 Read token at ../src/test_parser.nit:25,14--17 text='rank'
 Read token at ../src/test_parser.nit:25,18 text=':'
 Read token at ../src/test_parser.nit:25,20--22 text='Int'
-Read token at ../src/test_parser.nit:25,23--26,0 text='
+Read token at ../src/test_parser.nit:25,24 text='='
+Read token at ../src/test_parser.nit:25,26 text='0'
+Read token at ../src/test_parser.nit:25,27--26,0 text='
 '
 Read token at ../src/test_parser.nit:26,2--6 text='redef'
 Read token at ../src/test_parser.nit:26,8--10 text='fun'
@@ -160,398 +162,414 @@ Read token at ../src/test_parser.nit:35,18--36,0 text='
 Read token at ../src/test_parser.nit:36,2--4 text='end'
 Read token at ../src/test_parser.nit:36,5--37,0 text='
 '
-Read token at ../src/test_parser.nit:37,1--38,0 text='
-'
-Read token at ../src/test_parser.nit:38,2--5 text='init'
-Read token at ../src/test_parser.nit:38,6--39,0 text='
-'
-Read token at ../src/test_parser.nit:39,2--3 text='do'
-Read token at ../src/test_parser.nit:39,4--40,0 text='
-'
-Read token at ../src/test_parser.nit:40,3--6 text='rank'
-Read token at ../src/test_parser.nit:40,8 text='='
-Read token at ../src/test_parser.nit:40,10 text='0'
-Read token at ../src/test_parser.nit:40,11--41,0 text='
-'
-Read token at ../src/test_parser.nit:41,2--4 text='end'
-Read token at ../src/test_parser.nit:41,5--42,0 text='
-'
-Read token at ../src/test_parser.nit:42,1--3 text='end'
-Read token at ../src/test_parser.nit:42,4--43,0 text='
-'
-Read token at ../src/test_parser.nit:43,1--44,0 text='
-'
-Read token at ../src/test_parser.nit:44,1--3 text='var'
-Read token at ../src/test_parser.nit:44,5--12 text='no_print'
-Read token at ../src/test_parser.nit:44,14 text='='
-Read token at ../src/test_parser.nit:44,16--20 text='false'
-Read token at ../src/test_parser.nit:44,21--45,0 text='
-'
-Read token at ../src/test_parser.nit:45,1--3 text='var'
-Read token at ../src/test_parser.nit:45,5--14 text='only_lexer'
-Read token at ../src/test_parser.nit:45,16 text='='
-Read token at ../src/test_parser.nit:45,18--22 text='false'
-Read token at ../src/test_parser.nit:45,23--46,0 text='
-'
-Read token at ../src/test_parser.nit:46,1--3 text='var'
-Read token at ../src/test_parser.nit:46,5--13 text='need_help'
-Read token at ../src/test_parser.nit:46,15 text='='
-Read token at ../src/test_parser.nit:46,17--21 text='false'
-Read token at ../src/test_parser.nit:46,22--47,0 text='
-'
-Read token at ../src/test_parser.nit:47,1--3 text='var'
-Read token at ../src/test_parser.nit:47,5--11 text='no_file'
-Read token at ../src/test_parser.nit:47,13 text='='
-Read token at ../src/test_parser.nit:47,15--19 text='false'
-Read token at ../src/test_parser.nit:47,20--48,0 text='
-'
-Read token at ../src/test_parser.nit:48,1--3 text='var'
-Read token at ../src/test_parser.nit:48,5--15 text='interactive'
-Read token at ../src/test_parser.nit:48,17 text='='
-Read token at ../src/test_parser.nit:48,19--23 text='false'
-Read token at ../src/test_parser.nit:48,24--49,0 text='
-'
-Read token at ../src/test_parser.nit:49,1--50,0 text='
-'
-Read token at ../src/test_parser.nit:50,1--5 text='while'
-Read token at ../src/test_parser.nit:50,7--9 text='not'
-Read token at ../src/test_parser.nit:50,11--14 text='args'
-Read token at ../src/test_parser.nit:50,15 text='.'
-Read token at ../src/test_parser.nit:50,16--23 text='is_empty'
-Read token at ../src/test_parser.nit:50,25--27 text='and'
-Read token at ../src/test_parser.nit:50,29--32 text='args'
-Read token at ../src/test_parser.nit:50,33 text='.'
-Read token at ../src/test_parser.nit:50,34--38 text='first'
-Read token at ../src/test_parser.nit:50,39 text='.'
-Read token at ../src/test_parser.nit:50,40--44 text='chars'
-Read token at ../src/test_parser.nit:50,45 text='.'
-Read token at ../src/test_parser.nit:50,46--50 text='first'
-Read token at ../src/test_parser.nit:50,52--53 text='=='
-Read token at ../src/test_parser.nit:50,55--57 text=''-''
-Read token at ../src/test_parser.nit:50,59--60 text='do'
-Read token at ../src/test_parser.nit:50,61--51,0 text='
-'
-Read token at ../src/test_parser.nit:51,2--3 text='if'
-Read token at ../src/test_parser.nit:51,5--8 text='args'
-Read token at ../src/test_parser.nit:51,9 text='.'
-Read token at ../src/test_parser.nit:51,10--14 text='first'
-Read token at ../src/test_parser.nit:51,16--17 text='=='
-Read token at ../src/test_parser.nit:51,19--22 text='"-n"'
-Read token at ../src/test_parser.nit:51,24--27 text='then'
-Read token at ../src/test_parser.nit:51,28--52,0 text='
-'
-Read token at ../src/test_parser.nit:52,3--10 text='no_print'
-Read token at ../src/test_parser.nit:52,12 text='='
-Read token at ../src/test_parser.nit:52,14--17 text='true'
-Read token at ../src/test_parser.nit:52,18--53,0 text='
-'
-Read token at ../src/test_parser.nit:53,2--5 text='else'
-Read token at ../src/test_parser.nit:53,7--8 text='if'
-Read token at ../src/test_parser.nit:53,10--13 text='args'
-Read token at ../src/test_parser.nit:53,14 text='.'
-Read token at ../src/test_parser.nit:53,15--19 text='first'
-Read token at ../src/test_parser.nit:53,21--22 text='=='
-Read token at ../src/test_parser.nit:53,24--27 text='"-l"'
-Read token at ../src/test_parser.nit:53,29--32 text='then'
-Read token at ../src/test_parser.nit:53,33--54,0 text='
-'
-Read token at ../src/test_parser.nit:54,3--12 text='only_lexer'
-Read token at ../src/test_parser.nit:54,14 text='='
-Read token at ../src/test_parser.nit:54,16--19 text='true'
-Read token at ../src/test_parser.nit:54,20--55,0 text='
-'
-Read token at ../src/test_parser.nit:55,2--5 text='else'
-Read token at ../src/test_parser.nit:55,7--8 text='if'
-Read token at ../src/test_parser.nit:55,10--13 text='args'
-Read token at ../src/test_parser.nit:55,14 text='.'
-Read token at ../src/test_parser.nit:55,15--19 text='first'
-Read token at ../src/test_parser.nit:55,21--22 text='=='
-Read token at ../src/test_parser.nit:55,24--27 text='"-p"'
-Read token at ../src/test_parser.nit:55,29--32 text='then'
-Read token at ../src/test_parser.nit:55,33--56,0 text='
-'
-Read token at ../src/test_parser.nit:56,3--12 text='only_lexer'
-Read token at ../src/test_parser.nit:56,14 text='='
-Read token at ../src/test_parser.nit:56,16--20 text='false'
-Read token at ../src/test_parser.nit:56,21--57,0 text='
-'
-Read token at ../src/test_parser.nit:57,2--5 text='else'
-Read token at ../src/test_parser.nit:57,7--8 text='if'
-Read token at ../src/test_parser.nit:57,10--13 text='args'
-Read token at ../src/test_parser.nit:57,14 text='.'
-Read token at ../src/test_parser.nit:57,15--19 text='first'
-Read token at ../src/test_parser.nit:57,21--22 text='=='
-Read token at ../src/test_parser.nit:57,24--27 text='"-e"'
-Read token at ../src/test_parser.nit:57,29--32 text='then'
-Read token at ../src/test_parser.nit:57,33--58,0 text='
-'
-Read token at ../src/test_parser.nit:58,3--9 text='no_file'
-Read token at ../src/test_parser.nit:58,11 text='='
-Read token at ../src/test_parser.nit:58,13--16 text='true'
-Read token at ../src/test_parser.nit:58,17--59,0 text='
-'
-Read token at ../src/test_parser.nit:59,2--5 text='else'
-Read token at ../src/test_parser.nit:59,7--8 text='if'
-Read token at ../src/test_parser.nit:59,10--13 text='args'
-Read token at ../src/test_parser.nit:59,14 text='.'
-Read token at ../src/test_parser.nit:59,15--19 text='first'
-Read token at ../src/test_parser.nit:59,21--22 text='=='
-Read token at ../src/test_parser.nit:59,24--27 text='"-i"'
-Read token at ../src/test_parser.nit:59,29--32 text='then'
-Read token at ../src/test_parser.nit:59,33--60,0 text='
-'
-Read token at ../src/test_parser.nit:60,3--13 text='interactive'
-Read token at ../src/test_parser.nit:60,15 text='='
-Read token at ../src/test_parser.nit:60,17--20 text='true'
-Read token at ../src/test_parser.nit:60,21--61,0 text='
-'
-Read token at ../src/test_parser.nit:61,2--5 text='else'
-Read token at ../src/test_parser.nit:61,7--8 text='if'
-Read token at ../src/test_parser.nit:61,10--13 text='args'
-Read token at ../src/test_parser.nit:61,14 text='.'
-Read token at ../src/test_parser.nit:61,15--19 text='first'
-Read token at ../src/test_parser.nit:61,21--22 text='=='
-Read token at ../src/test_parser.nit:61,24--27 text='"-h"'
-Read token at ../src/test_parser.nit:61,29--30 text='or'
-Read token at ../src/test_parser.nit:61,32--35 text='args'
-Read token at ../src/test_parser.nit:61,36 text='.'
-Read token at ../src/test_parser.nit:61,37--41 text='first'
-Read token at ../src/test_parser.nit:61,43--44 text='=='
-Read token at ../src/test_parser.nit:61,46--49 text='"-?"'
-Read token at ../src/test_parser.nit:61,51--54 text='then'
-Read token at ../src/test_parser.nit:61,55--62,0 text='
-'
-Read token at ../src/test_parser.nit:62,3--11 text='need_help'
-Read token at ../src/test_parser.nit:62,13 text='='
-Read token at ../src/test_parser.nit:62,15--18 text='true'
-Read token at ../src/test_parser.nit:62,19--63,0 text='
-'
-Read token at ../src/test_parser.nit:63,2--5 text='else'
-Read token at ../src/test_parser.nit:63,6--64,0 text='
-'
-Read token at ../src/test_parser.nit:64,3--8 text='stderr'
-Read token at ../src/test_parser.nit:64,9 text='.'
-Read token at ../src/test_parser.nit:64,10--14 text='write'
-Read token at ../src/test_parser.nit:64,15 text='('
-Read token at ../src/test_parser.nit:64,16--32 text='"Unknown option {'
-Read token at ../src/test_parser.nit:64,33--36 text='args'
-Read token at ../src/test_parser.nit:64,37 text='.'
-Read token at ../src/test_parser.nit:64,38--42 text='first'
-Read token at ../src/test_parser.nit:64,43--47 text='}.\n"'
-Read token at ../src/test_parser.nit:64,48 text=')'
-Read token at ../src/test_parser.nit:64,49--65,0 text='
-'
-Read token at ../src/test_parser.nit:65,3--6 text='exit'
-Read token at ../src/test_parser.nit:65,7 text='('
-Read token at ../src/test_parser.nit:65,8 text='0'
-Read token at ../src/test_parser.nit:65,9 text=')'
-Read token at ../src/test_parser.nit:65,10--66,0 text='
-'
-Read token at ../src/test_parser.nit:66,2--4 text='end'
-Read token at ../src/test_parser.nit:66,5--67,0 text='
-'
-Read token at ../src/test_parser.nit:67,2--5 text='args'
-Read token at ../src/test_parser.nit:67,6 text='.'
-Read token at ../src/test_parser.nit:67,7--11 text='shift'
-Read token at ../src/test_parser.nit:67,12--68,0 text='
-'
-Read token at ../src/test_parser.nit:68,1--3 text='end'
-Read token at ../src/test_parser.nit:68,4--69,0 text='
-'
-Read token at ../src/test_parser.nit:69,1--70,0 text='
-'
-Read token at ../src/test_parser.nit:70,1--2 text='if'
-Read token at ../src/test_parser.nit:70,4 text='('
-Read token at ../src/test_parser.nit:70,5--8 text='args'
-Read token at ../src/test_parser.nit:70,9 text='.'
-Read token at ../src/test_parser.nit:70,10--17 text='is_empty'
-Read token at ../src/test_parser.nit:70,19--21 text='and'
-Read token at ../src/test_parser.nit:70,23--25 text='not'
-Read token at ../src/test_parser.nit:70,27--37 text='interactive'
-Read token at ../src/test_parser.nit:70,38 text=')'
-Read token at ../src/test_parser.nit:70,40--41 text='or'
-Read token at ../src/test_parser.nit:70,43--51 text='need_help'
-Read token at ../src/test_parser.nit:70,53--56 text='then'
-Read token at ../src/test_parser.nit:70,57--71,0 text='
+Read token at ../src/test_parser.nit:37,1--3 text='end'
+Read token at ../src/test_parser.nit:37,4--38,0 text='
+'
+Read token at ../src/test_parser.nit:38,1--39,0 text='
+'
+Read token at ../src/test_parser.nit:39,1--3 text='var'
+Read token at ../src/test_parser.nit:39,5--12 text='no_print'
+Read token at ../src/test_parser.nit:39,14 text='='
+Read token at ../src/test_parser.nit:39,16--20 text='false'
+Read token at ../src/test_parser.nit:39,21--40,0 text='
+'
+Read token at ../src/test_parser.nit:40,1--3 text='var'
+Read token at ../src/test_parser.nit:40,5--14 text='only_lexer'
+Read token at ../src/test_parser.nit:40,16 text='='
+Read token at ../src/test_parser.nit:40,18--22 text='false'
+Read token at ../src/test_parser.nit:40,23--41,0 text='
+'
+Read token at ../src/test_parser.nit:41,1--3 text='var'
+Read token at ../src/test_parser.nit:41,5--13 text='need_help'
+Read token at ../src/test_parser.nit:41,15 text='='
+Read token at ../src/test_parser.nit:41,17--21 text='false'
+Read token at ../src/test_parser.nit:41,22--42,0 text='
+'
+Read token at ../src/test_parser.nit:42,1--3 text='var'
+Read token at ../src/test_parser.nit:42,5--11 text='no_file'
+Read token at ../src/test_parser.nit:42,13 text='='
+Read token at ../src/test_parser.nit:42,15--19 text='false'
+Read token at ../src/test_parser.nit:42,20--43,0 text='
+'
+Read token at ../src/test_parser.nit:43,1--3 text='var'
+Read token at ../src/test_parser.nit:43,5--15 text='interactive'
+Read token at ../src/test_parser.nit:43,17 text='='
+Read token at ../src/test_parser.nit:43,19--23 text='false'
+Read token at ../src/test_parser.nit:43,24--44,0 text='
+'
+Read token at ../src/test_parser.nit:44,1--45,0 text='
+'
+Read token at ../src/test_parser.nit:45,1--5 text='while'
+Read token at ../src/test_parser.nit:45,7--9 text='not'
+Read token at ../src/test_parser.nit:45,11--14 text='args'
+Read token at ../src/test_parser.nit:45,15 text='.'
+Read token at ../src/test_parser.nit:45,16--23 text='is_empty'
+Read token at ../src/test_parser.nit:45,25--27 text='and'
+Read token at ../src/test_parser.nit:45,29--32 text='args'
+Read token at ../src/test_parser.nit:45,33 text='.'
+Read token at ../src/test_parser.nit:45,34--38 text='first'
+Read token at ../src/test_parser.nit:45,39 text='.'
+Read token at ../src/test_parser.nit:45,40--44 text='chars'
+Read token at ../src/test_parser.nit:45,45 text='.'
+Read token at ../src/test_parser.nit:45,46--50 text='first'
+Read token at ../src/test_parser.nit:45,52--53 text='=='
+Read token at ../src/test_parser.nit:45,55--57 text=''-''
+Read token at ../src/test_parser.nit:45,59--60 text='do'
+Read token at ../src/test_parser.nit:45,61--46,0 text='
+'
+Read token at ../src/test_parser.nit:46,2--3 text='if'
+Read token at ../src/test_parser.nit:46,5--8 text='args'
+Read token at ../src/test_parser.nit:46,9 text='.'
+Read token at ../src/test_parser.nit:46,10--14 text='first'
+Read token at ../src/test_parser.nit:46,16--17 text='=='
+Read token at ../src/test_parser.nit:46,19--22 text='"-n"'
+Read token at ../src/test_parser.nit:46,24--27 text='then'
+Read token at ../src/test_parser.nit:46,28--47,0 text='
+'
+Read token at ../src/test_parser.nit:47,3--10 text='no_print'
+Read token at ../src/test_parser.nit:47,12 text='='
+Read token at ../src/test_parser.nit:47,14--17 text='true'
+Read token at ../src/test_parser.nit:47,18--48,0 text='
+'
+Read token at ../src/test_parser.nit:48,2--5 text='else'
+Read token at ../src/test_parser.nit:48,7--8 text='if'
+Read token at ../src/test_parser.nit:48,10--13 text='args'
+Read token at ../src/test_parser.nit:48,14 text='.'
+Read token at ../src/test_parser.nit:48,15--19 text='first'
+Read token at ../src/test_parser.nit:48,21--22 text='=='
+Read token at ../src/test_parser.nit:48,24--27 text='"-l"'
+Read token at ../src/test_parser.nit:48,29--32 text='then'
+Read token at ../src/test_parser.nit:48,33--49,0 text='
+'
+Read token at ../src/test_parser.nit:49,3--12 text='only_lexer'
+Read token at ../src/test_parser.nit:49,14 text='='
+Read token at ../src/test_parser.nit:49,16--19 text='true'
+Read token at ../src/test_parser.nit:49,20--50,0 text='
+'
+Read token at ../src/test_parser.nit:50,2--5 text='else'
+Read token at ../src/test_parser.nit:50,7--8 text='if'
+Read token at ../src/test_parser.nit:50,10--13 text='args'
+Read token at ../src/test_parser.nit:50,14 text='.'
+Read token at ../src/test_parser.nit:50,15--19 text='first'
+Read token at ../src/test_parser.nit:50,21--22 text='=='
+Read token at ../src/test_parser.nit:50,24--27 text='"-p"'
+Read token at ../src/test_parser.nit:50,29--32 text='then'
+Read token at ../src/test_parser.nit:50,33--51,0 text='
+'
+Read token at ../src/test_parser.nit:51,3--12 text='only_lexer'
+Read token at ../src/test_parser.nit:51,14 text='='
+Read token at ../src/test_parser.nit:51,16--20 text='false'
+Read token at ../src/test_parser.nit:51,21--52,0 text='
+'
+Read token at ../src/test_parser.nit:52,2--5 text='else'
+Read token at ../src/test_parser.nit:52,7--8 text='if'
+Read token at ../src/test_parser.nit:52,10--13 text='args'
+Read token at ../src/test_parser.nit:52,14 text='.'
+Read token at ../src/test_parser.nit:52,15--19 text='first'
+Read token at ../src/test_parser.nit:52,21--22 text='=='
+Read token at ../src/test_parser.nit:52,24--27 text='"-e"'
+Read token at ../src/test_parser.nit:52,29--32 text='then'
+Read token at ../src/test_parser.nit:52,33--53,0 text='
+'
+Read token at ../src/test_parser.nit:53,3--9 text='no_file'
+Read token at ../src/test_parser.nit:53,11 text='='
+Read token at ../src/test_parser.nit:53,13--16 text='true'
+Read token at ../src/test_parser.nit:53,17--54,0 text='
+'
+Read token at ../src/test_parser.nit:54,2--5 text='else'
+Read token at ../src/test_parser.nit:54,7--8 text='if'
+Read token at ../src/test_parser.nit:54,10--13 text='args'
+Read token at ../src/test_parser.nit:54,14 text='.'
+Read token at ../src/test_parser.nit:54,15--19 text='first'
+Read token at ../src/test_parser.nit:54,21--22 text='=='
+Read token at ../src/test_parser.nit:54,24--27 text='"-i"'
+Read token at ../src/test_parser.nit:54,29--32 text='then'
+Read token at ../src/test_parser.nit:54,33--55,0 text='
+'
+Read token at ../src/test_parser.nit:55,3--13 text='interactive'
+Read token at ../src/test_parser.nit:55,15 text='='
+Read token at ../src/test_parser.nit:55,17--20 text='true'
+Read token at ../src/test_parser.nit:55,21--56,0 text='
+'
+Read token at ../src/test_parser.nit:56,2--5 text='else'
+Read token at ../src/test_parser.nit:56,7--8 text='if'
+Read token at ../src/test_parser.nit:56,10--13 text='args'
+Read token at ../src/test_parser.nit:56,14 text='.'
+Read token at ../src/test_parser.nit:56,15--19 text='first'
+Read token at ../src/test_parser.nit:56,21--22 text='=='
+Read token at ../src/test_parser.nit:56,24--27 text='"-h"'
+Read token at ../src/test_parser.nit:56,29--30 text='or'
+Read token at ../src/test_parser.nit:56,32--35 text='args'
+Read token at ../src/test_parser.nit:56,36 text='.'
+Read token at ../src/test_parser.nit:56,37--41 text='first'
+Read token at ../src/test_parser.nit:56,43--44 text='=='
+Read token at ../src/test_parser.nit:56,46--49 text='"-?"'
+Read token at ../src/test_parser.nit:56,51--54 text='then'
+Read token at ../src/test_parser.nit:56,55--57,0 text='
+'
+Read token at ../src/test_parser.nit:57,3--11 text='need_help'
+Read token at ../src/test_parser.nit:57,13 text='='
+Read token at ../src/test_parser.nit:57,15--18 text='true'
+Read token at ../src/test_parser.nit:57,19--58,0 text='
+'
+Read token at ../src/test_parser.nit:58,2--5 text='else'
+Read token at ../src/test_parser.nit:58,6--59,0 text='
+'
+Read token at ../src/test_parser.nit:59,3--8 text='stderr'
+Read token at ../src/test_parser.nit:59,9 text='.'
+Read token at ../src/test_parser.nit:59,10--14 text='write'
+Read token at ../src/test_parser.nit:59,15 text='('
+Read token at ../src/test_parser.nit:59,16--32 text='"Unknown option {'
+Read token at ../src/test_parser.nit:59,33--36 text='args'
+Read token at ../src/test_parser.nit:59,37 text='.'
+Read token at ../src/test_parser.nit:59,38--42 text='first'
+Read token at ../src/test_parser.nit:59,43--47 text='}.\n"'
+Read token at ../src/test_parser.nit:59,48 text=')'
+Read token at ../src/test_parser.nit:59,49--60,0 text='
+'
+Read token at ../src/test_parser.nit:60,3--6 text='exit'
+Read token at ../src/test_parser.nit:60,7 text='('
+Read token at ../src/test_parser.nit:60,8 text='0'
+Read token at ../src/test_parser.nit:60,9 text=')'
+Read token at ../src/test_parser.nit:60,10--61,0 text='
+'
+Read token at ../src/test_parser.nit:61,2--4 text='end'
+Read token at ../src/test_parser.nit:61,5--62,0 text='
+'
+Read token at ../src/test_parser.nit:62,2--5 text='args'
+Read token at ../src/test_parser.nit:62,6 text='.'
+Read token at ../src/test_parser.nit:62,7--11 text='shift'
+Read token at ../src/test_parser.nit:62,12--63,0 text='
+'
+Read token at ../src/test_parser.nit:63,1--3 text='end'
+Read token at ../src/test_parser.nit:63,4--64,0 text='
+'
+Read token at ../src/test_parser.nit:64,1--65,0 text='
+'
+Read token at ../src/test_parser.nit:65,1--2 text='if'
+Read token at ../src/test_parser.nit:65,4 text='('
+Read token at ../src/test_parser.nit:65,5--8 text='args'
+Read token at ../src/test_parser.nit:65,9 text='.'
+Read token at ../src/test_parser.nit:65,10--17 text='is_empty'
+Read token at ../src/test_parser.nit:65,19--21 text='and'
+Read token at ../src/test_parser.nit:65,23--25 text='not'
+Read token at ../src/test_parser.nit:65,27--37 text='interactive'
+Read token at ../src/test_parser.nit:65,38 text=')'
+Read token at ../src/test_parser.nit:65,40--41 text='or'
+Read token at ../src/test_parser.nit:65,43--51 text='need_help'
+Read token at ../src/test_parser.nit:65,53--56 text='then'
+Read token at ../src/test_parser.nit:65,57--66,0 text='
+'
+Read token at ../src/test_parser.nit:66,2--6 text='print'
+Read token at ../src/test_parser.nit:66,7 text='('
+Read token at ../src/test_parser.nit:66,8--15 text='"usage:"'
+Read token at ../src/test_parser.nit:66,16 text=')'
+Read token at ../src/test_parser.nit:66,17--67,0 text='
+'
+Read token at ../src/test_parser.nit:67,2--6 text='print'
+Read token at ../src/test_parser.nit:67,7 text='('
+Read token at ../src/test_parser.nit:67,8--53 text='"  test_parser [options]... <filename.nit>..."'
+Read token at ../src/test_parser.nit:67,54 text=')'
+Read token at ../src/test_parser.nit:67,55--68,0 text='
+'
+Read token at ../src/test_parser.nit:68,2--6 text='print'
+Read token at ../src/test_parser.nit:68,7 text='('
+Read token at ../src/test_parser.nit:68,8--48 text='"  test_parser -e [options]... <text>..."'
+Read token at ../src/test_parser.nit:68,49 text=')'
+Read token at ../src/test_parser.nit:68,50--69,0 text='
+'
+Read token at ../src/test_parser.nit:69,2--6 text='print'
+Read token at ../src/test_parser.nit:69,7 text='('
+Read token at ../src/test_parser.nit:69,8--38 text='"  test_parser -i [options]..."'
+Read token at ../src/test_parser.nit:69,39 text=')'
+Read token at ../src/test_parser.nit:69,40--70,0 text='
+'
+Read token at ../src/test_parser.nit:70,2--6 text='print'
+Read token at ../src/test_parser.nit:70,7 text='('
+Read token at ../src/test_parser.nit:70,8--17 text='"options:"'
+Read token at ../src/test_parser.nit:70,18 text=')'
+Read token at ../src/test_parser.nit:70,19--71,0 text='
 '
 Read token at ../src/test_parser.nit:71,2--6 text='print'
 Read token at ../src/test_parser.nit:71,7 text='('
-Read token at ../src/test_parser.nit:71,8--15 text='"usage:"'
-Read token at ../src/test_parser.nit:71,16 text=')'
-Read token at ../src/test_parser.nit:71,17--72,0 text='
+Read token at ../src/test_parser.nit:71,8--35 text='"  -n      do not print anything"'
+Read token at ../src/test_parser.nit:71,36 text=')'
+Read token at ../src/test_parser.nit:71,37--72,0 text='
 '
 Read token at ../src/test_parser.nit:72,2--6 text='print'
 Read token at ../src/test_parser.nit:72,7 text='('
-Read token at ../src/test_parser.nit:72,8--53 text='"  test_parser [options]... <filename.nit>..."'
-Read token at ../src/test_parser.nit:72,54 text=')'
-Read token at ../src/test_parser.nit:72,55--73,0 text='
+Read token at ../src/test_parser.nit:72,8--24 text='"  -l      only lexer"'
+Read token at ../src/test_parser.nit:72,25 text=')'
+Read token at ../src/test_parser.nit:72,26--73,0 text='
 '
 Read token at ../src/test_parser.nit:73,2--6 text='print'
 Read token at ../src/test_parser.nit:73,7 text='('
-Read token at ../src/test_parser.nit:73,8--48 text='"  test_parser -e [options]... <text>..."'
-Read token at ../src/test_parser.nit:73,49 text=')'
-Read token at ../src/test_parser.nit:73,50--74,0 text='
+Read token at ../src/test_parser.nit:73,8--40 text='"  -p      lexer and parser (default)"'
+Read token at ../src/test_parser.nit:73,41 text=')'
+Read token at ../src/test_parser.nit:73,42--74,0 text='
 '
 Read token at ../src/test_parser.nit:74,2--6 text='print'
 Read token at ../src/test_parser.nit:74,7 text='('
-Read token at ../src/test_parser.nit:74,8--38 text='"  test_parser -i [options]..."'
-Read token at ../src/test_parser.nit:74,39 text=')'
-Read token at ../src/test_parser.nit:74,40--75,0 text='
+Read token at ../src/test_parser.nit:74,8--67 text='"  -e      instead on files, each argument is a content to parse"'
+Read token at ../src/test_parser.nit:74,68 text=')'
+Read token at ../src/test_parser.nit:74,69--75,0 text='
 '
 Read token at ../src/test_parser.nit:75,2--6 text='print'
 Read token at ../src/test_parser.nit:75,7 text='('
-Read token at ../src/test_parser.nit:75,8--17 text='"options:"'
-Read token at ../src/test_parser.nit:75,18 text=')'
-Read token at ../src/test_parser.nit:75,19--76,0 text='
+Read token at ../src/test_parser.nit:75,8--50 text='"  -i      tree to parse are read interactively"'
+Read token at ../src/test_parser.nit:75,51 text=')'
+Read token at ../src/test_parser.nit:75,52--76,0 text='
 '
 Read token at ../src/test_parser.nit:76,2--6 text='print'
 Read token at ../src/test_parser.nit:76,7 text='('
-Read token at ../src/test_parser.nit:76,8--35 text='"  -n      do not print anything"'
-Read token at ../src/test_parser.nit:76,36 text=')'
-Read token at ../src/test_parser.nit:76,37--77,0 text='
-'
-Read token at ../src/test_parser.nit:77,2--6 text='print'
-Read token at ../src/test_parser.nit:77,7 text='('
-Read token at ../src/test_parser.nit:77,8--24 text='"  -l      only lexer"'
-Read token at ../src/test_parser.nit:77,25 text=')'
-Read token at ../src/test_parser.nit:77,26--78,0 text='
-'
-Read token at ../src/test_parser.nit:78,2--6 text='print'
-Read token at ../src/test_parser.nit:78,7 text='('
-Read token at ../src/test_parser.nit:78,8--40 text='"  -p      lexer and parser (default)"'
-Read token at ../src/test_parser.nit:78,41 text=')'
-Read token at ../src/test_parser.nit:78,42--79,0 text='
-'
-Read token at ../src/test_parser.nit:79,2--6 text='print'
-Read token at ../src/test_parser.nit:79,7 text='('
-Read token at ../src/test_parser.nit:79,8--67 text='"  -e      instead on files, each argument is a content to parse"'
-Read token at ../src/test_parser.nit:79,68 text=')'
-Read token at ../src/test_parser.nit:79,69--80,0 text='
-'
-Read token at ../src/test_parser.nit:80,2--6 text='print'
-Read token at ../src/test_parser.nit:80,7 text='('
-Read token at ../src/test_parser.nit:80,8--50 text='"  -i      tree to parse are read interactively"'
-Read token at ../src/test_parser.nit:80,51 text=')'
-Read token at ../src/test_parser.nit:80,52--81,0 text='
-'
-Read token at ../src/test_parser.nit:81,2--6 text='print'
-Read token at ../src/test_parser.nit:81,7 text='('
-Read token at ../src/test_parser.nit:81,8--29 text='"  -h      print this help"'
-Read token at ../src/test_parser.nit:81,30 text=')'
-Read token at ../src/test_parser.nit:81,31--82,0 text='
-'
-Read token at ../src/test_parser.nit:82,1--4 text='else'
-Read token at ../src/test_parser.nit:82,6--7 text='if'
-Read token at ../src/test_parser.nit:82,9--19 text='interactive'
-Read token at ../src/test_parser.nit:82,21--24 text='then'
-Read token at ../src/test_parser.nit:82,25--83,0 text='
-'
-Read token at ../src/test_parser.nit:83,2--3 text='if'
-Read token at ../src/test_parser.nit:83,5--14 text='only_lexer'
-Read token at ../src/test_parser.nit:83,16--19 text='then'
-Read token at ../src/test_parser.nit:83,20--84,0 text='
-'
-Read token at ../src/test_parser.nit:84,3--7 text='print'
-Read token at ../src/test_parser.nit:84,9--44 text='"Error: -l and -i are incompatibles"'
-Read token at ../src/test_parser.nit:84,45--85,0 text='
-'
-Read token at ../src/test_parser.nit:85,3--6 text='exit'
-Read token at ../src/test_parser.nit:85,8 text='1'
-Read token at ../src/test_parser.nit:85,9--86,0 text='
-'
-Read token at ../src/test_parser.nit:86,2--5 text='else'
-Read token at ../src/test_parser.nit:86,7--8 text='if'
-Read token at ../src/test_parser.nit:86,10--16 text='no_file'
-Read token at ../src/test_parser.nit:86,18--21 text='then'
-Read token at ../src/test_parser.nit:86,22--87,0 text='
-'
-Read token at ../src/test_parser.nit:87,3--7 text='print'
-Read token at ../src/test_parser.nit:87,9--44 text='"Error: -e and -i are incompatibles"'
-Read token at ../src/test_parser.nit:87,45--88,0 text='
-'
-Read token at ../src/test_parser.nit:88,3--6 text='exit'
-Read token at ../src/test_parser.nit:88,8 text='1'
-Read token at ../src/test_parser.nit:88,9--89,0 text='
-'
-Read token at ../src/test_parser.nit:89,2--5 text='else'
-Read token at ../src/test_parser.nit:89,7--8 text='if'
-Read token at ../src/test_parser.nit:89,10--12 text='not'
-Read token at ../src/test_parser.nit:89,14--17 text='args'
-Read token at ../src/test_parser.nit:89,18 text='.'
-Read token at ../src/test_parser.nit:89,19--26 text='is_empty'
-Read token at ../src/test_parser.nit:89,28--31 text='then'
-Read token at ../src/test_parser.nit:89,32--90,0 text='
-'
-Read token at ../src/test_parser.nit:90,3--7 text='print'
-Read token at ../src/test_parser.nit:90,9--43 text='"Error: -i works without arguments"'
-Read token at ../src/test_parser.nit:90,44--91,0 text='
-'
-Read token at ../src/test_parser.nit:91,3--6 text='exit'
-Read token at ../src/test_parser.nit:91,8 text='1'
-Read token at ../src/test_parser.nit:91,9--92,0 text='
-'
-Read token at ../src/test_parser.nit:92,2--4 text='end'
-Read token at ../src/test_parser.nit:92,5--93,0 text='
-'
-Read token at ../src/test_parser.nit:93,1--94,0 text='
-'
-Read token at ../src/test_parser.nit:94,2--4 text='var'
-Read token at ../src/test_parser.nit:94,6--7 text='tc'
-Read token at ../src/test_parser.nit:94,9 text='='
-Read token at ../src/test_parser.nit:94,11--13 text='new'
-Read token at ../src/test_parser.nit:94,15--25 text='ToolContext'
-Read token at ../src/test_parser.nit:94,26--95,0 text='
-'
-Read token at ../src/test_parser.nit:95,1--96,0 text='
-'
-Read token at ../src/test_parser.nit:96,2--5 text='loop'
-Read token at ../src/test_parser.nit:96,6--97,0 text='
-'
-Read token at ../src/test_parser.nit:97,3--5 text='var'
-Read token at ../src/test_parser.nit:97,7 text='n'
-Read token at ../src/test_parser.nit:97,9 text='='
-Read token at ../src/test_parser.nit:97,11--12 text='tc'
-Read token at ../src/test_parser.nit:97,13 text='.'
-Read token at ../src/test_parser.nit:97,14--30 text='interactive_parse'
-Read token at ../src/test_parser.nit:97,31 text='('
-Read token at ../src/test_parser.nit:97,32--36 text='"-->"'
-Read token at ../src/test_parser.nit:97,37 text=')'
-Read token at ../src/test_parser.nit:97,38--98,0 text='
-'
-Read token at ../src/test_parser.nit:98,3--4 text='if'
-Read token at ../src/test_parser.nit:98,6 text='n'
-Read token at ../src/test_parser.nit:98,8--10 text='isa'
-Read token at ../src/test_parser.nit:98,12--18 text='TString'
-Read token at ../src/test_parser.nit:98,20--23 text='then'
-Read token at ../src/test_parser.nit:98,24--99,0 text='
-'
-Read token at ../src/test_parser.nit:99,4--6 text='var'
-Read token at ../src/test_parser.nit:99,8 text='s'
-Read token at ../src/test_parser.nit:99,10 text='='
-Read token at ../src/test_parser.nit:99,12 text='n'
-Read token at ../src/test_parser.nit:99,13 text='.'
-Read token at ../src/test_parser.nit:99,14--17 text='text'
-Read token at ../src/test_parser.nit:99,18--100,0 text='
-'
-Read token at ../src/test_parser.nit:100,4--5 text='if'
-Read token at ../src/test_parser.nit:100,7 text='s'
-Read token at ../src/test_parser.nit:100,9--10 text='=='
-Read token at ../src/test_parser.nit:100,12--15 text='":q"'
-Read token at ../src/test_parser.nit:100,17--20 text='then'
-Read token at ../src/test_parser.nit:100,21--101,0 text='
-'
-Read token at ../src/test_parser.nit:101,5--9 text='break'
-Read token at ../src/test_parser.nit:101,10--102,0 text='
-'
-Read token at ../src/test_parser.nit:102,4--7 text='else'
-Read token at ../src/test_parser.nit:102,8--103,0 text='
-'
-Read token at ../src/test_parser.nit:103,5--9 text='print'
-Read token at ../src/test_parser.nit:103,11--24 text='"`:q` to quit"'
-Read token at ../src/test_parser.nit:103,25--104,0 text='
-'
-Read token at ../src/test_parser.nit:104,4--6 text='end'
-Read token at ../src/test_parser.nit:104,7--105,0 text='
+Read token at ../src/test_parser.nit:76,8--29 text='"  -h      print this help"'
+Read token at ../src/test_parser.nit:76,30 text=')'
+Read token at ../src/test_parser.nit:76,31--77,0 text='
+'
+Read token at ../src/test_parser.nit:77,1--4 text='else'
+Read token at ../src/test_parser.nit:77,6--7 text='if'
+Read token at ../src/test_parser.nit:77,9--19 text='interactive'
+Read token at ../src/test_parser.nit:77,21--24 text='then'
+Read token at ../src/test_parser.nit:77,25--78,0 text='
+'
+Read token at ../src/test_parser.nit:78,2--3 text='if'
+Read token at ../src/test_parser.nit:78,5--14 text='only_lexer'
+Read token at ../src/test_parser.nit:78,16--19 text='then'
+Read token at ../src/test_parser.nit:78,20--79,0 text='
+'
+Read token at ../src/test_parser.nit:79,3--7 text='print'
+Read token at ../src/test_parser.nit:79,9--44 text='"Error: -l and -i are incompatibles"'
+Read token at ../src/test_parser.nit:79,45--80,0 text='
+'
+Read token at ../src/test_parser.nit:80,3--6 text='exit'
+Read token at ../src/test_parser.nit:80,8 text='1'
+Read token at ../src/test_parser.nit:80,9--81,0 text='
+'
+Read token at ../src/test_parser.nit:81,2--5 text='else'
+Read token at ../src/test_parser.nit:81,7--8 text='if'
+Read token at ../src/test_parser.nit:81,10--16 text='no_file'
+Read token at ../src/test_parser.nit:81,18--21 text='then'
+Read token at ../src/test_parser.nit:81,22--82,0 text='
+'
+Read token at ../src/test_parser.nit:82,3--7 text='print'
+Read token at ../src/test_parser.nit:82,9--44 text='"Error: -e and -i are incompatibles"'
+Read token at ../src/test_parser.nit:82,45--83,0 text='
+'
+Read token at ../src/test_parser.nit:83,3--6 text='exit'
+Read token at ../src/test_parser.nit:83,8 text='1'
+Read token at ../src/test_parser.nit:83,9--84,0 text='
+'
+Read token at ../src/test_parser.nit:84,2--5 text='else'
+Read token at ../src/test_parser.nit:84,7--8 text='if'
+Read token at ../src/test_parser.nit:84,10--12 text='not'
+Read token at ../src/test_parser.nit:84,14--17 text='args'
+Read token at ../src/test_parser.nit:84,18 text='.'
+Read token at ../src/test_parser.nit:84,19--26 text='is_empty'
+Read token at ../src/test_parser.nit:84,28--31 text='then'
+Read token at ../src/test_parser.nit:84,32--85,0 text='
+'
+Read token at ../src/test_parser.nit:85,3--7 text='print'
+Read token at ../src/test_parser.nit:85,9--43 text='"Error: -i works without arguments"'
+Read token at ../src/test_parser.nit:85,44--86,0 text='
+'
+Read token at ../src/test_parser.nit:86,3--6 text='exit'
+Read token at ../src/test_parser.nit:86,8 text='1'
+Read token at ../src/test_parser.nit:86,9--87,0 text='
+'
+Read token at ../src/test_parser.nit:87,2--4 text='end'
+Read token at ../src/test_parser.nit:87,5--88,0 text='
+'
+Read token at ../src/test_parser.nit:88,1--89,0 text='
+'
+Read token at ../src/test_parser.nit:89,2--4 text='var'
+Read token at ../src/test_parser.nit:89,6--7 text='tc'
+Read token at ../src/test_parser.nit:89,9 text='='
+Read token at ../src/test_parser.nit:89,11--13 text='new'
+Read token at ../src/test_parser.nit:89,15--25 text='ToolContext'
+Read token at ../src/test_parser.nit:89,26--90,0 text='
+'
+Read token at ../src/test_parser.nit:90,1--91,0 text='
+'
+Read token at ../src/test_parser.nit:91,2--5 text='loop'
+Read token at ../src/test_parser.nit:91,6--92,0 text='
+'
+Read token at ../src/test_parser.nit:92,3--5 text='var'
+Read token at ../src/test_parser.nit:92,7 text='n'
+Read token at ../src/test_parser.nit:92,9 text='='
+Read token at ../src/test_parser.nit:92,11--12 text='tc'
+Read token at ../src/test_parser.nit:92,13 text='.'
+Read token at ../src/test_parser.nit:92,14--30 text='interactive_parse'
+Read token at ../src/test_parser.nit:92,31 text='('
+Read token at ../src/test_parser.nit:92,32--36 text='"-->"'
+Read token at ../src/test_parser.nit:92,37 text=')'
+Read token at ../src/test_parser.nit:92,38--93,0 text='
+'
+Read token at ../src/test_parser.nit:93,3--4 text='if'
+Read token at ../src/test_parser.nit:93,6 text='n'
+Read token at ../src/test_parser.nit:93,8--10 text='isa'
+Read token at ../src/test_parser.nit:93,12--18 text='TString'
+Read token at ../src/test_parser.nit:93,20--23 text='then'
+Read token at ../src/test_parser.nit:93,24--94,0 text='
+'
+Read token at ../src/test_parser.nit:94,4--6 text='var'
+Read token at ../src/test_parser.nit:94,8 text='s'
+Read token at ../src/test_parser.nit:94,10 text='='
+Read token at ../src/test_parser.nit:94,12 text='n'
+Read token at ../src/test_parser.nit:94,13 text='.'
+Read token at ../src/test_parser.nit:94,14--17 text='text'
+Read token at ../src/test_parser.nit:94,18--95,0 text='
+'
+Read token at ../src/test_parser.nit:95,4--5 text='if'
+Read token at ../src/test_parser.nit:95,7 text='s'
+Read token at ../src/test_parser.nit:95,9--10 text='=='
+Read token at ../src/test_parser.nit:95,12--15 text='":q"'
+Read token at ../src/test_parser.nit:95,17--20 text='then'
+Read token at ../src/test_parser.nit:95,21--96,0 text='
+'
+Read token at ../src/test_parser.nit:96,5--9 text='break'
+Read token at ../src/test_parser.nit:96,10--97,0 text='
+'
+Read token at ../src/test_parser.nit:97,4--7 text='else'
+Read token at ../src/test_parser.nit:97,8--98,0 text='
+'
+Read token at ../src/test_parser.nit:98,5--9 text='print'
+Read token at ../src/test_parser.nit:98,11--24 text='"`:q` to quit"'
+Read token at ../src/test_parser.nit:98,25--99,0 text='
+'
+Read token at ../src/test_parser.nit:99,4--6 text='end'
+Read token at ../src/test_parser.nit:99,7--100,0 text='
+'
+Read token at ../src/test_parser.nit:100,4--11 text='continue'
+Read token at ../src/test_parser.nit:100,12--101,0 text='
+'
+Read token at ../src/test_parser.nit:101,3--5 text='end'
+Read token at ../src/test_parser.nit:101,6--102,0 text='
+'
+Read token at ../src/test_parser.nit:102,1--103,0 text='
+'
+Read token at ../src/test_parser.nit:103,3--4 text='if'
+Read token at ../src/test_parser.nit:103,6 text='n'
+Read token at ../src/test_parser.nit:103,8--10 text='isa'
+Read token at ../src/test_parser.nit:103,12--17 text='AError'
+Read token at ../src/test_parser.nit:103,19--22 text='then'
+Read token at ../src/test_parser.nit:103,23--104,0 text='
+'
+Read token at ../src/test_parser.nit:104,4--8 text='print'
+Read token at ../src/test_parser.nit:104,10--11 text='"{'
+Read token at ../src/test_parser.nit:104,12 text='n'
+Read token at ../src/test_parser.nit:104,13 text='.'
+Read token at ../src/test_parser.nit:104,14--21 text='location'
+Read token at ../src/test_parser.nit:104,22 text='.'
+Read token at ../src/test_parser.nit:104,23--34 text='colored_line'
+Read token at ../src/test_parser.nit:104,35 text='('
+Read token at ../src/test_parser.nit:104,36--41 text='"0;31"'
+Read token at ../src/test_parser.nit:104,42 text=')'
+Read token at ../src/test_parser.nit:104,43--46 text='}: {'
+Read token at ../src/test_parser.nit:104,47 text='n'
+Read token at ../src/test_parser.nit:104,48 text='.'
+Read token at ../src/test_parser.nit:104,49--55 text='message'
+Read token at ../src/test_parser.nit:104,56--57 text='}"'
+Read token at ../src/test_parser.nit:104,58--105,0 text='
 '
 Read token at ../src/test_parser.nit:105,4--11 text='continue'
 Read token at ../src/test_parser.nit:105,12--106,0 text='
@@ -562,276 +580,244 @@ Read token at ../src/test_parser.nit:106,6--107,0 text='
 Read token at ../src/test_parser.nit:107,1--108,0 text='
 '
 Read token at ../src/test_parser.nit:108,3--4 text='if'
-Read token at ../src/test_parser.nit:108,6 text='n'
-Read token at ../src/test_parser.nit:108,8--10 text='isa'
-Read token at ../src/test_parser.nit:108,12--17 text='AError'
+Read token at ../src/test_parser.nit:108,6--8 text='not'
+Read token at ../src/test_parser.nit:108,10--17 text='no_print'
 Read token at ../src/test_parser.nit:108,19--22 text='then'
 Read token at ../src/test_parser.nit:108,23--109,0 text='
 '
-Read token at ../src/test_parser.nit:109,4--8 text='print'
-Read token at ../src/test_parser.nit:109,10--11 text='"{'
-Read token at ../src/test_parser.nit:109,12 text='n'
-Read token at ../src/test_parser.nit:109,13 text='.'
-Read token at ../src/test_parser.nit:109,14--21 text='location'
-Read token at ../src/test_parser.nit:109,22 text='.'
-Read token at ../src/test_parser.nit:109,23--34 text='colored_line'
-Read token at ../src/test_parser.nit:109,35 text='('
-Read token at ../src/test_parser.nit:109,36--41 text='"0;31"'
-Read token at ../src/test_parser.nit:109,42 text=')'
-Read token at ../src/test_parser.nit:109,43--46 text='}: {'
-Read token at ../src/test_parser.nit:109,47 text='n'
-Read token at ../src/test_parser.nit:109,48 text='.'
-Read token at ../src/test_parser.nit:109,49--55 text='message'
-Read token at ../src/test_parser.nit:109,56--57 text='}"'
-Read token at ../src/test_parser.nit:109,58--110,0 text='
-'
-Read token at ../src/test_parser.nit:110,4--11 text='continue'
-Read token at ../src/test_parser.nit:110,12--111,0 text='
-'
-Read token at ../src/test_parser.nit:111,3--5 text='end'
-Read token at ../src/test_parser.nit:111,6--112,0 text='
-'
-Read token at ../src/test_parser.nit:112,1--113,0 text='
-'
-Read token at ../src/test_parser.nit:113,3--4 text='if'
-Read token at ../src/test_parser.nit:113,6--8 text='not'
-Read token at ../src/test_parser.nit:113,10--17 text='no_print'
-Read token at ../src/test_parser.nit:113,19--22 text='then'
-Read token at ../src/test_parser.nit:113,23--114,0 text='
-'
-Read token at ../src/test_parser.nit:114,4 text='('
-Read token at ../src/test_parser.nit:114,5--7 text='new'
-Read token at ../src/test_parser.nit:114,9--24 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:114,25 text=')'
-Read token at ../src/test_parser.nit:114,26 text='.'
-Read token at ../src/test_parser.nit:114,27--37 text='enter_visit'
-Read token at ../src/test_parser.nit:114,38 text='('
-Read token at ../src/test_parser.nit:114,39 text='n'
-Read token at ../src/test_parser.nit:114,40 text=')'
-Read token at ../src/test_parser.nit:114,41--115,0 text='
-'
-Read token at ../src/test_parser.nit:115,3--5 text='end'
-Read token at ../src/test_parser.nit:115,6--116,0 text='
-'
-Read token at ../src/test_parser.nit:116,2--4 text='end'
-Read token at ../src/test_parser.nit:116,5--117,0 text='
-'
-Read token at ../src/test_parser.nit:117,1--4 text='else'
-Read token at ../src/test_parser.nit:117,5--118,0 text='
-'
-Read token at ../src/test_parser.nit:118,2--4 text='for'
-Read token at ../src/test_parser.nit:118,6 text='a'
-Read token at ../src/test_parser.nit:118,8--9 text='in'
-Read token at ../src/test_parser.nit:118,11--14 text='args'
-Read token at ../src/test_parser.nit:118,16--17 text='do'
-Read token at ../src/test_parser.nit:118,18--119,0 text='
-'
-Read token at ../src/test_parser.nit:119,3--5 text='var'
-Read token at ../src/test_parser.nit:119,7--12 text='source'
-Read token at ../src/test_parser.nit:119,13--120,0 text='
-'
-Read token at ../src/test_parser.nit:120,3--4 text='if'
-Read token at ../src/test_parser.nit:120,6--12 text='no_file'
-Read token at ../src/test_parser.nit:120,14--17 text='then'
-Read token at ../src/test_parser.nit:120,18--121,0 text='
-'
-Read token at ../src/test_parser.nit:121,4--9 text='source'
-Read token at ../src/test_parser.nit:121,11 text='='
-Read token at ../src/test_parser.nit:121,13--15 text='new'
-Read token at ../src/test_parser.nit:121,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:121,27 text='.'
-Read token at ../src/test_parser.nit:121,28--38 text='from_string'
-Read token at ../src/test_parser.nit:121,39 text='('
-Read token at ../src/test_parser.nit:121,40--41 text='""'
-Read token at ../src/test_parser.nit:121,42 text=','
-Read token at ../src/test_parser.nit:121,44 text='a'
-Read token at ../src/test_parser.nit:121,45 text=')'
-Read token at ../src/test_parser.nit:121,46--122,0 text='
-'
-Read token at ../src/test_parser.nit:122,3--6 text='else'
-Read token at ../src/test_parser.nit:122,7--123,0 text='
-'
-Read token at ../src/test_parser.nit:123,4--6 text='var'
-Read token at ../src/test_parser.nit:123,8 text='f'
-Read token at ../src/test_parser.nit:123,10 text='='
-Read token at ../src/test_parser.nit:123,12--14 text='new'
-Read token at ../src/test_parser.nit:123,16--23 text='IFStream'
-Read token at ../src/test_parser.nit:123,24 text='.'
-Read token at ../src/test_parser.nit:123,25--28 text='open'
-Read token at ../src/test_parser.nit:123,29 text='('
-Read token at ../src/test_parser.nit:123,30 text='a'
-Read token at ../src/test_parser.nit:123,31 text=')'
-Read token at ../src/test_parser.nit:123,32--124,0 text='
-'
-Read token at ../src/test_parser.nit:124,4--9 text='source'
-Read token at ../src/test_parser.nit:124,11 text='='
-Read token at ../src/test_parser.nit:124,13--15 text='new'
-Read token at ../src/test_parser.nit:124,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:124,27 text='('
-Read token at ../src/test_parser.nit:124,28 text='a'
-Read token at ../src/test_parser.nit:124,29 text=','
-Read token at ../src/test_parser.nit:124,31 text='f'
-Read token at ../src/test_parser.nit:124,32 text=')'
-Read token at ../src/test_parser.nit:124,33--125,0 text='
-'
-Read token at ../src/test_parser.nit:125,4 text='f'
-Read token at ../src/test_parser.nit:125,5 text='.'
-Read token at ../src/test_parser.nit:125,6--10 text='close'
-Read token at ../src/test_parser.nit:125,11--126,0 text='
-'
-Read token at ../src/test_parser.nit:126,3--5 text='end'
-Read token at ../src/test_parser.nit:126,6--127,0 text='
-'
-Read token at ../src/test_parser.nit:127,3--5 text='var'
-Read token at ../src/test_parser.nit:127,7--11 text='lexer'
-Read token at ../src/test_parser.nit:127,13 text='='
-Read token at ../src/test_parser.nit:127,15--17 text='new'
-Read token at ../src/test_parser.nit:127,19--23 text='Lexer'
-Read token at ../src/test_parser.nit:127,24 text='('
-Read token at ../src/test_parser.nit:127,25--30 text='source'
-Read token at ../src/test_parser.nit:127,31 text=')'
-Read token at ../src/test_parser.nit:127,32--128,0 text='
-'
-Read token at ../src/test_parser.nit:128,3--4 text='if'
-Read token at ../src/test_parser.nit:128,6--15 text='only_lexer'
-Read token at ../src/test_parser.nit:128,17--20 text='then'
-Read token at ../src/test_parser.nit:128,21--129,0 text='
-'
-Read token at ../src/test_parser.nit:129,4--6 text='var'
-Read token at ../src/test_parser.nit:129,8--12 text='token'
-Read token at ../src/test_parser.nit:129,14 text='='
-Read token at ../src/test_parser.nit:129,16--20 text='lexer'
-Read token at ../src/test_parser.nit:129,21 text='.'
-Read token at ../src/test_parser.nit:129,22--25 text='next'
-Read token at ../src/test_parser.nit:129,26--130,0 text='
-'
-Read token at ../src/test_parser.nit:130,4--8 text='while'
-Read token at ../src/test_parser.nit:130,10--12 text='not'
-Read token at ../src/test_parser.nit:130,14--18 text='token'
-Read token at ../src/test_parser.nit:130,20--22 text='isa'
-Read token at ../src/test_parser.nit:130,24--26 text='EOF'
-Read token at ../src/test_parser.nit:130,28--29 text='do'
-Read token at ../src/test_parser.nit:130,30--131,0 text='
-'
-Read token at ../src/test_parser.nit:131,5--6 text='if'
-Read token at ../src/test_parser.nit:131,8--10 text='not'
-Read token at ../src/test_parser.nit:131,12--19 text='no_print'
-Read token at ../src/test_parser.nit:131,21--24 text='then'
-Read token at ../src/test_parser.nit:131,25--132,0 text='
-'
-Read token at ../src/test_parser.nit:132,6--10 text='print'
-Read token at ../src/test_parser.nit:132,11 text='('
-Read token at ../src/test_parser.nit:132,12--27 text='"Read token at {'
-Read token at ../src/test_parser.nit:132,28--32 text='token'
-Read token at ../src/test_parser.nit:132,33 text='.'
-Read token at ../src/test_parser.nit:132,34--41 text='location'
-Read token at ../src/test_parser.nit:132,42--50 text='} text='{'
-Read token at ../src/test_parser.nit:132,51--55 text='token'
-Read token at ../src/test_parser.nit:132,56 text='.'
-Read token at ../src/test_parser.nit:132,57--60 text='text'
-Read token at ../src/test_parser.nit:132,61--63 text='}'"'
-Read token at ../src/test_parser.nit:132,64 text=')'
-Read token at ../src/test_parser.nit:132,65--133,0 text='
-'
-Read token at ../src/test_parser.nit:133,5--7 text='end'
-Read token at ../src/test_parser.nit:133,8--134,0 text='
-'
-Read token at ../src/test_parser.nit:134,5--9 text='token'
-Read token at ../src/test_parser.nit:134,11 text='='
-Read token at ../src/test_parser.nit:134,13--17 text='lexer'
-Read token at ../src/test_parser.nit:134,18 text='.'
-Read token at ../src/test_parser.nit:134,19--22 text='next'
-Read token at ../src/test_parser.nit:134,23--135,0 text='
-'
-Read token at ../src/test_parser.nit:135,4--6 text='end'
-Read token at ../src/test_parser.nit:135,7--136,0 text='
-'
-Read token at ../src/test_parser.nit:136,3--6 text='else'
-Read token at ../src/test_parser.nit:136,7--137,0 text='
-'
-Read token at ../src/test_parser.nit:137,4--6 text='var'
-Read token at ../src/test_parser.nit:137,8--13 text='parser'
-Read token at ../src/test_parser.nit:137,15 text='='
-Read token at ../src/test_parser.nit:137,17--19 text='new'
-Read token at ../src/test_parser.nit:137,21--26 text='Parser'
-Read token at ../src/test_parser.nit:137,27 text='('
-Read token at ../src/test_parser.nit:137,28--32 text='lexer'
-Read token at ../src/test_parser.nit:137,33 text=')'
-Read token at ../src/test_parser.nit:137,34--138,0 text='
-'
-Read token at ../src/test_parser.nit:138,4--6 text='var'
-Read token at ../src/test_parser.nit:138,8--11 text='tree'
-Read token at ../src/test_parser.nit:138,13 text='='
-Read token at ../src/test_parser.nit:138,15--20 text='parser'
-Read token at ../src/test_parser.nit:138,21 text='.'
-Read token at ../src/test_parser.nit:138,22--26 text='parse'
-Read token at ../src/test_parser.nit:138,27--139,0 text='
-'
-Read token at ../src/test_parser.nit:139,1--140,0 text='
-'
-Read token at ../src/test_parser.nit:140,4--6 text='var'
-Read token at ../src/test_parser.nit:140,8--12 text='error'
-Read token at ../src/test_parser.nit:140,14 text='='
-Read token at ../src/test_parser.nit:140,16--19 text='tree'
-Read token at ../src/test_parser.nit:140,20 text='.'
-Read token at ../src/test_parser.nit:140,21--25 text='n_eof'
-Read token at ../src/test_parser.nit:140,26--141,0 text='
+Read token at ../src/test_parser.nit:109,4 text='('
+Read token at ../src/test_parser.nit:109,5--7 text='new'
+Read token at ../src/test_parser.nit:109,9--24 text='PrintTreeVisitor'
+Read token at ../src/test_parser.nit:109,25 text=')'
+Read token at ../src/test_parser.nit:109,26 text='.'
+Read token at ../src/test_parser.nit:109,27--37 text='enter_visit'
+Read token at ../src/test_parser.nit:109,38 text='('
+Read token at ../src/test_parser.nit:109,39 text='n'
+Read token at ../src/test_parser.nit:109,40 text=')'
+Read token at ../src/test_parser.nit:109,41--110,0 text='
+'
+Read token at ../src/test_parser.nit:110,3--5 text='end'
+Read token at ../src/test_parser.nit:110,6--111,0 text='
+'
+Read token at ../src/test_parser.nit:111,2--4 text='end'
+Read token at ../src/test_parser.nit:111,5--112,0 text='
+'
+Read token at ../src/test_parser.nit:112,1--4 text='else'
+Read token at ../src/test_parser.nit:112,5--113,0 text='
+'
+Read token at ../src/test_parser.nit:113,2--4 text='for'
+Read token at ../src/test_parser.nit:113,6 text='a'
+Read token at ../src/test_parser.nit:113,8--9 text='in'
+Read token at ../src/test_parser.nit:113,11--14 text='args'
+Read token at ../src/test_parser.nit:113,16--17 text='do'
+Read token at ../src/test_parser.nit:113,18--114,0 text='
+'
+Read token at ../src/test_parser.nit:114,3--5 text='var'
+Read token at ../src/test_parser.nit:114,7--12 text='source'
+Read token at ../src/test_parser.nit:114,13--115,0 text='
+'
+Read token at ../src/test_parser.nit:115,3--4 text='if'
+Read token at ../src/test_parser.nit:115,6--12 text='no_file'
+Read token at ../src/test_parser.nit:115,14--17 text='then'
+Read token at ../src/test_parser.nit:115,18--116,0 text='
+'
+Read token at ../src/test_parser.nit:116,4--9 text='source'
+Read token at ../src/test_parser.nit:116,11 text='='
+Read token at ../src/test_parser.nit:116,13--15 text='new'
+Read token at ../src/test_parser.nit:116,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:116,27 text='.'
+Read token at ../src/test_parser.nit:116,28--38 text='from_string'
+Read token at ../src/test_parser.nit:116,39 text='('
+Read token at ../src/test_parser.nit:116,40--41 text='""'
+Read token at ../src/test_parser.nit:116,42 text=','
+Read token at ../src/test_parser.nit:116,44 text='a'
+Read token at ../src/test_parser.nit:116,45 text=')'
+Read token at ../src/test_parser.nit:116,46--117,0 text='
+'
+Read token at ../src/test_parser.nit:117,3--6 text='else'
+Read token at ../src/test_parser.nit:117,7--118,0 text='
+'
+Read token at ../src/test_parser.nit:118,4--6 text='var'
+Read token at ../src/test_parser.nit:118,8 text='f'
+Read token at ../src/test_parser.nit:118,10 text='='
+Read token at ../src/test_parser.nit:118,12--14 text='new'
+Read token at ../src/test_parser.nit:118,16--23 text='IFStream'
+Read token at ../src/test_parser.nit:118,24 text='.'
+Read token at ../src/test_parser.nit:118,25--28 text='open'
+Read token at ../src/test_parser.nit:118,29 text='('
+Read token at ../src/test_parser.nit:118,30 text='a'
+Read token at ../src/test_parser.nit:118,31 text=')'
+Read token at ../src/test_parser.nit:118,32--119,0 text='
+'
+Read token at ../src/test_parser.nit:119,4--9 text='source'
+Read token at ../src/test_parser.nit:119,11 text='='
+Read token at ../src/test_parser.nit:119,13--15 text='new'
+Read token at ../src/test_parser.nit:119,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:119,27 text='('
+Read token at ../src/test_parser.nit:119,28 text='a'
+Read token at ../src/test_parser.nit:119,29 text=','
+Read token at ../src/test_parser.nit:119,31 text='f'
+Read token at ../src/test_parser.nit:119,32 text=')'
+Read token at ../src/test_parser.nit:119,33--120,0 text='
+'
+Read token at ../src/test_parser.nit:120,4 text='f'
+Read token at ../src/test_parser.nit:120,5 text='.'
+Read token at ../src/test_parser.nit:120,6--10 text='close'
+Read token at ../src/test_parser.nit:120,11--121,0 text='
+'
+Read token at ../src/test_parser.nit:121,3--5 text='end'
+Read token at ../src/test_parser.nit:121,6--122,0 text='
+'
+Read token at ../src/test_parser.nit:122,3--5 text='var'
+Read token at ../src/test_parser.nit:122,7--11 text='lexer'
+Read token at ../src/test_parser.nit:122,13 text='='
+Read token at ../src/test_parser.nit:122,15--17 text='new'
+Read token at ../src/test_parser.nit:122,19--23 text='Lexer'
+Read token at ../src/test_parser.nit:122,24 text='('
+Read token at ../src/test_parser.nit:122,25--30 text='source'
+Read token at ../src/test_parser.nit:122,31 text=')'
+Read token at ../src/test_parser.nit:122,32--123,0 text='
+'
+Read token at ../src/test_parser.nit:123,3--4 text='if'
+Read token at ../src/test_parser.nit:123,6--15 text='only_lexer'
+Read token at ../src/test_parser.nit:123,17--20 text='then'
+Read token at ../src/test_parser.nit:123,21--124,0 text='
+'
+Read token at ../src/test_parser.nit:124,4--6 text='var'
+Read token at ../src/test_parser.nit:124,8--12 text='token'
+Read token at ../src/test_parser.nit:124,14 text='='
+Read token at ../src/test_parser.nit:124,16--20 text='lexer'
+Read token at ../src/test_parser.nit:124,21 text='.'
+Read token at ../src/test_parser.nit:124,22--25 text='next'
+Read token at ../src/test_parser.nit:124,26--125,0 text='
+'
+Read token at ../src/test_parser.nit:125,4--8 text='while'
+Read token at ../src/test_parser.nit:125,10--12 text='not'
+Read token at ../src/test_parser.nit:125,14--18 text='token'
+Read token at ../src/test_parser.nit:125,20--22 text='isa'
+Read token at ../src/test_parser.nit:125,24--26 text='EOF'
+Read token at ../src/test_parser.nit:125,28--29 text='do'
+Read token at ../src/test_parser.nit:125,30--126,0 text='
+'
+Read token at ../src/test_parser.nit:126,5--6 text='if'
+Read token at ../src/test_parser.nit:126,8--10 text='not'
+Read token at ../src/test_parser.nit:126,12--19 text='no_print'
+Read token at ../src/test_parser.nit:126,21--24 text='then'
+Read token at ../src/test_parser.nit:126,25--127,0 text='
+'
+Read token at ../src/test_parser.nit:127,6--10 text='print'
+Read token at ../src/test_parser.nit:127,11 text='('
+Read token at ../src/test_parser.nit:127,12--27 text='"Read token at {'
+Read token at ../src/test_parser.nit:127,28--32 text='token'
+Read token at ../src/test_parser.nit:127,33 text='.'
+Read token at ../src/test_parser.nit:127,34--41 text='location'
+Read token at ../src/test_parser.nit:127,42--50 text='} text='{'
+Read token at ../src/test_parser.nit:127,51--55 text='token'
+Read token at ../src/test_parser.nit:127,56 text='.'
+Read token at ../src/test_parser.nit:127,57--60 text='text'
+Read token at ../src/test_parser.nit:127,61--63 text='}'"'
+Read token at ../src/test_parser.nit:127,64 text=')'
+Read token at ../src/test_parser.nit:127,65--128,0 text='
+'
+Read token at ../src/test_parser.nit:128,5--7 text='end'
+Read token at ../src/test_parser.nit:128,8--129,0 text='
+'
+Read token at ../src/test_parser.nit:129,5--9 text='token'
+Read token at ../src/test_parser.nit:129,11 text='='
+Read token at ../src/test_parser.nit:129,13--17 text='lexer'
+Read token at ../src/test_parser.nit:129,18 text='.'
+Read token at ../src/test_parser.nit:129,19--22 text='next'
+Read token at ../src/test_parser.nit:129,23--130,0 text='
+'
+Read token at ../src/test_parser.nit:130,4--6 text='end'
+Read token at ../src/test_parser.nit:130,7--131,0 text='
+'
+Read token at ../src/test_parser.nit:131,3--6 text='else'
+Read token at ../src/test_parser.nit:131,7--132,0 text='
+'
+Read token at ../src/test_parser.nit:132,4--6 text='var'
+Read token at ../src/test_parser.nit:132,8--13 text='parser'
+Read token at ../src/test_parser.nit:132,15 text='='
+Read token at ../src/test_parser.nit:132,17--19 text='new'
+Read token at ../src/test_parser.nit:132,21--26 text='Parser'
+Read token at ../src/test_parser.nit:132,27 text='('
+Read token at ../src/test_parser.nit:132,28--32 text='lexer'
+Read token at ../src/test_parser.nit:132,33 text=')'
+Read token at ../src/test_parser.nit:132,34--133,0 text='
+'
+Read token at ../src/test_parser.nit:133,4--6 text='var'
+Read token at ../src/test_parser.nit:133,8--11 text='tree'
+Read token at ../src/test_parser.nit:133,13 text='='
+Read token at ../src/test_parser.nit:133,15--20 text='parser'
+Read token at ../src/test_parser.nit:133,21 text='.'
+Read token at ../src/test_parser.nit:133,22--26 text='parse'
+Read token at ../src/test_parser.nit:133,27--134,0 text='
+'
+Read token at ../src/test_parser.nit:134,1--135,0 text='
+'
+Read token at ../src/test_parser.nit:135,4--6 text='var'
+Read token at ../src/test_parser.nit:135,8--12 text='error'
+Read token at ../src/test_parser.nit:135,14 text='='
+Read token at ../src/test_parser.nit:135,16--19 text='tree'
+Read token at ../src/test_parser.nit:135,20 text='.'
+Read token at ../src/test_parser.nit:135,21--25 text='n_eof'
+Read token at ../src/test_parser.nit:135,26--136,0 text='
+'
+Read token at ../src/test_parser.nit:136,4--5 text='if'
+Read token at ../src/test_parser.nit:136,7--11 text='error'
+Read token at ../src/test_parser.nit:136,13--15 text='isa'
+Read token at ../src/test_parser.nit:136,17--22 text='AError'
+Read token at ../src/test_parser.nit:136,24--27 text='then'
+Read token at ../src/test_parser.nit:136,28--137,0 text='
+'
+Read token at ../src/test_parser.nit:137,5--9 text='print'
+Read token at ../src/test_parser.nit:137,10 text='('
+Read token at ../src/test_parser.nit:137,11--21 text='"Error at {'
+Read token at ../src/test_parser.nit:137,22--26 text='error'
+Read token at ../src/test_parser.nit:137,27 text='.'
+Read token at ../src/test_parser.nit:137,28--35 text='location'
+Read token at ../src/test_parser.nit:137,36--42 text='}:\n\t{'
+Read token at ../src/test_parser.nit:137,43--47 text='error'
+Read token at ../src/test_parser.nit:137,48 text='.'
+Read token at ../src/test_parser.nit:137,49--55 text='message'
+Read token at ../src/test_parser.nit:137,56--57 text='}"'
+Read token at ../src/test_parser.nit:137,58 text=')'
+Read token at ../src/test_parser.nit:137,59--138,0 text='
+'
+Read token at ../src/test_parser.nit:138,5--10 text='return'
+Read token at ../src/test_parser.nit:138,11--139,0 text='
+'
+Read token at ../src/test_parser.nit:139,4--6 text='end'
+Read token at ../src/test_parser.nit:139,7--140,0 text='
+'
+Read token at ../src/test_parser.nit:140,1--141,0 text='
 '
 Read token at ../src/test_parser.nit:141,4--5 text='if'
-Read token at ../src/test_parser.nit:141,7--11 text='error'
-Read token at ../src/test_parser.nit:141,13--15 text='isa'
-Read token at ../src/test_parser.nit:141,17--22 text='AError'
-Read token at ../src/test_parser.nit:141,24--27 text='then'
-Read token at ../src/test_parser.nit:141,28--142,0 text='
-'
-Read token at ../src/test_parser.nit:142,5--9 text='print'
-Read token at ../src/test_parser.nit:142,10 text='('
-Read token at ../src/test_parser.nit:142,11--21 text='"Error at {'
-Read token at ../src/test_parser.nit:142,22--26 text='error'
+Read token at ../src/test_parser.nit:141,7--9 text='not'
+Read token at ../src/test_parser.nit:141,11--18 text='no_print'
+Read token at ../src/test_parser.nit:141,20--23 text='then'
+Read token at ../src/test_parser.nit:141,24--142,0 text='
+'
+Read token at ../src/test_parser.nit:142,5 text='('
+Read token at ../src/test_parser.nit:142,6--8 text='new'
+Read token at ../src/test_parser.nit:142,10--25 text='PrintTreeVisitor'
+Read token at ../src/test_parser.nit:142,26 text=')'
 Read token at ../src/test_parser.nit:142,27 text='.'
-Read token at ../src/test_parser.nit:142,28--35 text='location'
-Read token at ../src/test_parser.nit:142,36--42 text='}:\n\t{'
-Read token at ../src/test_parser.nit:142,43--47 text='error'
-Read token at ../src/test_parser.nit:142,48 text='.'
-Read token at ../src/test_parser.nit:142,49--55 text='message'
-Read token at ../src/test_parser.nit:142,56--57 text='}"'
-Read token at ../src/test_parser.nit:142,58 text=')'
-Read token at ../src/test_parser.nit:142,59--143,0 text='
-'
-Read token at ../src/test_parser.nit:143,5--10 text='return'
-Read token at ../src/test_parser.nit:143,11--144,0 text='
-'
-Read token at ../src/test_parser.nit:144,4--6 text='end'
-Read token at ../src/test_parser.nit:144,7--145,0 text='
-'
-Read token at ../src/test_parser.nit:145,1--146,0 text='
-'
-Read token at ../src/test_parser.nit:146,4--5 text='if'
-Read token at ../src/test_parser.nit:146,7--9 text='not'
-Read token at ../src/test_parser.nit:146,11--18 text='no_print'
-Read token at ../src/test_parser.nit:146,20--23 text='then'
-Read token at ../src/test_parser.nit:146,24--147,0 text='
-'
-Read token at ../src/test_parser.nit:147,5 text='('
-Read token at ../src/test_parser.nit:147,6--8 text='new'
-Read token at ../src/test_parser.nit:147,10--25 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:147,26 text=')'
-Read token at ../src/test_parser.nit:147,27 text='.'
-Read token at ../src/test_parser.nit:147,28--38 text='enter_visit'
-Read token at ../src/test_parser.nit:147,39 text='('
-Read token at ../src/test_parser.nit:147,40--43 text='tree'
-Read token at ../src/test_parser.nit:147,44 text=')'
-Read token at ../src/test_parser.nit:147,45--148,0 text='
-'
-Read token at ../src/test_parser.nit:148,4--6 text='end'
-Read token at ../src/test_parser.nit:148,7--149,0 text='
-'
-Read token at ../src/test_parser.nit:149,3--5 text='end'
-Read token at ../src/test_parser.nit:149,6--150,0 text='
-'
-Read token at ../src/test_parser.nit:150,2--4 text='end'
-Read token at ../src/test_parser.nit:150,5--151,0 text='
-'
-Read token at ../src/test_parser.nit:151,1--3 text='end'
-Read token at ../src/test_parser.nit:151,4--152,0 text='
+Read token at ../src/test_parser.nit:142,28--38 text='enter_visit'
+Read token at ../src/test_parser.nit:142,39 text='('
+Read token at ../src/test_parser.nit:142,40--43 text='tree'
+Read token at ../src/test_parser.nit:142,44 text=')'
+Read token at ../src/test_parser.nit:142,45--143,0 text='
+'
+Read token at ../src/test_parser.nit:143,4--6 text='end'
+Read token at ../src/test_parser.nit:143,7--144,0 text='
+'
+Read token at ../src/test_parser.nit:144,3--5 text='end'
+Read token at ../src/test_parser.nit:144,6--145,0 text='
+'
+Read token at ../src/test_parser.nit:145,2--4 text='end'
+Read token at ../src/test_parser.nit:145,5--146,0 text='
+'
+Read token at ../src/test_parser.nit:146,1--3 text='end'
+Read token at ../src/test_parser.nit:146,4--147,0 text='
 '
index 040226a..427d28c 100644 (file)
@@ -21,15 +21,9 @@ import file
 
 class StringTest
 
-       var copied_str: nullable String
+       var copied_str: nullable String = null
 
-       var referenced_str: nullable String
-
-       init
-       do
-               copied_str = null
-               referenced_str = null
-       end
+       var referenced_str: nullable String = null
 
        fun get_c_string import FlatString.items, NativeString.to_s, NativeString.to_s_with_copy, StringTest.ref_test, StringTest.copy_test `{
                char* string = "This is a test string";
index cb33878..c41c81a 100644 (file)
@@ -47,7 +47,7 @@ class Toto
 end
 
 class Test
-       var t: Toto
+       var t: Toto is noinit
 
        init
        do
index 290d4ef..510b5fb 100644 (file)
@@ -19,13 +19,13 @@ import gtk
 class MyApp
        super GtkCallable
 
-       var win : GtkWindow
+       var win : GtkWindow is noinit
 
-       var container : GtkContainer
+       var container : GtkContainer is noinit
 
-       var lbl : GtkLabel
-       var but_ok : GtkButton
-       var but_cancel : GtkButton
+       var lbl : GtkLabel is noinit
+       var but_ok : GtkButton is noinit
+       var but_cancel : GtkButton is noinit
 
        redef fun signal( sender, user_data )
        do
index d88deb2..e00f4d2 100644 (file)
@@ -48,15 +48,7 @@ class Matrice
                row[y] = v
        end
 
-private
-       var tab: Array[Array[Int]] # An array of array to store items
-
-
-       init
-       # Build an empty matrice
-       do
-               _tab = new Array[Array[Int]]
-       end
+       private var tab = new Array[Array[Int]] # An array of array to store items
 end