Merge: improve AST dump
authorJean Privat <jean@pryen.org>
Fri, 10 Feb 2017 16:00:07 +0000 (11:00 -0500)
committerJean Privat <jean@pryen.org>
Fri, 10 Feb 2017 16:00:07 +0000 (11:00 -0500)
The debug method `ANode.dump_tree` is now more versatile and powerful:

* it can hide tokens (and others non useful nodes)
* it can display code line along with the AST
* it can display model information (through refinement in modelize and semantize modules)
* it uses some color so the output is more readable

Eg: for the code

~~~nit
var a: nullable Object = "Hello".substring(1,3)
print "{a or else "?"}"
~~~

the AST dumped is

~~~
1 var a: nullable Object = "Hello".substring(1,3)
AMainMethPropdef  @test_expr.nit:1,1--2,23
`--ABlockExpr  @test_expr.nit:1,1--2,23
   |--AVardeclExpr :nullable Object @test_expr.nit:1,1--47
   |  |--AType :nullable Object @test_expr.nit:1,8--22
   |  `--ACallExpr :String call=String.abstract_text$Text$substring(from: Int, count: Int): String @test_expr.nit:1,26--47
   |     |--AStringExpr :String @test_expr.nit:1,26--32
   |     `--AParExprs  @test_expr.nit:1,43--47
   |        |--AIntegerExpr :Int @test_expr.nit:1,44
   |        `--AIntegerExpr :Int @test_expr.nit:1,46
2 print "{a or else "?"}"
   `--ACallExpr  call=Sys.file$Sys$print(object: Object) @test_expr.nit:2,1--23
      |--AImplicitSelfExpr :Sys @test_expr.nit:2,1
      `--AListExprs  @test_expr.nit:2,7--23
         `--ASuperstringExpr :String @test_expr.nit:2,7--23
            |--AStartStringExpr :String @test_expr.nit:2,7--8
            |--AOrElseExpr :Object @test_expr.nit:2,9--21
            |  |--AVarExpr :nullable Object @test_expr.nit:2,9
            |  `--AStringExpr :String @test_expr.nit:2,19--21
            `--AEndStringExpr :String @test_expr.nit:2,22--23
~~~

Pull-Request: #2364

lib/ordered_tree.nit
src/location.nit
src/modelbuilder_base.nit
src/parser/parser_nodes.nit
src/semantize/typing.nit
src/test_parser.nit
tests/sav/test_parser_args1.res
tests/sav/test_parser_args2.res
tests/sav/test_parser_args6.res
tests/sav/test_parser_args7.res

index d1dde15..86940af 100644 (file)
@@ -147,8 +147,7 @@ class OrderedTree[E: Object]
        redef fun write_to(stream: Writer)
        do
                for r in roots do
-                       stream.write display(r)
-                       stream.write "\n"
+                       write_line(stream, r, "")
                        sub_write_to(stream, r, "")
                end
        end
@@ -161,15 +160,29 @@ class OrderedTree[E: Object]
                var last = subs.last
                for e2 in subs do
                        if e2 != last then
-                               o.write "{prefix}|--{display(e2)}\n"
+                               write_line(o, e2, prefix+"|--")
                                sub_write_to(o, e2, prefix+"|  ")
                        else
-                               o.write "{prefix}`--{display(e2)}\n"
+                               write_line(o, e2, prefix+"`--")
                                sub_write_to(o, e2, prefix+"   ")
                        end
                end
        end
 
+       # Write the full line for the element `e` in `o`.
+       #
+       # Basically it does:
+       #
+       # ~~~nitish
+       # o.write "{prefix}{display(e)}\n"
+       # ~~~
+       #
+       # Usually, you should redefine `display` to change the display of an element.
+       protected fun write_line(o: Writer, e: E, prefix: String)
+       do
+               o.write "{prefix}{display(e)}\n"
+       end
+
        # Sort roots and other elements using a comparator method
        # This method basically sorts roots then each group of children
        fun sort_with(comparator: Comparator)
index 99083ad..36157d3 100644 (file)
@@ -47,6 +47,20 @@ class SourceFile
        #
        # Used for fast access to each line when rendering parts of the `string`.
        var line_starts = new Array[Int]
+
+       # Extract a given line excluding the line-terminators characters.
+       #
+       # `line_number` starts at 1 for the first line.
+       fun get_line(line_number: Int): String do
+               if line_number > line_starts.length then return ""
+               var line_start = line_starts[line_number-1]
+               var line_end = line_start
+               var string = self.string
+               while line_end+1 < string.length and string.chars[line_end+1] != '\n' and string.chars[line_end+1] != '\r' do
+                       line_end += 1
+               end
+               return string.substring(line_start, line_end-line_start+1)
+       end
 end
 
 # A location inside a source file
index 5cc235f..77ba0d8 100644 (file)
@@ -481,6 +481,14 @@ redef class ANode
        # Note that the broken status is not propagated to parent or children nodes.
        # e.g. a broken expression used as argument does not make the whole call broken.
        var is_broken = false is writable
+
+       redef fun dump_info(v) do
+               var res = super
+               if is_broken then
+                       res += v.red("*broken*")
+               end
+               return res
+       end
 end
 
 redef class AType
@@ -489,6 +497,15 @@ redef class AType
 
        # Is the mtype a valid one?
        var checked_mtype: Bool = false
+
+       redef fun dump_info(v) do
+               var res = super
+               var mtype = self.mtype
+               if mtype != null then
+                       res += v.yellow(":{mtype}")
+               end
+               return res
+       end
 end
 
 redef class AVisibility
index 261694a..d8dc9eb 100644 (file)
@@ -18,6 +18,7 @@ module parser_nodes
 
 import location
 import ordered_tree
+private import console
 
 # Root of the AST class-hierarchy
 abstract class ANode
@@ -34,15 +35,28 @@ abstract class ANode
                sys.stderr.write "{hot_location} {self.class_name}: {message}\n{hot_location.colored_line("0;32")}\n"
        end
 
+       # Is `self` a token or a pure-structural production like `AQId`?
+       fun is_structural: Bool do return false
+
        # Write the subtree on stdout.
-       # See `ASTDump`
-       fun dump_tree
+       #
+       # Visit the subtree and display it with additional and useful information.
+       #
+       # By default, this displays all kind of nodes and the corresponding lines of codes.
+       #
+       # See `ASTDump` for details.
+       fun dump_tree(display_structural, display_line: nullable Bool)
        do
-               var d = new ASTDump
+               var d = new ASTDump(display_structural or else true, display_line or else true)
                d.enter_visit(self)
                d.write_to(sys.stdout)
        end
 
+       # Information to display on a node
+       #
+       # Refine this method to add additional information on each node type.
+       fun dump_info(v: ASTDump): String do return ""
+
        # Parent of the node in the AST
        var parent: nullable ANode = null
 
@@ -177,8 +191,22 @@ class ASTDump
        # Is used to handle the initial node parent and workaround possible inconsistent `ANode::parent`
        private var last_parent: nullable ANode = null
 
+       # Display tokens and structural production?
+       #
+       # Should tokens (and structural production like AQId) be displayed?
+       var display_structural: Bool
+
+       # Display lines?
+       #
+       # Should each new line be displayed (numbered and in gray)?
+       var display_line: Bool
+
+       # Current line number (when printing lines)
+       private var line = 0
+
        redef fun visit(n)
        do
+               if not display_structural and n.is_structural then return
                var p = last_parent
                add(p, n)
                last_parent = n
@@ -186,14 +214,35 @@ class ASTDump
                last_parent = p
        end
 
-       redef fun display(n)
+       redef fun write_line(o, n, p)
        do
-               if n isa Token then
-                       return "{n.class_name} \"{n.text.escape_to_c}\" @{n.location}"
-               else
-                       return "{n.class_name} @{n.location}"
+               if display_line then
+                       var ls = n.location.line_start
+                       var file = n.location.file
+                       var line = self.line
+                       if ls > line and file != null then
+                               if line == 0 then line = ls - 1
+                               while line < ls do
+                                       line += 1
+                                       o.write "{line}\t{file.get_line(line)}\n".light_gray
+                               end
+                               self.line = ls
+                       end
                end
+
+               super
+       end
+
+       redef fun display(n)
+       do
+               return "{n.class_name} {n.dump_info(self)} @{n.location}"
        end
+
+       # `s` as yellow
+       fun yellow(s: String): String do return s.yellow
+
+       # `s` as red
+       fun red(s: String): String do return s.red
 end
 
 # A sequence of nodes
@@ -331,6 +380,10 @@ abstract class Token
        # See `blank_before` to get the whitespace that separate tokens.
        var is_loose = false
 
+       redef fun is_structural do return true
+
+       redef fun dump_info(v) do return " {text.escape_to_c}"
+
        # Loose tokens that precede `self`.
        #
        # These tokens start the line or belong to a line with only loose tokens.
@@ -1667,6 +1720,8 @@ class AQid
 
        # The final identifier
        var n_id: TId is writable, noinit
+
+       redef fun is_structural do return true
 end
 
 # A potentially qualified class identifier `foo::bar::Baz`
@@ -1677,6 +1732,8 @@ class AQclassid
 
        # The final identifier
        var n_id: TClassid is writable, noinit
+
+       redef fun is_structural do return true
 end
 
 # A signature in a method definition. eg `(x,y:X,z:Z):T`
index 7b87faf..50ba70e 100644 (file)
@@ -677,6 +677,11 @@ class CallSite
                if map == null then is_broken = true
                return map == null
        end
+
+       # Information about the callsite to display on a node
+       fun dump_info(v: ASTDump): String do
+               return "{recv}.{mpropdef}{msignature}"
+       end
 end
 
 redef class Variable
@@ -880,6 +885,19 @@ redef class AExpr
        #
        # This attribute is meaning less on expressions not used as attributes.
        var vararg_decl: Int = 0
+
+       redef fun dump_info(v) do
+               var res = super
+               var mtype = self.mtype
+               if mtype != null then
+                       res += v.yellow(":{mtype}")
+               end
+               var ict = self.implicit_cast_to
+               if ict != null then
+                       res += v.yellow("(.as({ict}))")
+               end
+               return res
+       end
 end
 
 redef class ABlockExpr
@@ -1684,6 +1702,16 @@ redef class AIsaExpr
        do
                v.check_expr_cast(self, self.n_expr, self.n_type)
        end
+
+       redef fun dump_info(v) do
+               var res = super
+               var mtype = self.cast_type
+               if mtype != null then
+                       res += v.yellow(".as({mtype})")
+               end
+               return res
+       end
+
 end
 
 redef class AAsCastExpr
@@ -1849,6 +1877,15 @@ redef class ASendExpr
        fun raw_arguments: Array[AExpr] do return compute_raw_arguments
 
        private fun compute_raw_arguments: Array[AExpr] is abstract
+
+       redef fun dump_info(v) do
+               var res = super
+               var callsite = self.callsite
+               if callsite != null then
+                       res += v.yellow(" call="+callsite.dump_info(v))
+               end
+               return res
+       end
 end
 
 redef class ABinopExpr
@@ -2099,6 +2136,19 @@ redef class ASuperExpr
 
                self.is_typed = true
        end
+
+       redef fun dump_info(v) do
+               var res = super
+               var callsite = self.callsite
+               if callsite != null then
+                       res += v.yellow(" super-init="+callsite.dump_info(v))
+               end
+               var mpropdef = self.mpropdef
+               if mpropdef != null then
+                       res += v.yellow(" call-next-method="+mpropdef.to_s)
+               end
+               return res
+       end
 end
 
 ####
@@ -2179,6 +2229,15 @@ redef class ANewExpr
                var args = n_args.to_a
                callsite.check_signature(v, node, args)
        end
+
+       redef fun dump_info(v) do
+               var res = super
+               var callsite = self.callsite
+               if callsite != null then
+                       res += v.yellow(" call="+callsite.dump_info(v))
+               end
+               return res
+       end
 end
 
 ####
@@ -2219,6 +2278,16 @@ redef class AAttrFormExpr
                attr_type = v.resolve_for(attr_type, recvtype, self.n_expr isa ASelfExpr)
                self.attr_type = attr_type
        end
+
+       redef fun dump_info(v) do
+               var res = super
+               var mproperty = self.mproperty
+               var attr_type = self.attr_type
+               if mproperty != null then
+                       res += v.yellow(" attr={mproperty}:{attr_type or else "BROKEN"}")
+               end
+               return res
+       end
 end
 
 redef class AAttrExpr
index 6ad8038..fa95f13 100644 (file)
@@ -21,23 +21,6 @@ import parser
 import parser_util
 import astutil
 
-# A basic visitor that prints AST trees to the screen
-class PrintTreeVisitor
-       super Visitor
-       private var rank: Int = 0
-       redef fun visit(n)
-       do
-               if n isa Token then
-                       printn("  " * rank, n.class_name, " \"", n.text.escape_to_c, "\" ", n.location, "\n")
-               else
-                       printn("  " * rank, n.class_name, " ", n.location, "\n")
-               end
-               rank = rank + 1
-               n.visit_all(self)
-               rank = rank - 1
-       end
-end
-
 var no_print = false
 var only_lexer = false
 var need_help = false
@@ -112,7 +95,7 @@ else if interactive then
                end
 
                if not no_print then
-                       (new PrintTreeVisitor).enter_visit(n)
+                       n.dump_tree
                end
        end
 else
@@ -148,7 +131,7 @@ else
                                tree.parentize_tokens
                                tree.to_xml.write_to(stdout)
                        else if not no_print then
-                               (new PrintTreeVisitor).enter_visit(tree)
+                               tree.dump_tree
                        end
                end
        end
index 9124a05..b181fe0 100644 (file)
-Start ../src/test_parser.nit:17,1--156,1
-  AModule ../src/test_parser.nit:17,1--155,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
-      APublicVisibility ../src/test_parser.nit:18,1
-      TKwmodule "module" ../src/test_parser.nit:18,1--6
-      AModuleName ../src/test_parser.nit:18,8--18
-        TId "test_parser" ../src/test_parser.nit:18,8--18
-    AStdImport ../src/test_parser.nit:20,1--13
-      APublicVisibility ../src/test_parser.nit:20,1
-      TKwimport "import" ../src/test_parser.nit:20,1--6
-      AModuleName ../src/test_parser.nit:20,8--13
-        TId "parser" ../src/test_parser.nit:20,8--13
-    AStdImport ../src/test_parser.nit:21,1--18
-      APublicVisibility ../src/test_parser.nit:21,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
-    AStdImport ../src/test_parser.nit:22,1--14
-      APublicVisibility ../src/test_parser.nit:22,1
-      TKwimport "import" ../src/test_parser.nit:22,1--6
-      AModuleName ../src/test_parser.nit:22,8--14
-        TId "astutil" ../src/test_parser.nit:22,8--14
-    AStdClassdef ../src/test_parser.nit:24,1--39,3
-      ADoc ../src/test_parser.nit:24,1--25,0
-        TComment "# A basic visitor that prints AST trees to the screen\n" ../src/test_parser.nit:24,1--25,0
-      APublicVisibility ../src/test_parser.nit:25,1
-      AConcreteClasskind ../src/test_parser.nit:25,1--5
-        TKwclass "class" ../src/test_parser.nit:25,1--5
-      AQclassid ../src/test_parser.nit:25,7--22
-        TClassid "PrintTreeVisitor" ../src/test_parser.nit:25,7--22
-      ASuperPropdef ../src/test_parser.nit:26,2--14
-        APublicVisibility ../src/test_parser.nit:26,2
-        TKwsuper "super" ../src/test_parser.nit:26,2--6
-        AType ../src/test_parser.nit:26,8--14
-          AQclassid ../src/test_parser.nit:26,8--14
-            TClassid "Visitor" ../src/test_parser.nit:26,8--14
-      AAttrPropdef ../src/test_parser.nit:27,2--26
-        APrivateVisibility ../src/test_parser.nit:27,2--8
-          TKwprivate "private" ../src/test_parser.nit:27,2--8
-        TKwvar "var" ../src/test_parser.nit:27,10--12
-        TId "rank" ../src/test_parser.nit:27,14--17
-        AType ../src/test_parser.nit:27,20--22
-          AQclassid ../src/test_parser.nit:27,20--22
-            TClassid "Int" ../src/test_parser.nit:27,20--22
-        TAssign "=" ../src/test_parser.nit:27,24
-        AIntegerExpr ../src/test_parser.nit:27,26
-          TInteger "0" ../src/test_parser.nit:27,26
-      AMethPropdef ../src/test_parser.nit:28,2--38,4
-        TKwredef "redef" ../src/test_parser.nit:28,2--6
-        APublicVisibility ../src/test_parser.nit:28,8
-        TKwmeth "fun" ../src/test_parser.nit:28,8--10
-        AIdMethid ../src/test_parser.nit:28,12--16
-          TId "visit" ../src/test_parser.nit:28,12--16
-        ASignature ../src/test_parser.nit:28,17--19
-          TOpar "(" ../src/test_parser.nit:28,17
-          AParam ../src/test_parser.nit:28,18
-            TId "n" ../src/test_parser.nit:28,18
-          TCpar ")" ../src/test_parser.nit:28,19
-        TKwdo "do" ../src/test_parser.nit:29,2--3
-        ABlockExpr ../src/test_parser.nit:30,3--38,4
-          AIfExpr ../src/test_parser.nit:30,3--34,5
-            TKwif "if" ../src/test_parser.nit:30,3--4
-            AIsaExpr ../src/test_parser.nit:30,6--16
-              ACallExpr ../src/test_parser.nit:30,6
-                AImplicitSelfExpr ../src/test_parser.nit:30,6
-                AQid ../src/test_parser.nit:30,6
-                  TId "n" ../src/test_parser.nit:30,6
-                AListExprs ../src/test_parser.nit:30,6
-              TKwisa "isa" ../src/test_parser.nit:30,8--10
-              AType ../src/test_parser.nit:30,12--16
-                AQclassid ../src/test_parser.nit:30,12--16
-                  TClassid "Token" ../src/test_parser.nit:30,12--16
-            TKwthen "then" ../src/test_parser.nit:30,18--21
-            ABlockExpr ../src/test_parser.nit:31,4--88
-              ACallExpr ../src/test_parser.nit:31,4--88
-                AImplicitSelfExpr ../src/test_parser.nit:31,4
-                AQid ../src/test_parser.nit:31,4--9
-                  TId "printn" ../src/test_parser.nit:31,4--9
-                AParExprs ../src/test_parser.nit:31,10--88
-                  TOpar "(" ../src/test_parser.nit:31,10
-                  AStarExpr ../src/test_parser.nit:31,11--21
-                    AStringExpr ../src/test_parser.nit:31,11--14
-                      TString "\"  \"" ../src/test_parser.nit:31,11--14
-                    TStar "*" ../src/test_parser.nit:31,16
-                    ACallExpr ../src/test_parser.nit:31,18--21
-                      AImplicitSelfExpr ../src/test_parser.nit:31,18
-                      AQid ../src/test_parser.nit:31,18--21
-                        TId "rank" ../src/test_parser.nit:31,18--21
-                      AListExprs ../src/test_parser.nit:31,21
-                  ACallExpr ../src/test_parser.nit:31,24--35
-                    ACallExpr ../src/test_parser.nit:31,24
-                      AImplicitSelfExpr ../src/test_parser.nit:31,24
-                      AQid ../src/test_parser.nit:31,24
-                        TId "n" ../src/test_parser.nit:31,24
-                      AListExprs ../src/test_parser.nit:31,24
-                    AQid ../src/test_parser.nit:31,26--35
-                      TId "class_name" ../src/test_parser.nit:31,26--35
-                    AListExprs ../src/test_parser.nit:31,35
-                  AStringExpr ../src/test_parser.nit:31,38--42
-                    TString "\" \\\"\"" ../src/test_parser.nit:31,38--42
-                  ACallExpr ../src/test_parser.nit:31,45--62
-                    ACallExpr ../src/test_parser.nit:31,45--50
-                      ACallExpr ../src/test_parser.nit:31,45
-                        AImplicitSelfExpr ../src/test_parser.nit:31,45
-                        AQid ../src/test_parser.nit:31,45
-                          TId "n" ../src/test_parser.nit:31,45
-                        AListExprs ../src/test_parser.nit:31,45
-                      AQid ../src/test_parser.nit:31,47--50
-                        TId "text" ../src/test_parser.nit:31,47--50
-                      AListExprs ../src/test_parser.nit:31,50
-                    AQid ../src/test_parser.nit:31,52--62
-                      TId "escape_to_c" ../src/test_parser.nit:31,52--62
-                    AListExprs ../src/test_parser.nit:31,62
-                  AStringExpr ../src/test_parser.nit:31,65--69
-                    TString "\"\\\" \"" ../src/test_parser.nit:31,65--69
-                  ACallExpr ../src/test_parser.nit:31,72--81
-                    ACallExpr ../src/test_parser.nit:31,72
-                      AImplicitSelfExpr ../src/test_parser.nit:31,72
-                      AQid ../src/test_parser.nit:31,72
-                        TId "n" ../src/test_parser.nit:31,72
-                      AListExprs ../src/test_parser.nit:31,72
-                    AQid ../src/test_parser.nit:31,74--81
-                      TId "location" ../src/test_parser.nit:31,74--81
-                    AListExprs ../src/test_parser.nit:31,81
-                  AStringExpr ../src/test_parser.nit:31,84--87
-                    TString "\"\\n\"" ../src/test_parser.nit:31,84--87
-                  TCpar ")" ../src/test_parser.nit:31,88
-            TKwelse "else" ../src/test_parser.nit:32,3--6
-            ABlockExpr ../src/test_parser.nit:33,4--34,5
-              ACallExpr ../src/test_parser.nit:33,4--59
-                AImplicitSelfExpr ../src/test_parser.nit:33,4
-                AQid ../src/test_parser.nit:33,4--9
-                  TId "printn" ../src/test_parser.nit:33,4--9
-                AParExprs ../src/test_parser.nit:33,10--59
-                  TOpar "(" ../src/test_parser.nit:33,10
-                  AStarExpr ../src/test_parser.nit:33,11--21
-                    AStringExpr ../src/test_parser.nit:33,11--14
-                      TString "\"  \"" ../src/test_parser.nit:33,11--14
-                    TStar "*" ../src/test_parser.nit:33,16
-                    ACallExpr ../src/test_parser.nit:33,18--21
-                      AImplicitSelfExpr ../src/test_parser.nit:33,18
-                      AQid ../src/test_parser.nit:33,18--21
-                        TId "rank" ../src/test_parser.nit:33,18--21
-                      AListExprs ../src/test_parser.nit:33,21
-                  ACallExpr ../src/test_parser.nit:33,24--35
-                    ACallExpr ../src/test_parser.nit:33,24
-                      AImplicitSelfExpr ../src/test_parser.nit:33,24
-                      AQid ../src/test_parser.nit:33,24
-                        TId "n" ../src/test_parser.nit:33,24
-                      AListExprs ../src/test_parser.nit:33,24
-                    AQid ../src/test_parser.nit:33,26--35
-                      TId "class_name" ../src/test_parser.nit:33,26--35
-                    AListExprs ../src/test_parser.nit:33,35
-                  AStringExpr ../src/test_parser.nit:33,38--40
-                    TString "\" \"" ../src/test_parser.nit:33,38--40
-                  ACallExpr ../src/test_parser.nit:33,43--52
-                    ACallExpr ../src/test_parser.nit:33,43
-                      AImplicitSelfExpr ../src/test_parser.nit:33,43
-                      AQid ../src/test_parser.nit:33,43
-                        TId "n" ../src/test_parser.nit:33,43
-                      AListExprs ../src/test_parser.nit:33,43
-                    AQid ../src/test_parser.nit:33,45--52
-                      TId "location" ../src/test_parser.nit:33,45--52
-                    AListExprs ../src/test_parser.nit:33,52
-                  AStringExpr ../src/test_parser.nit:33,55--58
-                    TString "\"\\n\"" ../src/test_parser.nit:33,55--58
-                  TCpar ")" ../src/test_parser.nit:33,59
-              TKwend "end" ../src/test_parser.nit:34,3--5
-          ACallAssignExpr ../src/test_parser.nit:35,3--17
-            AImplicitSelfExpr ../src/test_parser.nit:35,3
-            AQid ../src/test_parser.nit:35,3--6
-              TId "rank" ../src/test_parser.nit:35,3--6
-            AListExprs ../src/test_parser.nit:35,8
-            TAssign "=" ../src/test_parser.nit:35,8
-            APlusExpr ../src/test_parser.nit:35,10--17
-              ACallExpr ../src/test_parser.nit:35,10--13
-                AImplicitSelfExpr ../src/test_parser.nit:35,10
-                AQid ../src/test_parser.nit:35,10--13
-                  TId "rank" ../src/test_parser.nit:35,10--13
-                AListExprs ../src/test_parser.nit:35,13
-              TPlus "+" ../src/test_parser.nit:35,15
-              AIntegerExpr ../src/test_parser.nit:35,17
-                TInteger "1" ../src/test_parser.nit:35,17
-          ACallExpr ../src/test_parser.nit:36,3--19
-            ACallExpr ../src/test_parser.nit:36,3
-              AImplicitSelfExpr ../src/test_parser.nit:36,3
-              AQid ../src/test_parser.nit:36,3
-                TId "n" ../src/test_parser.nit:36,3
-              AListExprs ../src/test_parser.nit:36,3
-            AQid ../src/test_parser.nit:36,5--13
-              TId "visit_all" ../src/test_parser.nit:36,5--13
-            AParExprs ../src/test_parser.nit:36,14--19
-              TOpar "(" ../src/test_parser.nit:36,14
-              ASelfExpr ../src/test_parser.nit:36,15--18
-                TKwself "self" ../src/test_parser.nit:36,15--18
-              TCpar ")" ../src/test_parser.nit:36,19
-          ACallAssignExpr ../src/test_parser.nit:37,3--17
-            AImplicitSelfExpr ../src/test_parser.nit:37,3
-            AQid ../src/test_parser.nit:37,3--6
-              TId "rank" ../src/test_parser.nit:37,3--6
-            AListExprs ../src/test_parser.nit:37,8
-            TAssign "=" ../src/test_parser.nit:37,8
-            AMinusExpr ../src/test_parser.nit:37,10--17
-              ACallExpr ../src/test_parser.nit:37,10--13
-                AImplicitSelfExpr ../src/test_parser.nit:37,10
-                AQid ../src/test_parser.nit:37,10--13
-                  TId "rank" ../src/test_parser.nit:37,10--13
-                AListExprs ../src/test_parser.nit:37,13
-              TMinus "-" ../src/test_parser.nit:37,15
-              AIntegerExpr ../src/test_parser.nit:37,17
-                TInteger "1" ../src/test_parser.nit:37,17
-          TKwend "end" ../src/test_parser.nit:38,2--4
-      TKwend "end" ../src/test_parser.nit:39,1--3
-    AMainClassdef ../src/test_parser.nit:41,1--155,3
-      AMainMethPropdef ../src/test_parser.nit:41,1--155,3
-        ABlockExpr ../src/test_parser.nit:41,1--155,3
-          AVardeclExpr ../src/test_parser.nit:41,1--20
-            TKwvar "var" ../src/test_parser.nit:41,1--3
-            TId "no_print" ../src/test_parser.nit:41,5--12
-            TAssign "=" ../src/test_parser.nit:41,14
-            AFalseExpr ../src/test_parser.nit:41,16--20
-              TKwfalse "false" ../src/test_parser.nit:41,16--20
-          AVardeclExpr ../src/test_parser.nit:42,1--22
-            TKwvar "var" ../src/test_parser.nit:42,1--3
-            TId "only_lexer" ../src/test_parser.nit:42,5--14
-            TAssign "=" ../src/test_parser.nit:42,16
-            AFalseExpr ../src/test_parser.nit:42,18--22
-              TKwfalse "false" ../src/test_parser.nit:42,18--22
-          AVardeclExpr ../src/test_parser.nit:43,1--21
-            TKwvar "var" ../src/test_parser.nit:43,1--3
-            TId "need_help" ../src/test_parser.nit:43,5--13
-            TAssign "=" ../src/test_parser.nit:43,15
-            AFalseExpr ../src/test_parser.nit:43,17--21
-              TKwfalse "false" ../src/test_parser.nit:43,17--21
-          AVardeclExpr ../src/test_parser.nit:44,1--19
-            TKwvar "var" ../src/test_parser.nit:44,1--3
-            TId "no_file" ../src/test_parser.nit:44,5--11
-            TAssign "=" ../src/test_parser.nit:44,13
-            AFalseExpr ../src/test_parser.nit:44,15--19
-              TKwfalse "false" ../src/test_parser.nit:44,15--19
-          AVardeclExpr ../src/test_parser.nit:45,1--23
-            TKwvar "var" ../src/test_parser.nit:45,1--3
-            TId "interactive" ../src/test_parser.nit:45,5--15
-            TAssign "=" ../src/test_parser.nit:45,17
-            AFalseExpr ../src/test_parser.nit:45,19--23
-              TKwfalse "false" ../src/test_parser.nit:45,19--23
-          AVardeclExpr ../src/test_parser.nit:46,1--15
-            TKwvar "var" ../src/test_parser.nit:46,1--3
-            TId "xml" ../src/test_parser.nit:46,5--7
-            TAssign "=" ../src/test_parser.nit:46,9
-            AFalseExpr ../src/test_parser.nit:46,11--15
-              TKwfalse "false" ../src/test_parser.nit:46,11--15
-          AWhileExpr ../src/test_parser.nit:48,1--68,3
-            TKwwhile "while" ../src/test_parser.nit:48,1--5
-            AAndExpr ../src/test_parser.nit:48,7--57
-              ANotExpr ../src/test_parser.nit:48,7--23
-                TKwnot "not" ../src/test_parser.nit:48,7--9
-                ACallExpr ../src/test_parser.nit:48,11--23
-                  ACallExpr ../src/test_parser.nit:48,11--14
-                    AImplicitSelfExpr ../src/test_parser.nit:48,11
-                    AQid ../src/test_parser.nit:48,11--14
-                      TId "args" ../src/test_parser.nit:48,11--14
-                    AListExprs ../src/test_parser.nit:48,14
-                  AQid ../src/test_parser.nit:48,16--23
-                    TId "is_empty" ../src/test_parser.nit:48,16--23
-                  AListExprs ../src/test_parser.nit:48,23
-              TKwand "and" ../src/test_parser.nit:48,25--27
-              AEqExpr ../src/test_parser.nit:48,29--57
-                ACallExpr ../src/test_parser.nit:48,29--50
-                  ACallExpr ../src/test_parser.nit:48,29--44
-                    ACallExpr ../src/test_parser.nit:48,29--38
-                      ACallExpr ../src/test_parser.nit:48,29--32
-                        AImplicitSelfExpr ../src/test_parser.nit:48,29
-                        AQid ../src/test_parser.nit:48,29--32
-                          TId "args" ../src/test_parser.nit:48,29--32
-                        AListExprs ../src/test_parser.nit:48,32
-                      AQid ../src/test_parser.nit:48,34--38
-                        TId "first" ../src/test_parser.nit:48,34--38
-                      AListExprs ../src/test_parser.nit:48,38
-                    AQid ../src/test_parser.nit:48,40--44
-                      TId "chars" ../src/test_parser.nit:48,40--44
-                    AListExprs ../src/test_parser.nit:48,44
-                  AQid ../src/test_parser.nit:48,46--50
-                    TId "first" ../src/test_parser.nit:48,46--50
-                  AListExprs ../src/test_parser.nit:48,50
-                TEq "==" ../src/test_parser.nit:48,52--53
-                ACharExpr ../src/test_parser.nit:48,55--57
-                  TChar "\'-\'" ../src/test_parser.nit:48,55--57
-            TKwdo "do" ../src/test_parser.nit:48,59--60
-            ABlockExpr ../src/test_parser.nit:49,2--68,3
-              AIfExpr ../src/test_parser.nit:49,2--66,4
-                TKwif "if" ../src/test_parser.nit:49,2--3
-                AEqExpr ../src/test_parser.nit:49,5--22
-                  ACallExpr ../src/test_parser.nit:49,5--14
-                    ACallExpr ../src/test_parser.nit:49,5--8
-                      AImplicitSelfExpr ../src/test_parser.nit:49,5
-                      AQid ../src/test_parser.nit:49,5--8
-                        TId "args" ../src/test_parser.nit:49,5--8
-                      AListExprs ../src/test_parser.nit:49,8
-                    AQid ../src/test_parser.nit:49,10--14
-                      TId "first" ../src/test_parser.nit:49,10--14
-                    AListExprs ../src/test_parser.nit:49,14
-                  TEq "==" ../src/test_parser.nit:49,16--17
-                  AStringExpr ../src/test_parser.nit:49,19--22
-                    TString "\"-n\"" ../src/test_parser.nit:49,19--22
-                TKwthen "then" ../src/test_parser.nit:49,24--27
-                ABlockExpr ../src/test_parser.nit:50,3--17
-                  ACallAssignExpr ../src/test_parser.nit:50,3--17
-                    AImplicitSelfExpr ../src/test_parser.nit:50,3
-                    AQid ../src/test_parser.nit:50,3--10
-                      TId "no_print" ../src/test_parser.nit:50,3--10
-                    AListExprs ../src/test_parser.nit:50,12
-                    TAssign "=" ../src/test_parser.nit:50,12
-                    ATrueExpr ../src/test_parser.nit:50,14--17
-                      TKwtrue "true" ../src/test_parser.nit:50,14--17
-                TKwelse "else" ../src/test_parser.nit:51,2--5
-                AIfExpr ../src/test_parser.nit:51,7--66,4
-                  TKwif "if" ../src/test_parser.nit:51,7--8
-                  AEqExpr ../src/test_parser.nit:51,10--27
-                    ACallExpr ../src/test_parser.nit:51,10--19
-                      ACallExpr ../src/test_parser.nit:51,10--13
-                        AImplicitSelfExpr ../src/test_parser.nit:51,10
-                        AQid ../src/test_parser.nit:51,10--13
-                          TId "args" ../src/test_parser.nit:51,10--13
-                        AListExprs ../src/test_parser.nit:51,13
-                      AQid ../src/test_parser.nit:51,15--19
-                        TId "first" ../src/test_parser.nit:51,15--19
-                      AListExprs ../src/test_parser.nit:51,19
-                    TEq "==" ../src/test_parser.nit:51,21--22
-                    AStringExpr ../src/test_parser.nit:51,24--27
-                      TString "\"-l\"" ../src/test_parser.nit:51,24--27
-                  TKwthen "then" ../src/test_parser.nit:51,29--32
-                  ABlockExpr ../src/test_parser.nit:52,3--19
-                    ACallAssignExpr ../src/test_parser.nit:52,3--19
-                      AImplicitSelfExpr ../src/test_parser.nit:52,3
-                      AQid ../src/test_parser.nit:52,3--12
-                        TId "only_lexer" ../src/test_parser.nit:52,3--12
-                      AListExprs ../src/test_parser.nit:52,14
-                      TAssign "=" ../src/test_parser.nit:52,14
-                      ATrueExpr ../src/test_parser.nit:52,16--19
-                        TKwtrue "true" ../src/test_parser.nit:52,16--19
-                  TKwelse "else" ../src/test_parser.nit:53,2--5
-                  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
-                          AQid ../src/test_parser.nit:53,10--13
-                            TId "args" ../src/test_parser.nit:53,10--13
-                          AListExprs ../src/test_parser.nit:53,13
-                        AQid ../src/test_parser.nit:53,15--19
-                          TId "first" ../src/test_parser.nit:53,15--19
-                        AListExprs ../src/test_parser.nit:53,19
-                      TEq "==" ../src/test_parser.nit:53,21--22
-                      AStringExpr ../src/test_parser.nit:53,24--27
-                        TString "\"-p\"" ../src/test_parser.nit:53,24--27
-                    TKwthen "then" ../src/test_parser.nit:53,29--32
-                    ABlockExpr ../src/test_parser.nit:54,3--20
-                      ACallAssignExpr ../src/test_parser.nit:54,3--20
-                        AImplicitSelfExpr ../src/test_parser.nit:54,3
-                        AQid ../src/test_parser.nit:54,3--12
-                          TId "only_lexer" ../src/test_parser.nit:54,3--12
-                        AListExprs ../src/test_parser.nit:54,14
-                        TAssign "=" ../src/test_parser.nit:54,14
-                        AFalseExpr ../src/test_parser.nit:54,16--20
-                          TKwfalse "false" ../src/test_parser.nit:54,16--20
-                    TKwelse "else" ../src/test_parser.nit:55,2--5
-                    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
-                            AQid ../src/test_parser.nit:55,10--13
-                              TId "args" ../src/test_parser.nit:55,10--13
-                            AListExprs ../src/test_parser.nit:55,13
-                          AQid ../src/test_parser.nit:55,15--19
-                            TId "first" ../src/test_parser.nit:55,15--19
-                          AListExprs ../src/test_parser.nit:55,19
-                        TEq "==" ../src/test_parser.nit:55,21--22
-                        AStringExpr ../src/test_parser.nit:55,24--27
-                          TString "\"-x\"" ../src/test_parser.nit:55,24--27
-                      TKwthen "then" ../src/test_parser.nit:55,29--32
-                      ABlockExpr ../src/test_parser.nit:56,3--12
-                        ACallAssignExpr ../src/test_parser.nit:56,3--12
-                          AImplicitSelfExpr ../src/test_parser.nit:56,3
-                          AQid ../src/test_parser.nit:56,3--5
-                            TId "xml" ../src/test_parser.nit:56,3--5
-                          AListExprs ../src/test_parser.nit:56,7
-                          TAssign "=" ../src/test_parser.nit:56,7
-                          ATrueExpr ../src/test_parser.nit:56,9--12
-                            TKwtrue "true" ../src/test_parser.nit:56,9--12
-                      TKwelse "else" ../src/test_parser.nit:57,2--5
-                      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
-                              AQid ../src/test_parser.nit:57,10--13
-                                TId "args" ../src/test_parser.nit:57,10--13
-                              AListExprs ../src/test_parser.nit:57,13
-                            AQid ../src/test_parser.nit:57,15--19
-                              TId "first" ../src/test_parser.nit:57,15--19
-                            AListExprs ../src/test_parser.nit:57,19
-                          TEq "==" ../src/test_parser.nit:57,21--22
-                          AStringExpr ../src/test_parser.nit:57,24--27
-                            TString "\"-e\"" ../src/test_parser.nit:57,24--27
-                        TKwthen "then" ../src/test_parser.nit:57,29--32
-                        ABlockExpr ../src/test_parser.nit:58,3--16
-                          ACallAssignExpr ../src/test_parser.nit:58,3--16
-                            AImplicitSelfExpr ../src/test_parser.nit:58,3
-                            AQid ../src/test_parser.nit:58,3--9
-                              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
-                        TKwelse "else" ../src/test_parser.nit:59,2--5
-                        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
-                                AQid ../src/test_parser.nit:59,10--13
-                                  TId "args" ../src/test_parser.nit:59,10--13
-                                AListExprs ../src/test_parser.nit:59,13
-                              AQid ../src/test_parser.nit:59,15--19
-                                TId "first" ../src/test_parser.nit:59,15--19
-                              AListExprs ../src/test_parser.nit:59,19
-                            TEq "==" ../src/test_parser.nit:59,21--22
-                            AStringExpr ../src/test_parser.nit:59,24--27
-                              TString "\"-i\"" ../src/test_parser.nit:59,24--27
-                          TKwthen "then" ../src/test_parser.nit:59,29--32
-                          ABlockExpr ../src/test_parser.nit:60,3--20
-                            ACallAssignExpr ../src/test_parser.nit:60,3--20
-                              AImplicitSelfExpr ../src/test_parser.nit:60,3
-                              AQid ../src/test_parser.nit:60,3--13
-                                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
-                          TKwelse "else" ../src/test_parser.nit:61,2--5
-                          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
-                                    AQid ../src/test_parser.nit:61,10--13
-                                      TId "args" ../src/test_parser.nit:61,10--13
-                                    AListExprs ../src/test_parser.nit:61,13
-                                  AQid ../src/test_parser.nit:61,15--19
-                                    TId "first" ../src/test_parser.nit:61,15--19
-                                  AListExprs ../src/test_parser.nit:61,19
-                                TEq "==" ../src/test_parser.nit:61,21--22
-                                AStringExpr ../src/test_parser.nit:61,24--27
-                                  TString "\"-h\"" ../src/test_parser.nit:61,24--27
-                              TKwor "or" ../src/test_parser.nit:61,29--30
-                              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
-                                    AQid ../src/test_parser.nit:61,32--35
-                                      TId "args" ../src/test_parser.nit:61,32--35
-                                    AListExprs ../src/test_parser.nit:61,35
-                                  AQid ../src/test_parser.nit:61,37--41
-                                    TId "first" ../src/test_parser.nit:61,37--41
-                                  AListExprs ../src/test_parser.nit:61,41
-                                TEq "==" ../src/test_parser.nit:61,43--44
-                                AStringExpr ../src/test_parser.nit:61,46--49
-                                  TString "\"-?\"" ../src/test_parser.nit:61,46--49
-                            TKwthen "then" ../src/test_parser.nit:61,51--54
-                            ABlockExpr ../src/test_parser.nit:62,3--18
-                              ACallAssignExpr ../src/test_parser.nit:62,3--18
-                                AImplicitSelfExpr ../src/test_parser.nit:62,3
-                                AQid ../src/test_parser.nit:62,3--11
-                                  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
-                            TKwelse "else" ../src/test_parser.nit:63,2--5
-                            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
-                                  AQid ../src/test_parser.nit:64,3--8
-                                    TId "stderr" ../src/test_parser.nit:64,3--8
-                                  AListExprs ../src/test_parser.nit:64,8
-                                AQid ../src/test_parser.nit:64,10--14
-                                  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
-                                        AQid ../src/test_parser.nit:64,33--36
-                                          TId "args" ../src/test_parser.nit:64,33--36
-                                        AListExprs ../src/test_parser.nit:64,36
-                                      AQid ../src/test_parser.nit:64,38--42
-                                        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
-                                AQid ../src/test_parser.nit:65,3--6
-                                  TId "exit" ../src/test_parser.nit:65,3--6
-                                AParExprs ../src/test_parser.nit:65,7--9
-                                  TOpar "(" ../src/test_parser.nit:65,7
-                                  AIntegerExpr ../src/test_parser.nit:65,8
-                                    TInteger "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
-                  AQid ../src/test_parser.nit:67,2--5
-                    TId "args" ../src/test_parser.nit:67,2--5
-                  AListExprs ../src/test_parser.nit:67,5
-                AQid ../src/test_parser.nit:67,7--11
-                  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--155,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
-                      AQid ../src/test_parser.nit:70,5--8
-                        TId "args" ../src/test_parser.nit:70,5--8
-                      AListExprs ../src/test_parser.nit:70,8
-                    AQid ../src/test_parser.nit:70,10--17
-                      TId "is_empty" ../src/test_parser.nit:70,10--17
-                    AListExprs ../src/test_parser.nit:70,17
-                  TKwand "and" ../src/test_parser.nit:70,19--21
-                  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
-                      AQid ../src/test_parser.nit:70,27--37
-                        TId "interactive" ../src/test_parser.nit:70,27--37
-                      AListExprs ../src/test_parser.nit:70,37
-                TCpar ")" ../src/test_parser.nit:70,38
-              TKwor "or" ../src/test_parser.nit:70,40--41
-              ACallExpr ../src/test_parser.nit:70,43--51
-                AImplicitSelfExpr ../src/test_parser.nit:70,43
-                AQid ../src/test_parser.nit:70,43--51
-                  TId "need_help" ../src/test_parser.nit:70,43--51
-                AListExprs ../src/test_parser.nit:70,51
-            TKwthen "then" ../src/test_parser.nit:70,53--56
-            ABlockExpr ../src/test_parser.nit:71,2--82,30
-              ACallExpr ../src/test_parser.nit:71,2--16
-                AImplicitSelfExpr ../src/test_parser.nit:71,2
-                AQid ../src/test_parser.nit:71,2--6
-                  TId "print" ../src/test_parser.nit:71,2--6
-                AParExprs ../src/test_parser.nit:71,7--16
-                  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
-                AImplicitSelfExpr ../src/test_parser.nit:72,2
-                AQid ../src/test_parser.nit:72,2--6
-                  TId "print" ../src/test_parser.nit:72,2--6
-                AParExprs ../src/test_parser.nit:72,7--54
-                  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
-                AImplicitSelfExpr ../src/test_parser.nit:73,2
-                AQid ../src/test_parser.nit:73,2--6
-                  TId "print" ../src/test_parser.nit:73,2--6
-                AParExprs ../src/test_parser.nit:73,7--49
-                  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
-                AImplicitSelfExpr ../src/test_parser.nit:74,2
-                AQid ../src/test_parser.nit:74,2--6
-                  TId "print" ../src/test_parser.nit:74,2--6
-                AParExprs ../src/test_parser.nit:74,7--39
-                  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
-                AImplicitSelfExpr ../src/test_parser.nit:75,2
-                AQid ../src/test_parser.nit:75,2--6
-                  TId "print" ../src/test_parser.nit:75,2--6
-                AParExprs ../src/test_parser.nit:75,7--18
-                  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
-                AImplicitSelfExpr ../src/test_parser.nit:76,2
-                AQid ../src/test_parser.nit:76,2--6
-                  TId "print" ../src/test_parser.nit:76,2--6
-                AParExprs ../src/test_parser.nit:76,7--36
-                  TOpar "(" ../src/test_parser.nit:76,7
-                  AStringExpr ../src/test_parser.nit:76,8--35
-                    TString "\"  -n\tdo 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
-                AQid ../src/test_parser.nit:77,2--6
-                  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\tonly 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
-                AQid ../src/test_parser.nit:78,2--6
-                  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\tlexer and parser (default)\"" ../src/test_parser.nit:78,8--40
-                  TCpar ")" ../src/test_parser.nit:78,41
-              ACallExpr ../src/test_parser.nit:79,2--61
-                AImplicitSelfExpr ../src/test_parser.nit:79,2
-                AQid ../src/test_parser.nit:79,2--6
-                  TId "print" ../src/test_parser.nit:79,2--6
-                AParExprs ../src/test_parser.nit:79,7--61
-                  TOpar "(" ../src/test_parser.nit:79,7
-                  AStringExpr ../src/test_parser.nit:79,8--60
-                    TString "\"  -x\tinstead of a ascii tree, output a XML document\"" ../src/test_parser.nit:79,8--60
-                  TCpar ")" ../src/test_parser.nit:79,61
-              ACallExpr ../src/test_parser.nit:80,2--68
-                AImplicitSelfExpr ../src/test_parser.nit:80,2
-                AQid ../src/test_parser.nit:80,2--6
-                  TId "print" ../src/test_parser.nit:80,2--6
-                AParExprs ../src/test_parser.nit:80,7--68
-                  TOpar "(" ../src/test_parser.nit:80,7
-                  AStringExpr ../src/test_parser.nit:80,8--67
-                    TString "\"  -e\tinstead on files, each argument is a content to parse\"" ../src/test_parser.nit:80,8--67
-                  TCpar ")" ../src/test_parser.nit:80,68
-              ACallExpr ../src/test_parser.nit:81,2--51
-                AImplicitSelfExpr ../src/test_parser.nit:81,2
-                AQid ../src/test_parser.nit:81,2--6
-                  TId "print" ../src/test_parser.nit:81,2--6
-                AParExprs ../src/test_parser.nit:81,7--51
-                  TOpar "(" ../src/test_parser.nit:81,7
-                  AStringExpr ../src/test_parser.nit:81,8--50
-                    TString "\"  -i\ttree to parse are read interactively\"" ../src/test_parser.nit:81,8--50
-                  TCpar ")" ../src/test_parser.nit:81,51
-              ACallExpr ../src/test_parser.nit:82,2--30
-                AImplicitSelfExpr ../src/test_parser.nit:82,2
-                AQid ../src/test_parser.nit:82,2--6
-                  TId "print" ../src/test_parser.nit:82,2--6
-                AParExprs ../src/test_parser.nit:82,7--30
-                  TOpar "(" ../src/test_parser.nit:82,7
-                  AStringExpr ../src/test_parser.nit:82,8--29
-                    TString "\"  -h\tprint this help\"" ../src/test_parser.nit:82,8--29
-                  TCpar ")" ../src/test_parser.nit:82,30
-            TKwelse "else" ../src/test_parser.nit:83,1--4
-            AIfExpr ../src/test_parser.nit:83,6--155,3
-              TKwif "if" ../src/test_parser.nit:83,6--7
-              ACallExpr ../src/test_parser.nit:83,9--19
-                AImplicitSelfExpr ../src/test_parser.nit:83,9
-                AQid ../src/test_parser.nit:83,9--19
-                  TId "interactive" ../src/test_parser.nit:83,9--19
-                AListExprs ../src/test_parser.nit:83,19
-              TKwthen "then" ../src/test_parser.nit:83,21--24
-              ABlockExpr ../src/test_parser.nit:84,2--117,4
-                AIfExpr ../src/test_parser.nit:84,2--93,4
-                  TKwif "if" ../src/test_parser.nit:84,2--3
-                  ACallExpr ../src/test_parser.nit:84,5--14
-                    AImplicitSelfExpr ../src/test_parser.nit:84,5
-                    AQid ../src/test_parser.nit:84,5--14
-                      TId "only_lexer" ../src/test_parser.nit:84,5--14
-                    AListExprs ../src/test_parser.nit:84,14
-                  TKwthen "then" ../src/test_parser.nit:84,16--19
-                  ABlockExpr ../src/test_parser.nit:85,3--86,8
-                    ACallExpr ../src/test_parser.nit:85,3--43
-                      AImplicitSelfExpr ../src/test_parser.nit:85,3
-                      AQid ../src/test_parser.nit:85,3--7
-                        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: -l and -i are incompatible\"" ../src/test_parser.nit:85,9--43
-                    ACallExpr ../src/test_parser.nit:86,3--8
-                      AImplicitSelfExpr ../src/test_parser.nit:86,3
-                      AQid ../src/test_parser.nit:86,3--6
-                        TId "exit" ../src/test_parser.nit:86,3--6
-                      AListExprs ../src/test_parser.nit:86,8
-                        AIntegerExpr ../src/test_parser.nit:86,8
-                          TInteger "1" ../src/test_parser.nit:86,8
-                  TKwelse "else" ../src/test_parser.nit:87,2--5
-                  AIfExpr ../src/test_parser.nit:87,7--93,4
-                    TKwif "if" ../src/test_parser.nit:87,7--8
-                    ACallExpr ../src/test_parser.nit:87,10--16
-                      AImplicitSelfExpr ../src/test_parser.nit:87,10
-                      AQid ../src/test_parser.nit:87,10--16
-                        TId "no_file" ../src/test_parser.nit:87,10--16
-                      AListExprs ../src/test_parser.nit:87,16
-                    TKwthen "then" ../src/test_parser.nit:87,18--21
-                    ABlockExpr ../src/test_parser.nit:88,3--89,8
-                      ACallExpr ../src/test_parser.nit:88,3--43
-                        AImplicitSelfExpr ../src/test_parser.nit:88,3
-                        AQid ../src/test_parser.nit:88,3--7
-                          TId "print" ../src/test_parser.nit:88,3--7
-                        AListExprs ../src/test_parser.nit:88,9--43
-                          AStringExpr ../src/test_parser.nit:88,9--43
-                            TString "\"Error: -e and -i are incompatible\"" ../src/test_parser.nit:88,9--43
-                      ACallExpr ../src/test_parser.nit:89,3--8
-                        AImplicitSelfExpr ../src/test_parser.nit:89,3
-                        AQid ../src/test_parser.nit:89,3--6
-                          TId "exit" ../src/test_parser.nit:89,3--6
-                        AListExprs ../src/test_parser.nit:89,8
-                          AIntegerExpr ../src/test_parser.nit:89,8
-                            TInteger "1" ../src/test_parser.nit:89,8
-                    TKwelse "else" ../src/test_parser.nit:90,2--5
-                    AIfExpr ../src/test_parser.nit:90,7--93,4
-                      TKwif "if" ../src/test_parser.nit:90,7--8
-                      ANotExpr ../src/test_parser.nit:90,10--26
-                        TKwnot "not" ../src/test_parser.nit:90,10--12
-                        ACallExpr ../src/test_parser.nit:90,14--26
-                          ACallExpr ../src/test_parser.nit:90,14--17
-                            AImplicitSelfExpr ../src/test_parser.nit:90,14
-                            AQid ../src/test_parser.nit:90,14--17
-                              TId "args" ../src/test_parser.nit:90,14--17
-                            AListExprs ../src/test_parser.nit:90,17
-                          AQid ../src/test_parser.nit:90,19--26
-                            TId "is_empty" ../src/test_parser.nit:90,19--26
-                          AListExprs ../src/test_parser.nit:90,26
-                      TKwthen "then" ../src/test_parser.nit:90,28--31
-                      ABlockExpr ../src/test_parser.nit:91,3--92,8
-                        ACallExpr ../src/test_parser.nit:91,3--43
-                          AImplicitSelfExpr ../src/test_parser.nit:91,3
-                          AQid ../src/test_parser.nit:91,3--7
-                            TId "print" ../src/test_parser.nit:91,3--7
-                          AListExprs ../src/test_parser.nit:91,9--43
-                            AStringExpr ../src/test_parser.nit:91,9--43
-                              TString "\"Error: -i works without arguments\"" ../src/test_parser.nit:91,9--43
-                        ACallExpr ../src/test_parser.nit:92,3--8
-                          AImplicitSelfExpr ../src/test_parser.nit:92,3
-                          AQid ../src/test_parser.nit:92,3--6
-                            TId "exit" ../src/test_parser.nit:92,3--6
-                          AListExprs ../src/test_parser.nit:92,8
-                            AIntegerExpr ../src/test_parser.nit:92,8
-                              TInteger "1" ../src/test_parser.nit:92,8
-                      ABlockExpr ../src/test_parser.nit:93,2--4
-                        TKwend "end" ../src/test_parser.nit:93,2--4
-                AVardeclExpr ../src/test_parser.nit:95,2--25
-                  TKwvar "var" ../src/test_parser.nit:95,2--4
-                  TId "tc" ../src/test_parser.nit:95,6--7
-                  TAssign "=" ../src/test_parser.nit:95,9
-                  ANewExpr ../src/test_parser.nit:95,11--25
-                    TKwnew "new" ../src/test_parser.nit:95,11--13
-                    AType ../src/test_parser.nit:95,15--25
-                      AQclassid ../src/test_parser.nit:95,15--25
-                        TClassid "ToolContext" ../src/test_parser.nit:95,15--25
-                    AListExprs ../src/test_parser.nit:95,25
-                ALoopExpr ../src/test_parser.nit:97,2--117,4
-                  TKwloop "loop" ../src/test_parser.nit:97,2--5
-                  ABlockExpr ../src/test_parser.nit:98,3--117,4
-                    AVardeclExpr ../src/test_parser.nit:98,3--37
-                      TKwvar "var" ../src/test_parser.nit:98,3--5
-                      TId "n" ../src/test_parser.nit:98,7
-                      TAssign "=" ../src/test_parser.nit:98,9
-                      ACallExpr ../src/test_parser.nit:98,11--37
-                        ACallExpr ../src/test_parser.nit:98,11--12
-                          AImplicitSelfExpr ../src/test_parser.nit:98,11
-                          AQid ../src/test_parser.nit:98,11--12
-                            TId "tc" ../src/test_parser.nit:98,11--12
-                          AListExprs ../src/test_parser.nit:98,12
-                        AQid ../src/test_parser.nit:98,14--30
-                          TId "interactive_parse" ../src/test_parser.nit:98,14--30
-                        AParExprs ../src/test_parser.nit:98,31--37
-                          TOpar "(" ../src/test_parser.nit:98,31
-                          AStringExpr ../src/test_parser.nit:98,32--36
-                            TString "\"-->\"" ../src/test_parser.nit:98,32--36
-                          TCpar ")" ../src/test_parser.nit:98,37
-                    AIfExpr ../src/test_parser.nit:99,3--107,5
-                      TKwif "if" ../src/test_parser.nit:99,3--4
-                      AIsaExpr ../src/test_parser.nit:99,6--18
-                        ACallExpr ../src/test_parser.nit:99,6
-                          AImplicitSelfExpr ../src/test_parser.nit:99,6
-                          AQid ../src/test_parser.nit:99,6
-                            TId "n" ../src/test_parser.nit:99,6
-                          AListExprs ../src/test_parser.nit:99,6
-                        TKwisa "isa" ../src/test_parser.nit:99,8--10
-                        AType ../src/test_parser.nit:99,12--18
-                          AQclassid ../src/test_parser.nit:99,12--18
-                            TClassid "TString" ../src/test_parser.nit:99,12--18
-                      TKwthen "then" ../src/test_parser.nit:99,20--23
-                      ABlockExpr ../src/test_parser.nit:100,4--106,11
-                        AVardeclExpr ../src/test_parser.nit:100,4--17
-                          TKwvar "var" ../src/test_parser.nit:100,4--6
-                          TId "s" ../src/test_parser.nit:100,8
-                          TAssign "=" ../src/test_parser.nit:100,10
-                          ACallExpr ../src/test_parser.nit:100,12--17
-                            ACallExpr ../src/test_parser.nit:100,12
-                              AImplicitSelfExpr ../src/test_parser.nit:100,12
-                              AQid ../src/test_parser.nit:100,12
-                                TId "n" ../src/test_parser.nit:100,12
-                              AListExprs ../src/test_parser.nit:100,12
-                            AQid ../src/test_parser.nit:100,14--17
-                              TId "text" ../src/test_parser.nit:100,14--17
-                            AListExprs ../src/test_parser.nit:100,17
-                        AIfExpr ../src/test_parser.nit:101,4--105,6
-                          TKwif "if" ../src/test_parser.nit:101,4--5
-                          AEqExpr ../src/test_parser.nit:101,7--15
-                            ACallExpr ../src/test_parser.nit:101,7
-                              AImplicitSelfExpr ../src/test_parser.nit:101,7
-                              AQid ../src/test_parser.nit:101,7
-                                TId "s" ../src/test_parser.nit:101,7
-                              AListExprs ../src/test_parser.nit:101,7
-                            TEq "==" ../src/test_parser.nit:101,9--10
-                            AStringExpr ../src/test_parser.nit:101,12--15
-                              TString "\":q\"" ../src/test_parser.nit:101,12--15
-                          TKwthen "then" ../src/test_parser.nit:101,17--20
-                          ABlockExpr ../src/test_parser.nit:102,5--9
-                            ABreakExpr ../src/test_parser.nit:102,5--9
-                              TKwbreak "break" ../src/test_parser.nit:102,5--9
-                          TKwelse "else" ../src/test_parser.nit:103,4--7
-                          ABlockExpr ../src/test_parser.nit:104,5--105,6
-                            ACallExpr ../src/test_parser.nit:104,5--24
-                              AImplicitSelfExpr ../src/test_parser.nit:104,5
-                              AQid ../src/test_parser.nit:104,5--9
-                                TId "print" ../src/test_parser.nit:104,5--9
-                              AListExprs ../src/test_parser.nit:104,11--24
-                                AStringExpr ../src/test_parser.nit:104,11--24
-                                  TString "\"`:q` to quit\"" ../src/test_parser.nit:104,11--24
-                            TKwend "end" ../src/test_parser.nit:105,4--6
-                        AContinueExpr ../src/test_parser.nit:106,4--11
-                          TKwcontinue "continue" ../src/test_parser.nit:106,4--11
-                      ABlockExpr ../src/test_parser.nit:107,3--5
-                        TKwend "end" ../src/test_parser.nit:107,3--5
-                    AIfExpr ../src/test_parser.nit:109,3--112,5
-                      TKwif "if" ../src/test_parser.nit:109,3--4
-                      AIsaExpr ../src/test_parser.nit:109,6--17
-                        ACallExpr ../src/test_parser.nit:109,6
-                          AImplicitSelfExpr ../src/test_parser.nit:109,6
-                          AQid ../src/test_parser.nit:109,6
-                            TId "n" ../src/test_parser.nit:109,6
-                          AListExprs ../src/test_parser.nit:109,6
-                        TKwisa "isa" ../src/test_parser.nit:109,8--10
-                        AType ../src/test_parser.nit:109,12--17
-                          AQclassid ../src/test_parser.nit:109,12--17
-                            TClassid "AError" ../src/test_parser.nit:109,12--17
-                      TKwthen "then" ../src/test_parser.nit:109,19--22
-                      ABlockExpr ../src/test_parser.nit:110,4--111,11
-                        ACallExpr ../src/test_parser.nit:110,4--57
-                          AImplicitSelfExpr ../src/test_parser.nit:110,4
-                          AQid ../src/test_parser.nit:110,4--8
-                            TId "print" ../src/test_parser.nit:110,4--8
-                          AListExprs ../src/test_parser.nit:110,10--57
-                            ASuperstringExpr ../src/test_parser.nit:110,10--57
-                              AStartStringExpr ../src/test_parser.nit:110,10--11
-                                TStartString "\"{" ../src/test_parser.nit:110,10--11
-                              ACallExpr ../src/test_parser.nit:110,12--42
-                                ACallExpr ../src/test_parser.nit:110,12--21
-                                  ACallExpr ../src/test_parser.nit:110,12
-                                    AImplicitSelfExpr ../src/test_parser.nit:110,12
-                                    AQid ../src/test_parser.nit:110,12
-                                      TId "n" ../src/test_parser.nit:110,12
-                                    AListExprs ../src/test_parser.nit:110,12
-                                  AQid ../src/test_parser.nit:110,14--21
-                                    TId "location" ../src/test_parser.nit:110,14--21
-                                  AListExprs ../src/test_parser.nit:110,21
-                                AQid ../src/test_parser.nit:110,23--34
-                                  TId "colored_line" ../src/test_parser.nit:110,23--34
-                                AParExprs ../src/test_parser.nit:110,35--42
-                                  TOpar "(" ../src/test_parser.nit:110,35
-                                  AStringExpr ../src/test_parser.nit:110,36--41
-                                    TString "\"0;31\"" ../src/test_parser.nit:110,36--41
-                                  TCpar ")" ../src/test_parser.nit:110,42
-                              AMidStringExpr ../src/test_parser.nit:110,43--46
-                                TMidString "}: {" ../src/test_parser.nit:110,43--46
-                              ACallExpr ../src/test_parser.nit:110,47--55
-                                ACallExpr ../src/test_parser.nit:110,47
-                                  AImplicitSelfExpr ../src/test_parser.nit:110,47
-                                  AQid ../src/test_parser.nit:110,47
-                                    TId "n" ../src/test_parser.nit:110,47
-                                  AListExprs ../src/test_parser.nit:110,47
-                                AQid ../src/test_parser.nit:110,49--55
-                                  TId "message" ../src/test_parser.nit:110,49--55
-                                AListExprs ../src/test_parser.nit:110,55
-                              AEndStringExpr ../src/test_parser.nit:110,56--57
-                                TEndString "}\"" ../src/test_parser.nit:110,56--57
-                        AContinueExpr ../src/test_parser.nit:111,4--11
-                          TKwcontinue "continue" ../src/test_parser.nit:111,4--11
-                      ABlockExpr ../src/test_parser.nit:112,3--5
-                        TKwend "end" ../src/test_parser.nit:112,3--5
-                    AIfExpr ../src/test_parser.nit:114,3--116,5
-                      TKwif "if" ../src/test_parser.nit:114,3--4
-                      ANotExpr ../src/test_parser.nit:114,6--17
-                        TKwnot "not" ../src/test_parser.nit:114,6--8
-                        ACallExpr ../src/test_parser.nit:114,10--17
-                          AImplicitSelfExpr ../src/test_parser.nit:114,10
-                          AQid ../src/test_parser.nit:114,10--17
-                            TId "no_print" ../src/test_parser.nit:114,10--17
-                          AListExprs ../src/test_parser.nit:114,17
-                      TKwthen "then" ../src/test_parser.nit:114,19--22
-                      ABlockExpr ../src/test_parser.nit:115,4--40
-                        ACallExpr ../src/test_parser.nit:115,4--40
-                          AParExpr ../src/test_parser.nit:115,4--25
-                            TOpar "(" ../src/test_parser.nit:115,4
-                            ANewExpr ../src/test_parser.nit:115,5--24
-                              TKwnew "new" ../src/test_parser.nit:115,5--7
-                              AType ../src/test_parser.nit:115,9--24
-                                AQclassid ../src/test_parser.nit:115,9--24
-                                  TClassid "PrintTreeVisitor" ../src/test_parser.nit:115,9--24
-                              AListExprs ../src/test_parser.nit:115,24
-                            TCpar ")" ../src/test_parser.nit:115,25
-                          AQid ../src/test_parser.nit:115,27--37
-                            TId "enter_visit" ../src/test_parser.nit:115,27--37
-                          AParExprs ../src/test_parser.nit:115,38--40
-                            TOpar "(" ../src/test_parser.nit:115,38
-                            ACallExpr ../src/test_parser.nit:115,39
-                              AImplicitSelfExpr ../src/test_parser.nit:115,39
-                              AQid ../src/test_parser.nit:115,39
-                                TId "n" ../src/test_parser.nit:115,39
-                              AListExprs ../src/test_parser.nit:115,39
-                            TCpar ")" ../src/test_parser.nit:115,40
-                      ABlockExpr ../src/test_parser.nit:116,3--5
-                        TKwend "end" ../src/test_parser.nit:116,3--5
-                    TKwend "end" ../src/test_parser.nit:117,2--4
-              TKwelse "else" ../src/test_parser.nit:118,1--4
-              ABlockExpr ../src/test_parser.nit:119,2--155,3
-                AForExpr ../src/test_parser.nit:119,2--154,4
-                  TKwfor "for" ../src/test_parser.nit:119,2--4
-                  AForGroup ../src/test_parser.nit:119,6--14
-                    TId "a" ../src/test_parser.nit:119,6
-                    TKwin "in" ../src/test_parser.nit:119,8--9
-                    ACallExpr ../src/test_parser.nit:119,11--14
-                      AImplicitSelfExpr ../src/test_parser.nit:119,11
-                      AQid ../src/test_parser.nit:119,11--14
-                        TId "args" ../src/test_parser.nit:119,11--14
-                      AListExprs ../src/test_parser.nit:119,14
-                  TKwdo "do" ../src/test_parser.nit:119,16--17
-                  ABlockExpr ../src/test_parser.nit:120,3--154,4
-                    AVardeclExpr ../src/test_parser.nit:120,3--12
-                      TKwvar "var" ../src/test_parser.nit:120,3--5
-                      TId "source" ../src/test_parser.nit:120,7--12
-                    AIfExpr ../src/test_parser.nit:121,3--127,5
-                      TKwif "if" ../src/test_parser.nit:121,3--4
-                      ACallExpr ../src/test_parser.nit:121,6--12
-                        AImplicitSelfExpr ../src/test_parser.nit:121,6
-                        AQid ../src/test_parser.nit:121,6--12
-                          TId "no_file" ../src/test_parser.nit:121,6--12
-                        AListExprs ../src/test_parser.nit:121,12
-                      TKwthen "then" ../src/test_parser.nit:121,14--17
-                      ABlockExpr ../src/test_parser.nit:122,4--45
-                        ACallAssignExpr ../src/test_parser.nit:122,4--45
-                          AImplicitSelfExpr ../src/test_parser.nit:122,4
-                          AQid ../src/test_parser.nit:122,4--9
-                            TId "source" ../src/test_parser.nit:122,4--9
-                          AListExprs ../src/test_parser.nit:122,11
-                          TAssign "=" ../src/test_parser.nit:122,11
-                          ANewExpr ../src/test_parser.nit:122,13--45
-                            TKwnew "new" ../src/test_parser.nit:122,13--15
-                            AType ../src/test_parser.nit:122,17--26
-                              AQclassid ../src/test_parser.nit:122,17--26
-                                TClassid "SourceFile" ../src/test_parser.nit:122,17--26
-                            AQid ../src/test_parser.nit:122,28--38
-                              TId "from_string" ../src/test_parser.nit:122,28--38
-                            AParExprs ../src/test_parser.nit:122,39--45
-                              TOpar "(" ../src/test_parser.nit:122,39
-                              AStringExpr ../src/test_parser.nit:122,40--41
-                                TString "\"\"" ../src/test_parser.nit:122,40--41
-                              ACallExpr ../src/test_parser.nit:122,44
-                                AImplicitSelfExpr ../src/test_parser.nit:122,44
-                                AQid ../src/test_parser.nit:122,44
-                                  TId "a" ../src/test_parser.nit:122,44
-                                AListExprs ../src/test_parser.nit:122,44
-                              TCpar ")" ../src/test_parser.nit:122,45
-                      TKwelse "else" ../src/test_parser.nit:123,3--6
-                      ABlockExpr ../src/test_parser.nit:124,4--127,5
-                        AVardeclExpr ../src/test_parser.nit:124,4--33
-                          TKwvar "var" ../src/test_parser.nit:124,4--6
-                          TId "f" ../src/test_parser.nit:124,8
-                          TAssign "=" ../src/test_parser.nit:124,10
-                          ANewExpr ../src/test_parser.nit:124,12--33
-                            TKwnew "new" ../src/test_parser.nit:124,12--14
-                            AType ../src/test_parser.nit:124,16--25
-                              AQclassid ../src/test_parser.nit:124,16--25
-                                TClassid "FileReader" ../src/test_parser.nit:124,16--25
-                            AQid ../src/test_parser.nit:124,27--30
-                              TId "open" ../src/test_parser.nit:124,27--30
-                            AParExprs ../src/test_parser.nit:124,31--33
-                              TOpar "(" ../src/test_parser.nit:124,31
-                              ACallExpr ../src/test_parser.nit:124,32
-                                AImplicitSelfExpr ../src/test_parser.nit:124,32
-                                AQid ../src/test_parser.nit:124,32
-                                  TId "a" ../src/test_parser.nit:124,32
-                                AListExprs ../src/test_parser.nit:124,32
-                              TCpar ")" ../src/test_parser.nit:124,33
-                        ACallAssignExpr ../src/test_parser.nit:125,4--32
-                          AImplicitSelfExpr ../src/test_parser.nit:125,4
-                          AQid ../src/test_parser.nit:125,4--9
-                            TId "source" ../src/test_parser.nit:125,4--9
-                          AListExprs ../src/test_parser.nit:125,11
-                          TAssign "=" ../src/test_parser.nit:125,11
-                          ANewExpr ../src/test_parser.nit:125,13--32
-                            TKwnew "new" ../src/test_parser.nit:125,13--15
-                            AType ../src/test_parser.nit:125,17--26
-                              AQclassid ../src/test_parser.nit:125,17--26
-                                TClassid "SourceFile" ../src/test_parser.nit:125,17--26
-                            AParExprs ../src/test_parser.nit:125,27--32
-                              TOpar "(" ../src/test_parser.nit:125,27
-                              ACallExpr ../src/test_parser.nit:125,28
-                                AImplicitSelfExpr ../src/test_parser.nit:125,28
-                                AQid ../src/test_parser.nit:125,28
-                                  TId "a" ../src/test_parser.nit:125,28
-                                AListExprs ../src/test_parser.nit:125,28
-                              ACallExpr ../src/test_parser.nit:125,31
-                                AImplicitSelfExpr ../src/test_parser.nit:125,31
-                                AQid ../src/test_parser.nit:125,31
-                                  TId "f" ../src/test_parser.nit:125,31
-                                AListExprs ../src/test_parser.nit:125,31
-                              TCpar ")" ../src/test_parser.nit:125,32
-                        ACallExpr ../src/test_parser.nit:126,4--10
-                          ACallExpr ../src/test_parser.nit:126,4
-                            AImplicitSelfExpr ../src/test_parser.nit:126,4
-                            AQid ../src/test_parser.nit:126,4
-                              TId "f" ../src/test_parser.nit:126,4
-                            AListExprs ../src/test_parser.nit:126,4
-                          AQid ../src/test_parser.nit:126,6--10
-                            TId "close" ../src/test_parser.nit:126,6--10
-                          AListExprs ../src/test_parser.nit:126,10
-                        TKwend "end" ../src/test_parser.nit:127,3--5
-                    AVardeclExpr ../src/test_parser.nit:128,3--31
-                      TKwvar "var" ../src/test_parser.nit:128,3--5
-                      TId "lexer" ../src/test_parser.nit:128,7--11
-                      TAssign "=" ../src/test_parser.nit:128,13
-                      ANewExpr ../src/test_parser.nit:128,15--31
-                        TKwnew "new" ../src/test_parser.nit:128,15--17
-                        AType ../src/test_parser.nit:128,19--23
-                          AQclassid ../src/test_parser.nit:128,19--23
-                            TClassid "Lexer" ../src/test_parser.nit:128,19--23
-                        AParExprs ../src/test_parser.nit:128,24--31
-                          TOpar "(" ../src/test_parser.nit:128,24
-                          ACallExpr ../src/test_parser.nit:128,25--30
-                            AImplicitSelfExpr ../src/test_parser.nit:128,25
-                            AQid ../src/test_parser.nit:128,25--30
-                              TId "source" ../src/test_parser.nit:128,25--30
-                            AListExprs ../src/test_parser.nit:128,30
-                          TCpar ")" ../src/test_parser.nit:128,31
-                    AIfExpr ../src/test_parser.nit:129,3--153,5
-                      TKwif "if" ../src/test_parser.nit:129,3--4
-                      ACallExpr ../src/test_parser.nit:129,6--15
-                        AImplicitSelfExpr ../src/test_parser.nit:129,6
-                        AQid ../src/test_parser.nit:129,6--15
-                          TId "only_lexer" ../src/test_parser.nit:129,6--15
-                        AListExprs ../src/test_parser.nit:129,15
-                      TKwthen "then" ../src/test_parser.nit:129,17--20
-                      ABlockExpr ../src/test_parser.nit:130,4--136,6
-                        AVardeclExpr ../src/test_parser.nit:130,4--25
-                          TKwvar "var" ../src/test_parser.nit:130,4--6
-                          TId "token" ../src/test_parser.nit:130,8--12
-                          TAssign "=" ../src/test_parser.nit:130,14
-                          ACallExpr ../src/test_parser.nit:130,16--25
-                            ACallExpr ../src/test_parser.nit:130,16--20
-                              AImplicitSelfExpr ../src/test_parser.nit:130,16
-                              AQid ../src/test_parser.nit:130,16--20
-                                TId "lexer" ../src/test_parser.nit:130,16--20
-                              AListExprs ../src/test_parser.nit:130,20
-                            AQid ../src/test_parser.nit:130,22--25
-                              TId "next" ../src/test_parser.nit:130,22--25
-                            AListExprs ../src/test_parser.nit:130,25
-                        AWhileExpr ../src/test_parser.nit:131,4--136,6
-                          TKwwhile "while" ../src/test_parser.nit:131,4--8
-                          ANotExpr ../src/test_parser.nit:131,10--26
-                            TKwnot "not" ../src/test_parser.nit:131,10--12
-                            AIsaExpr ../src/test_parser.nit:131,14--26
-                              ACallExpr ../src/test_parser.nit:131,14--18
-                                AImplicitSelfExpr ../src/test_parser.nit:131,14
-                                AQid ../src/test_parser.nit:131,14--18
-                                  TId "token" ../src/test_parser.nit:131,14--18
-                                AListExprs ../src/test_parser.nit:131,18
-                              TKwisa "isa" ../src/test_parser.nit:131,20--22
-                              AType ../src/test_parser.nit:131,24--26
-                                AQclassid ../src/test_parser.nit:131,24--26
-                                  TClassid "EOF" ../src/test_parser.nit:131,24--26
-                          TKwdo "do" ../src/test_parser.nit:131,28--29
-                          ABlockExpr ../src/test_parser.nit:132,5--136,6
-                            AIfExpr ../src/test_parser.nit:132,5--134,7
-                              TKwif "if" ../src/test_parser.nit:132,5--6
-                              ANotExpr ../src/test_parser.nit:132,8--19
-                                TKwnot "not" ../src/test_parser.nit:132,8--10
-                                ACallExpr ../src/test_parser.nit:132,12--19
-                                  AImplicitSelfExpr ../src/test_parser.nit:132,12
-                                  AQid ../src/test_parser.nit:132,12--19
-                                    TId "no_print" ../src/test_parser.nit:132,12--19
-                                  AListExprs ../src/test_parser.nit:132,19
-                              TKwthen "then" ../src/test_parser.nit:132,21--24
-                              ABlockExpr ../src/test_parser.nit:133,6--64
-                                ACallExpr ../src/test_parser.nit:133,6--64
-                                  AImplicitSelfExpr ../src/test_parser.nit:133,6
-                                  AQid ../src/test_parser.nit:133,6--10
-                                    TId "print" ../src/test_parser.nit:133,6--10
-                                  AParExprs ../src/test_parser.nit:133,11--64
-                                    TOpar "(" ../src/test_parser.nit:133,11
-                                    ASuperstringExpr ../src/test_parser.nit:133,12--63
-                                      AStartStringExpr ../src/test_parser.nit:133,12--27
-                                        TStartString "\"Read token at {" ../src/test_parser.nit:133,12--27
-                                      ACallExpr ../src/test_parser.nit:133,28--41
-                                        ACallExpr ../src/test_parser.nit:133,28--32
-                                          AImplicitSelfExpr ../src/test_parser.nit:133,28
-                                          AQid ../src/test_parser.nit:133,28--32
-                                            TId "token" ../src/test_parser.nit:133,28--32
-                                          AListExprs ../src/test_parser.nit:133,32
-                                        AQid ../src/test_parser.nit:133,34--41
-                                          TId "location" ../src/test_parser.nit:133,34--41
-                                        AListExprs ../src/test_parser.nit:133,41
-                                      AMidStringExpr ../src/test_parser.nit:133,42--50
-                                        TMidString "} text=\'{" ../src/test_parser.nit:133,42--50
-                                      ACallExpr ../src/test_parser.nit:133,51--60
-                                        ACallExpr ../src/test_parser.nit:133,51--55
-                                          AImplicitSelfExpr ../src/test_parser.nit:133,51
-                                          AQid ../src/test_parser.nit:133,51--55
-                                            TId "token" ../src/test_parser.nit:133,51--55
-                                          AListExprs ../src/test_parser.nit:133,55
-                                        AQid ../src/test_parser.nit:133,57--60
-                                          TId "text" ../src/test_parser.nit:133,57--60
-                                        AListExprs ../src/test_parser.nit:133,60
-                                      AEndStringExpr ../src/test_parser.nit:133,61--63
-                                        TEndString "}\'\"" ../src/test_parser.nit:133,61--63
-                                    TCpar ")" ../src/test_parser.nit:133,64
-                              ABlockExpr ../src/test_parser.nit:134,5--7
-                                TKwend "end" ../src/test_parser.nit:134,5--7
-                            ACallAssignExpr ../src/test_parser.nit:135,5--22
-                              AImplicitSelfExpr ../src/test_parser.nit:135,5
-                              AQid ../src/test_parser.nit:135,5--9
-                                TId "token" ../src/test_parser.nit:135,5--9
-                              AListExprs ../src/test_parser.nit:135,11
-                              TAssign "=" ../src/test_parser.nit:135,11
-                              ACallExpr ../src/test_parser.nit:135,13--22
-                                ACallExpr ../src/test_parser.nit:135,13--17
-                                  AImplicitSelfExpr ../src/test_parser.nit:135,13
-                                  AQid ../src/test_parser.nit:135,13--17
-                                    TId "lexer" ../src/test_parser.nit:135,13--17
-                                  AListExprs ../src/test_parser.nit:135,17
-                                AQid ../src/test_parser.nit:135,19--22
-                                  TId "next" ../src/test_parser.nit:135,19--22
-                                AListExprs ../src/test_parser.nit:135,22
-                            TKwend "end" ../src/test_parser.nit:136,4--6
-                      TKwelse "else" ../src/test_parser.nit:137,3--6
-                      ABlockExpr ../src/test_parser.nit:138,4--153,5
-                        AVardeclExpr ../src/test_parser.nit:138,4--33
-                          TKwvar "var" ../src/test_parser.nit:138,4--6
-                          TId "parser" ../src/test_parser.nit:138,8--13
-                          TAssign "=" ../src/test_parser.nit:138,15
-                          ANewExpr ../src/test_parser.nit:138,17--33
-                            TKwnew "new" ../src/test_parser.nit:138,17--19
-                            AType ../src/test_parser.nit:138,21--26
-                              AQclassid ../src/test_parser.nit:138,21--26
-                                TClassid "Parser" ../src/test_parser.nit:138,21--26
-                            AParExprs ../src/test_parser.nit:138,27--33
-                              TOpar "(" ../src/test_parser.nit:138,27
-                              ACallExpr ../src/test_parser.nit:138,28--32
-                                AImplicitSelfExpr ../src/test_parser.nit:138,28
-                                AQid ../src/test_parser.nit:138,28--32
-                                  TId "lexer" ../src/test_parser.nit:138,28--32
-                                AListExprs ../src/test_parser.nit:138,32
-                              TCpar ")" ../src/test_parser.nit:138,33
-                        AVardeclExpr ../src/test_parser.nit:139,4--26
-                          TKwvar "var" ../src/test_parser.nit:139,4--6
-                          TId "tree" ../src/test_parser.nit:139,8--11
-                          TAssign "=" ../src/test_parser.nit:139,13
-                          ACallExpr ../src/test_parser.nit:139,15--26
-                            ACallExpr ../src/test_parser.nit:139,15--20
-                              AImplicitSelfExpr ../src/test_parser.nit:139,15
-                              AQid ../src/test_parser.nit:139,15--20
-                                TId "parser" ../src/test_parser.nit:139,15--20
-                              AListExprs ../src/test_parser.nit:139,20
-                            AQid ../src/test_parser.nit:139,22--26
-                              TId "parse" ../src/test_parser.nit:139,22--26
-                            AListExprs ../src/test_parser.nit:139,26
-                        AVardeclExpr ../src/test_parser.nit:141,4--25
-                          TKwvar "var" ../src/test_parser.nit:141,4--6
-                          TId "error" ../src/test_parser.nit:141,8--12
-                          TAssign "=" ../src/test_parser.nit:141,14
-                          ACallExpr ../src/test_parser.nit:141,16--25
-                            ACallExpr ../src/test_parser.nit:141,16--19
-                              AImplicitSelfExpr ../src/test_parser.nit:141,16
-                              AQid ../src/test_parser.nit:141,16--19
-                                TId "tree" ../src/test_parser.nit:141,16--19
-                              AListExprs ../src/test_parser.nit:141,19
-                            AQid ../src/test_parser.nit:141,21--25
-                              TId "n_eof" ../src/test_parser.nit:141,21--25
-                            AListExprs ../src/test_parser.nit:141,25
-                        AIfExpr ../src/test_parser.nit:142,4--145,6
-                          TKwif "if" ../src/test_parser.nit:142,4--5
-                          AIsaExpr ../src/test_parser.nit:142,7--22
-                            ACallExpr ../src/test_parser.nit:142,7--11
-                              AImplicitSelfExpr ../src/test_parser.nit:142,7
-                              AQid ../src/test_parser.nit:142,7--11
-                                TId "error" ../src/test_parser.nit:142,7--11
-                              AListExprs ../src/test_parser.nit:142,11
-                            TKwisa "isa" ../src/test_parser.nit:142,13--15
-                            AType ../src/test_parser.nit:142,17--22
-                              AQclassid ../src/test_parser.nit:142,17--22
-                                TClassid "AError" ../src/test_parser.nit:142,17--22
-                          TKwthen "then" ../src/test_parser.nit:142,24--27
-                          ABlockExpr ../src/test_parser.nit:143,5--144,10
-                            ACallExpr ../src/test_parser.nit:143,5--58
-                              AImplicitSelfExpr ../src/test_parser.nit:143,5
-                              AQid ../src/test_parser.nit:143,5--9
-                                TId "print" ../src/test_parser.nit:143,5--9
-                              AParExprs ../src/test_parser.nit:143,10--58
-                                TOpar "(" ../src/test_parser.nit:143,10
-                                ASuperstringExpr ../src/test_parser.nit:143,11--57
-                                  AStartStringExpr ../src/test_parser.nit:143,11--21
-                                    TStartString "\"Error at {" ../src/test_parser.nit:143,11--21
-                                  ACallExpr ../src/test_parser.nit:143,22--35
-                                    ACallExpr ../src/test_parser.nit:143,22--26
-                                      AImplicitSelfExpr ../src/test_parser.nit:143,22
-                                      AQid ../src/test_parser.nit:143,22--26
-                                        TId "error" ../src/test_parser.nit:143,22--26
-                                      AListExprs ../src/test_parser.nit:143,26
-                                    AQid ../src/test_parser.nit:143,28--35
-                                      TId "location" ../src/test_parser.nit:143,28--35
-                                    AListExprs ../src/test_parser.nit:143,35
-                                  AMidStringExpr ../src/test_parser.nit:143,36--42
-                                    TMidString "}:\\n\\t{" ../src/test_parser.nit:143,36--42
-                                  ACallExpr ../src/test_parser.nit:143,43--55
-                                    ACallExpr ../src/test_parser.nit:143,43--47
-                                      AImplicitSelfExpr ../src/test_parser.nit:143,43
-                                      AQid ../src/test_parser.nit:143,43--47
-                                        TId "error" ../src/test_parser.nit:143,43--47
-                                      AListExprs ../src/test_parser.nit:143,47
-                                    AQid ../src/test_parser.nit:143,49--55
-                                      TId "message" ../src/test_parser.nit:143,49--55
-                                    AListExprs ../src/test_parser.nit:143,55
-                                  AEndStringExpr ../src/test_parser.nit:143,56--57
-                                    TEndString "}\"" ../src/test_parser.nit:143,56--57
-                                TCpar ")" ../src/test_parser.nit:143,58
-                            AReturnExpr ../src/test_parser.nit:144,5--10
-                              TKwreturn "return" ../src/test_parser.nit:144,5--10
-                          ABlockExpr ../src/test_parser.nit:145,4--6
-                            TKwend "end" ../src/test_parser.nit:145,4--6
-                        AIfExpr ../src/test_parser.nit:147,4--152,6
-                          TKwif "if" ../src/test_parser.nit:147,4--5
-                          ACallExpr ../src/test_parser.nit:147,7--9
-                            AImplicitSelfExpr ../src/test_parser.nit:147,7
-                            AQid ../src/test_parser.nit:147,7--9
-                              TId "xml" ../src/test_parser.nit:147,7--9
-                            AListExprs ../src/test_parser.nit:147,9
-                          TKwthen "then" ../src/test_parser.nit:147,11--14
-                          ABlockExpr ../src/test_parser.nit:148,5--149,32
-                            ACallExpr ../src/test_parser.nit:148,5--25
-                              ACallExpr ../src/test_parser.nit:148,5--8
-                                AImplicitSelfExpr ../src/test_parser.nit:148,5
-                                AQid ../src/test_parser.nit:148,5--8
-                                  TId "tree" ../src/test_parser.nit:148,5--8
-                                AListExprs ../src/test_parser.nit:148,8
-                              AQid ../src/test_parser.nit:148,10--25
-                                TId "parentize_tokens" ../src/test_parser.nit:148,10--25
-                              AListExprs ../src/test_parser.nit:148,25
-                            ACallExpr ../src/test_parser.nit:149,5--32
-                              ACallExpr ../src/test_parser.nit:149,5--15
-                                ACallExpr ../src/test_parser.nit:149,5--8
-                                  AImplicitSelfExpr ../src/test_parser.nit:149,5
-                                  AQid ../src/test_parser.nit:149,5--8
-                                    TId "tree" ../src/test_parser.nit:149,5--8
-                                  AListExprs ../src/test_parser.nit:149,8
-                                AQid ../src/test_parser.nit:149,10--15
-                                  TId "to_xml" ../src/test_parser.nit:149,10--15
-                                AListExprs ../src/test_parser.nit:149,15
-                              AQid ../src/test_parser.nit:149,17--24
-                                TId "write_to" ../src/test_parser.nit:149,17--24
-                              AParExprs ../src/test_parser.nit:149,25--32
-                                TOpar "(" ../src/test_parser.nit:149,25
-                                ACallExpr ../src/test_parser.nit:149,26--31
-                                  AImplicitSelfExpr ../src/test_parser.nit:149,26
-                                  AQid ../src/test_parser.nit:149,26--31
-                                    TId "stdout" ../src/test_parser.nit:149,26--31
-                                  AListExprs ../src/test_parser.nit:149,31
-                                TCpar ")" ../src/test_parser.nit:149,32
-                          TKwelse "else" ../src/test_parser.nit:150,4--7
-                          AIfExpr ../src/test_parser.nit:150,9--152,6
-                            TKwif "if" ../src/test_parser.nit:150,9--10
-                            ANotExpr ../src/test_parser.nit:150,12--23
-                              TKwnot "not" ../src/test_parser.nit:150,12--14
-                              ACallExpr ../src/test_parser.nit:150,16--23
-                                AImplicitSelfExpr ../src/test_parser.nit:150,16
-                                AQid ../src/test_parser.nit:150,16--23
-                                  TId "no_print" ../src/test_parser.nit:150,16--23
-                                AListExprs ../src/test_parser.nit:150,23
-                            TKwthen "then" ../src/test_parser.nit:150,25--28
-                            ABlockExpr ../src/test_parser.nit:151,5--44
-                              ACallExpr ../src/test_parser.nit:151,5--44
-                                AParExpr ../src/test_parser.nit:151,5--26
-                                  TOpar "(" ../src/test_parser.nit:151,5
-                                  ANewExpr ../src/test_parser.nit:151,6--25
-                                    TKwnew "new" ../src/test_parser.nit:151,6--8
-                                    AType ../src/test_parser.nit:151,10--25
-                                      AQclassid ../src/test_parser.nit:151,10--25
-                                        TClassid "PrintTreeVisitor" ../src/test_parser.nit:151,10--25
-                                    AListExprs ../src/test_parser.nit:151,25
-                                  TCpar ")" ../src/test_parser.nit:151,26
-                                AQid ../src/test_parser.nit:151,28--38
-                                  TId "enter_visit" ../src/test_parser.nit:151,28--38
-                                AParExprs ../src/test_parser.nit:151,39--44
-                                  TOpar "(" ../src/test_parser.nit:151,39
-                                  ACallExpr ../src/test_parser.nit:151,40--43
-                                    AImplicitSelfExpr ../src/test_parser.nit:151,40
-                                    AQid ../src/test_parser.nit:151,40--43
-                                      TId "tree" ../src/test_parser.nit:151,40--43
-                                    AListExprs ../src/test_parser.nit:151,43
-                                  TCpar ")" ../src/test_parser.nit:151,44
-                            ABlockExpr ../src/test_parser.nit:152,4--6
-                              TKwend "end" ../src/test_parser.nit:152,4--6
-                        TKwend "end" ../src/test_parser.nit:153,3--5
-                    TKwend "end" ../src/test_parser.nit:154,2--4
-                TKwend "end" ../src/test_parser.nit:155,1--3
-  EOF "" ../src/test_parser.nit:156,1
+\e[37m17        # Program used to test the NIT parser
+\e[mStart  @../src/test_parser.nit:17,1--139,1
+|--AModule  @../src/test_parser.nit:17,1--138,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
+\e[37m18        module test_parser
+\e[m|  |  |--APublicVisibility  @../src/test_parser.nit:18,1
+|  |  |--TKwmodule  module @../src/test_parser.nit:18,1--6
+|  |  `--AModuleName  @../src/test_parser.nit:18,8--18
+|  |     `--TId  test_parser @../src/test_parser.nit:18,8--18
+\e[37m19        
+import parser
+\e[m\e[37m20     import parser
+\e[m|  |--AStdImport  @../src/test_parser.nit:20,1--13
+|  |  |--APublicVisibility  @../src/test_parser.nit:20,1
+|  |  |--TKwimport  import @../src/test_parser.nit:20,1--6
+|  |  `--AModuleName  @../src/test_parser.nit:20,8--13
+|  |     `--TId  parser @../src/test_parser.nit:20,8--13
+\e[37m21        import parser_util
+\e[m|  |--AStdImport  @../src/test_parser.nit:21,1--18
+|  |  |--APublicVisibility  @../src/test_parser.nit:21,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
+\e[37m22        import astutil
+\e[m|  |--AStdImport  @../src/test_parser.nit:22,1--14
+|  |  |--APublicVisibility  @../src/test_parser.nit:22,1
+|  |  |--TKwimport  import @../src/test_parser.nit:22,1--6
+|  |  `--AModuleName  @../src/test_parser.nit:22,8--14
+|  |     `--TId  astutil @../src/test_parser.nit:22,8--14
+\e[37m23        
+var no_print = false
+\e[m\e[37m24     var no_print = false
+\e[m|  `--AMainClassdef  @../src/test_parser.nit:24,1--138,3
+|     `--AMainMethPropdef  @../src/test_parser.nit:24,1--138,3
+|        `--ABlockExpr  @../src/test_parser.nit:24,1--138,3
+|           |--AVardeclExpr  @../src/test_parser.nit:24,1--20
+|           |  |--TKwvar  var @../src/test_parser.nit:24,1--3
+|           |  |--TId  no_print @../src/test_parser.nit:24,5--12
+|           |  |--TAssign  = @../src/test_parser.nit:24,14
+|           |  `--AFalseExpr  @../src/test_parser.nit:24,16--20
+|           |     `--TKwfalse  false @../src/test_parser.nit:24,16--20
+\e[37m25        var only_lexer = false
+\e[m|           |--AVardeclExpr  @../src/test_parser.nit:25,1--22
+|           |  |--TKwvar  var @../src/test_parser.nit:25,1--3
+|           |  |--TId  only_lexer @../src/test_parser.nit:25,5--14
+|           |  |--TAssign  = @../src/test_parser.nit:25,16
+|           |  `--AFalseExpr  @../src/test_parser.nit:25,18--22
+|           |     `--TKwfalse  false @../src/test_parser.nit:25,18--22
+\e[37m26        var need_help = false
+\e[m|           |--AVardeclExpr  @../src/test_parser.nit:26,1--21
+|           |  |--TKwvar  var @../src/test_parser.nit:26,1--3
+|           |  |--TId  need_help @../src/test_parser.nit:26,5--13
+|           |  |--TAssign  = @../src/test_parser.nit:26,15
+|           |  `--AFalseExpr  @../src/test_parser.nit:26,17--21
+|           |     `--TKwfalse  false @../src/test_parser.nit:26,17--21
+\e[37m27        var no_file = false
+\e[m|           |--AVardeclExpr  @../src/test_parser.nit:27,1--19
+|           |  |--TKwvar  var @../src/test_parser.nit:27,1--3
+|           |  |--TId  no_file @../src/test_parser.nit:27,5--11
+|           |  |--TAssign  = @../src/test_parser.nit:27,13
+|           |  `--AFalseExpr  @../src/test_parser.nit:27,15--19
+|           |     `--TKwfalse  false @../src/test_parser.nit:27,15--19
+\e[37m28        var interactive = false
+\e[m|           |--AVardeclExpr  @../src/test_parser.nit:28,1--23
+|           |  |--TKwvar  var @../src/test_parser.nit:28,1--3
+|           |  |--TId  interactive @../src/test_parser.nit:28,5--15
+|           |  |--TAssign  = @../src/test_parser.nit:28,17
+|           |  `--AFalseExpr  @../src/test_parser.nit:28,19--23
+|           |     `--TKwfalse  false @../src/test_parser.nit:28,19--23
+\e[37m29        var xml = false
+\e[m|           |--AVardeclExpr  @../src/test_parser.nit:29,1--15
+|           |  |--TKwvar  var @../src/test_parser.nit:29,1--3
+|           |  |--TId  xml @../src/test_parser.nit:29,5--7
+|           |  |--TAssign  = @../src/test_parser.nit:29,9
+|           |  `--AFalseExpr  @../src/test_parser.nit:29,11--15
+|           |     `--TKwfalse  false @../src/test_parser.nit:29,11--15
+\e[37m30        
+while not args.is_empty and args.first.chars.first == '-' do
+\e[m\e[37m31     while not args.is_empty and args.first.chars.first == '-' do
+\e[m|           |--AWhileExpr  @../src/test_parser.nit:31,1--51,3
+|           |  |--TKwwhile  while @../src/test_parser.nit:31,1--5
+|           |  |--AAndExpr  @../src/test_parser.nit:31,7--57
+|           |  |  |--ANotExpr  @../src/test_parser.nit:31,7--23
+|           |  |  |  |--TKwnot  not @../src/test_parser.nit:31,7--9
+|           |  |  |  `--ACallExpr  @../src/test_parser.nit:31,11--23
+|           |  |  |     |--ACallExpr  @../src/test_parser.nit:31,11--14
+|           |  |  |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:31,11
+|           |  |  |     |  |--AQid  @../src/test_parser.nit:31,11--14
+|           |  |  |     |  |  `--TId  args @../src/test_parser.nit:31,11--14
+|           |  |  |     |  `--AListExprs  @../src/test_parser.nit:31,14
+|           |  |  |     |--AQid  @../src/test_parser.nit:31,16--23
+|           |  |  |     |  `--TId  is_empty @../src/test_parser.nit:31,16--23
+|           |  |  |     `--AListExprs  @../src/test_parser.nit:31,23
+|           |  |  |--TKwand  and @../src/test_parser.nit:31,25--27
+|           |  |  `--AEqExpr  @../src/test_parser.nit:31,29--57
+|           |  |     |--ACallExpr  @../src/test_parser.nit:31,29--50
+|           |  |     |  |--ACallExpr  @../src/test_parser.nit:31,29--44
+|           |  |     |  |  |--ACallExpr  @../src/test_parser.nit:31,29--38
+|           |  |     |  |  |  |--ACallExpr  @../src/test_parser.nit:31,29--32
+|           |  |     |  |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:31,29
+|           |  |     |  |  |  |  |--AQid  @../src/test_parser.nit:31,29--32
+|           |  |     |  |  |  |  |  `--TId  args @../src/test_parser.nit:31,29--32
+|           |  |     |  |  |  |  `--AListExprs  @../src/test_parser.nit:31,32
+|           |  |     |  |  |  |--AQid  @../src/test_parser.nit:31,34--38
+|           |  |     |  |  |  |  `--TId  first @../src/test_parser.nit:31,34--38
+|           |  |     |  |  |  `--AListExprs  @../src/test_parser.nit:31,38
+|           |  |     |  |  |--AQid  @../src/test_parser.nit:31,40--44
+|           |  |     |  |  |  `--TId  chars @../src/test_parser.nit:31,40--44
+|           |  |     |  |  `--AListExprs  @../src/test_parser.nit:31,44
+|           |  |     |  |--AQid  @../src/test_parser.nit:31,46--50
+|           |  |     |  |  `--TId  first @../src/test_parser.nit:31,46--50
+|           |  |     |  `--AListExprs  @../src/test_parser.nit:31,50
+|           |  |     |--TEq  == @../src/test_parser.nit:31,52--53
+|           |  |     `--ACharExpr  @../src/test_parser.nit:31,55--57
+|           |  |        `--TChar  \'-\' @../src/test_parser.nit:31,55--57
+|           |  |--TKwdo  do @../src/test_parser.nit:31,59--60
+\e[37m32                if args.first == "-n" then
+\e[m|           |  `--ABlockExpr  @../src/test_parser.nit:32,2--51,3
+|           |     |--AIfExpr  @../src/test_parser.nit:32,2--49,4
+|           |     |  |--TKwif  if @../src/test_parser.nit:32,2--3
+|           |     |  |--AEqExpr  @../src/test_parser.nit:32,5--22
+|           |     |  |  |--ACallExpr  @../src/test_parser.nit:32,5--14
+|           |     |  |  |  |--ACallExpr  @../src/test_parser.nit:32,5--8
+|           |     |  |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:32,5
+|           |     |  |  |  |  |--AQid  @../src/test_parser.nit:32,5--8
+|           |     |  |  |  |  |  `--TId  args @../src/test_parser.nit:32,5--8
+|           |     |  |  |  |  `--AListExprs  @../src/test_parser.nit:32,8
+|           |     |  |  |  |--AQid  @../src/test_parser.nit:32,10--14
+|           |     |  |  |  |  `--TId  first @../src/test_parser.nit:32,10--14
+|           |     |  |  |  `--AListExprs  @../src/test_parser.nit:32,14
+|           |     |  |  |--TEq  == @../src/test_parser.nit:32,16--17
+|           |     |  |  `--AStringExpr  @../src/test_parser.nit:32,19--22
+|           |     |  |     `--TString  \"-n\" @../src/test_parser.nit:32,19--22
+|           |     |  |--TKwthen  then @../src/test_parser.nit:32,24--27
+\e[37m33                        no_print = true
+\e[m|           |     |  |--ABlockExpr  @../src/test_parser.nit:33,3--17
+|           |     |  |  `--ACallAssignExpr  @../src/test_parser.nit:33,3--17
+|           |     |  |     |--AImplicitSelfExpr  @../src/test_parser.nit:33,3
+|           |     |  |     |--AQid  @../src/test_parser.nit:33,3--10
+|           |     |  |     |  `--TId  no_print @../src/test_parser.nit:33,3--10
+|           |     |  |     |--AListExprs  @../src/test_parser.nit:33,12
+|           |     |  |     |--TAssign  = @../src/test_parser.nit:33,12
+|           |     |  |     `--ATrueExpr  @../src/test_parser.nit:33,14--17
+|           |     |  |        `--TKwtrue  true @../src/test_parser.nit:33,14--17
+\e[37m34                else if args.first == "-l" then
+\e[m|           |     |  |--TKwelse  else @../src/test_parser.nit:34,2--5
+|           |     |  `--AIfExpr  @../src/test_parser.nit:34,7--49,4
+|           |     |     |--TKwif  if @../src/test_parser.nit:34,7--8
+|           |     |     |--AEqExpr  @../src/test_parser.nit:34,10--27
+|           |     |     |  |--ACallExpr  @../src/test_parser.nit:34,10--19
+|           |     |     |  |  |--ACallExpr  @../src/test_parser.nit:34,10--13
+|           |     |     |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:34,10
+|           |     |     |  |  |  |--AQid  @../src/test_parser.nit:34,10--13
+|           |     |     |  |  |  |  `--TId  args @../src/test_parser.nit:34,10--13
+|           |     |     |  |  |  `--AListExprs  @../src/test_parser.nit:34,13
+|           |     |     |  |  |--AQid  @../src/test_parser.nit:34,15--19
+|           |     |     |  |  |  `--TId  first @../src/test_parser.nit:34,15--19
+|           |     |     |  |  `--AListExprs  @../src/test_parser.nit:34,19
+|           |     |     |  |--TEq  == @../src/test_parser.nit:34,21--22
+|           |     |     |  `--AStringExpr  @../src/test_parser.nit:34,24--27
+|           |     |     |     `--TString  \"-l\" @../src/test_parser.nit:34,24--27
+|           |     |     |--TKwthen  then @../src/test_parser.nit:34,29--32
+\e[37m35                        only_lexer = true
+\e[m|           |     |     |--ABlockExpr  @../src/test_parser.nit:35,3--19
+|           |     |     |  `--ACallAssignExpr  @../src/test_parser.nit:35,3--19
+|           |     |     |     |--AImplicitSelfExpr  @../src/test_parser.nit:35,3
+|           |     |     |     |--AQid  @../src/test_parser.nit:35,3--12
+|           |     |     |     |  `--TId  only_lexer @../src/test_parser.nit:35,3--12
+|           |     |     |     |--AListExprs  @../src/test_parser.nit:35,14
+|           |     |     |     |--TAssign  = @../src/test_parser.nit:35,14
+|           |     |     |     `--ATrueExpr  @../src/test_parser.nit:35,16--19
+|           |     |     |        `--TKwtrue  true @../src/test_parser.nit:35,16--19
+\e[37m36                else if args.first == "-p" then
+\e[m|           |     |     |--TKwelse  else @../src/test_parser.nit:36,2--5
+|           |     |     `--AIfExpr  @../src/test_parser.nit:36,7--49,4
+|           |     |        |--TKwif  if @../src/test_parser.nit:36,7--8
+|           |     |        |--AEqExpr  @../src/test_parser.nit:36,10--27
+|           |     |        |  |--ACallExpr  @../src/test_parser.nit:36,10--19
+|           |     |        |  |  |--ACallExpr  @../src/test_parser.nit:36,10--13
+|           |     |        |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:36,10
+|           |     |        |  |  |  |--AQid  @../src/test_parser.nit:36,10--13
+|           |     |        |  |  |  |  `--TId  args @../src/test_parser.nit:36,10--13
+|           |     |        |  |  |  `--AListExprs  @../src/test_parser.nit:36,13
+|           |     |        |  |  |--AQid  @../src/test_parser.nit:36,15--19
+|           |     |        |  |  |  `--TId  first @../src/test_parser.nit:36,15--19
+|           |     |        |  |  `--AListExprs  @../src/test_parser.nit:36,19
+|           |     |        |  |--TEq  == @../src/test_parser.nit:36,21--22
+|           |     |        |  `--AStringExpr  @../src/test_parser.nit:36,24--27
+|           |     |        |     `--TString  \"-p\" @../src/test_parser.nit:36,24--27
+|           |     |        |--TKwthen  then @../src/test_parser.nit:36,29--32
+\e[37m37                        only_lexer = false
+\e[m|           |     |        |--ABlockExpr  @../src/test_parser.nit:37,3--20
+|           |     |        |  `--ACallAssignExpr  @../src/test_parser.nit:37,3--20
+|           |     |        |     |--AImplicitSelfExpr  @../src/test_parser.nit:37,3
+|           |     |        |     |--AQid  @../src/test_parser.nit:37,3--12
+|           |     |        |     |  `--TId  only_lexer @../src/test_parser.nit:37,3--12
+|           |     |        |     |--AListExprs  @../src/test_parser.nit:37,14
+|           |     |        |     |--TAssign  = @../src/test_parser.nit:37,14
+|           |     |        |     `--AFalseExpr  @../src/test_parser.nit:37,16--20
+|           |     |        |        `--TKwfalse  false @../src/test_parser.nit:37,16--20
+\e[37m38                else if args.first == "-x" then
+\e[m|           |     |        |--TKwelse  else @../src/test_parser.nit:38,2--5
+|           |     |        `--AIfExpr  @../src/test_parser.nit:38,7--49,4
+|           |     |           |--TKwif  if @../src/test_parser.nit:38,7--8
+|           |     |           |--AEqExpr  @../src/test_parser.nit:38,10--27
+|           |     |           |  |--ACallExpr  @../src/test_parser.nit:38,10--19
+|           |     |           |  |  |--ACallExpr  @../src/test_parser.nit:38,10--13
+|           |     |           |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:38,10
+|           |     |           |  |  |  |--AQid  @../src/test_parser.nit:38,10--13
+|           |     |           |  |  |  |  `--TId  args @../src/test_parser.nit:38,10--13
+|           |     |           |  |  |  `--AListExprs  @../src/test_parser.nit:38,13
+|           |     |           |  |  |--AQid  @../src/test_parser.nit:38,15--19
+|           |     |           |  |  |  `--TId  first @../src/test_parser.nit:38,15--19
+|           |     |           |  |  `--AListExprs  @../src/test_parser.nit:38,19
+|           |     |           |  |--TEq  == @../src/test_parser.nit:38,21--22
+|           |     |           |  `--AStringExpr  @../src/test_parser.nit:38,24--27
+|           |     |           |     `--TString  \"-x\" @../src/test_parser.nit:38,24--27
+|           |     |           |--TKwthen  then @../src/test_parser.nit:38,29--32
+\e[37m39                        xml = true
+\e[m|           |     |           |--ABlockExpr  @../src/test_parser.nit:39,3--12
+|           |     |           |  `--ACallAssignExpr  @../src/test_parser.nit:39,3--12
+|           |     |           |     |--AImplicitSelfExpr  @../src/test_parser.nit:39,3
+|           |     |           |     |--AQid  @../src/test_parser.nit:39,3--5
+|           |     |           |     |  `--TId  xml @../src/test_parser.nit:39,3--5
+|           |     |           |     |--AListExprs  @../src/test_parser.nit:39,7
+|           |     |           |     |--TAssign  = @../src/test_parser.nit:39,7
+|           |     |           |     `--ATrueExpr  @../src/test_parser.nit:39,9--12
+|           |     |           |        `--TKwtrue  true @../src/test_parser.nit:39,9--12
+\e[37m40                else if args.first == "-e" then
+\e[m|           |     |           |--TKwelse  else @../src/test_parser.nit:40,2--5
+|           |     |           `--AIfExpr  @../src/test_parser.nit:40,7--49,4
+|           |     |              |--TKwif  if @../src/test_parser.nit:40,7--8
+|           |     |              |--AEqExpr  @../src/test_parser.nit:40,10--27
+|           |     |              |  |--ACallExpr  @../src/test_parser.nit:40,10--19
+|           |     |              |  |  |--ACallExpr  @../src/test_parser.nit:40,10--13
+|           |     |              |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:40,10
+|           |     |              |  |  |  |--AQid  @../src/test_parser.nit:40,10--13
+|           |     |              |  |  |  |  `--TId  args @../src/test_parser.nit:40,10--13
+|           |     |              |  |  |  `--AListExprs  @../src/test_parser.nit:40,13
+|           |     |              |  |  |--AQid  @../src/test_parser.nit:40,15--19
+|           |     |              |  |  |  `--TId  first @../src/test_parser.nit:40,15--19
+|           |     |              |  |  `--AListExprs  @../src/test_parser.nit:40,19
+|           |     |              |  |--TEq  == @../src/test_parser.nit:40,21--22
+|           |     |              |  `--AStringExpr  @../src/test_parser.nit:40,24--27
+|           |     |              |     `--TString  \"-e\" @../src/test_parser.nit:40,24--27
+|           |     |              |--TKwthen  then @../src/test_parser.nit:40,29--32
+\e[37m41                        no_file = true
+\e[m|           |     |              |--ABlockExpr  @../src/test_parser.nit:41,3--16
+|           |     |              |  `--ACallAssignExpr  @../src/test_parser.nit:41,3--16
+|           |     |              |     |--AImplicitSelfExpr  @../src/test_parser.nit:41,3
+|           |     |              |     |--AQid  @../src/test_parser.nit:41,3--9
+|           |     |              |     |  `--TId  no_file @../src/test_parser.nit:41,3--9
+|           |     |              |     |--AListExprs  @../src/test_parser.nit:41,11
+|           |     |              |     |--TAssign  = @../src/test_parser.nit:41,11
+|           |     |              |     `--ATrueExpr  @../src/test_parser.nit:41,13--16
+|           |     |              |        `--TKwtrue  true @../src/test_parser.nit:41,13--16
+\e[37m42                else if args.first == "-i" then
+\e[m|           |     |              |--TKwelse  else @../src/test_parser.nit:42,2--5
+|           |     |              `--AIfExpr  @../src/test_parser.nit:42,7--49,4
+|           |     |                 |--TKwif  if @../src/test_parser.nit:42,7--8
+|           |     |                 |--AEqExpr  @../src/test_parser.nit:42,10--27
+|           |     |                 |  |--ACallExpr  @../src/test_parser.nit:42,10--19
+|           |     |                 |  |  |--ACallExpr  @../src/test_parser.nit:42,10--13
+|           |     |                 |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:42,10
+|           |     |                 |  |  |  |--AQid  @../src/test_parser.nit:42,10--13
+|           |     |                 |  |  |  |  `--TId  args @../src/test_parser.nit:42,10--13
+|           |     |                 |  |  |  `--AListExprs  @../src/test_parser.nit:42,13
+|           |     |                 |  |  |--AQid  @../src/test_parser.nit:42,15--19
+|           |     |                 |  |  |  `--TId  first @../src/test_parser.nit:42,15--19
+|           |     |                 |  |  `--AListExprs  @../src/test_parser.nit:42,19
+|           |     |                 |  |--TEq  == @../src/test_parser.nit:42,21--22
+|           |     |                 |  `--AStringExpr  @../src/test_parser.nit:42,24--27
+|           |     |                 |     `--TString  \"-i\" @../src/test_parser.nit:42,24--27
+|           |     |                 |--TKwthen  then @../src/test_parser.nit:42,29--32
+\e[37m43                        interactive = true
+\e[m|           |     |                 |--ABlockExpr  @../src/test_parser.nit:43,3--20
+|           |     |                 |  `--ACallAssignExpr  @../src/test_parser.nit:43,3--20
+|           |     |                 |     |--AImplicitSelfExpr  @../src/test_parser.nit:43,3
+|           |     |                 |     |--AQid  @../src/test_parser.nit:43,3--13
+|           |     |                 |     |  `--TId  interactive @../src/test_parser.nit:43,3--13
+|           |     |                 |     |--AListExprs  @../src/test_parser.nit:43,15
+|           |     |                 |     |--TAssign  = @../src/test_parser.nit:43,15
+|           |     |                 |     `--ATrueExpr  @../src/test_parser.nit:43,17--20
+|           |     |                 |        `--TKwtrue  true @../src/test_parser.nit:43,17--20
+\e[37m44                else if args.first == "-h" or args.first == "-?" then
+\e[m|           |     |                 |--TKwelse  else @../src/test_parser.nit:44,2--5
+|           |     |                 `--AIfExpr  @../src/test_parser.nit:44,7--49,4
+|           |     |                    |--TKwif  if @../src/test_parser.nit:44,7--8
+|           |     |                    |--AOrExpr  @../src/test_parser.nit:44,10--49
+|           |     |                    |  |--AEqExpr  @../src/test_parser.nit:44,10--27
+|           |     |                    |  |  |--ACallExpr  @../src/test_parser.nit:44,10--19
+|           |     |                    |  |  |  |--ACallExpr  @../src/test_parser.nit:44,10--13
+|           |     |                    |  |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:44,10
+|           |     |                    |  |  |  |  |--AQid  @../src/test_parser.nit:44,10--13
+|           |     |                    |  |  |  |  |  `--TId  args @../src/test_parser.nit:44,10--13
+|           |     |                    |  |  |  |  `--AListExprs  @../src/test_parser.nit:44,13
+|           |     |                    |  |  |  |--AQid  @../src/test_parser.nit:44,15--19
+|           |     |                    |  |  |  |  `--TId  first @../src/test_parser.nit:44,15--19
+|           |     |                    |  |  |  `--AListExprs  @../src/test_parser.nit:44,19
+|           |     |                    |  |  |--TEq  == @../src/test_parser.nit:44,21--22
+|           |     |                    |  |  `--AStringExpr  @../src/test_parser.nit:44,24--27
+|           |     |                    |  |     `--TString  \"-h\" @../src/test_parser.nit:44,24--27
+|           |     |                    |  |--TKwor  or @../src/test_parser.nit:44,29--30
+|           |     |                    |  `--AEqExpr  @../src/test_parser.nit:44,32--49
+|           |     |                    |     |--ACallExpr  @../src/test_parser.nit:44,32--41
+|           |     |                    |     |  |--ACallExpr  @../src/test_parser.nit:44,32--35
+|           |     |                    |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:44,32
+|           |     |                    |     |  |  |--AQid  @../src/test_parser.nit:44,32--35
+|           |     |                    |     |  |  |  `--TId  args @../src/test_parser.nit:44,32--35
+|           |     |                    |     |  |  `--AListExprs  @../src/test_parser.nit:44,35
+|           |     |                    |     |  |--AQid  @../src/test_parser.nit:44,37--41
+|           |     |                    |     |  |  `--TId  first @../src/test_parser.nit:44,37--41
+|           |     |                    |     |  `--AListExprs  @../src/test_parser.nit:44,41
+|           |     |                    |     |--TEq  == @../src/test_parser.nit:44,43--44
+|           |     |                    |     `--AStringExpr  @../src/test_parser.nit:44,46--49
+|           |     |                    |        `--TString  \"-?\" @../src/test_parser.nit:44,46--49
+|           |     |                    |--TKwthen  then @../src/test_parser.nit:44,51--54
+\e[37m45                        need_help = true
+\e[m|           |     |                    |--ABlockExpr  @../src/test_parser.nit:45,3--18
+|           |     |                    |  `--ACallAssignExpr  @../src/test_parser.nit:45,3--18
+|           |     |                    |     |--AImplicitSelfExpr  @../src/test_parser.nit:45,3
+|           |     |                    |     |--AQid  @../src/test_parser.nit:45,3--11
+|           |     |                    |     |  `--TId  need_help @../src/test_parser.nit:45,3--11
+|           |     |                    |     |--AListExprs  @../src/test_parser.nit:45,13
+|           |     |                    |     |--TAssign  = @../src/test_parser.nit:45,13
+|           |     |                    |     `--ATrueExpr  @../src/test_parser.nit:45,15--18
+|           |     |                    |        `--TKwtrue  true @../src/test_parser.nit:45,15--18
+\e[37m46                else
+\e[m|           |     |                    |--TKwelse  else @../src/test_parser.nit:46,2--5
+\e[37m47                        stderr.write("Unknown option {args.first}.\n")
+\e[m|           |     |                    `--ABlockExpr  @../src/test_parser.nit:47,3--49,4
+|           |     |                       |--ACallExpr  @../src/test_parser.nit:47,3--48
+|           |     |                       |  |--ACallExpr  @../src/test_parser.nit:47,3--8
+|           |     |                       |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:47,3
+|           |     |                       |  |  |--AQid  @../src/test_parser.nit:47,3--8
+|           |     |                       |  |  |  `--TId  stderr @../src/test_parser.nit:47,3--8
+|           |     |                       |  |  `--AListExprs  @../src/test_parser.nit:47,8
+|           |     |                       |  |--AQid  @../src/test_parser.nit:47,10--14
+|           |     |                       |  |  `--TId  write @../src/test_parser.nit:47,10--14
+|           |     |                       |  `--AParExprs  @../src/test_parser.nit:47,15--48
+|           |     |                       |     |--TOpar  ( @../src/test_parser.nit:47,15
+|           |     |                       |     |--ASuperstringExpr  @../src/test_parser.nit:47,16--47
+|           |     |                       |     |  |--AStartStringExpr  @../src/test_parser.nit:47,16--32
+|           |     |                       |     |  |  `--TStartString  \"Unknown option { @../src/test_parser.nit:47,16--32
+|           |     |                       |     |  |--ACallExpr  @../src/test_parser.nit:47,33--42
+|           |     |                       |     |  |  |--ACallExpr  @../src/test_parser.nit:47,33--36
+|           |     |                       |     |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:47,33
+|           |     |                       |     |  |  |  |--AQid  @../src/test_parser.nit:47,33--36
+|           |     |                       |     |  |  |  |  `--TId  args @../src/test_parser.nit:47,33--36
+|           |     |                       |     |  |  |  `--AListExprs  @../src/test_parser.nit:47,36
+|           |     |                       |     |  |  |--AQid  @../src/test_parser.nit:47,38--42
+|           |     |                       |     |  |  |  `--TId  first @../src/test_parser.nit:47,38--42
+|           |     |                       |     |  |  `--AListExprs  @../src/test_parser.nit:47,42
+|           |     |                       |     |  `--AEndStringExpr  @../src/test_parser.nit:47,43--47
+|           |     |                       |     |     `--TEndString  }.\\n\" @../src/test_parser.nit:47,43--47
+|           |     |                       |     `--TCpar  ) @../src/test_parser.nit:47,48
+\e[37m48                        exit(0)
+\e[m|           |     |                       |--ACallExpr  @../src/test_parser.nit:48,3--9
+|           |     |                       |  |--AImplicitSelfExpr  @../src/test_parser.nit:48,3
+|           |     |                       |  |--AQid  @../src/test_parser.nit:48,3--6
+|           |     |                       |  |  `--TId  exit @../src/test_parser.nit:48,3--6
+|           |     |                       |  `--AParExprs  @../src/test_parser.nit:48,7--9
+|           |     |                       |     |--TOpar  ( @../src/test_parser.nit:48,7
+|           |     |                       |     |--AIntegerExpr  @../src/test_parser.nit:48,8
+|           |     |                       |     |  `--TInteger  0 @../src/test_parser.nit:48,8
+|           |     |                       |     `--TCpar  ) @../src/test_parser.nit:48,9
+\e[37m49                end
+\e[m|           |     |                       `--TKwend  end @../src/test_parser.nit:49,2--4
+\e[37m50                args.shift
+\e[m|           |     |--ACallExpr  @../src/test_parser.nit:50,2--11
+|           |     |  |--ACallExpr  @../src/test_parser.nit:50,2--5
+|           |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:50,2
+|           |     |  |  |--AQid  @../src/test_parser.nit:50,2--5
+|           |     |  |  |  `--TId  args @../src/test_parser.nit:50,2--5
+|           |     |  |  `--AListExprs  @../src/test_parser.nit:50,5
+|           |     |  |--AQid  @../src/test_parser.nit:50,7--11
+|           |     |  |  `--TId  shift @../src/test_parser.nit:50,7--11
+|           |     |  `--AListExprs  @../src/test_parser.nit:50,11
+\e[37m51        end
+\e[m|           |     `--TKwend  end @../src/test_parser.nit:51,1--3
+\e[37m52        
+if (args.is_empty and not interactive) or need_help then
+\e[m\e[37m53     if (args.is_empty and not interactive) or need_help then
+\e[m|           `--AIfExpr  @../src/test_parser.nit:53,1--138,3
+|              |--TKwif  if @../src/test_parser.nit:53,1--2
+|              |--AOrExpr  @../src/test_parser.nit:53,4--51
+|              |  |--AParExpr  @../src/test_parser.nit:53,4--38
+|              |  |  |--TOpar  ( @../src/test_parser.nit:53,4
+|              |  |  |--AAndExpr  @../src/test_parser.nit:53,5--37
+|              |  |  |  |--ACallExpr  @../src/test_parser.nit:53,5--17
+|              |  |  |  |  |--ACallExpr  @../src/test_parser.nit:53,5--8
+|              |  |  |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:53,5
+|              |  |  |  |  |  |--AQid  @../src/test_parser.nit:53,5--8
+|              |  |  |  |  |  |  `--TId  args @../src/test_parser.nit:53,5--8
+|              |  |  |  |  |  `--AListExprs  @../src/test_parser.nit:53,8
+|              |  |  |  |  |--AQid  @../src/test_parser.nit:53,10--17
+|              |  |  |  |  |  `--TId  is_empty @../src/test_parser.nit:53,10--17
+|              |  |  |  |  `--AListExprs  @../src/test_parser.nit:53,17
+|              |  |  |  |--TKwand  and @../src/test_parser.nit:53,19--21
+|              |  |  |  `--ANotExpr  @../src/test_parser.nit:53,23--37
+|              |  |  |     |--TKwnot  not @../src/test_parser.nit:53,23--25
+|              |  |  |     `--ACallExpr  @../src/test_parser.nit:53,27--37
+|              |  |  |        |--AImplicitSelfExpr  @../src/test_parser.nit:53,27
+|              |  |  |        |--AQid  @../src/test_parser.nit:53,27--37
+|              |  |  |        |  `--TId  interactive @../src/test_parser.nit:53,27--37
+|              |  |  |        `--AListExprs  @../src/test_parser.nit:53,37
+|              |  |  `--TCpar  ) @../src/test_parser.nit:53,38
+|              |  |--TKwor  or @../src/test_parser.nit:53,40--41
+|              |  `--ACallExpr  @../src/test_parser.nit:53,43--51
+|              |     |--AImplicitSelfExpr  @../src/test_parser.nit:53,43
+|              |     |--AQid  @../src/test_parser.nit:53,43--51
+|              |     |  `--TId  need_help @../src/test_parser.nit:53,43--51
+|              |     `--AListExprs  @../src/test_parser.nit:53,51
+|              |--TKwthen  then @../src/test_parser.nit:53,53--56
+\e[37m54                print("usage:")
+\e[m|              |--ABlockExpr  @../src/test_parser.nit:54,2--65,30
+|              |  |--ACallExpr  @../src/test_parser.nit:54,2--16
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:54,2
+|              |  |  |--AQid  @../src/test_parser.nit:54,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:54,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:54,7--16
+|              |  |     |--TOpar  ( @../src/test_parser.nit:54,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:54,8--15
+|              |  |     |  `--TString  \"usage:\" @../src/test_parser.nit:54,8--15
+|              |  |     `--TCpar  ) @../src/test_parser.nit:54,16
+\e[37m55                print("  test_parser [options]... <filename.nit>...")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:55,2--54
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:55,2
+|              |  |  |--AQid  @../src/test_parser.nit:55,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:55,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:55,7--54
+|              |  |     |--TOpar  ( @../src/test_parser.nit:55,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:55,8--53
+|              |  |     |  `--TString  \"  test_parser [options]... <filename.nit>...\" @../src/test_parser.nit:55,8--53
+|              |  |     `--TCpar  ) @../src/test_parser.nit:55,54
+\e[37m56                print("  test_parser -e [options]... <text>...")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:56,2--49
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:56,2
+|              |  |  |--AQid  @../src/test_parser.nit:56,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:56,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:56,7--49
+|              |  |     |--TOpar  ( @../src/test_parser.nit:56,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:56,8--48
+|              |  |     |  `--TString  \"  test_parser -e [options]... <text>...\" @../src/test_parser.nit:56,8--48
+|              |  |     `--TCpar  ) @../src/test_parser.nit:56,49
+\e[37m57                print("  test_parser -i [options]...")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:57,2--39
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:57,2
+|              |  |  |--AQid  @../src/test_parser.nit:57,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:57,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:57,7--39
+|              |  |     |--TOpar  ( @../src/test_parser.nit:57,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:57,8--38
+|              |  |     |  `--TString  \"  test_parser -i [options]...\" @../src/test_parser.nit:57,8--38
+|              |  |     `--TCpar  ) @../src/test_parser.nit:57,39
+\e[37m58                print("options:")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:58,2--18
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:58,2
+|              |  |  |--AQid  @../src/test_parser.nit:58,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:58,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:58,7--18
+|              |  |     |--TOpar  ( @../src/test_parser.nit:58,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:58,8--17
+|              |  |     |  `--TString  \"options:\" @../src/test_parser.nit:58,8--17
+|              |  |     `--TCpar  ) @../src/test_parser.nit:58,18
+\e[37m59                print("  -n     do not print anything")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:59,2--36
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:59,2
+|              |  |  |--AQid  @../src/test_parser.nit:59,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:59,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:59,7--36
+|              |  |     |--TOpar  ( @../src/test_parser.nit:59,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:59,8--35
+|              |  |     |  `--TString  \"  -n\tdo not print anything\" @../src/test_parser.nit:59,8--35
+|              |  |     `--TCpar  ) @../src/test_parser.nit:59,36
+\e[37m60                print("  -l     only lexer")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:60,2--25
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:60,2
+|              |  |  |--AQid  @../src/test_parser.nit:60,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:60,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:60,7--25
+|              |  |     |--TOpar  ( @../src/test_parser.nit:60,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:60,8--24
+|              |  |     |  `--TString  \"  -l\tonly lexer\" @../src/test_parser.nit:60,8--24
+|              |  |     `--TCpar  ) @../src/test_parser.nit:60,25
+\e[37m61                print("  -p     lexer and parser (default)")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:61,2--41
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:61,2
+|              |  |  |--AQid  @../src/test_parser.nit:61,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:61,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:61,7--41
+|              |  |     |--TOpar  ( @../src/test_parser.nit:61,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:61,8--40
+|              |  |     |  `--TString  \"  -p\tlexer and parser (default)\" @../src/test_parser.nit:61,8--40
+|              |  |     `--TCpar  ) @../src/test_parser.nit:61,41
+\e[37m62                print("  -x     instead of a ascii tree, output a XML document")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:62,2--61
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:62,2
+|              |  |  |--AQid  @../src/test_parser.nit:62,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:62,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:62,7--61
+|              |  |     |--TOpar  ( @../src/test_parser.nit:62,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:62,8--60
+|              |  |     |  `--TString  \"  -x\tinstead of a ascii tree, output a XML document\" @../src/test_parser.nit:62,8--60
+|              |  |     `--TCpar  ) @../src/test_parser.nit:62,61
+\e[37m63                print("  -e     instead on files, each argument is a content to parse")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:63,2--68
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:63,2
+|              |  |  |--AQid  @../src/test_parser.nit:63,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:63,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:63,7--68
+|              |  |     |--TOpar  ( @../src/test_parser.nit:63,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:63,8--67
+|              |  |     |  `--TString  \"  -e\tinstead on files, each argument is a content to parse\" @../src/test_parser.nit:63,8--67
+|              |  |     `--TCpar  ) @../src/test_parser.nit:63,68
+\e[37m64                print("  -i     tree to parse are read interactively")
+\e[m|              |  |--ACallExpr  @../src/test_parser.nit:64,2--51
+|              |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:64,2
+|              |  |  |--AQid  @../src/test_parser.nit:64,2--6
+|              |  |  |  `--TId  print @../src/test_parser.nit:64,2--6
+|              |  |  `--AParExprs  @../src/test_parser.nit:64,7--51
+|              |  |     |--TOpar  ( @../src/test_parser.nit:64,7
+|              |  |     |--AStringExpr  @../src/test_parser.nit:64,8--50
+|              |  |     |  `--TString  \"  -i\ttree to parse are read interactively\" @../src/test_parser.nit:64,8--50
+|              |  |     `--TCpar  ) @../src/test_parser.nit:64,51
+\e[37m65                print("  -h     print this help")
+\e[m|              |  `--ACallExpr  @../src/test_parser.nit:65,2--30
+|              |     |--AImplicitSelfExpr  @../src/test_parser.nit:65,2
+|              |     |--AQid  @../src/test_parser.nit:65,2--6
+|              |     |  `--TId  print @../src/test_parser.nit:65,2--6
+|              |     `--AParExprs  @../src/test_parser.nit:65,7--30
+|              |        |--TOpar  ( @../src/test_parser.nit:65,7
+|              |        |--AStringExpr  @../src/test_parser.nit:65,8--29
+|              |        |  `--TString  \"  -h\tprint this help\" @../src/test_parser.nit:65,8--29
+|              |        `--TCpar  ) @../src/test_parser.nit:65,30
+\e[37m66        else if interactive then
+\e[m|              |--TKwelse  else @../src/test_parser.nit:66,1--4
+|              `--AIfExpr  @../src/test_parser.nit:66,6--138,3
+|                 |--TKwif  if @../src/test_parser.nit:66,6--7
+|                 |--ACallExpr  @../src/test_parser.nit:66,9--19
+|                 |  |--AImplicitSelfExpr  @../src/test_parser.nit:66,9
+|                 |  |--AQid  @../src/test_parser.nit:66,9--19
+|                 |  |  `--TId  interactive @../src/test_parser.nit:66,9--19
+|                 |  `--AListExprs  @../src/test_parser.nit:66,19
+|                 |--TKwthen  then @../src/test_parser.nit:66,21--24
+\e[37m67                if only_lexer then
+\e[m|                 |--ABlockExpr  @../src/test_parser.nit:67,2--100,4
+|                 |  |--AIfExpr  @../src/test_parser.nit:67,2--76,4
+|                 |  |  |--TKwif  if @../src/test_parser.nit:67,2--3
+|                 |  |  |--ACallExpr  @../src/test_parser.nit:67,5--14
+|                 |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:67,5
+|                 |  |  |  |--AQid  @../src/test_parser.nit:67,5--14
+|                 |  |  |  |  `--TId  only_lexer @../src/test_parser.nit:67,5--14
+|                 |  |  |  `--AListExprs  @../src/test_parser.nit:67,14
+|                 |  |  |--TKwthen  then @../src/test_parser.nit:67,16--19
+\e[37m68                        print "Error: -l and -i are incompatible"
+\e[m|                 |  |  |--ABlockExpr  @../src/test_parser.nit:68,3--69,8
+|                 |  |  |  |--ACallExpr  @../src/test_parser.nit:68,3--43
+|                 |  |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:68,3
+|                 |  |  |  |  |--AQid  @../src/test_parser.nit:68,3--7
+|                 |  |  |  |  |  `--TId  print @../src/test_parser.nit:68,3--7
+|                 |  |  |  |  `--AListExprs  @../src/test_parser.nit:68,9--43
+|                 |  |  |  |     `--AStringExpr  @../src/test_parser.nit:68,9--43
+|                 |  |  |  |        `--TString  \"Error: -l and -i are incompatible\" @../src/test_parser.nit:68,9--43
+\e[37m69                        exit 1
+\e[m|                 |  |  |  `--ACallExpr  @../src/test_parser.nit:69,3--8
+|                 |  |  |     |--AImplicitSelfExpr  @../src/test_parser.nit:69,3
+|                 |  |  |     |--AQid  @../src/test_parser.nit:69,3--6
+|                 |  |  |     |  `--TId  exit @../src/test_parser.nit:69,3--6
+|                 |  |  |     `--AListExprs  @../src/test_parser.nit:69,8
+|                 |  |  |        `--AIntegerExpr  @../src/test_parser.nit:69,8
+|                 |  |  |           `--TInteger  1 @../src/test_parser.nit:69,8
+\e[37m70                else if no_file then
+\e[m|                 |  |  |--TKwelse  else @../src/test_parser.nit:70,2--5
+|                 |  |  `--AIfExpr  @../src/test_parser.nit:70,7--76,4
+|                 |  |     |--TKwif  if @../src/test_parser.nit:70,7--8
+|                 |  |     |--ACallExpr  @../src/test_parser.nit:70,10--16
+|                 |  |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:70,10
+|                 |  |     |  |--AQid  @../src/test_parser.nit:70,10--16
+|                 |  |     |  |  `--TId  no_file @../src/test_parser.nit:70,10--16
+|                 |  |     |  `--AListExprs  @../src/test_parser.nit:70,16
+|                 |  |     |--TKwthen  then @../src/test_parser.nit:70,18--21
+\e[37m71                        print "Error: -e and -i are incompatible"
+\e[m|                 |  |     |--ABlockExpr  @../src/test_parser.nit:71,3--72,8
+|                 |  |     |  |--ACallExpr  @../src/test_parser.nit:71,3--43
+|                 |  |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:71,3
+|                 |  |     |  |  |--AQid  @../src/test_parser.nit:71,3--7
+|                 |  |     |  |  |  `--TId  print @../src/test_parser.nit:71,3--7
+|                 |  |     |  |  `--AListExprs  @../src/test_parser.nit:71,9--43
+|                 |  |     |  |     `--AStringExpr  @../src/test_parser.nit:71,9--43
+|                 |  |     |  |        `--TString  \"Error: -e and -i are incompatible\" @../src/test_parser.nit:71,9--43
+\e[37m72                        exit 1
+\e[m|                 |  |     |  `--ACallExpr  @../src/test_parser.nit:72,3--8
+|                 |  |     |     |--AImplicitSelfExpr  @../src/test_parser.nit:72,3
+|                 |  |     |     |--AQid  @../src/test_parser.nit:72,3--6
+|                 |  |     |     |  `--TId  exit @../src/test_parser.nit:72,3--6
+|                 |  |     |     `--AListExprs  @../src/test_parser.nit:72,8
+|                 |  |     |        `--AIntegerExpr  @../src/test_parser.nit:72,8
+|                 |  |     |           `--TInteger  1 @../src/test_parser.nit:72,8
+\e[37m73                else if not args.is_empty then
+\e[m|                 |  |     |--TKwelse  else @../src/test_parser.nit:73,2--5
+|                 |  |     `--AIfExpr  @../src/test_parser.nit:73,7--76,4
+|                 |  |        |--TKwif  if @../src/test_parser.nit:73,7--8
+|                 |  |        |--ANotExpr  @../src/test_parser.nit:73,10--26
+|                 |  |        |  |--TKwnot  not @../src/test_parser.nit:73,10--12
+|                 |  |        |  `--ACallExpr  @../src/test_parser.nit:73,14--26
+|                 |  |        |     |--ACallExpr  @../src/test_parser.nit:73,14--17
+|                 |  |        |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:73,14
+|                 |  |        |     |  |--AQid  @../src/test_parser.nit:73,14--17
+|                 |  |        |     |  |  `--TId  args @../src/test_parser.nit:73,14--17
+|                 |  |        |     |  `--AListExprs  @../src/test_parser.nit:73,17
+|                 |  |        |     |--AQid  @../src/test_parser.nit:73,19--26
+|                 |  |        |     |  `--TId  is_empty @../src/test_parser.nit:73,19--26
+|                 |  |        |     `--AListExprs  @../src/test_parser.nit:73,26
+|                 |  |        |--TKwthen  then @../src/test_parser.nit:73,28--31
+\e[37m74                        print "Error: -i works without arguments"
+\e[m|                 |  |        |--ABlockExpr  @../src/test_parser.nit:74,3--75,8
+|                 |  |        |  |--ACallExpr  @../src/test_parser.nit:74,3--43
+|                 |  |        |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:74,3
+|                 |  |        |  |  |--AQid  @../src/test_parser.nit:74,3--7
+|                 |  |        |  |  |  `--TId  print @../src/test_parser.nit:74,3--7
+|                 |  |        |  |  `--AListExprs  @../src/test_parser.nit:74,9--43
+|                 |  |        |  |     `--AStringExpr  @../src/test_parser.nit:74,9--43
+|                 |  |        |  |        `--TString  \"Error: -i works without arguments\" @../src/test_parser.nit:74,9--43
+\e[37m75                        exit 1
+\e[m|                 |  |        |  `--ACallExpr  @../src/test_parser.nit:75,3--8
+|                 |  |        |     |--AImplicitSelfExpr  @../src/test_parser.nit:75,3
+|                 |  |        |     |--AQid  @../src/test_parser.nit:75,3--6
+|                 |  |        |     |  `--TId  exit @../src/test_parser.nit:75,3--6
+|                 |  |        |     `--AListExprs  @../src/test_parser.nit:75,8
+|                 |  |        |        `--AIntegerExpr  @../src/test_parser.nit:75,8
+|                 |  |        |           `--TInteger  1 @../src/test_parser.nit:75,8
+\e[37m76                end
+\e[m|                 |  |        `--ABlockExpr  @../src/test_parser.nit:76,2--4
+|                 |  |           `--TKwend  end @../src/test_parser.nit:76,2--4
+\e[37m77        
+       var tc = new ToolContext
+\e[m\e[37m78             var tc = new ToolContext
+\e[m|                 |  |--AVardeclExpr  @../src/test_parser.nit:78,2--25
+|                 |  |  |--TKwvar  var @../src/test_parser.nit:78,2--4
+|                 |  |  |--TId  tc @../src/test_parser.nit:78,6--7
+|                 |  |  |--TAssign  = @../src/test_parser.nit:78,9
+|                 |  |  `--ANewExpr  @../src/test_parser.nit:78,11--25
+|                 |  |     |--TKwnew  new @../src/test_parser.nit:78,11--13
+|                 |  |     |--AType  @../src/test_parser.nit:78,15--25
+|                 |  |     |  `--AQclassid  @../src/test_parser.nit:78,15--25
+|                 |  |     |     `--TClassid  ToolContext @../src/test_parser.nit:78,15--25
+|                 |  |     `--AListExprs  @../src/test_parser.nit:78,25
+\e[37m79        
+       loop
+\e[m\e[37m80             loop
+\e[m|                 |  `--ALoopExpr  @../src/test_parser.nit:80,2--100,4
+|                 |     |--TKwloop  loop @../src/test_parser.nit:80,2--5
+\e[37m81                        var n = tc.interactive_parse("-->")
+\e[m|                 |     `--ABlockExpr  @../src/test_parser.nit:81,3--100,4
+|                 |        |--AVardeclExpr  @../src/test_parser.nit:81,3--37
+|                 |        |  |--TKwvar  var @../src/test_parser.nit:81,3--5
+|                 |        |  |--TId  n @../src/test_parser.nit:81,7
+|                 |        |  |--TAssign  = @../src/test_parser.nit:81,9
+|                 |        |  `--ACallExpr  @../src/test_parser.nit:81,11--37
+|                 |        |     |--ACallExpr  @../src/test_parser.nit:81,11--12
+|                 |        |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:81,11
+|                 |        |     |  |--AQid  @../src/test_parser.nit:81,11--12
+|                 |        |     |  |  `--TId  tc @../src/test_parser.nit:81,11--12
+|                 |        |     |  `--AListExprs  @../src/test_parser.nit:81,12
+|                 |        |     |--AQid  @../src/test_parser.nit:81,14--30
+|                 |        |     |  `--TId  interactive_parse @../src/test_parser.nit:81,14--30
+|                 |        |     `--AParExprs  @../src/test_parser.nit:81,31--37
+|                 |        |        |--TOpar  ( @../src/test_parser.nit:81,31
+|                 |        |        |--AStringExpr  @../src/test_parser.nit:81,32--36
+|                 |        |        |  `--TString  \"-->\" @../src/test_parser.nit:81,32--36
+|                 |        |        `--TCpar  ) @../src/test_parser.nit:81,37
+\e[37m82                        if n isa TString then
+\e[m|                 |        |--AIfExpr  @../src/test_parser.nit:82,3--90,5
+|                 |        |  |--TKwif  if @../src/test_parser.nit:82,3--4
+|                 |        |  |--AIsaExpr  @../src/test_parser.nit:82,6--18
+|                 |        |  |  |--ACallExpr  @../src/test_parser.nit:82,6
+|                 |        |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:82,6
+|                 |        |  |  |  |--AQid  @../src/test_parser.nit:82,6
+|                 |        |  |  |  |  `--TId  n @../src/test_parser.nit:82,6
+|                 |        |  |  |  `--AListExprs  @../src/test_parser.nit:82,6
+|                 |        |  |  |--TKwisa  isa @../src/test_parser.nit:82,8--10
+|                 |        |  |  `--AType  @../src/test_parser.nit:82,12--18
+|                 |        |  |     `--AQclassid  @../src/test_parser.nit:82,12--18
+|                 |        |  |        `--TClassid  TString @../src/test_parser.nit:82,12--18
+|                 |        |  |--TKwthen  then @../src/test_parser.nit:82,20--23
+\e[37m83                                var s = n.text
+\e[m|                 |        |  |--ABlockExpr  @../src/test_parser.nit:83,4--89,11
+|                 |        |  |  |--AVardeclExpr  @../src/test_parser.nit:83,4--17
+|                 |        |  |  |  |--TKwvar  var @../src/test_parser.nit:83,4--6
+|                 |        |  |  |  |--TId  s @../src/test_parser.nit:83,8
+|                 |        |  |  |  |--TAssign  = @../src/test_parser.nit:83,10
+|                 |        |  |  |  `--ACallExpr  @../src/test_parser.nit:83,12--17
+|                 |        |  |  |     |--ACallExpr  @../src/test_parser.nit:83,12
+|                 |        |  |  |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:83,12
+|                 |        |  |  |     |  |--AQid  @../src/test_parser.nit:83,12
+|                 |        |  |  |     |  |  `--TId  n @../src/test_parser.nit:83,12
+|                 |        |  |  |     |  `--AListExprs  @../src/test_parser.nit:83,12
+|                 |        |  |  |     |--AQid  @../src/test_parser.nit:83,14--17
+|                 |        |  |  |     |  `--TId  text @../src/test_parser.nit:83,14--17
+|                 |        |  |  |     `--AListExprs  @../src/test_parser.nit:83,17
+\e[37m84                                if s == ":q" then
+\e[m|                 |        |  |  |--AIfExpr  @../src/test_parser.nit:84,4--88,6
+|                 |        |  |  |  |--TKwif  if @../src/test_parser.nit:84,4--5
+|                 |        |  |  |  |--AEqExpr  @../src/test_parser.nit:84,7--15
+|                 |        |  |  |  |  |--ACallExpr  @../src/test_parser.nit:84,7
+|                 |        |  |  |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:84,7
+|                 |        |  |  |  |  |  |--AQid  @../src/test_parser.nit:84,7
+|                 |        |  |  |  |  |  |  `--TId  s @../src/test_parser.nit:84,7
+|                 |        |  |  |  |  |  `--AListExprs  @../src/test_parser.nit:84,7
+|                 |        |  |  |  |  |--TEq  == @../src/test_parser.nit:84,9--10
+|                 |        |  |  |  |  `--AStringExpr  @../src/test_parser.nit:84,12--15
+|                 |        |  |  |  |     `--TString  \":q\" @../src/test_parser.nit:84,12--15
+|                 |        |  |  |  |--TKwthen  then @../src/test_parser.nit:84,17--20
+\e[37m85                                        break
+\e[m|                 |        |  |  |  |--ABlockExpr  @../src/test_parser.nit:85,5--9
+|                 |        |  |  |  |  `--ABreakExpr  @../src/test_parser.nit:85,5--9
+|                 |        |  |  |  |     `--TKwbreak  break @../src/test_parser.nit:85,5--9
+\e[37m86                                else
+\e[m|                 |        |  |  |  |--TKwelse  else @../src/test_parser.nit:86,4--7
+\e[37m87                                        print "`:q` to quit"
+\e[m|                 |        |  |  |  `--ABlockExpr  @../src/test_parser.nit:87,5--88,6
+|                 |        |  |  |     |--ACallExpr  @../src/test_parser.nit:87,5--24
+|                 |        |  |  |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:87,5
+|                 |        |  |  |     |  |--AQid  @../src/test_parser.nit:87,5--9
+|                 |        |  |  |     |  |  `--TId  print @../src/test_parser.nit:87,5--9
+|                 |        |  |  |     |  `--AListExprs  @../src/test_parser.nit:87,11--24
+|                 |        |  |  |     |     `--AStringExpr  @../src/test_parser.nit:87,11--24
+|                 |        |  |  |     |        `--TString  \"`:q` to quit\" @../src/test_parser.nit:87,11--24
+\e[37m88                                end
+\e[m|                 |        |  |  |     `--TKwend  end @../src/test_parser.nit:88,4--6
+\e[37m89                                continue
+\e[m|                 |        |  |  `--AContinueExpr  @../src/test_parser.nit:89,4--11
+|                 |        |  |     `--TKwcontinue  continue @../src/test_parser.nit:89,4--11
+\e[37m90                        end
+\e[m|                 |        |  `--ABlockExpr  @../src/test_parser.nit:90,3--5
+|                 |        |     `--TKwend  end @../src/test_parser.nit:90,3--5
+\e[37m91        
+               if n isa AError then
+\e[m\e[37m92                     if n isa AError then
+\e[m|                 |        |--AIfExpr  @../src/test_parser.nit:92,3--95,5
+|                 |        |  |--TKwif  if @../src/test_parser.nit:92,3--4
+|                 |        |  |--AIsaExpr  @../src/test_parser.nit:92,6--17
+|                 |        |  |  |--ACallExpr  @../src/test_parser.nit:92,6
+|                 |        |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:92,6
+|                 |        |  |  |  |--AQid  @../src/test_parser.nit:92,6
+|                 |        |  |  |  |  `--TId  n @../src/test_parser.nit:92,6
+|                 |        |  |  |  `--AListExprs  @../src/test_parser.nit:92,6
+|                 |        |  |  |--TKwisa  isa @../src/test_parser.nit:92,8--10
+|                 |        |  |  `--AType  @../src/test_parser.nit:92,12--17
+|                 |        |  |     `--AQclassid  @../src/test_parser.nit:92,12--17
+|                 |        |  |        `--TClassid  AError @../src/test_parser.nit:92,12--17
+|                 |        |  |--TKwthen  then @../src/test_parser.nit:92,19--22
+\e[37m93                                print "{n.location.colored_line("0;31")}: {n.message}"
+\e[m|                 |        |  |--ABlockExpr  @../src/test_parser.nit:93,4--94,11
+|                 |        |  |  |--ACallExpr  @../src/test_parser.nit:93,4--57
+|                 |        |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:93,4
+|                 |        |  |  |  |--AQid  @../src/test_parser.nit:93,4--8
+|                 |        |  |  |  |  `--TId  print @../src/test_parser.nit:93,4--8
+|                 |        |  |  |  `--AListExprs  @../src/test_parser.nit:93,10--57
+|                 |        |  |  |     `--ASuperstringExpr  @../src/test_parser.nit:93,10--57
+|                 |        |  |  |        |--AStartStringExpr  @../src/test_parser.nit:93,10--11
+|                 |        |  |  |        |  `--TStartString  \"{ @../src/test_parser.nit:93,10--11
+|                 |        |  |  |        |--ACallExpr  @../src/test_parser.nit:93,12--42
+|                 |        |  |  |        |  |--ACallExpr  @../src/test_parser.nit:93,12--21
+|                 |        |  |  |        |  |  |--ACallExpr  @../src/test_parser.nit:93,12
+|                 |        |  |  |        |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:93,12
+|                 |        |  |  |        |  |  |  |--AQid  @../src/test_parser.nit:93,12
+|                 |        |  |  |        |  |  |  |  `--TId  n @../src/test_parser.nit:93,12
+|                 |        |  |  |        |  |  |  `--AListExprs  @../src/test_parser.nit:93,12
+|                 |        |  |  |        |  |  |--AQid  @../src/test_parser.nit:93,14--21
+|                 |        |  |  |        |  |  |  `--TId  location @../src/test_parser.nit:93,14--21
+|                 |        |  |  |        |  |  `--AListExprs  @../src/test_parser.nit:93,21
+|                 |        |  |  |        |  |--AQid  @../src/test_parser.nit:93,23--34
+|                 |        |  |  |        |  |  `--TId  colored_line @../src/test_parser.nit:93,23--34
+|                 |        |  |  |        |  `--AParExprs  @../src/test_parser.nit:93,35--42
+|                 |        |  |  |        |     |--TOpar  ( @../src/test_parser.nit:93,35
+|                 |        |  |  |        |     |--AStringExpr  @../src/test_parser.nit:93,36--41
+|                 |        |  |  |        |     |  `--TString  \"0;31\" @../src/test_parser.nit:93,36--41
+|                 |        |  |  |        |     `--TCpar  ) @../src/test_parser.nit:93,42
+|                 |        |  |  |        |--AMidStringExpr  @../src/test_parser.nit:93,43--46
+|                 |        |  |  |        |  `--TMidString  }: { @../src/test_parser.nit:93,43--46
+|                 |        |  |  |        |--ACallExpr  @../src/test_parser.nit:93,47--55
+|                 |        |  |  |        |  |--ACallExpr  @../src/test_parser.nit:93,47
+|                 |        |  |  |        |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:93,47
+|                 |        |  |  |        |  |  |--AQid  @../src/test_parser.nit:93,47
+|                 |        |  |  |        |  |  |  `--TId  n @../src/test_parser.nit:93,47
+|                 |        |  |  |        |  |  `--AListExprs  @../src/test_parser.nit:93,47
+|                 |        |  |  |        |  |--AQid  @../src/test_parser.nit:93,49--55
+|                 |        |  |  |        |  |  `--TId  message @../src/test_parser.nit:93,49--55
+|                 |        |  |  |        |  `--AListExprs  @../src/test_parser.nit:93,55
+|                 |        |  |  |        `--AEndStringExpr  @../src/test_parser.nit:93,56--57
+|                 |        |  |  |           `--TEndString  }\" @../src/test_parser.nit:93,56--57
+\e[37m94                                continue
+\e[m|                 |        |  |  `--AContinueExpr  @../src/test_parser.nit:94,4--11
+|                 |        |  |     `--TKwcontinue  continue @../src/test_parser.nit:94,4--11
+\e[37m95                        end
+\e[m|                 |        |  `--ABlockExpr  @../src/test_parser.nit:95,3--5
+|                 |        |     `--TKwend  end @../src/test_parser.nit:95,3--5
+\e[37m96        
+               if not no_print then
+\e[m\e[37m97                     if not no_print then
+\e[m|                 |        |--AIfExpr  @../src/test_parser.nit:97,3--99,5
+|                 |        |  |--TKwif  if @../src/test_parser.nit:97,3--4
+|                 |        |  |--ANotExpr  @../src/test_parser.nit:97,6--17
+|                 |        |  |  |--TKwnot  not @../src/test_parser.nit:97,6--8
+|                 |        |  |  `--ACallExpr  @../src/test_parser.nit:97,10--17
+|                 |        |  |     |--AImplicitSelfExpr  @../src/test_parser.nit:97,10
+|                 |        |  |     |--AQid  @../src/test_parser.nit:97,10--17
+|                 |        |  |     |  `--TId  no_print @../src/test_parser.nit:97,10--17
+|                 |        |  |     `--AListExprs  @../src/test_parser.nit:97,17
+|                 |        |  |--TKwthen  then @../src/test_parser.nit:97,19--22
+\e[37m98                                n.dump_tree
+\e[m|                 |        |  |--ABlockExpr  @../src/test_parser.nit:98,4--14
+|                 |        |  |  `--ACallExpr  @../src/test_parser.nit:98,4--14
+|                 |        |  |     |--ACallExpr  @../src/test_parser.nit:98,4
+|                 |        |  |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:98,4
+|                 |        |  |     |  |--AQid  @../src/test_parser.nit:98,4
+|                 |        |  |     |  |  `--TId  n @../src/test_parser.nit:98,4
+|                 |        |  |     |  `--AListExprs  @../src/test_parser.nit:98,4
+|                 |        |  |     |--AQid  @../src/test_parser.nit:98,6--14
+|                 |        |  |     |  `--TId  dump_tree @../src/test_parser.nit:98,6--14
+|                 |        |  |     `--AListExprs  @../src/test_parser.nit:98,14
+\e[37m99                        end
+\e[m|                 |        |  `--ABlockExpr  @../src/test_parser.nit:99,3--5
+|                 |        |     `--TKwend  end @../src/test_parser.nit:99,3--5
+\e[37m100               end
+\e[m|                 |        `--TKwend  end @../src/test_parser.nit:100,2--4
+\e[37m101       else
+\e[m|                 |--TKwelse  else @../src/test_parser.nit:101,1--4
+\e[37m102               for a in args do
+\e[m|                 `--ABlockExpr  @../src/test_parser.nit:102,2--138,3
+|                    |--AForExpr  @../src/test_parser.nit:102,2--137,4
+|                    |  |--TKwfor  for @../src/test_parser.nit:102,2--4
+|                    |  |--AForGroup  @../src/test_parser.nit:102,6--14
+|                    |  |  |--TId  a @../src/test_parser.nit:102,6
+|                    |  |  |--TKwin  in @../src/test_parser.nit:102,8--9
+|                    |  |  `--ACallExpr  @../src/test_parser.nit:102,11--14
+|                    |  |     |--AImplicitSelfExpr  @../src/test_parser.nit:102,11
+|                    |  |     |--AQid  @../src/test_parser.nit:102,11--14
+|                    |  |     |  `--TId  args @../src/test_parser.nit:102,11--14
+|                    |  |     `--AListExprs  @../src/test_parser.nit:102,14
+|                    |  |--TKwdo  do @../src/test_parser.nit:102,16--17
+\e[37m103                       var source
+\e[m|                    |  `--ABlockExpr  @../src/test_parser.nit:103,3--137,4
+|                    |     |--AVardeclExpr  @../src/test_parser.nit:103,3--12
+|                    |     |  |--TKwvar  var @../src/test_parser.nit:103,3--5
+|                    |     |  `--TId  source @../src/test_parser.nit:103,7--12
+\e[37m104                       if no_file then
+\e[m|                    |     |--AIfExpr  @../src/test_parser.nit:104,3--110,5
+|                    |     |  |--TKwif  if @../src/test_parser.nit:104,3--4
+|                    |     |  |--ACallExpr  @../src/test_parser.nit:104,6--12
+|                    |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:104,6
+|                    |     |  |  |--AQid  @../src/test_parser.nit:104,6--12
+|                    |     |  |  |  `--TId  no_file @../src/test_parser.nit:104,6--12
+|                    |     |  |  `--AListExprs  @../src/test_parser.nit:104,12
+|                    |     |  |--TKwthen  then @../src/test_parser.nit:104,14--17
+\e[37m105                               source = new SourceFile.from_string("", a)
+\e[m|                    |     |  |--ABlockExpr  @../src/test_parser.nit:105,4--45
+|                    |     |  |  `--ACallAssignExpr  @../src/test_parser.nit:105,4--45
+|                    |     |  |     |--AImplicitSelfExpr  @../src/test_parser.nit:105,4
+|                    |     |  |     |--AQid  @../src/test_parser.nit:105,4--9
+|                    |     |  |     |  `--TId  source @../src/test_parser.nit:105,4--9
+|                    |     |  |     |--AListExprs  @../src/test_parser.nit:105,11
+|                    |     |  |     |--TAssign  = @../src/test_parser.nit:105,11
+|                    |     |  |     `--ANewExpr  @../src/test_parser.nit:105,13--45
+|                    |     |  |        |--TKwnew  new @../src/test_parser.nit:105,13--15
+|                    |     |  |        |--AType  @../src/test_parser.nit:105,17--26
+|                    |     |  |        |  `--AQclassid  @../src/test_parser.nit:105,17--26
+|                    |     |  |        |     `--TClassid  SourceFile @../src/test_parser.nit:105,17--26
+|                    |     |  |        |--AQid  @../src/test_parser.nit:105,28--38
+|                    |     |  |        |  `--TId  from_string @../src/test_parser.nit:105,28--38
+|                    |     |  |        `--AParExprs  @../src/test_parser.nit:105,39--45
+|                    |     |  |           |--TOpar  ( @../src/test_parser.nit:105,39
+|                    |     |  |           |--AStringExpr  @../src/test_parser.nit:105,40--41
+|                    |     |  |           |  `--TString  \"\" @../src/test_parser.nit:105,40--41
+|                    |     |  |           |--ACallExpr  @../src/test_parser.nit:105,44
+|                    |     |  |           |  |--AImplicitSelfExpr  @../src/test_parser.nit:105,44
+|                    |     |  |           |  |--AQid  @../src/test_parser.nit:105,44
+|                    |     |  |           |  |  `--TId  a @../src/test_parser.nit:105,44
+|                    |     |  |           |  `--AListExprs  @../src/test_parser.nit:105,44
+|                    |     |  |           `--TCpar  ) @../src/test_parser.nit:105,45
+\e[37m106                       else
+\e[m|                    |     |  |--TKwelse  else @../src/test_parser.nit:106,3--6
+\e[37m107                               var f = new FileReader.open(a)
+\e[m|                    |     |  `--ABlockExpr  @../src/test_parser.nit:107,4--110,5
+|                    |     |     |--AVardeclExpr  @../src/test_parser.nit:107,4--33
+|                    |     |     |  |--TKwvar  var @../src/test_parser.nit:107,4--6
+|                    |     |     |  |--TId  f @../src/test_parser.nit:107,8
+|                    |     |     |  |--TAssign  = @../src/test_parser.nit:107,10
+|                    |     |     |  `--ANewExpr  @../src/test_parser.nit:107,12--33
+|                    |     |     |     |--TKwnew  new @../src/test_parser.nit:107,12--14
+|                    |     |     |     |--AType  @../src/test_parser.nit:107,16--25
+|                    |     |     |     |  `--AQclassid  @../src/test_parser.nit:107,16--25
+|                    |     |     |     |     `--TClassid  FileReader @../src/test_parser.nit:107,16--25
+|                    |     |     |     |--AQid  @../src/test_parser.nit:107,27--30
+|                    |     |     |     |  `--TId  open @../src/test_parser.nit:107,27--30
+|                    |     |     |     `--AParExprs  @../src/test_parser.nit:107,31--33
+|                    |     |     |        |--TOpar  ( @../src/test_parser.nit:107,31
+|                    |     |     |        |--ACallExpr  @../src/test_parser.nit:107,32
+|                    |     |     |        |  |--AImplicitSelfExpr  @../src/test_parser.nit:107,32
+|                    |     |     |        |  |--AQid  @../src/test_parser.nit:107,32
+|                    |     |     |        |  |  `--TId  a @../src/test_parser.nit:107,32
+|                    |     |     |        |  `--AListExprs  @../src/test_parser.nit:107,32
+|                    |     |     |        `--TCpar  ) @../src/test_parser.nit:107,33
+\e[37m108                               source = new SourceFile(a, f)
+\e[m|                    |     |     |--ACallAssignExpr  @../src/test_parser.nit:108,4--32
+|                    |     |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:108,4
+|                    |     |     |  |--AQid  @../src/test_parser.nit:108,4--9
+|                    |     |     |  |  `--TId  source @../src/test_parser.nit:108,4--9
+|                    |     |     |  |--AListExprs  @../src/test_parser.nit:108,11
+|                    |     |     |  |--TAssign  = @../src/test_parser.nit:108,11
+|                    |     |     |  `--ANewExpr  @../src/test_parser.nit:108,13--32
+|                    |     |     |     |--TKwnew  new @../src/test_parser.nit:108,13--15
+|                    |     |     |     |--AType  @../src/test_parser.nit:108,17--26
+|                    |     |     |     |  `--AQclassid  @../src/test_parser.nit:108,17--26
+|                    |     |     |     |     `--TClassid  SourceFile @../src/test_parser.nit:108,17--26
+|                    |     |     |     `--AParExprs  @../src/test_parser.nit:108,27--32
+|                    |     |     |        |--TOpar  ( @../src/test_parser.nit:108,27
+|                    |     |     |        |--ACallExpr  @../src/test_parser.nit:108,28
+|                    |     |     |        |  |--AImplicitSelfExpr  @../src/test_parser.nit:108,28
+|                    |     |     |        |  |--AQid  @../src/test_parser.nit:108,28
+|                    |     |     |        |  |  `--TId  a @../src/test_parser.nit:108,28
+|                    |     |     |        |  `--AListExprs  @../src/test_parser.nit:108,28
+|                    |     |     |        |--ACallExpr  @../src/test_parser.nit:108,31
+|                    |     |     |        |  |--AImplicitSelfExpr  @../src/test_parser.nit:108,31
+|                    |     |     |        |  |--AQid  @../src/test_parser.nit:108,31
+|                    |     |     |        |  |  `--TId  f @../src/test_parser.nit:108,31
+|                    |     |     |        |  `--AListExprs  @../src/test_parser.nit:108,31
+|                    |     |     |        `--TCpar  ) @../src/test_parser.nit:108,32
+\e[37m109                               f.close
+\e[m|                    |     |     |--ACallExpr  @../src/test_parser.nit:109,4--10
+|                    |     |     |  |--ACallExpr  @../src/test_parser.nit:109,4
+|                    |     |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:109,4
+|                    |     |     |  |  |--AQid  @../src/test_parser.nit:109,4
+|                    |     |     |  |  |  `--TId  f @../src/test_parser.nit:109,4
+|                    |     |     |  |  `--AListExprs  @../src/test_parser.nit:109,4
+|                    |     |     |  |--AQid  @../src/test_parser.nit:109,6--10
+|                    |     |     |  |  `--TId  close @../src/test_parser.nit:109,6--10
+|                    |     |     |  `--AListExprs  @../src/test_parser.nit:109,10
+\e[37m110                       end
+\e[m|                    |     |     `--TKwend  end @../src/test_parser.nit:110,3--5
+\e[37m111                       var lexer = new Lexer(source)
+\e[m|                    |     |--AVardeclExpr  @../src/test_parser.nit:111,3--31
+|                    |     |  |--TKwvar  var @../src/test_parser.nit:111,3--5
+|                    |     |  |--TId  lexer @../src/test_parser.nit:111,7--11
+|                    |     |  |--TAssign  = @../src/test_parser.nit:111,13
+|                    |     |  `--ANewExpr  @../src/test_parser.nit:111,15--31
+|                    |     |     |--TKwnew  new @../src/test_parser.nit:111,15--17
+|                    |     |     |--AType  @../src/test_parser.nit:111,19--23
+|                    |     |     |  `--AQclassid  @../src/test_parser.nit:111,19--23
+|                    |     |     |     `--TClassid  Lexer @../src/test_parser.nit:111,19--23
+|                    |     |     `--AParExprs  @../src/test_parser.nit:111,24--31
+|                    |     |        |--TOpar  ( @../src/test_parser.nit:111,24
+|                    |     |        |--ACallExpr  @../src/test_parser.nit:111,25--30
+|                    |     |        |  |--AImplicitSelfExpr  @../src/test_parser.nit:111,25
+|                    |     |        |  |--AQid  @../src/test_parser.nit:111,25--30
+|                    |     |        |  |  `--TId  source @../src/test_parser.nit:111,25--30
+|                    |     |        |  `--AListExprs  @../src/test_parser.nit:111,30
+|                    |     |        `--TCpar  ) @../src/test_parser.nit:111,31
+\e[37m112                       if only_lexer then
+\e[m|                    |     |--AIfExpr  @../src/test_parser.nit:112,3--136,5
+|                    |     |  |--TKwif  if @../src/test_parser.nit:112,3--4
+|                    |     |  |--ACallExpr  @../src/test_parser.nit:112,6--15
+|                    |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:112,6
+|                    |     |  |  |--AQid  @../src/test_parser.nit:112,6--15
+|                    |     |  |  |  `--TId  only_lexer @../src/test_parser.nit:112,6--15
+|                    |     |  |  `--AListExprs  @../src/test_parser.nit:112,15
+|                    |     |  |--TKwthen  then @../src/test_parser.nit:112,17--20
+\e[37m113                               var token = lexer.next
+\e[m|                    |     |  |--ABlockExpr  @../src/test_parser.nit:113,4--119,6
+|                    |     |  |  |--AVardeclExpr  @../src/test_parser.nit:113,4--25
+|                    |     |  |  |  |--TKwvar  var @../src/test_parser.nit:113,4--6
+|                    |     |  |  |  |--TId  token @../src/test_parser.nit:113,8--12
+|                    |     |  |  |  |--TAssign  = @../src/test_parser.nit:113,14
+|                    |     |  |  |  `--ACallExpr  @../src/test_parser.nit:113,16--25
+|                    |     |  |  |     |--ACallExpr  @../src/test_parser.nit:113,16--20
+|                    |     |  |  |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:113,16
+|                    |     |  |  |     |  |--AQid  @../src/test_parser.nit:113,16--20
+|                    |     |  |  |     |  |  `--TId  lexer @../src/test_parser.nit:113,16--20
+|                    |     |  |  |     |  `--AListExprs  @../src/test_parser.nit:113,20
+|                    |     |  |  |     |--AQid  @../src/test_parser.nit:113,22--25
+|                    |     |  |  |     |  `--TId  next @../src/test_parser.nit:113,22--25
+|                    |     |  |  |     `--AListExprs  @../src/test_parser.nit:113,25
+\e[37m114                               while not token isa EOF do
+\e[m|                    |     |  |  `--AWhileExpr  @../src/test_parser.nit:114,4--119,6
+|                    |     |  |     |--TKwwhile  while @../src/test_parser.nit:114,4--8
+|                    |     |  |     |--ANotExpr  @../src/test_parser.nit:114,10--26
+|                    |     |  |     |  |--TKwnot  not @../src/test_parser.nit:114,10--12
+|                    |     |  |     |  `--AIsaExpr  @../src/test_parser.nit:114,14--26
+|                    |     |  |     |     |--ACallExpr  @../src/test_parser.nit:114,14--18
+|                    |     |  |     |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:114,14
+|                    |     |  |     |     |  |--AQid  @../src/test_parser.nit:114,14--18
+|                    |     |  |     |     |  |  `--TId  token @../src/test_parser.nit:114,14--18
+|                    |     |  |     |     |  `--AListExprs  @../src/test_parser.nit:114,18
+|                    |     |  |     |     |--TKwisa  isa @../src/test_parser.nit:114,20--22
+|                    |     |  |     |     `--AType  @../src/test_parser.nit:114,24--26
+|                    |     |  |     |        `--AQclassid  @../src/test_parser.nit:114,24--26
+|                    |     |  |     |           `--TClassid  EOF @../src/test_parser.nit:114,24--26
+|                    |     |  |     |--TKwdo  do @../src/test_parser.nit:114,28--29
+\e[37m115                                       if not no_print then
+\e[m|                    |     |  |     `--ABlockExpr  @../src/test_parser.nit:115,5--119,6
+|                    |     |  |        |--AIfExpr  @../src/test_parser.nit:115,5--117,7
+|                    |     |  |        |  |--TKwif  if @../src/test_parser.nit:115,5--6
+|                    |     |  |        |  |--ANotExpr  @../src/test_parser.nit:115,8--19
+|                    |     |  |        |  |  |--TKwnot  not @../src/test_parser.nit:115,8--10
+|                    |     |  |        |  |  `--ACallExpr  @../src/test_parser.nit:115,12--19
+|                    |     |  |        |  |     |--AImplicitSelfExpr  @../src/test_parser.nit:115,12
+|                    |     |  |        |  |     |--AQid  @../src/test_parser.nit:115,12--19
+|                    |     |  |        |  |     |  `--TId  no_print @../src/test_parser.nit:115,12--19
+|                    |     |  |        |  |     `--AListExprs  @../src/test_parser.nit:115,19
+|                    |     |  |        |  |--TKwthen  then @../src/test_parser.nit:115,21--24
+\e[37m116                                               print("Read token at {token.location} text='{token.text}'")
+\e[m|                    |     |  |        |  |--ABlockExpr  @../src/test_parser.nit:116,6--64
+|                    |     |  |        |  |  `--ACallExpr  @../src/test_parser.nit:116,6--64
+|                    |     |  |        |  |     |--AImplicitSelfExpr  @../src/test_parser.nit:116,6
+|                    |     |  |        |  |     |--AQid  @../src/test_parser.nit:116,6--10
+|                    |     |  |        |  |     |  `--TId  print @../src/test_parser.nit:116,6--10
+|                    |     |  |        |  |     `--AParExprs  @../src/test_parser.nit:116,11--64
+|                    |     |  |        |  |        |--TOpar  ( @../src/test_parser.nit:116,11
+|                    |     |  |        |  |        |--ASuperstringExpr  @../src/test_parser.nit:116,12--63
+|                    |     |  |        |  |        |  |--AStartStringExpr  @../src/test_parser.nit:116,12--27
+|                    |     |  |        |  |        |  |  `--TStartString  \"Read token at { @../src/test_parser.nit:116,12--27
+|                    |     |  |        |  |        |  |--ACallExpr  @../src/test_parser.nit:116,28--41
+|                    |     |  |        |  |        |  |  |--ACallExpr  @../src/test_parser.nit:116,28--32
+|                    |     |  |        |  |        |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:116,28
+|                    |     |  |        |  |        |  |  |  |--AQid  @../src/test_parser.nit:116,28--32
+|                    |     |  |        |  |        |  |  |  |  `--TId  token @../src/test_parser.nit:116,28--32
+|                    |     |  |        |  |        |  |  |  `--AListExprs  @../src/test_parser.nit:116,32
+|                    |     |  |        |  |        |  |  |--AQid  @../src/test_parser.nit:116,34--41
+|                    |     |  |        |  |        |  |  |  `--TId  location @../src/test_parser.nit:116,34--41
+|                    |     |  |        |  |        |  |  `--AListExprs  @../src/test_parser.nit:116,41
+|                    |     |  |        |  |        |  |--AMidStringExpr  @../src/test_parser.nit:116,42--50
+|                    |     |  |        |  |        |  |  `--TMidString  } text=\'{ @../src/test_parser.nit:116,42--50
+|                    |     |  |        |  |        |  |--ACallExpr  @../src/test_parser.nit:116,51--60
+|                    |     |  |        |  |        |  |  |--ACallExpr  @../src/test_parser.nit:116,51--55
+|                    |     |  |        |  |        |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:116,51
+|                    |     |  |        |  |        |  |  |  |--AQid  @../src/test_parser.nit:116,51--55
+|                    |     |  |        |  |        |  |  |  |  `--TId  token @../src/test_parser.nit:116,51--55
+|                    |     |  |        |  |        |  |  |  `--AListExprs  @../src/test_parser.nit:116,55
+|                    |     |  |        |  |        |  |  |--AQid  @../src/test_parser.nit:116,57--60
+|                    |     |  |        |  |        |  |  |  `--TId  text @../src/test_parser.nit:116,57--60
+|                    |     |  |        |  |        |  |  `--AListExprs  @../src/test_parser.nit:116,60
+|                    |     |  |        |  |        |  `--AEndStringExpr  @../src/test_parser.nit:116,61--63
+|                    |     |  |        |  |        |     `--TEndString  }\'\" @../src/test_parser.nit:116,61--63
+|                    |     |  |        |  |        `--TCpar  ) @../src/test_parser.nit:116,64
+\e[37m117                                       end
+\e[m|                    |     |  |        |  `--ABlockExpr  @../src/test_parser.nit:117,5--7
+|                    |     |  |        |     `--TKwend  end @../src/test_parser.nit:117,5--7
+\e[37m118                                       token = lexer.next
+\e[m|                    |     |  |        |--ACallAssignExpr  @../src/test_parser.nit:118,5--22
+|                    |     |  |        |  |--AImplicitSelfExpr  @../src/test_parser.nit:118,5
+|                    |     |  |        |  |--AQid  @../src/test_parser.nit:118,5--9
+|                    |     |  |        |  |  `--TId  token @../src/test_parser.nit:118,5--9
+|                    |     |  |        |  |--AListExprs  @../src/test_parser.nit:118,11
+|                    |     |  |        |  |--TAssign  = @../src/test_parser.nit:118,11
+|                    |     |  |        |  `--ACallExpr  @../src/test_parser.nit:118,13--22
+|                    |     |  |        |     |--ACallExpr  @../src/test_parser.nit:118,13--17
+|                    |     |  |        |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:118,13
+|                    |     |  |        |     |  |--AQid  @../src/test_parser.nit:118,13--17
+|                    |     |  |        |     |  |  `--TId  lexer @../src/test_parser.nit:118,13--17
+|                    |     |  |        |     |  `--AListExprs  @../src/test_parser.nit:118,17
+|                    |     |  |        |     |--AQid  @../src/test_parser.nit:118,19--22
+|                    |     |  |        |     |  `--TId  next @../src/test_parser.nit:118,19--22
+|                    |     |  |        |     `--AListExprs  @../src/test_parser.nit:118,22
+\e[37m119                               end
+\e[m|                    |     |  |        `--TKwend  end @../src/test_parser.nit:119,4--6
+\e[37m120                       else
+\e[m|                    |     |  |--TKwelse  else @../src/test_parser.nit:120,3--6
+\e[37m121                               var parser = new Parser(lexer)
+\e[m|                    |     |  `--ABlockExpr  @../src/test_parser.nit:121,4--136,5
+|                    |     |     |--AVardeclExpr  @../src/test_parser.nit:121,4--33
+|                    |     |     |  |--TKwvar  var @../src/test_parser.nit:121,4--6
+|                    |     |     |  |--TId  parser @../src/test_parser.nit:121,8--13
+|                    |     |     |  |--TAssign  = @../src/test_parser.nit:121,15
+|                    |     |     |  `--ANewExpr  @../src/test_parser.nit:121,17--33
+|                    |     |     |     |--TKwnew  new @../src/test_parser.nit:121,17--19
+|                    |     |     |     |--AType  @../src/test_parser.nit:121,21--26
+|                    |     |     |     |  `--AQclassid  @../src/test_parser.nit:121,21--26
+|                    |     |     |     |     `--TClassid  Parser @../src/test_parser.nit:121,21--26
+|                    |     |     |     `--AParExprs  @../src/test_parser.nit:121,27--33
+|                    |     |     |        |--TOpar  ( @../src/test_parser.nit:121,27
+|                    |     |     |        |--ACallExpr  @../src/test_parser.nit:121,28--32
+|                    |     |     |        |  |--AImplicitSelfExpr  @../src/test_parser.nit:121,28
+|                    |     |     |        |  |--AQid  @../src/test_parser.nit:121,28--32
+|                    |     |     |        |  |  `--TId  lexer @../src/test_parser.nit:121,28--32
+|                    |     |     |        |  `--AListExprs  @../src/test_parser.nit:121,32
+|                    |     |     |        `--TCpar  ) @../src/test_parser.nit:121,33
+\e[37m122                               var tree = parser.parse
+\e[m|                    |     |     |--AVardeclExpr  @../src/test_parser.nit:122,4--26
+|                    |     |     |  |--TKwvar  var @../src/test_parser.nit:122,4--6
+|                    |     |     |  |--TId  tree @../src/test_parser.nit:122,8--11
+|                    |     |     |  |--TAssign  = @../src/test_parser.nit:122,13
+|                    |     |     |  `--ACallExpr  @../src/test_parser.nit:122,15--26
+|                    |     |     |     |--ACallExpr  @../src/test_parser.nit:122,15--20
+|                    |     |     |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:122,15
+|                    |     |     |     |  |--AQid  @../src/test_parser.nit:122,15--20
+|                    |     |     |     |  |  `--TId  parser @../src/test_parser.nit:122,15--20
+|                    |     |     |     |  `--AListExprs  @../src/test_parser.nit:122,20
+|                    |     |     |     |--AQid  @../src/test_parser.nit:122,22--26
+|                    |     |     |     |  `--TId  parse @../src/test_parser.nit:122,22--26
+|                    |     |     |     `--AListExprs  @../src/test_parser.nit:122,26
+\e[37m123       
+                       var error = tree.n_eof
+\e[m\e[37m124                            var error = tree.n_eof
+\e[m|                    |     |     |--AVardeclExpr  @../src/test_parser.nit:124,4--25
+|                    |     |     |  |--TKwvar  var @../src/test_parser.nit:124,4--6
+|                    |     |     |  |--TId  error @../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--19
+|                    |     |     |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:124,16
+|                    |     |     |     |  |--AQid  @../src/test_parser.nit:124,16--19
+|                    |     |     |     |  |  `--TId  tree @../src/test_parser.nit:124,16--19
+|                    |     |     |     |  `--AListExprs  @../src/test_parser.nit:124,19
+|                    |     |     |     |--AQid  @../src/test_parser.nit:124,21--25
+|                    |     |     |     |  `--TId  n_eof @../src/test_parser.nit:124,21--25
+|                    |     |     |     `--AListExprs  @../src/test_parser.nit:124,25
+\e[37m125                               if error isa AError then
+\e[m|                    |     |     |--AIfExpr  @../src/test_parser.nit:125,4--128,6
+|                    |     |     |  |--TKwif  if @../src/test_parser.nit:125,4--5
+|                    |     |     |  |--AIsaExpr  @../src/test_parser.nit:125,7--22
+|                    |     |     |  |  |--ACallExpr  @../src/test_parser.nit:125,7--11
+|                    |     |     |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:125,7
+|                    |     |     |  |  |  |--AQid  @../src/test_parser.nit:125,7--11
+|                    |     |     |  |  |  |  `--TId  error @../src/test_parser.nit:125,7--11
+|                    |     |     |  |  |  `--AListExprs  @../src/test_parser.nit:125,11
+|                    |     |     |  |  |--TKwisa  isa @../src/test_parser.nit:125,13--15
+|                    |     |     |  |  `--AType  @../src/test_parser.nit:125,17--22
+|                    |     |     |  |     `--AQclassid  @../src/test_parser.nit:125,17--22
+|                    |     |     |  |        `--TClassid  AError @../src/test_parser.nit:125,17--22
+|                    |     |     |  |--TKwthen  then @../src/test_parser.nit:125,24--27
+\e[37m126                                       print("Error at {error.location}:\n\t{error.message}")
+\e[m|                    |     |     |  |--ABlockExpr  @../src/test_parser.nit:126,5--127,10
+|                    |     |     |  |  |--ACallExpr  @../src/test_parser.nit:126,5--58
+|                    |     |     |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:126,5
+|                    |     |     |  |  |  |--AQid  @../src/test_parser.nit:126,5--9
+|                    |     |     |  |  |  |  `--TId  print @../src/test_parser.nit:126,5--9
+|                    |     |     |  |  |  `--AParExprs  @../src/test_parser.nit:126,10--58
+|                    |     |     |  |  |     |--TOpar  ( @../src/test_parser.nit:126,10
+|                    |     |     |  |  |     |--ASuperstringExpr  @../src/test_parser.nit:126,11--57
+|                    |     |     |  |  |     |  |--AStartStringExpr  @../src/test_parser.nit:126,11--21
+|                    |     |     |  |  |     |  |  `--TStartString  \"Error at { @../src/test_parser.nit:126,11--21
+|                    |     |     |  |  |     |  |--ACallExpr  @../src/test_parser.nit:126,22--35
+|                    |     |     |  |  |     |  |  |--ACallExpr  @../src/test_parser.nit:126,22--26
+|                    |     |     |  |  |     |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:126,22
+|                    |     |     |  |  |     |  |  |  |--AQid  @../src/test_parser.nit:126,22--26
+|                    |     |     |  |  |     |  |  |  |  `--TId  error @../src/test_parser.nit:126,22--26
+|                    |     |     |  |  |     |  |  |  `--AListExprs  @../src/test_parser.nit:126,26
+|                    |     |     |  |  |     |  |  |--AQid  @../src/test_parser.nit:126,28--35
+|                    |     |     |  |  |     |  |  |  `--TId  location @../src/test_parser.nit:126,28--35
+|                    |     |     |  |  |     |  |  `--AListExprs  @../src/test_parser.nit:126,35
+|                    |     |     |  |  |     |  |--AMidStringExpr  @../src/test_parser.nit:126,36--42
+|                    |     |     |  |  |     |  |  `--TMidString  }:\\n\\t{ @../src/test_parser.nit:126,36--42
+|                    |     |     |  |  |     |  |--ACallExpr  @../src/test_parser.nit:126,43--55
+|                    |     |     |  |  |     |  |  |--ACallExpr  @../src/test_parser.nit:126,43--47
+|                    |     |     |  |  |     |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:126,43
+|                    |     |     |  |  |     |  |  |  |--AQid  @../src/test_parser.nit:126,43--47
+|                    |     |     |  |  |     |  |  |  |  `--TId  error @../src/test_parser.nit:126,43--47
+|                    |     |     |  |  |     |  |  |  `--AListExprs  @../src/test_parser.nit:126,47
+|                    |     |     |  |  |     |  |  |--AQid  @../src/test_parser.nit:126,49--55
+|                    |     |     |  |  |     |  |  |  `--TId  message @../src/test_parser.nit:126,49--55
+|                    |     |     |  |  |     |  |  `--AListExprs  @../src/test_parser.nit:126,55
+|                    |     |     |  |  |     |  `--AEndStringExpr  @../src/test_parser.nit:126,56--57
+|                    |     |     |  |  |     |     `--TEndString  }\" @../src/test_parser.nit:126,56--57
+|                    |     |     |  |  |     `--TCpar  ) @../src/test_parser.nit:126,58
+\e[37m127                                       return
+\e[m|                    |     |     |  |  `--AReturnExpr  @../src/test_parser.nit:127,5--10
+|                    |     |     |  |     `--TKwreturn  return @../src/test_parser.nit:127,5--10
+\e[37m128                               end
+\e[m|                    |     |     |  `--ABlockExpr  @../src/test_parser.nit:128,4--6
+|                    |     |     |     `--TKwend  end @../src/test_parser.nit:128,4--6
+\e[37m129       
+                       if xml then
+\e[m\e[37m130                            if xml then
+\e[m|                    |     |     |--AIfExpr  @../src/test_parser.nit:130,4--135,6
+|                    |     |     |  |--TKwif  if @../src/test_parser.nit:130,4--5
+|                    |     |     |  |--ACallExpr  @../src/test_parser.nit:130,7--9
+|                    |     |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:130,7
+|                    |     |     |  |  |--AQid  @../src/test_parser.nit:130,7--9
+|                    |     |     |  |  |  `--TId  xml @../src/test_parser.nit:130,7--9
+|                    |     |     |  |  `--AListExprs  @../src/test_parser.nit:130,9
+|                    |     |     |  |--TKwthen  then @../src/test_parser.nit:130,11--14
+\e[37m131                                       tree.parentize_tokens
+\e[m|                    |     |     |  |--ABlockExpr  @../src/test_parser.nit:131,5--132,32
+|                    |     |     |  |  |--ACallExpr  @../src/test_parser.nit:131,5--25
+|                    |     |     |  |  |  |--ACallExpr  @../src/test_parser.nit:131,5--8
+|                    |     |     |  |  |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:131,5
+|                    |     |     |  |  |  |  |--AQid  @../src/test_parser.nit:131,5--8
+|                    |     |     |  |  |  |  |  `--TId  tree @../src/test_parser.nit:131,5--8
+|                    |     |     |  |  |  |  `--AListExprs  @../src/test_parser.nit:131,8
+|                    |     |     |  |  |  |--AQid  @../src/test_parser.nit:131,10--25
+|                    |     |     |  |  |  |  `--TId  parentize_tokens @../src/test_parser.nit:131,10--25
+|                    |     |     |  |  |  `--AListExprs  @../src/test_parser.nit:131,25
+\e[37m132                                       tree.to_xml.write_to(stdout)
+\e[m|                    |     |     |  |  `--ACallExpr  @../src/test_parser.nit:132,5--32
+|                    |     |     |  |     |--ACallExpr  @../src/test_parser.nit:132,5--15
+|                    |     |     |  |     |  |--ACallExpr  @../src/test_parser.nit:132,5--8
+|                    |     |     |  |     |  |  |--AImplicitSelfExpr  @../src/test_parser.nit:132,5
+|                    |     |     |  |     |  |  |--AQid  @../src/test_parser.nit:132,5--8
+|                    |     |     |  |     |  |  |  `--TId  tree @../src/test_parser.nit:132,5--8
+|                    |     |     |  |     |  |  `--AListExprs  @../src/test_parser.nit:132,8
+|                    |     |     |  |     |  |--AQid  @../src/test_parser.nit:132,10--15
+|                    |     |     |  |     |  |  `--TId  to_xml @../src/test_parser.nit:132,10--15
+|                    |     |     |  |     |  `--AListExprs  @../src/test_parser.nit:132,15
+|                    |     |     |  |     |--AQid  @../src/test_parser.nit:132,17--24
+|                    |     |     |  |     |  `--TId  write_to @../src/test_parser.nit:132,17--24
+|                    |     |     |  |     `--AParExprs  @../src/test_parser.nit:132,25--32
+|                    |     |     |  |        |--TOpar  ( @../src/test_parser.nit:132,25
+|                    |     |     |  |        |--ACallExpr  @../src/test_parser.nit:132,26--31
+|                    |     |     |  |        |  |--AImplicitSelfExpr  @../src/test_parser.nit:132,26
+|                    |     |     |  |        |  |--AQid  @../src/test_parser.nit:132,26--31
+|                    |     |     |  |        |  |  `--TId  stdout @../src/test_parser.nit:132,26--31
+|                    |     |     |  |        |  `--AListExprs  @../src/test_parser.nit:132,31
+|                    |     |     |  |        `--TCpar  ) @../src/test_parser.nit:132,32
+\e[37m133                               else if not no_print then
+\e[m|                    |     |     |  |--TKwelse  else @../src/test_parser.nit:133,4--7
+|                    |     |     |  `--AIfExpr  @../src/test_parser.nit:133,9--135,6
+|                    |     |     |     |--TKwif  if @../src/test_parser.nit:133,9--10
+|                    |     |     |     |--ANotExpr  @../src/test_parser.nit:133,12--23
+|                    |     |     |     |  |--TKwnot  not @../src/test_parser.nit:133,12--14
+|                    |     |     |     |  `--ACallExpr  @../src/test_parser.nit:133,16--23
+|                    |     |     |     |     |--AImplicitSelfExpr  @../src/test_parser.nit:133,16
+|                    |     |     |     |     |--AQid  @../src/test_parser.nit:133,16--23
+|                    |     |     |     |     |  `--TId  no_print @../src/test_parser.nit:133,16--23
+|                    |     |     |     |     `--AListExprs  @../src/test_parser.nit:133,23
+|                    |     |     |     |--TKwthen  then @../src/test_parser.nit:133,25--28
+\e[37m134                                       tree.dump_tree
+\e[m|                    |     |     |     |--ABlockExpr  @../src/test_parser.nit:134,5--18
+|                    |     |     |     |  `--ACallExpr  @../src/test_parser.nit:134,5--18
+|                    |     |     |     |     |--ACallExpr  @../src/test_parser.nit:134,5--8
+|                    |     |     |     |     |  |--AImplicitSelfExpr  @../src/test_parser.nit:134,5
+|                    |     |     |     |     |  |--AQid  @../src/test_parser.nit:134,5--8
+|                    |     |     |     |     |  |  `--TId  tree @../src/test_parser.nit:134,5--8
+|                    |     |     |     |     |  `--AListExprs  @../src/test_parser.nit:134,8
+|                    |     |     |     |     |--AQid  @../src/test_parser.nit:134,10--18
+|                    |     |     |     |     |  `--TId  dump_tree @../src/test_parser.nit:134,10--18
+|                    |     |     |     |     `--AListExprs  @../src/test_parser.nit:134,18
+\e[37m135                               end
+\e[m|                    |     |     |     `--ABlockExpr  @../src/test_parser.nit:135,4--6
+|                    |     |     |        `--TKwend  end @../src/test_parser.nit:135,4--6
+\e[37m136                       end
+\e[m|                    |     |     `--TKwend  end @../src/test_parser.nit:136,3--5
+\e[37m137               end
+\e[m|                    |     `--TKwend  end @../src/test_parser.nit:137,2--4
+\e[37m138       end
+\e[m|                    `--TKwend  end @../src/test_parser.nit:138,1--3
+\e[37m139       
+\e[m`--EOF   @../src/test_parser.nit:139,1
index 77b3c81..7070c7d 100644 (file)
@@ -52,826 +52,693 @@ Read token at ../src/test_parser.nit:22,15--23,0 text='
 '
 Read token at ../src/test_parser.nit:23,1--24,0 text='
 '
-Read token at ../src/test_parser.nit:24,1--25,0 text='# A basic visitor that prints AST trees to the screen
-'
-Read token at ../src/test_parser.nit:25,1--5 text='class'
-Read token at ../src/test_parser.nit:25,7--22 text='PrintTreeVisitor'
+Read token at ../src/test_parser.nit:24,1--3 text='var'
+Read token at ../src/test_parser.nit:24,5--12 text='no_print'
+Read token at ../src/test_parser.nit:24,14 text='='
+Read token at ../src/test_parser.nit:24,16--20 text='false'
+Read token at ../src/test_parser.nit:24,21--25,0 text='
+'
+Read token at ../src/test_parser.nit:25,1--3 text='var'
+Read token at ../src/test_parser.nit:25,5--14 text='only_lexer'
+Read token at ../src/test_parser.nit:25,16 text='='
+Read token at ../src/test_parser.nit:25,18--22 text='false'
 Read token at ../src/test_parser.nit:25,23--26,0 text='
 '
-Read token at ../src/test_parser.nit:26,2--6 text='super'
-Read token at ../src/test_parser.nit:26,8--14 text='Visitor'
-Read token at ../src/test_parser.nit:26,15--27,0 text='
-'
-Read token at ../src/test_parser.nit:27,2--8 text='private'
-Read token at ../src/test_parser.nit:27,10--12 text='var'
-Read token at ../src/test_parser.nit:27,14--17 text='rank'
-Read token at ../src/test_parser.nit:27,18 text=':'
-Read token at ../src/test_parser.nit:27,20--22 text='Int'
-Read token at ../src/test_parser.nit:27,24 text='='
-Read token at ../src/test_parser.nit:27,26 text='0'
-Read token at ../src/test_parser.nit:27,27--28,0 text='
-'
-Read token at ../src/test_parser.nit:28,2--6 text='redef'
-Read token at ../src/test_parser.nit:28,8--10 text='fun'
-Read token at ../src/test_parser.nit:28,12--16 text='visit'
-Read token at ../src/test_parser.nit:28,17 text='('
-Read token at ../src/test_parser.nit:28,18 text='n'
-Read token at ../src/test_parser.nit:28,19 text=')'
-Read token at ../src/test_parser.nit:28,20--29,0 text='
-'
-Read token at ../src/test_parser.nit:29,2--3 text='do'
-Read token at ../src/test_parser.nit:29,4--30,0 text='
-'
-Read token at ../src/test_parser.nit:30,3--4 text='if'
-Read token at ../src/test_parser.nit:30,6 text='n'
-Read token at ../src/test_parser.nit:30,8--10 text='isa'
-Read token at ../src/test_parser.nit:30,12--16 text='Token'
-Read token at ../src/test_parser.nit:30,18--21 text='then'
-Read token at ../src/test_parser.nit:30,22--31,0 text='
-'
-Read token at ../src/test_parser.nit:31,4--9 text='printn'
-Read token at ../src/test_parser.nit:31,10 text='('
-Read token at ../src/test_parser.nit:31,11--14 text='"  "'
-Read token at ../src/test_parser.nit:31,16 text='*'
-Read token at ../src/test_parser.nit:31,18--21 text='rank'
-Read token at ../src/test_parser.nit:31,22 text=','
-Read token at ../src/test_parser.nit:31,24 text='n'
-Read token at ../src/test_parser.nit:31,25 text='.'
-Read token at ../src/test_parser.nit:31,26--35 text='class_name'
-Read token at ../src/test_parser.nit:31,36 text=','
-Read token at ../src/test_parser.nit:31,38--42 text='" \""'
-Read token at ../src/test_parser.nit:31,43 text=','
-Read token at ../src/test_parser.nit:31,45 text='n'
-Read token at ../src/test_parser.nit:31,46 text='.'
-Read token at ../src/test_parser.nit:31,47--50 text='text'
-Read token at ../src/test_parser.nit:31,51 text='.'
-Read token at ../src/test_parser.nit:31,52--62 text='escape_to_c'
-Read token at ../src/test_parser.nit:31,63 text=','
-Read token at ../src/test_parser.nit:31,65--69 text='"\" "'
-Read token at ../src/test_parser.nit:31,70 text=','
-Read token at ../src/test_parser.nit:31,72 text='n'
-Read token at ../src/test_parser.nit:31,73 text='.'
-Read token at ../src/test_parser.nit:31,74--81 text='location'
-Read token at ../src/test_parser.nit:31,82 text=','
-Read token at ../src/test_parser.nit:31,84--87 text='"\n"'
-Read token at ../src/test_parser.nit:31,88 text=')'
-Read token at ../src/test_parser.nit:31,89--32,0 text='
-'
-Read token at ../src/test_parser.nit:32,3--6 text='else'
-Read token at ../src/test_parser.nit:32,7--33,0 text='
-'
-Read token at ../src/test_parser.nit:33,4--9 text='printn'
-Read token at ../src/test_parser.nit:33,10 text='('
-Read token at ../src/test_parser.nit:33,11--14 text='"  "'
-Read token at ../src/test_parser.nit:33,16 text='*'
-Read token at ../src/test_parser.nit:33,18--21 text='rank'
-Read token at ../src/test_parser.nit:33,22 text=','
-Read token at ../src/test_parser.nit:33,24 text='n'
-Read token at ../src/test_parser.nit:33,25 text='.'
-Read token at ../src/test_parser.nit:33,26--35 text='class_name'
-Read token at ../src/test_parser.nit:33,36 text=','
-Read token at ../src/test_parser.nit:33,38--40 text='" "'
-Read token at ../src/test_parser.nit:33,41 text=','
-Read token at ../src/test_parser.nit:33,43 text='n'
-Read token at ../src/test_parser.nit:33,44 text='.'
-Read token at ../src/test_parser.nit:33,45--52 text='location'
-Read token at ../src/test_parser.nit:33,53 text=','
-Read token at ../src/test_parser.nit:33,55--58 text='"\n"'
-Read token at ../src/test_parser.nit:33,59 text=')'
-Read token at ../src/test_parser.nit:33,60--34,0 text='
-'
-Read token at ../src/test_parser.nit:34,3--5 text='end'
-Read token at ../src/test_parser.nit:34,6--35,0 text='
-'
-Read token at ../src/test_parser.nit:35,3--6 text='rank'
-Read token at ../src/test_parser.nit:35,8 text='='
-Read token at ../src/test_parser.nit:35,10--13 text='rank'
-Read token at ../src/test_parser.nit:35,15 text='+'
-Read token at ../src/test_parser.nit:35,17 text='1'
-Read token at ../src/test_parser.nit:35,18--36,0 text='
-'
-Read token at ../src/test_parser.nit:36,3 text='n'
-Read token at ../src/test_parser.nit:36,4 text='.'
-Read token at ../src/test_parser.nit:36,5--13 text='visit_all'
-Read token at ../src/test_parser.nit:36,14 text='('
-Read token at ../src/test_parser.nit:36,15--18 text='self'
-Read token at ../src/test_parser.nit:36,19 text=')'
-Read token at ../src/test_parser.nit:36,20--37,0 text='
-'
-Read token at ../src/test_parser.nit:37,3--6 text='rank'
-Read token at ../src/test_parser.nit:37,8 text='='
-Read token at ../src/test_parser.nit:37,10--13 text='rank'
-Read token at ../src/test_parser.nit:37,15 text='-'
-Read token at ../src/test_parser.nit:37,17 text='1'
-Read token at ../src/test_parser.nit:37,18--38,0 text='
-'
-Read token at ../src/test_parser.nit:38,2--4 text='end'
-Read token at ../src/test_parser.nit:38,5--39,0 text='
-'
-Read token at ../src/test_parser.nit:39,1--3 text='end'
-Read token at ../src/test_parser.nit:39,4--40,0 text='
-'
-Read token at ../src/test_parser.nit:40,1--41,0 text='
-'
-Read token at ../src/test_parser.nit:41,1--3 text='var'
-Read token at ../src/test_parser.nit:41,5--12 text='no_print'
-Read token at ../src/test_parser.nit:41,14 text='='
-Read token at ../src/test_parser.nit:41,16--20 text='false'
-Read token at ../src/test_parser.nit:41,21--42,0 text='
-'
-Read token at ../src/test_parser.nit:42,1--3 text='var'
-Read token at ../src/test_parser.nit:42,5--14 text='only_lexer'
-Read token at ../src/test_parser.nit:42,16 text='='
-Read token at ../src/test_parser.nit:42,18--22 text='false'
-Read token at ../src/test_parser.nit:42,23--43,0 text='
-'
-Read token at ../src/test_parser.nit:43,1--3 text='var'
-Read token at ../src/test_parser.nit:43,5--13 text='need_help'
+Read token at ../src/test_parser.nit:26,1--3 text='var'
+Read token at ../src/test_parser.nit:26,5--13 text='need_help'
+Read token at ../src/test_parser.nit:26,15 text='='
+Read token at ../src/test_parser.nit:26,17--21 text='false'
+Read token at ../src/test_parser.nit:26,22--27,0 text='
+'
+Read token at ../src/test_parser.nit:27,1--3 text='var'
+Read token at ../src/test_parser.nit:27,5--11 text='no_file'
+Read token at ../src/test_parser.nit:27,13 text='='
+Read token at ../src/test_parser.nit:27,15--19 text='false'
+Read token at ../src/test_parser.nit:27,20--28,0 text='
+'
+Read token at ../src/test_parser.nit:28,1--3 text='var'
+Read token at ../src/test_parser.nit:28,5--15 text='interactive'
+Read token at ../src/test_parser.nit:28,17 text='='
+Read token at ../src/test_parser.nit:28,19--23 text='false'
+Read token at ../src/test_parser.nit:28,24--29,0 text='
+'
+Read token at ../src/test_parser.nit:29,1--3 text='var'
+Read token at ../src/test_parser.nit:29,5--7 text='xml'
+Read token at ../src/test_parser.nit:29,9 text='='
+Read token at ../src/test_parser.nit:29,11--15 text='false'
+Read token at ../src/test_parser.nit:29,16--30,0 text='
+'
+Read token at ../src/test_parser.nit:30,1--31,0 text='
+'
+Read token at ../src/test_parser.nit:31,1--5 text='while'
+Read token at ../src/test_parser.nit:31,7--9 text='not'
+Read token at ../src/test_parser.nit:31,11--14 text='args'
+Read token at ../src/test_parser.nit:31,15 text='.'
+Read token at ../src/test_parser.nit:31,16--23 text='is_empty'
+Read token at ../src/test_parser.nit:31,25--27 text='and'
+Read token at ../src/test_parser.nit:31,29--32 text='args'
+Read token at ../src/test_parser.nit:31,33 text='.'
+Read token at ../src/test_parser.nit:31,34--38 text='first'
+Read token at ../src/test_parser.nit:31,39 text='.'
+Read token at ../src/test_parser.nit:31,40--44 text='chars'
+Read token at ../src/test_parser.nit:31,45 text='.'
+Read token at ../src/test_parser.nit:31,46--50 text='first'
+Read token at ../src/test_parser.nit:31,52--53 text='=='
+Read token at ../src/test_parser.nit:31,55--57 text=''-''
+Read token at ../src/test_parser.nit:31,59--60 text='do'
+Read token at ../src/test_parser.nit:31,61--32,0 text='
+'
+Read token at ../src/test_parser.nit:32,2--3 text='if'
+Read token at ../src/test_parser.nit:32,5--8 text='args'
+Read token at ../src/test_parser.nit:32,9 text='.'
+Read token at ../src/test_parser.nit:32,10--14 text='first'
+Read token at ../src/test_parser.nit:32,16--17 text='=='
+Read token at ../src/test_parser.nit:32,19--22 text='"-n"'
+Read token at ../src/test_parser.nit:32,24--27 text='then'
+Read token at ../src/test_parser.nit:32,28--33,0 text='
+'
+Read token at ../src/test_parser.nit:33,3--10 text='no_print'
+Read token at ../src/test_parser.nit:33,12 text='='
+Read token at ../src/test_parser.nit:33,14--17 text='true'
+Read token at ../src/test_parser.nit:33,18--34,0 text='
+'
+Read token at ../src/test_parser.nit:34,2--5 text='else'
+Read token at ../src/test_parser.nit:34,7--8 text='if'
+Read token at ../src/test_parser.nit:34,10--13 text='args'
+Read token at ../src/test_parser.nit:34,14 text='.'
+Read token at ../src/test_parser.nit:34,15--19 text='first'
+Read token at ../src/test_parser.nit:34,21--22 text='=='
+Read token at ../src/test_parser.nit:34,24--27 text='"-l"'
+Read token at ../src/test_parser.nit:34,29--32 text='then'
+Read token at ../src/test_parser.nit:34,33--35,0 text='
+'
+Read token at ../src/test_parser.nit:35,3--12 text='only_lexer'
+Read token at ../src/test_parser.nit:35,14 text='='
+Read token at ../src/test_parser.nit:35,16--19 text='true'
+Read token at ../src/test_parser.nit:35,20--36,0 text='
+'
+Read token at ../src/test_parser.nit:36,2--5 text='else'
+Read token at ../src/test_parser.nit:36,7--8 text='if'
+Read token at ../src/test_parser.nit:36,10--13 text='args'
+Read token at ../src/test_parser.nit:36,14 text='.'
+Read token at ../src/test_parser.nit:36,15--19 text='first'
+Read token at ../src/test_parser.nit:36,21--22 text='=='
+Read token at ../src/test_parser.nit:36,24--27 text='"-p"'
+Read token at ../src/test_parser.nit:36,29--32 text='then'
+Read token at ../src/test_parser.nit:36,33--37,0 text='
+'
+Read token at ../src/test_parser.nit:37,3--12 text='only_lexer'
+Read token at ../src/test_parser.nit:37,14 text='='
+Read token at ../src/test_parser.nit:37,16--20 text='false'
+Read token at ../src/test_parser.nit:37,21--38,0 text='
+'
+Read token at ../src/test_parser.nit:38,2--5 text='else'
+Read token at ../src/test_parser.nit:38,7--8 text='if'
+Read token at ../src/test_parser.nit:38,10--13 text='args'
+Read token at ../src/test_parser.nit:38,14 text='.'
+Read token at ../src/test_parser.nit:38,15--19 text='first'
+Read token at ../src/test_parser.nit:38,21--22 text='=='
+Read token at ../src/test_parser.nit:38,24--27 text='"-x"'
+Read token at ../src/test_parser.nit:38,29--32 text='then'
+Read token at ../src/test_parser.nit:38,33--39,0 text='
+'
+Read token at ../src/test_parser.nit:39,3--5 text='xml'
+Read token at ../src/test_parser.nit:39,7 text='='
+Read token at ../src/test_parser.nit:39,9--12 text='true'
+Read token at ../src/test_parser.nit:39,13--40,0 text='
+'
+Read token at ../src/test_parser.nit:40,2--5 text='else'
+Read token at ../src/test_parser.nit:40,7--8 text='if'
+Read token at ../src/test_parser.nit:40,10--13 text='args'
+Read token at ../src/test_parser.nit:40,14 text='.'
+Read token at ../src/test_parser.nit:40,15--19 text='first'
+Read token at ../src/test_parser.nit:40,21--22 text='=='
+Read token at ../src/test_parser.nit:40,24--27 text='"-e"'
+Read token at ../src/test_parser.nit:40,29--32 text='then'
+Read token at ../src/test_parser.nit:40,33--41,0 text='
+'
+Read token at ../src/test_parser.nit:41,3--9 text='no_file'
+Read token at ../src/test_parser.nit:41,11 text='='
+Read token at ../src/test_parser.nit:41,13--16 text='true'
+Read token at ../src/test_parser.nit:41,17--42,0 text='
+'
+Read token at ../src/test_parser.nit:42,2--5 text='else'
+Read token at ../src/test_parser.nit:42,7--8 text='if'
+Read token at ../src/test_parser.nit:42,10--13 text='args'
+Read token at ../src/test_parser.nit:42,14 text='.'
+Read token at ../src/test_parser.nit:42,15--19 text='first'
+Read token at ../src/test_parser.nit:42,21--22 text='=='
+Read token at ../src/test_parser.nit:42,24--27 text='"-i"'
+Read token at ../src/test_parser.nit:42,29--32 text='then'
+Read token at ../src/test_parser.nit:42,33--43,0 text='
+'
+Read token at ../src/test_parser.nit:43,3--13 text='interactive'
 Read token at ../src/test_parser.nit:43,15 text='='
-Read token at ../src/test_parser.nit:43,17--21 text='false'
-Read token at ../src/test_parser.nit:43,22--44,0 text='
-'
-Read token at ../src/test_parser.nit:44,1--3 text='var'
-Read token at ../src/test_parser.nit:44,5--11 text='no_file'
-Read token at ../src/test_parser.nit:44,13 text='='
-Read token at ../src/test_parser.nit:44,15--19 text='false'
-Read token at ../src/test_parser.nit:44,20--45,0 text='
-'
-Read token at ../src/test_parser.nit:45,1--3 text='var'
-Read token at ../src/test_parser.nit:45,5--15 text='interactive'
-Read token at ../src/test_parser.nit:45,17 text='='
-Read token at ../src/test_parser.nit:45,19--23 text='false'
-Read token at ../src/test_parser.nit:45,24--46,0 text='
-'
-Read token at ../src/test_parser.nit:46,1--3 text='var'
-Read token at ../src/test_parser.nit:46,5--7 text='xml'
-Read token at ../src/test_parser.nit:46,9 text='='
-Read token at ../src/test_parser.nit:46,11--15 text='false'
-Read token at ../src/test_parser.nit:46,16--47,0 text='
-'
-Read token at ../src/test_parser.nit:47,1--48,0 text='
-'
-Read token at ../src/test_parser.nit:48,1--5 text='while'
-Read token at ../src/test_parser.nit:48,7--9 text='not'
-Read token at ../src/test_parser.nit:48,11--14 text='args'
-Read token at ../src/test_parser.nit:48,15 text='.'
-Read token at ../src/test_parser.nit:48,16--23 text='is_empty'
-Read token at ../src/test_parser.nit:48,25--27 text='and'
-Read token at ../src/test_parser.nit:48,29--32 text='args'
-Read token at ../src/test_parser.nit:48,33 text='.'
-Read token at ../src/test_parser.nit:48,34--38 text='first'
-Read token at ../src/test_parser.nit:48,39 text='.'
-Read token at ../src/test_parser.nit:48,40--44 text='chars'
-Read token at ../src/test_parser.nit:48,45 text='.'
-Read token at ../src/test_parser.nit:48,46--50 text='first'
-Read token at ../src/test_parser.nit:48,52--53 text='=='
-Read token at ../src/test_parser.nit:48,55--57 text=''-''
-Read token at ../src/test_parser.nit:48,59--60 text='do'
-Read token at ../src/test_parser.nit:48,61--49,0 text='
-'
-Read token at ../src/test_parser.nit:49,2--3 text='if'
-Read token at ../src/test_parser.nit:49,5--8 text='args'
-Read token at ../src/test_parser.nit:49,9 text='.'
-Read token at ../src/test_parser.nit:49,10--14 text='first'
-Read token at ../src/test_parser.nit:49,16--17 text='=='
-Read token at ../src/test_parser.nit:49,19--22 text='"-n"'
-Read token at ../src/test_parser.nit:49,24--27 text='then'
-Read token at ../src/test_parser.nit:49,28--50,0 text='
-'
-Read token at ../src/test_parser.nit:50,3--10 text='no_print'
-Read token at ../src/test_parser.nit:50,12 text='='
-Read token at ../src/test_parser.nit:50,14--17 text='true'
-Read token at ../src/test_parser.nit:50,18--51,0 text='
-'
-Read token at ../src/test_parser.nit:51,2--5 text='else'
-Read token at ../src/test_parser.nit:51,7--8 text='if'
-Read token at ../src/test_parser.nit:51,10--13 text='args'
-Read token at ../src/test_parser.nit:51,14 text='.'
-Read token at ../src/test_parser.nit:51,15--19 text='first'
-Read token at ../src/test_parser.nit:51,21--22 text='=='
-Read token at ../src/test_parser.nit:51,24--27 text='"-l"'
-Read token at ../src/test_parser.nit:51,29--32 text='then'
-Read token at ../src/test_parser.nit:51,33--52,0 text='
-'
-Read token at ../src/test_parser.nit:52,3--12 text='only_lexer'
-Read token at ../src/test_parser.nit:52,14 text='='
-Read token at ../src/test_parser.nit:52,16--19 text='true'
-Read token at ../src/test_parser.nit:52,20--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='"-p"'
-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--20 text='false'
-Read token at ../src/test_parser.nit:54,21--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='"-x"'
-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--5 text='xml'
-Read token at ../src/test_parser.nit:56,7 text='='
-Read token at ../src/test_parser.nit:56,9--12 text='true'
-Read token at ../src/test_parser.nit:56,13--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:43,17--20 text='true'
+Read token at ../src/test_parser.nit:43,21--44,0 text='
+'
+Read token at ../src/test_parser.nit:44,2--5 text='else'
+Read token at ../src/test_parser.nit:44,7--8 text='if'
+Read token at ../src/test_parser.nit:44,10--13 text='args'
+Read token at ../src/test_parser.nit:44,14 text='.'
+Read token at ../src/test_parser.nit:44,15--19 text='first'
+Read token at ../src/test_parser.nit:44,21--22 text='=='
+Read token at ../src/test_parser.nit:44,24--27 text='"-h"'
+Read token at ../src/test_parser.nit:44,29--30 text='or'
+Read token at ../src/test_parser.nit:44,32--35 text='args'
+Read token at ../src/test_parser.nit:44,36 text='.'
+Read token at ../src/test_parser.nit:44,37--41 text='first'
+Read token at ../src/test_parser.nit:44,43--44 text='=='
+Read token at ../src/test_parser.nit:44,46--49 text='"-?"'
+Read token at ../src/test_parser.nit:44,51--54 text='then'
+Read token at ../src/test_parser.nit:44,55--45,0 text='
+'
+Read token at ../src/test_parser.nit:45,3--11 text='need_help'
+Read token at ../src/test_parser.nit:45,13 text='='
+Read token at ../src/test_parser.nit:45,15--18 text='true'
+Read token at ../src/test_parser.nit:45,19--46,0 text='
+'
+Read token at ../src/test_parser.nit:46,2--5 text='else'
+Read token at ../src/test_parser.nit:46,6--47,0 text='
+'
+Read token at ../src/test_parser.nit:47,3--8 text='stderr'
+Read token at ../src/test_parser.nit:47,9 text='.'
+Read token at ../src/test_parser.nit:47,10--14 text='write'
+Read token at ../src/test_parser.nit:47,15 text='('
+Read token at ../src/test_parser.nit:47,16--32 text='"Unknown option {'
+Read token at ../src/test_parser.nit:47,33--36 text='args'
+Read token at ../src/test_parser.nit:47,37 text='.'
+Read token at ../src/test_parser.nit:47,38--42 text='first'
+Read token at ../src/test_parser.nit:47,43--47 text='}.\n"'
+Read token at ../src/test_parser.nit:47,48 text=')'
+Read token at ../src/test_parser.nit:47,49--48,0 text='
+'
+Read token at ../src/test_parser.nit:48,3--6 text='exit'
+Read token at ../src/test_parser.nit:48,7 text='('
+Read token at ../src/test_parser.nit:48,8 text='0'
+Read token at ../src/test_parser.nit:48,9 text=')'
+Read token at ../src/test_parser.nit:48,10--49,0 text='
+'
+Read token at ../src/test_parser.nit:49,2--4 text='end'
+Read token at ../src/test_parser.nit:49,5--50,0 text='
+'
+Read token at ../src/test_parser.nit:50,2--5 text='args'
+Read token at ../src/test_parser.nit:50,6 text='.'
+Read token at ../src/test_parser.nit:50,7--11 text='shift'
+Read token at ../src/test_parser.nit:50,12--51,0 text='
+'
+Read token at ../src/test_parser.nit:51,1--3 text='end'
+Read token at ../src/test_parser.nit:51,4--52,0 text='
+'
+Read token at ../src/test_parser.nit:52,1--53,0 text='
+'
+Read token at ../src/test_parser.nit:53,1--2 text='if'
+Read token at ../src/test_parser.nit:53,4 text='('
+Read token at ../src/test_parser.nit:53,5--8 text='args'
+Read token at ../src/test_parser.nit:53,9 text='.'
+Read token at ../src/test_parser.nit:53,10--17 text='is_empty'
+Read token at ../src/test_parser.nit:53,19--21 text='and'
+Read token at ../src/test_parser.nit:53,23--25 text='not'
+Read token at ../src/test_parser.nit:53,27--37 text='interactive'
+Read token at ../src/test_parser.nit:53,38 text=')'
+Read token at ../src/test_parser.nit:53,40--41 text='or'
+Read token at ../src/test_parser.nit:53,43--51 text='need_help'
+Read token at ../src/test_parser.nit:53,53--56 text='then'
+Read token at ../src/test_parser.nit:53,57--54,0 text='
+'
+Read token at ../src/test_parser.nit:54,2--6 text='print'
+Read token at ../src/test_parser.nit:54,7 text='('
+Read token at ../src/test_parser.nit:54,8--15 text='"usage:"'
+Read token at ../src/test_parser.nit:54,16 text=')'
+Read token at ../src/test_parser.nit:54,17--55,0 text='
+'
+Read token at ../src/test_parser.nit:55,2--6 text='print'
+Read token at ../src/test_parser.nit:55,7 text='('
+Read token at ../src/test_parser.nit:55,8--53 text='"  test_parser [options]... <filename.nit>..."'
+Read token at ../src/test_parser.nit:55,54 text=')'
+Read token at ../src/test_parser.nit:55,55--56,0 text='
+'
+Read token at ../src/test_parser.nit:56,2--6 text='print'
+Read token at ../src/test_parser.nit:56,7 text='('
+Read token at ../src/test_parser.nit:56,8--48 text='"  test_parser -e [options]... <text>..."'
+Read token at ../src/test_parser.nit:56,49 text=')'
+Read token at ../src/test_parser.nit:56,50--57,0 text='
+'
+Read token at ../src/test_parser.nit:57,2--6 text='print'
+Read token at ../src/test_parser.nit:57,7 text='('
+Read token at ../src/test_parser.nit:57,8--38 text='"  test_parser -i [options]..."'
+Read token at ../src/test_parser.nit:57,39 text=')'
+Read token at ../src/test_parser.nit:57,40--58,0 text='
+'
+Read token at ../src/test_parser.nit:58,2--6 text='print'
+Read token at ../src/test_parser.nit:58,7 text='('
+Read token at ../src/test_parser.nit:58,8--17 text='"options:"'
+Read token at ../src/test_parser.nit:58,18 text=')'
+Read token at ../src/test_parser.nit:58,19--59,0 text='
+'
+Read token at ../src/test_parser.nit:59,2--6 text='print'
+Read token at ../src/test_parser.nit:59,7 text='('
+Read token at ../src/test_parser.nit:59,8--35 text='"  -n      do not print anything"'
+Read token at ../src/test_parser.nit:59,36 text=')'
+Read token at ../src/test_parser.nit:59,37--60,0 text='
+'
+Read token at ../src/test_parser.nit:60,2--6 text='print'
+Read token at ../src/test_parser.nit:60,7 text='('
+Read token at ../src/test_parser.nit:60,8--24 text='"  -l      only lexer"'
+Read token at ../src/test_parser.nit:60,25 text=')'
+Read token at ../src/test_parser.nit:60,26--61,0 text='
+'
+Read token at ../src/test_parser.nit:61,2--6 text='print'
+Read token at ../src/test_parser.nit:61,7 text='('
+Read token at ../src/test_parser.nit:61,8--40 text='"  -p      lexer and parser (default)"'
+Read token at ../src/test_parser.nit:61,41 text=')'
+Read token at ../src/test_parser.nit:61,42--62,0 text='
+'
+Read token at ../src/test_parser.nit:62,2--6 text='print'
+Read token at ../src/test_parser.nit:62,7 text='('
+Read token at ../src/test_parser.nit:62,8--60 text='"  -x      instead of a ascii tree, output a XML document"'
+Read token at ../src/test_parser.nit:62,61 text=')'
+Read token at ../src/test_parser.nit:62,62--63,0 text='
+'
+Read token at ../src/test_parser.nit:63,2--6 text='print'
+Read token at ../src/test_parser.nit:63,7 text='('
+Read token at ../src/test_parser.nit:63,8--67 text='"  -e      instead on files, each argument is a content to parse"'
+Read token at ../src/test_parser.nit:63,68 text=')'
+Read token at ../src/test_parser.nit:63,69--64,0 text='
+'
+Read token at ../src/test_parser.nit:64,2--6 text='print'
+Read token at ../src/test_parser.nit:64,7 text='('
+Read token at ../src/test_parser.nit:64,8--50 text='"  -i      tree to parse are read interactively"'
+Read token at ../src/test_parser.nit:64,51 text=')'
+Read token at ../src/test_parser.nit:64,52--65,0 text='
+'
+Read token at ../src/test_parser.nit:65,2--6 text='print'
 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: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: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: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: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: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: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--60 text='"  -x      instead of a ascii tree, output a XML document"'
-Read token at ../src/test_parser.nit:79,61 text=')'
-Read token at ../src/test_parser.nit:79,62--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--67 text='"  -e      instead on files, each argument is a content to parse"'
-Read token at ../src/test_parser.nit:80,68 text=')'
-Read token at ../src/test_parser.nit:80,69--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--50 text='"  -i      tree to parse are read interactively"'
-Read token at ../src/test_parser.nit:81,51 text=')'
-Read token at ../src/test_parser.nit:81,52--82,0 text='
-'
-Read token at ../src/test_parser.nit:82,2--6 text='print'
-Read token at ../src/test_parser.nit:82,7 text='('
-Read token at ../src/test_parser.nit:82,8--29 text='"  -h      print this help"'
-Read token at ../src/test_parser.nit:82,30 text=')'
-Read token at ../src/test_parser.nit:82,31--83,0 text='
-'
-Read token at ../src/test_parser.nit:83,1--4 text='else'
-Read token at ../src/test_parser.nit:83,6--7 text='if'
-Read token at ../src/test_parser.nit:83,9--19 text='interactive'
-Read token at ../src/test_parser.nit:83,21--24 text='then'
-Read token at ../src/test_parser.nit:83,25--84,0 text='
-'
-Read token at ../src/test_parser.nit:84,2--3 text='if'
-Read token at ../src/test_parser.nit:84,5--14 text='only_lexer'
-Read token at ../src/test_parser.nit:84,16--19 text='then'
-Read token at ../src/test_parser.nit:84,20--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: -l and -i are incompatible"'
-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--5 text='else'
-Read token at ../src/test_parser.nit:87,7--8 text='if'
-Read token at ../src/test_parser.nit:87,10--16 text='no_file'
-Read token at ../src/test_parser.nit:87,18--21 text='then'
-Read token at ../src/test_parser.nit:87,22--88,0 text='
-'
-Read token at ../src/test_parser.nit:88,3--7 text='print'
-Read token at ../src/test_parser.nit:88,9--43 text='"Error: -e and -i are incompatible"'
-Read token at ../src/test_parser.nit:88,44--89,0 text='
-'
-Read token at ../src/test_parser.nit:89,3--6 text='exit'
-Read token at ../src/test_parser.nit:89,8 text='1'
-Read token at ../src/test_parser.nit:89,9--90,0 text='
-'
-Read token at ../src/test_parser.nit:90,2--5 text='else'
-Read token at ../src/test_parser.nit:90,7--8 text='if'
-Read token at ../src/test_parser.nit:90,10--12 text='not'
-Read token at ../src/test_parser.nit:90,14--17 text='args'
-Read token at ../src/test_parser.nit:90,18 text='.'
-Read token at ../src/test_parser.nit:90,19--26 text='is_empty'
-Read token at ../src/test_parser.nit:90,28--31 text='then'
-Read token at ../src/test_parser.nit:90,32--91,0 text='
-'
-Read token at ../src/test_parser.nit:91,3--7 text='print'
-Read token at ../src/test_parser.nit:91,9--43 text='"Error: -i works without arguments"'
-Read token at ../src/test_parser.nit:91,44--92,0 text='
-'
-Read token at ../src/test_parser.nit:92,3--6 text='exit'
-Read token at ../src/test_parser.nit:92,8 text='1'
-Read token at ../src/test_parser.nit:92,9--93,0 text='
-'
-Read token at ../src/test_parser.nit:93,2--4 text='end'
-Read token at ../src/test_parser.nit:93,5--94,0 text='
-'
-Read token at ../src/test_parser.nit:94,1--95,0 text='
-'
-Read token at ../src/test_parser.nit:95,2--4 text='var'
-Read token at ../src/test_parser.nit:95,6--7 text='tc'
-Read token at ../src/test_parser.nit:95,9 text='='
-Read token at ../src/test_parser.nit:95,11--13 text='new'
-Read token at ../src/test_parser.nit:95,15--25 text='ToolContext'
-Read token at ../src/test_parser.nit:95,26--96,0 text='
+Read token at ../src/test_parser.nit:65,8--29 text='"  -h      print this help"'
+Read token at ../src/test_parser.nit:65,30 text=')'
+Read token at ../src/test_parser.nit:65,31--66,0 text='
+'
+Read token at ../src/test_parser.nit:66,1--4 text='else'
+Read token at ../src/test_parser.nit:66,6--7 text='if'
+Read token at ../src/test_parser.nit:66,9--19 text='interactive'
+Read token at ../src/test_parser.nit:66,21--24 text='then'
+Read token at ../src/test_parser.nit:66,25--67,0 text='
+'
+Read token at ../src/test_parser.nit:67,2--3 text='if'
+Read token at ../src/test_parser.nit:67,5--14 text='only_lexer'
+Read token at ../src/test_parser.nit:67,16--19 text='then'
+Read token at ../src/test_parser.nit:67,20--68,0 text='
+'
+Read token at ../src/test_parser.nit:68,3--7 text='print'
+Read token at ../src/test_parser.nit:68,9--43 text='"Error: -l and -i are incompatible"'
+Read token at ../src/test_parser.nit:68,44--69,0 text='
+'
+Read token at ../src/test_parser.nit:69,3--6 text='exit'
+Read token at ../src/test_parser.nit:69,8 text='1'
+Read token at ../src/test_parser.nit:69,9--70,0 text='
+'
+Read token at ../src/test_parser.nit:70,2--5 text='else'
+Read token at ../src/test_parser.nit:70,7--8 text='if'
+Read token at ../src/test_parser.nit:70,10--16 text='no_file'
+Read token at ../src/test_parser.nit:70,18--21 text='then'
+Read token at ../src/test_parser.nit:70,22--71,0 text='
+'
+Read token at ../src/test_parser.nit:71,3--7 text='print'
+Read token at ../src/test_parser.nit:71,9--43 text='"Error: -e and -i are incompatible"'
+Read token at ../src/test_parser.nit:71,44--72,0 text='
+'
+Read token at ../src/test_parser.nit:72,3--6 text='exit'
+Read token at ../src/test_parser.nit:72,8 text='1'
+Read token at ../src/test_parser.nit:72,9--73,0 text='
+'
+Read token at ../src/test_parser.nit:73,2--5 text='else'
+Read token at ../src/test_parser.nit:73,7--8 text='if'
+Read token at ../src/test_parser.nit:73,10--12 text='not'
+Read token at ../src/test_parser.nit:73,14--17 text='args'
+Read token at ../src/test_parser.nit:73,18 text='.'
+Read token at ../src/test_parser.nit:73,19--26 text='is_empty'
+Read token at ../src/test_parser.nit:73,28--31 text='then'
+Read token at ../src/test_parser.nit:73,32--74,0 text='
+'
+Read token at ../src/test_parser.nit:74,3--7 text='print'
+Read token at ../src/test_parser.nit:74,9--43 text='"Error: -i works without arguments"'
+Read token at ../src/test_parser.nit:74,44--75,0 text='
+'
+Read token at ../src/test_parser.nit:75,3--6 text='exit'
+Read token at ../src/test_parser.nit:75,8 text='1'
+Read token at ../src/test_parser.nit:75,9--76,0 text='
+'
+Read token at ../src/test_parser.nit:76,2--4 text='end'
+Read token at ../src/test_parser.nit:76,5--77,0 text='
+'
+Read token at ../src/test_parser.nit:77,1--78,0 text='
+'
+Read token at ../src/test_parser.nit:78,2--4 text='var'
+Read token at ../src/test_parser.nit:78,6--7 text='tc'
+Read token at ../src/test_parser.nit:78,9 text='='
+Read token at ../src/test_parser.nit:78,11--13 text='new'
+Read token at ../src/test_parser.nit:78,15--25 text='ToolContext'
+Read token at ../src/test_parser.nit:78,26--79,0 text='
+'
+Read token at ../src/test_parser.nit:79,1--80,0 text='
+'
+Read token at ../src/test_parser.nit:80,2--5 text='loop'
+Read token at ../src/test_parser.nit:80,6--81,0 text='
+'
+Read token at ../src/test_parser.nit:81,3--5 text='var'
+Read token at ../src/test_parser.nit:81,7 text='n'
+Read token at ../src/test_parser.nit:81,9 text='='
+Read token at ../src/test_parser.nit:81,11--12 text='tc'
+Read token at ../src/test_parser.nit:81,13 text='.'
+Read token at ../src/test_parser.nit:81,14--30 text='interactive_parse'
+Read token at ../src/test_parser.nit:81,31 text='('
+Read token at ../src/test_parser.nit:81,32--36 text='"-->"'
+Read token at ../src/test_parser.nit:81,37 text=')'
+Read token at ../src/test_parser.nit:81,38--82,0 text='
+'
+Read token at ../src/test_parser.nit:82,3--4 text='if'
+Read token at ../src/test_parser.nit:82,6 text='n'
+Read token at ../src/test_parser.nit:82,8--10 text='isa'
+Read token at ../src/test_parser.nit:82,12--18 text='TString'
+Read token at ../src/test_parser.nit:82,20--23 text='then'
+Read token at ../src/test_parser.nit:82,24--83,0 text='
+'
+Read token at ../src/test_parser.nit:83,4--6 text='var'
+Read token at ../src/test_parser.nit:83,8 text='s'
+Read token at ../src/test_parser.nit:83,10 text='='
+Read token at ../src/test_parser.nit:83,12 text='n'
+Read token at ../src/test_parser.nit:83,13 text='.'
+Read token at ../src/test_parser.nit:83,14--17 text='text'
+Read token at ../src/test_parser.nit:83,18--84,0 text='
+'
+Read token at ../src/test_parser.nit:84,4--5 text='if'
+Read token at ../src/test_parser.nit:84,7 text='s'
+Read token at ../src/test_parser.nit:84,9--10 text='=='
+Read token at ../src/test_parser.nit:84,12--15 text='":q"'
+Read token at ../src/test_parser.nit:84,17--20 text='then'
+Read token at ../src/test_parser.nit:84,21--85,0 text='
+'
+Read token at ../src/test_parser.nit:85,5--9 text='break'
+Read token at ../src/test_parser.nit:85,10--86,0 text='
+'
+Read token at ../src/test_parser.nit:86,4--7 text='else'
+Read token at ../src/test_parser.nit:86,8--87,0 text='
+'
+Read token at ../src/test_parser.nit:87,5--9 text='print'
+Read token at ../src/test_parser.nit:87,11--24 text='"`:q` to quit"'
+Read token at ../src/test_parser.nit:87,25--88,0 text='
+'
+Read token at ../src/test_parser.nit:88,4--6 text='end'
+Read token at ../src/test_parser.nit:88,7--89,0 text='
+'
+Read token at ../src/test_parser.nit:89,4--11 text='continue'
+Read token at ../src/test_parser.nit:89,12--90,0 text='
+'
+Read token at ../src/test_parser.nit:90,3--5 text='end'
+Read token at ../src/test_parser.nit:90,6--91,0 text='
+'
+Read token at ../src/test_parser.nit:91,1--92,0 text='
+'
+Read token at ../src/test_parser.nit:92,3--4 text='if'
+Read token at ../src/test_parser.nit:92,6 text='n'
+Read token at ../src/test_parser.nit:92,8--10 text='isa'
+Read token at ../src/test_parser.nit:92,12--17 text='AError'
+Read token at ../src/test_parser.nit:92,19--22 text='then'
+Read token at ../src/test_parser.nit:92,23--93,0 text='
+'
+Read token at ../src/test_parser.nit:93,4--8 text='print'
+Read token at ../src/test_parser.nit:93,10--11 text='"{'
+Read token at ../src/test_parser.nit:93,12 text='n'
+Read token at ../src/test_parser.nit:93,13 text='.'
+Read token at ../src/test_parser.nit:93,14--21 text='location'
+Read token at ../src/test_parser.nit:93,22 text='.'
+Read token at ../src/test_parser.nit:93,23--34 text='colored_line'
+Read token at ../src/test_parser.nit:93,35 text='('
+Read token at ../src/test_parser.nit:93,36--41 text='"0;31"'
+Read token at ../src/test_parser.nit:93,42 text=')'
+Read token at ../src/test_parser.nit:93,43--46 text='}: {'
+Read token at ../src/test_parser.nit:93,47 text='n'
+Read token at ../src/test_parser.nit:93,48 text='.'
+Read token at ../src/test_parser.nit:93,49--55 text='message'
+Read token at ../src/test_parser.nit:93,56--57 text='}"'
+Read token at ../src/test_parser.nit:93,58--94,0 text='
+'
+Read token at ../src/test_parser.nit:94,4--11 text='continue'
+Read token at ../src/test_parser.nit:94,12--95,0 text='
+'
+Read token at ../src/test_parser.nit:95,3--5 text='end'
+Read token at ../src/test_parser.nit:95,6--96,0 text='
 '
 Read token at ../src/test_parser.nit:96,1--97,0 text='
 '
-Read token at ../src/test_parser.nit:97,2--5 text='loop'
-Read token at ../src/test_parser.nit:97,6--98,0 text='
-'
-Read token at ../src/test_parser.nit:98,3--5 text='var'
-Read token at ../src/test_parser.nit:98,7 text='n'
-Read token at ../src/test_parser.nit:98,9 text='='
-Read token at ../src/test_parser.nit:98,11--12 text='tc'
-Read token at ../src/test_parser.nit:98,13 text='.'
-Read token at ../src/test_parser.nit:98,14--30 text='interactive_parse'
-Read token at ../src/test_parser.nit:98,31 text='('
-Read token at ../src/test_parser.nit:98,32--36 text='"-->"'
-Read token at ../src/test_parser.nit:98,37 text=')'
-Read token at ../src/test_parser.nit:98,38--99,0 text='
-'
-Read token at ../src/test_parser.nit:99,3--4 text='if'
-Read token at ../src/test_parser.nit:99,6 text='n'
-Read token at ../src/test_parser.nit:99,8--10 text='isa'
-Read token at ../src/test_parser.nit:99,12--18 text='TString'
-Read token at ../src/test_parser.nit:99,20--23 text='then'
-Read token at ../src/test_parser.nit:99,24--100,0 text='
-'
-Read token at ../src/test_parser.nit:100,4--6 text='var'
-Read token at ../src/test_parser.nit:100,8 text='s'
-Read token at ../src/test_parser.nit:100,10 text='='
-Read token at ../src/test_parser.nit:100,12 text='n'
-Read token at ../src/test_parser.nit:100,13 text='.'
-Read token at ../src/test_parser.nit:100,14--17 text='text'
-Read token at ../src/test_parser.nit:100,18--101,0 text='
-'
-Read token at ../src/test_parser.nit:101,4--5 text='if'
-Read token at ../src/test_parser.nit:101,7 text='s'
-Read token at ../src/test_parser.nit:101,9--10 text='=='
-Read token at ../src/test_parser.nit:101,12--15 text='":q"'
-Read token at ../src/test_parser.nit:101,17--20 text='then'
-Read token at ../src/test_parser.nit:101,21--102,0 text='
-'
-Read token at ../src/test_parser.nit:102,5--9 text='break'
-Read token at ../src/test_parser.nit:102,10--103,0 text='
-'
-Read token at ../src/test_parser.nit:103,4--7 text='else'
-Read token at ../src/test_parser.nit:103,8--104,0 text='
-'
-Read token at ../src/test_parser.nit:104,5--9 text='print'
-Read token at ../src/test_parser.nit:104,11--24 text='"`:q` to quit"'
-Read token at ../src/test_parser.nit:104,25--105,0 text='
-'
-Read token at ../src/test_parser.nit:105,4--6 text='end'
-Read token at ../src/test_parser.nit:105,7--106,0 text='
-'
-Read token at ../src/test_parser.nit:106,4--11 text='continue'
-Read token at ../src/test_parser.nit:106,12--107,0 text='
-'
-Read token at ../src/test_parser.nit:107,3--5 text='end'
-Read token at ../src/test_parser.nit:107,6--108,0 text='
-'
-Read token at ../src/test_parser.nit:108,1--109,0 text='
-'
-Read token at ../src/test_parser.nit:109,3--4 text='if'
-Read token at ../src/test_parser.nit:109,6 text='n'
-Read token at ../src/test_parser.nit:109,8--10 text='isa'
-Read token at ../src/test_parser.nit:109,12--17 text='AError'
-Read token at ../src/test_parser.nit:109,19--22 text='then'
-Read token at ../src/test_parser.nit:109,23--110,0 text='
-'
-Read token at ../src/test_parser.nit:110,4--8 text='print'
-Read token at ../src/test_parser.nit:110,10--11 text='"{'
-Read token at ../src/test_parser.nit:110,12 text='n'
-Read token at ../src/test_parser.nit:110,13 text='.'
-Read token at ../src/test_parser.nit:110,14--21 text='location'
-Read token at ../src/test_parser.nit:110,22 text='.'
-Read token at ../src/test_parser.nit:110,23--34 text='colored_line'
-Read token at ../src/test_parser.nit:110,35 text='('
-Read token at ../src/test_parser.nit:110,36--41 text='"0;31"'
-Read token at ../src/test_parser.nit:110,42 text=')'
-Read token at ../src/test_parser.nit:110,43--46 text='}: {'
-Read token at ../src/test_parser.nit:110,47 text='n'
-Read token at ../src/test_parser.nit:110,48 text='.'
-Read token at ../src/test_parser.nit:110,49--55 text='message'
-Read token at ../src/test_parser.nit:110,56--57 text='}"'
-Read token at ../src/test_parser.nit:110,58--111,0 text='
-'
-Read token at ../src/test_parser.nit:111,4--11 text='continue'
-Read token at ../src/test_parser.nit:111,12--112,0 text='
-'
-Read token at ../src/test_parser.nit:112,3--5 text='end'
-Read token at ../src/test_parser.nit:112,6--113,0 text='
-'
-Read token at ../src/test_parser.nit:113,1--114,0 text='
-'
-Read token at ../src/test_parser.nit:114,3--4 text='if'
-Read token at ../src/test_parser.nit:114,6--8 text='not'
-Read token at ../src/test_parser.nit:114,10--17 text='no_print'
-Read token at ../src/test_parser.nit:114,19--22 text='then'
-Read token at ../src/test_parser.nit:114,23--115,0 text='
-'
-Read token at ../src/test_parser.nit:115,4 text='('
-Read token at ../src/test_parser.nit:115,5--7 text='new'
-Read token at ../src/test_parser.nit:115,9--24 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:115,25 text=')'
-Read token at ../src/test_parser.nit:115,26 text='.'
-Read token at ../src/test_parser.nit:115,27--37 text='enter_visit'
-Read token at ../src/test_parser.nit:115,38 text='('
-Read token at ../src/test_parser.nit:115,39 text='n'
-Read token at ../src/test_parser.nit:115,40 text=')'
-Read token at ../src/test_parser.nit:115,41--116,0 text='
-'
-Read token at ../src/test_parser.nit:116,3--5 text='end'
-Read token at ../src/test_parser.nit:116,6--117,0 text='
-'
-Read token at ../src/test_parser.nit:117,2--4 text='end'
-Read token at ../src/test_parser.nit:117,5--118,0 text='
-'
-Read token at ../src/test_parser.nit:118,1--4 text='else'
-Read token at ../src/test_parser.nit:118,5--119,0 text='
-'
-Read token at ../src/test_parser.nit:119,2--4 text='for'
-Read token at ../src/test_parser.nit:119,6 text='a'
-Read token at ../src/test_parser.nit:119,8--9 text='in'
-Read token at ../src/test_parser.nit:119,11--14 text='args'
-Read token at ../src/test_parser.nit:119,16--17 text='do'
-Read token at ../src/test_parser.nit:119,18--120,0 text='
-'
-Read token at ../src/test_parser.nit:120,3--5 text='var'
-Read token at ../src/test_parser.nit:120,7--12 text='source'
-Read token at ../src/test_parser.nit:120,13--121,0 text='
-'
-Read token at ../src/test_parser.nit:121,3--4 text='if'
-Read token at ../src/test_parser.nit:121,6--12 text='no_file'
-Read token at ../src/test_parser.nit:121,14--17 text='then'
-Read token at ../src/test_parser.nit:121,18--122,0 text='
-'
-Read token at ../src/test_parser.nit:122,4--9 text='source'
-Read token at ../src/test_parser.nit:122,11 text='='
-Read token at ../src/test_parser.nit:122,13--15 text='new'
-Read token at ../src/test_parser.nit:122,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:122,27 text='.'
-Read token at ../src/test_parser.nit:122,28--38 text='from_string'
-Read token at ../src/test_parser.nit:122,39 text='('
-Read token at ../src/test_parser.nit:122,40--41 text='""'
-Read token at ../src/test_parser.nit:122,42 text=','
-Read token at ../src/test_parser.nit:122,44 text='a'
-Read token at ../src/test_parser.nit:122,45 text=')'
-Read token at ../src/test_parser.nit:122,46--123,0 text='
-'
-Read token at ../src/test_parser.nit:123,3--6 text='else'
-Read token at ../src/test_parser.nit:123,7--124,0 text='
+Read token at ../src/test_parser.nit:97,3--4 text='if'
+Read token at ../src/test_parser.nit:97,6--8 text='not'
+Read token at ../src/test_parser.nit:97,10--17 text='no_print'
+Read token at ../src/test_parser.nit:97,19--22 text='then'
+Read token at ../src/test_parser.nit:97,23--98,0 text='
+'
+Read token at ../src/test_parser.nit:98,4 text='n'
+Read token at ../src/test_parser.nit:98,5 text='.'
+Read token at ../src/test_parser.nit:98,6--14 text='dump_tree'
+Read token at ../src/test_parser.nit:98,15--99,0 text='
+'
+Read token at ../src/test_parser.nit:99,3--5 text='end'
+Read token at ../src/test_parser.nit:99,6--100,0 text='
+'
+Read token at ../src/test_parser.nit:100,2--4 text='end'
+Read token at ../src/test_parser.nit:100,5--101,0 text='
+'
+Read token at ../src/test_parser.nit:101,1--4 text='else'
+Read token at ../src/test_parser.nit:101,5--102,0 text='
+'
+Read token at ../src/test_parser.nit:102,2--4 text='for'
+Read token at ../src/test_parser.nit:102,6 text='a'
+Read token at ../src/test_parser.nit:102,8--9 text='in'
+Read token at ../src/test_parser.nit:102,11--14 text='args'
+Read token at ../src/test_parser.nit:102,16--17 text='do'
+Read token at ../src/test_parser.nit:102,18--103,0 text='
+'
+Read token at ../src/test_parser.nit:103,3--5 text='var'
+Read token at ../src/test_parser.nit:103,7--12 text='source'
+Read token at ../src/test_parser.nit:103,13--104,0 text='
+'
+Read token at ../src/test_parser.nit:104,3--4 text='if'
+Read token at ../src/test_parser.nit:104,6--12 text='no_file'
+Read token at ../src/test_parser.nit:104,14--17 text='then'
+Read token at ../src/test_parser.nit:104,18--105,0 text='
+'
+Read token at ../src/test_parser.nit:105,4--9 text='source'
+Read token at ../src/test_parser.nit:105,11 text='='
+Read token at ../src/test_parser.nit:105,13--15 text='new'
+Read token at ../src/test_parser.nit:105,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:105,27 text='.'
+Read token at ../src/test_parser.nit:105,28--38 text='from_string'
+Read token at ../src/test_parser.nit:105,39 text='('
+Read token at ../src/test_parser.nit:105,40--41 text='""'
+Read token at ../src/test_parser.nit:105,42 text=','
+Read token at ../src/test_parser.nit:105,44 text='a'
+Read token at ../src/test_parser.nit:105,45 text=')'
+Read token at ../src/test_parser.nit:105,46--106,0 text='
+'
+Read token at ../src/test_parser.nit:106,3--6 text='else'
+Read token at ../src/test_parser.nit:106,7--107,0 text='
+'
+Read token at ../src/test_parser.nit:107,4--6 text='var'
+Read token at ../src/test_parser.nit:107,8 text='f'
+Read token at ../src/test_parser.nit:107,10 text='='
+Read token at ../src/test_parser.nit:107,12--14 text='new'
+Read token at ../src/test_parser.nit:107,16--25 text='FileReader'
+Read token at ../src/test_parser.nit:107,26 text='.'
+Read token at ../src/test_parser.nit:107,27--30 text='open'
+Read token at ../src/test_parser.nit:107,31 text='('
+Read token at ../src/test_parser.nit:107,32 text='a'
+Read token at ../src/test_parser.nit:107,33 text=')'
+Read token at ../src/test_parser.nit:107,34--108,0 text='
+'
+Read token at ../src/test_parser.nit:108,4--9 text='source'
+Read token at ../src/test_parser.nit:108,11 text='='
+Read token at ../src/test_parser.nit:108,13--15 text='new'
+Read token at ../src/test_parser.nit:108,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:108,27 text='('
+Read token at ../src/test_parser.nit:108,28 text='a'
+Read token at ../src/test_parser.nit:108,29 text=','
+Read token at ../src/test_parser.nit:108,31 text='f'
+Read token at ../src/test_parser.nit:108,32 text=')'
+Read token at ../src/test_parser.nit:108,33--109,0 text='
+'
+Read token at ../src/test_parser.nit:109,4 text='f'
+Read token at ../src/test_parser.nit:109,5 text='.'
+Read token at ../src/test_parser.nit:109,6--10 text='close'
+Read token at ../src/test_parser.nit:109,11--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,3--5 text='var'
+Read token at ../src/test_parser.nit:111,7--11 text='lexer'
+Read token at ../src/test_parser.nit:111,13 text='='
+Read token at ../src/test_parser.nit:111,15--17 text='new'
+Read token at ../src/test_parser.nit:111,19--23 text='Lexer'
+Read token at ../src/test_parser.nit:111,24 text='('
+Read token at ../src/test_parser.nit:111,25--30 text='source'
+Read token at ../src/test_parser.nit:111,31 text=')'
+Read token at ../src/test_parser.nit:111,32--112,0 text='
+'
+Read token at ../src/test_parser.nit:112,3--4 text='if'
+Read token at ../src/test_parser.nit:112,6--15 text='only_lexer'
+Read token at ../src/test_parser.nit:112,17--20 text='then'
+Read token at ../src/test_parser.nit:112,21--113,0 text='
+'
+Read token at ../src/test_parser.nit:113,4--6 text='var'
+Read token at ../src/test_parser.nit:113,8--12 text='token'
+Read token at ../src/test_parser.nit:113,14 text='='
+Read token at ../src/test_parser.nit:113,16--20 text='lexer'
+Read token at ../src/test_parser.nit:113,21 text='.'
+Read token at ../src/test_parser.nit:113,22--25 text='next'
+Read token at ../src/test_parser.nit:113,26--114,0 text='
+'
+Read token at ../src/test_parser.nit:114,4--8 text='while'
+Read token at ../src/test_parser.nit:114,10--12 text='not'
+Read token at ../src/test_parser.nit:114,14--18 text='token'
+Read token at ../src/test_parser.nit:114,20--22 text='isa'
+Read token at ../src/test_parser.nit:114,24--26 text='EOF'
+Read token at ../src/test_parser.nit:114,28--29 text='do'
+Read token at ../src/test_parser.nit:114,30--115,0 text='
+'
+Read token at ../src/test_parser.nit:115,5--6 text='if'
+Read token at ../src/test_parser.nit:115,8--10 text='not'
+Read token at ../src/test_parser.nit:115,12--19 text='no_print'
+Read token at ../src/test_parser.nit:115,21--24 text='then'
+Read token at ../src/test_parser.nit:115,25--116,0 text='
+'
+Read token at ../src/test_parser.nit:116,6--10 text='print'
+Read token at ../src/test_parser.nit:116,11 text='('
+Read token at ../src/test_parser.nit:116,12--27 text='"Read token at {'
+Read token at ../src/test_parser.nit:116,28--32 text='token'
+Read token at ../src/test_parser.nit:116,33 text='.'
+Read token at ../src/test_parser.nit:116,34--41 text='location'
+Read token at ../src/test_parser.nit:116,42--50 text='} text='{'
+Read token at ../src/test_parser.nit:116,51--55 text='token'
+Read token at ../src/test_parser.nit:116,56 text='.'
+Read token at ../src/test_parser.nit:116,57--60 text='text'
+Read token at ../src/test_parser.nit:116,61--63 text='}'"'
+Read token at ../src/test_parser.nit:116,64 text=')'
+Read token at ../src/test_parser.nit:116,65--117,0 text='
+'
+Read token at ../src/test_parser.nit:117,5--7 text='end'
+Read token at ../src/test_parser.nit:117,8--118,0 text='
+'
+Read token at ../src/test_parser.nit:118,5--9 text='token'
+Read token at ../src/test_parser.nit:118,11 text='='
+Read token at ../src/test_parser.nit:118,13--17 text='lexer'
+Read token at ../src/test_parser.nit:118,18 text='.'
+Read token at ../src/test_parser.nit:118,19--22 text='next'
+Read token at ../src/test_parser.nit:118,23--119,0 text='
+'
+Read token at ../src/test_parser.nit:119,4--6 text='end'
+Read token at ../src/test_parser.nit:119,7--120,0 text='
+'
+Read token at ../src/test_parser.nit:120,3--6 text='else'
+Read token at ../src/test_parser.nit:120,7--121,0 text='
+'
+Read token at ../src/test_parser.nit:121,4--6 text='var'
+Read token at ../src/test_parser.nit:121,8--13 text='parser'
+Read token at ../src/test_parser.nit:121,15 text='='
+Read token at ../src/test_parser.nit:121,17--19 text='new'
+Read token at ../src/test_parser.nit:121,21--26 text='Parser'
+Read token at ../src/test_parser.nit:121,27 text='('
+Read token at ../src/test_parser.nit:121,28--32 text='lexer'
+Read token at ../src/test_parser.nit:121,33 text=')'
+Read token at ../src/test_parser.nit:121,34--122,0 text='
+'
+Read token at ../src/test_parser.nit:122,4--6 text='var'
+Read token at ../src/test_parser.nit:122,8--11 text='tree'
+Read token at ../src/test_parser.nit:122,13 text='='
+Read token at ../src/test_parser.nit:122,15--20 text='parser'
+Read token at ../src/test_parser.nit:122,21 text='.'
+Read token at ../src/test_parser.nit:122,22--26 text='parse'
+Read token at ../src/test_parser.nit:122,27--123,0 text='
+'
+Read token at ../src/test_parser.nit:123,1--124,0 text='
 '
 Read token at ../src/test_parser.nit:124,4--6 text='var'
-Read token at ../src/test_parser.nit:124,8 text='f'
-Read token at ../src/test_parser.nit:124,10 text='='
-Read token at ../src/test_parser.nit:124,12--14 text='new'
-Read token at ../src/test_parser.nit:124,16--25 text='FileReader'
-Read token at ../src/test_parser.nit:124,26 text='.'
-Read token at ../src/test_parser.nit:124,27--30 text='open'
-Read token at ../src/test_parser.nit:124,31 text='('
-Read token at ../src/test_parser.nit:124,32 text='a'
-Read token at ../src/test_parser.nit:124,33 text=')'
-Read token at ../src/test_parser.nit:124,34--125,0 text='
-'
-Read token at ../src/test_parser.nit:125,4--9 text='source'
-Read token at ../src/test_parser.nit:125,11 text='='
-Read token at ../src/test_parser.nit:125,13--15 text='new'
-Read token at ../src/test_parser.nit:125,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:125,27 text='('
-Read token at ../src/test_parser.nit:125,28 text='a'
-Read token at ../src/test_parser.nit:125,29 text=','
-Read token at ../src/test_parser.nit:125,31 text='f'
-Read token at ../src/test_parser.nit:125,32 text=')'
-Read token at ../src/test_parser.nit:125,33--126,0 text='
-'
-Read token at ../src/test_parser.nit:126,4 text='f'
-Read token at ../src/test_parser.nit:126,5 text='.'
-Read token at ../src/test_parser.nit:126,6--10 text='close'
-Read token at ../src/test_parser.nit:126,11--127,0 text='
-'
-Read token at ../src/test_parser.nit:127,3--5 text='end'
-Read token at ../src/test_parser.nit:127,6--128,0 text='
-'
-Read token at ../src/test_parser.nit:128,3--5 text='var'
-Read token at ../src/test_parser.nit:128,7--11 text='lexer'
-Read token at ../src/test_parser.nit:128,13 text='='
-Read token at ../src/test_parser.nit:128,15--17 text='new'
-Read token at ../src/test_parser.nit:128,19--23 text='Lexer'
-Read token at ../src/test_parser.nit:128,24 text='('
-Read token at ../src/test_parser.nit:128,25--30 text='source'
-Read token at ../src/test_parser.nit:128,31 text=')'
-Read token at ../src/test_parser.nit:128,32--129,0 text='
-'
-Read token at ../src/test_parser.nit:129,3--4 text='if'
-Read token at ../src/test_parser.nit:129,6--15 text='only_lexer'
-Read token at ../src/test_parser.nit:129,17--20 text='then'
-Read token at ../src/test_parser.nit:129,21--130,0 text='
-'
-Read token at ../src/test_parser.nit:130,4--6 text='var'
-Read token at ../src/test_parser.nit:130,8--12 text='token'
-Read token at ../src/test_parser.nit:130,14 text='='
-Read token at ../src/test_parser.nit:130,16--20 text='lexer'
-Read token at ../src/test_parser.nit:130,21 text='.'
-Read token at ../src/test_parser.nit:130,22--25 text='next'
-Read token at ../src/test_parser.nit:130,26--131,0 text='
-'
-Read token at ../src/test_parser.nit:131,4--8 text='while'
-Read token at ../src/test_parser.nit:131,10--12 text='not'
-Read token at ../src/test_parser.nit:131,14--18 text='token'
-Read token at ../src/test_parser.nit:131,20--22 text='isa'
-Read token at ../src/test_parser.nit:131,24--26 text='EOF'
-Read token at ../src/test_parser.nit:131,28--29 text='do'
-Read token at ../src/test_parser.nit:131,30--132,0 text='
-'
-Read token at ../src/test_parser.nit:132,5--6 text='if'
-Read token at ../src/test_parser.nit:132,8--10 text='not'
-Read token at ../src/test_parser.nit:132,12--19 text='no_print'
-Read token at ../src/test_parser.nit:132,21--24 text='then'
-Read token at ../src/test_parser.nit:132,25--133,0 text='
-'
-Read token at ../src/test_parser.nit:133,6--10 text='print'
-Read token at ../src/test_parser.nit:133,11 text='('
-Read token at ../src/test_parser.nit:133,12--27 text='"Read token at {'
-Read token at ../src/test_parser.nit:133,28--32 text='token'
-Read token at ../src/test_parser.nit:133,33 text='.'
-Read token at ../src/test_parser.nit:133,34--41 text='location'
-Read token at ../src/test_parser.nit:133,42--50 text='} text='{'
-Read token at ../src/test_parser.nit:133,51--55 text='token'
-Read token at ../src/test_parser.nit:133,56 text='.'
-Read token at ../src/test_parser.nit:133,57--60 text='text'
-Read token at ../src/test_parser.nit:133,61--63 text='}'"'
-Read token at ../src/test_parser.nit:133,64 text=')'
-Read token at ../src/test_parser.nit:133,65--134,0 text='
-'
-Read token at ../src/test_parser.nit:134,5--7 text='end'
-Read token at ../src/test_parser.nit:134,8--135,0 text='
-'
-Read token at ../src/test_parser.nit:135,5--9 text='token'
-Read token at ../src/test_parser.nit:135,11 text='='
-Read token at ../src/test_parser.nit:135,13--17 text='lexer'
-Read token at ../src/test_parser.nit:135,18 text='.'
-Read token at ../src/test_parser.nit:135,19--22 text='next'
-Read token at ../src/test_parser.nit:135,23--136,0 text='
-'
-Read token at ../src/test_parser.nit:136,4--6 text='end'
-Read token at ../src/test_parser.nit:136,7--137,0 text='
-'
-Read token at ../src/test_parser.nit:137,3--6 text='else'
-Read token at ../src/test_parser.nit:137,7--138,0 text='
-'
-Read token at ../src/test_parser.nit:138,4--6 text='var'
-Read token at ../src/test_parser.nit:138,8--13 text='parser'
-Read token at ../src/test_parser.nit:138,15 text='='
-Read token at ../src/test_parser.nit:138,17--19 text='new'
-Read token at ../src/test_parser.nit:138,21--26 text='Parser'
-Read token at ../src/test_parser.nit:138,27 text='('
-Read token at ../src/test_parser.nit:138,28--32 text='lexer'
-Read token at ../src/test_parser.nit:138,33 text=')'
-Read token at ../src/test_parser.nit:138,34--139,0 text='
-'
-Read token at ../src/test_parser.nit:139,4--6 text='var'
-Read token at ../src/test_parser.nit:139,8--11 text='tree'
-Read token at ../src/test_parser.nit:139,13 text='='
-Read token at ../src/test_parser.nit:139,15--20 text='parser'
-Read token at ../src/test_parser.nit:139,21 text='.'
-Read token at ../src/test_parser.nit:139,22--26 text='parse'
-Read token at ../src/test_parser.nit:139,27--140,0 text='
-'
-Read token at ../src/test_parser.nit:140,1--141,0 text='
-'
-Read token at ../src/test_parser.nit:141,4--6 text='var'
-Read token at ../src/test_parser.nit:141,8--12 text='error'
-Read token at ../src/test_parser.nit:141,14 text='='
-Read token at ../src/test_parser.nit:141,16--19 text='tree'
-Read token at ../src/test_parser.nit:141,20 text='.'
-Read token at ../src/test_parser.nit:141,21--25 text='n_eof'
-Read token at ../src/test_parser.nit:141,26--142,0 text='
-'
-Read token at ../src/test_parser.nit:142,4--5 text='if'
-Read token at ../src/test_parser.nit:142,7--11 text='error'
-Read token at ../src/test_parser.nit:142,13--15 text='isa'
-Read token at ../src/test_parser.nit:142,17--22 text='AError'
-Read token at ../src/test_parser.nit:142,24--27 text='then'
-Read token at ../src/test_parser.nit:142,28--143,0 text='
-'
-Read token at ../src/test_parser.nit:143,5--9 text='print'
-Read token at ../src/test_parser.nit:143,10 text='('
-Read token at ../src/test_parser.nit:143,11--21 text='"Error at {'
-Read token at ../src/test_parser.nit:143,22--26 text='error'
-Read token at ../src/test_parser.nit:143,27 text='.'
-Read token at ../src/test_parser.nit:143,28--35 text='location'
-Read token at ../src/test_parser.nit:143,36--42 text='}:\n\t{'
-Read token at ../src/test_parser.nit:143,43--47 text='error'
-Read token at ../src/test_parser.nit:143,48 text='.'
-Read token at ../src/test_parser.nit:143,49--55 text='message'
-Read token at ../src/test_parser.nit:143,56--57 text='}"'
-Read token at ../src/test_parser.nit:143,58 text=')'
-Read token at ../src/test_parser.nit:143,59--144,0 text='
-'
-Read token at ../src/test_parser.nit:144,5--10 text='return'
-Read token at ../src/test_parser.nit:144,11--145,0 text='
-'
-Read token at ../src/test_parser.nit:145,4--6 text='end'
-Read token at ../src/test_parser.nit:145,7--146,0 text='
-'
-Read token at ../src/test_parser.nit:146,1--147,0 text='
-'
-Read token at ../src/test_parser.nit:147,4--5 text='if'
-Read token at ../src/test_parser.nit:147,7--9 text='xml'
-Read token at ../src/test_parser.nit:147,11--14 text='then'
-Read token at ../src/test_parser.nit:147,15--148,0 text='
-'
-Read token at ../src/test_parser.nit:148,5--8 text='tree'
-Read token at ../src/test_parser.nit:148,9 text='.'
-Read token at ../src/test_parser.nit:148,10--25 text='parentize_tokens'
-Read token at ../src/test_parser.nit:148,26--149,0 text='
-'
-Read token at ../src/test_parser.nit:149,5--8 text='tree'
-Read token at ../src/test_parser.nit:149,9 text='.'
-Read token at ../src/test_parser.nit:149,10--15 text='to_xml'
-Read token at ../src/test_parser.nit:149,16 text='.'
-Read token at ../src/test_parser.nit:149,17--24 text='write_to'
-Read token at ../src/test_parser.nit:149,25 text='('
-Read token at ../src/test_parser.nit:149,26--31 text='stdout'
-Read token at ../src/test_parser.nit:149,32 text=')'
-Read token at ../src/test_parser.nit:149,33--150,0 text='
-'
-Read token at ../src/test_parser.nit:150,4--7 text='else'
-Read token at ../src/test_parser.nit:150,9--10 text='if'
-Read token at ../src/test_parser.nit:150,12--14 text='not'
-Read token at ../src/test_parser.nit:150,16--23 text='no_print'
-Read token at ../src/test_parser.nit:150,25--28 text='then'
-Read token at ../src/test_parser.nit:150,29--151,0 text='
-'
-Read token at ../src/test_parser.nit:151,5 text='('
-Read token at ../src/test_parser.nit:151,6--8 text='new'
-Read token at ../src/test_parser.nit:151,10--25 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:151,26 text=')'
-Read token at ../src/test_parser.nit:151,27 text='.'
-Read token at ../src/test_parser.nit:151,28--38 text='enter_visit'
-Read token at ../src/test_parser.nit:151,39 text='('
-Read token at ../src/test_parser.nit:151,40--43 text='tree'
-Read token at ../src/test_parser.nit:151,44 text=')'
-Read token at ../src/test_parser.nit:151,45--152,0 text='
-'
-Read token at ../src/test_parser.nit:152,4--6 text='end'
-Read token at ../src/test_parser.nit:152,7--153,0 text='
-'
-Read token at ../src/test_parser.nit:153,3--5 text='end'
-Read token at ../src/test_parser.nit:153,6--154,0 text='
-'
-Read token at ../src/test_parser.nit:154,2--4 text='end'
-Read token at ../src/test_parser.nit:154,5--155,0 text='
-'
-Read token at ../src/test_parser.nit:155,1--3 text='end'
-Read token at ../src/test_parser.nit:155,4--156,0 text='
+Read token at ../src/test_parser.nit:124,8--12 text='error'
+Read token at ../src/test_parser.nit:124,14 text='='
+Read token at ../src/test_parser.nit:124,16--19 text='tree'
+Read token at ../src/test_parser.nit:124,20 text='.'
+Read token at ../src/test_parser.nit:124,21--25 text='n_eof'
+Read token at ../src/test_parser.nit:124,26--125,0 text='
+'
+Read token at ../src/test_parser.nit:125,4--5 text='if'
+Read token at ../src/test_parser.nit:125,7--11 text='error'
+Read token at ../src/test_parser.nit:125,13--15 text='isa'
+Read token at ../src/test_parser.nit:125,17--22 text='AError'
+Read token at ../src/test_parser.nit:125,24--27 text='then'
+Read token at ../src/test_parser.nit:125,28--126,0 text='
+'
+Read token at ../src/test_parser.nit:126,5--9 text='print'
+Read token at ../src/test_parser.nit:126,10 text='('
+Read token at ../src/test_parser.nit:126,11--21 text='"Error at {'
+Read token at ../src/test_parser.nit:126,22--26 text='error'
+Read token at ../src/test_parser.nit:126,27 text='.'
+Read token at ../src/test_parser.nit:126,28--35 text='location'
+Read token at ../src/test_parser.nit:126,36--42 text='}:\n\t{'
+Read token at ../src/test_parser.nit:126,43--47 text='error'
+Read token at ../src/test_parser.nit:126,48 text='.'
+Read token at ../src/test_parser.nit:126,49--55 text='message'
+Read token at ../src/test_parser.nit:126,56--57 text='}"'
+Read token at ../src/test_parser.nit:126,58 text=')'
+Read token at ../src/test_parser.nit:126,59--127,0 text='
+'
+Read token at ../src/test_parser.nit:127,5--10 text='return'
+Read token at ../src/test_parser.nit:127,11--128,0 text='
+'
+Read token at ../src/test_parser.nit:128,4--6 text='end'
+Read token at ../src/test_parser.nit:128,7--129,0 text='
+'
+Read token at ../src/test_parser.nit:129,1--130,0 text='
+'
+Read token at ../src/test_parser.nit:130,4--5 text='if'
+Read token at ../src/test_parser.nit:130,7--9 text='xml'
+Read token at ../src/test_parser.nit:130,11--14 text='then'
+Read token at ../src/test_parser.nit:130,15--131,0 text='
+'
+Read token at ../src/test_parser.nit:131,5--8 text='tree'
+Read token at ../src/test_parser.nit:131,9 text='.'
+Read token at ../src/test_parser.nit:131,10--25 text='parentize_tokens'
+Read token at ../src/test_parser.nit:131,26--132,0 text='
+'
+Read token at ../src/test_parser.nit:132,5--8 text='tree'
+Read token at ../src/test_parser.nit:132,9 text='.'
+Read token at ../src/test_parser.nit:132,10--15 text='to_xml'
+Read token at ../src/test_parser.nit:132,16 text='.'
+Read token at ../src/test_parser.nit:132,17--24 text='write_to'
+Read token at ../src/test_parser.nit:132,25 text='('
+Read token at ../src/test_parser.nit:132,26--31 text='stdout'
+Read token at ../src/test_parser.nit:132,32 text=')'
+Read token at ../src/test_parser.nit:132,33--133,0 text='
+'
+Read token at ../src/test_parser.nit:133,4--7 text='else'
+Read token at ../src/test_parser.nit:133,9--10 text='if'
+Read token at ../src/test_parser.nit:133,12--14 text='not'
+Read token at ../src/test_parser.nit:133,16--23 text='no_print'
+Read token at ../src/test_parser.nit:133,25--28 text='then'
+Read token at ../src/test_parser.nit:133,29--134,0 text='
+'
+Read token at ../src/test_parser.nit:134,5--8 text='tree'
+Read token at ../src/test_parser.nit:134,9 text='.'
+Read token at ../src/test_parser.nit:134,10--18 text='dump_tree'
+Read token at ../src/test_parser.nit:134,19--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--5 text='end'
+Read token at ../src/test_parser.nit:136,6--137,0 text='
+'
+Read token at ../src/test_parser.nit:137,2--4 text='end'
+Read token at ../src/test_parser.nit:137,5--138,0 text='
+'
+Read token at ../src/test_parser.nit:138,1--3 text='end'
+Read token at ../src/test_parser.nit:138,4--139,0 text='
 '
index 65b6d2f..9f0cc3e 100644 (file)
@@ -1,35 +1,36 @@
-Start 1,1--42
-  AModule 1,1--41
-    AMainClassdef 1,1--41
-      AMainMethPropdef 1,1--41
-        ABlockExpr 1,1--41
-          AVardeclExpr 1,1--41
-            TKwvar "var" 1,1--3
-            TId "toto" 1,5--8
-            AType 1,11--14
-              AQclassid 1,11--14
-                TClassid "Toto" 1,11--14
-            TAssign "=" 1,16
-            ANewExpr 1,18--41
-              TKwnew "new" 1,18--20
-              AType 1,22--25
-                AQclassid 1,22--25
-                  TClassid "Toto" 1,22--25
-              AQid 1,27--30
-                TId "toto" 1,27--30
-              AParExprs 1,31--41
-                TOpar "(" 1,31
-                APlusExpr 1,32--40
-                  ACallExpr 1,32--35
-                    AImplicitSelfExpr 1,32
-                    AQid 1,32--35
-                      TId "toto" 1,32--35
-                    AListExprs 1,35
-                  TPlus "+" 1,36
-                  ACallExpr 1,37--40
-                    AImplicitSelfExpr 1,37
-                    AQid 1,37--40
-                      TId "toto" 1,37--40
-                    AListExprs 1,40
-                TCpar ")" 1,41
-  EOF "" 1,42
+\e[37m1 var toto: Toto = new Toto.toto(toto+toto)
+\e[mStart  @1,1--42
+|--AModule  @1,1--41
+|  `--AMainClassdef  @1,1--41
+|     `--AMainMethPropdef  @1,1--41
+|        `--ABlockExpr  @1,1--41
+|           `--AVardeclExpr  @1,1--41
+|              |--TKwvar  var @1,1--3
+|              |--TId  toto @1,5--8
+|              |--AType  @1,11--14
+|              |  `--AQclassid  @1,11--14
+|              |     `--TClassid  Toto @1,11--14
+|              |--TAssign  = @1,16
+|              `--ANewExpr  @1,18--41
+|                 |--TKwnew  new @1,18--20
+|                 |--AType  @1,22--25
+|                 |  `--AQclassid  @1,22--25
+|                 |     `--TClassid  Toto @1,22--25
+|                 |--AQid  @1,27--30
+|                 |  `--TId  toto @1,27--30
+|                 `--AParExprs  @1,31--41
+|                    |--TOpar  ( @1,31
+|                    |--APlusExpr  @1,32--40
+|                    |  |--ACallExpr  @1,32--35
+|                    |  |  |--AImplicitSelfExpr  @1,32
+|                    |  |  |--AQid  @1,32--35
+|                    |  |  |  `--TId  toto @1,32--35
+|                    |  |  `--AListExprs  @1,35
+|                    |  |--TPlus  + @1,36
+|                    |  `--ACallExpr  @1,37--40
+|                    |     |--AImplicitSelfExpr  @1,37
+|                    |     |--AQid  @1,37--40
+|                    |     |  `--TId  toto @1,37--40
+|                    |     `--AListExprs  @1,40
+|                    `--TCpar  ) @1,41
+`--EOF   @1,42
index 02d75e2..58227b7 100644 (file)
---> AIntegerExpr 1,1
-  TInteger "1" 1,1
---> ABlockExpr 1,1--11
-  ACallExpr 1,1--11
-    AImplicitSelfExpr 1,1
-    AQid 1,1--5
-      TId "hello" 1,1--5
-    AListExprs 1,7--11
-      ACallExpr 1,7--11
-        AImplicitSelfExpr 1,7
-        AQid 1,7--11
-          TId "world" 1,7--11
-        AListExprs 1,11
---> AStringExpr 1,1--13
-  TString "\"hello world\"" 1,1--13
---> AForExpr 1,1--15
-  TKwfor "for" 1,1--3
-  AForGroup 1,5--10
-    TId "i" 1,5
-    TKwin "in" 1,7--8
-    ACallExpr 1,10
-      AImplicitSelfExpr 1,10
-      AQid 1,10
-        TId "x" 1,10
-      AListExprs 1,10
-  TKwdo "do" 1,12--13
-  ACallExpr 1,15
-    AImplicitSelfExpr 1,15
-    AQid 1,15
-      TId "p" 1,15
-    AListExprs 1,15
---> AModule 1,1--12
-  ATopClassdef 1,1--12
-    AMethPropdef 1,1--12
-      APublicVisibility 1,1
-      TKwmeth "fun" 1,1--3
-      AIdMethid 1,5--7
-        TId "foo" 1,5--7
-      ASignature 1,9
-      TKwdo "do" 1,9--10
-      ACallExpr 1,12
-        AImplicitSelfExpr 1,12
-        AQid 1,12
-          TId "z" 1,12
-        AListExprs 1,12
---> ... ... AForExpr 1,1--3,3
-  TKwfor "for" 1,1--3
-  AForGroup 1,5--10
-    TId "i" 1,5
-    TKwin "in" 1,7--8
-    ACallExpr 1,10
-      AImplicitSelfExpr 1,10
-      AQid 1,10
-        TId "x" 1,10
-      AListExprs 1,10
-  TKwdo "do" 1,12--13
-  ABlockExpr 2,1--3,3
-    ACallExpr 2,1
-      AImplicitSelfExpr 2,1
-      AQid 2,1
-        TId "p" 2,1
-      AListExprs 2,1
-    TKwend "end" 3,1--3
---> ... ... ... ... AModule 1,1--5,3
-  ATopClassdef 1,1--5,3
-    AMethPropdef 1,1--5,3
-      APublicVisibility 1,1
-      TKwmeth "fun" 1,1--3
-      AIdMethid 1,5--7
-        TId "foo" 1,5--7
-      ASignature 1,9
-      TKwdo "do" 1,9--10
-      ABlockExpr 2,1--5,3
-        AForExpr 2,1--4,3
-          TKwfor "for" 2,1--3
-          AForGroup 2,5--10
-            TId "i" 2,5
-            TKwin "in" 2,7--8
-            ACallExpr 2,10
-              AImplicitSelfExpr 2,10
-              AQid 2,10
-                TId "x" 2,10
-              AListExprs 2,10
-          TKwdo "do" 2,12--13
-          ABlockExpr 3,1--4,3
-            ACallExpr 3,1
-              AImplicitSelfExpr 3,1
-              AQid 3,1
-                TId "p" 3,1
-              AListExprs 3,1
-            TKwend "end" 4,1--3
-        TKwend "end" 5,1--3
+--> \e[37m1     1
+\e[mAIntegerExpr  @1,1
+`--TInteger  1 @1,1
+--> \e[37m1     hello world
+\e[mABlockExpr  @1,1--11
+`--ACallExpr  @1,1--11
+   |--AImplicitSelfExpr  @1,1
+   |--AQid  @1,1--5
+   |  `--TId  hello @1,1--5
+   `--AListExprs  @1,7--11
+      `--ACallExpr  @1,7--11
+         |--AImplicitSelfExpr  @1,7
+         |--AQid  @1,7--11
+         |  `--TId  world @1,7--11
+         `--AListExprs  @1,11
+--> \e[37m1     "hello world"
+\e[mAStringExpr  @1,1--13
+`--TString  \"hello world\" @1,1--13
+--> \e[37m1     for i in x do p
+\e[mAForExpr  @1,1--15
+|--TKwfor  for @1,1--3
+|--AForGroup  @1,5--10
+|  |--TId  i @1,5
+|  |--TKwin  in @1,7--8
+|  `--ACallExpr  @1,10
+|     |--AImplicitSelfExpr  @1,10
+|     |--AQid  @1,10
+|     |  `--TId  x @1,10
+|     `--AListExprs  @1,10
+|--TKwdo  do @1,12--13
+`--ACallExpr  @1,15
+   |--AImplicitSelfExpr  @1,15
+   |--AQid  @1,15
+   |  `--TId  p @1,15
+   `--AListExprs  @1,15
+--> \e[37m1     fun foo do z
+\e[mAModule  @1,1--12
+`--ATopClassdef  @1,1--12
+   `--AMethPropdef  @1,1--12
+      |--APublicVisibility  @1,1
+      |--TKwmeth  fun @1,1--3
+      |--AIdMethid  @1,5--7
+      |  `--TId  foo @1,5--7
+      |--ASignature  @1,9
+      |--TKwdo  do @1,9--10
+      `--ACallExpr  @1,12
+         |--AImplicitSelfExpr  @1,12
+         |--AQid  @1,12
+         |  `--TId  z @1,12
+         `--AListExprs  @1,12
+--> ... ... \e[37m1     for i in x do
+\e[mAForExpr  @1,1--3,3
+|--TKwfor  for @1,1--3
+|--AForGroup  @1,5--10
+|  |--TId  i @1,5
+|  |--TKwin  in @1,7--8
+|  `--ACallExpr  @1,10
+|     |--AImplicitSelfExpr  @1,10
+|     |--AQid  @1,10
+|     |  `--TId  x @1,10
+|     `--AListExprs  @1,10
+|--TKwdo  do @1,12--13
+\e[37m2 p
+\e[m`--ABlockExpr  @2,1--3,3
+   |--ACallExpr  @2,1
+   |  |--AImplicitSelfExpr  @2,1
+   |  |--AQid  @2,1
+   |  |  `--TId  p @2,1
+   |  `--AListExprs  @2,1
+\e[37m3 end
+\e[m   `--TKwend  end @3,1--3
+--> ... ... ... ... \e[37m1     fun foo do
+\e[mAModule  @1,1--5,3
+`--ATopClassdef  @1,1--5,3
+   `--AMethPropdef  @1,1--5,3
+      |--APublicVisibility  @1,1
+      |--TKwmeth  fun @1,1--3
+      |--AIdMethid  @1,5--7
+      |  `--TId  foo @1,5--7
+      |--ASignature  @1,9
+      |--TKwdo  do @1,9--10
+\e[37m2 for i in x do
+\e[m      `--ABlockExpr  @2,1--5,3
+         |--AForExpr  @2,1--4,3
+         |  |--TKwfor  for @2,1--3
+         |  |--AForGroup  @2,5--10
+         |  |  |--TId  i @2,5
+         |  |  |--TKwin  in @2,7--8
+         |  |  `--ACallExpr  @2,10
+         |  |     |--AImplicitSelfExpr  @2,10
+         |  |     |--AQid  @2,10
+         |  |     |  `--TId  x @2,10
+         |  |     `--AListExprs  @2,10
+         |  |--TKwdo  do @2,12--13
+\e[37m3 p
+\e[m         |  `--ABlockExpr  @3,1--4,3
+         |     |--ACallExpr  @3,1
+         |     |  |--AImplicitSelfExpr  @3,1
+         |     |  |--AQid  @3,1
+         |     |  |  `--TId  p @3,1
+         |     |  `--AListExprs  @3,1
+\e[37m4 end
+\e[m         |     `--TKwend  end @4,1--3
+\e[37m5 end
+\e[m         `--TKwend  end @5,1--3
 --> ...        \e[0;31mfun\e[0m fun fun fu
        ^: Syntax Error: unexpected keyword 'fun'.
 -->    %\e[0;31m$\e[0m&^*