parser: `Visitor::visit` does not accepts `null`
authorJean Privat <jean@pryen.org>
Fri, 9 Aug 2013 15:37:41 +0000 (11:37 -0400)
committerJean Privat <jean@pryen.org>
Fri, 9 Aug 2013 17:01:44 +0000 (13:01 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

16 files changed:
src/auto_super_init.nit
src/flow.nit
src/literal.nit
src/local_var_init.nit
src/metrics/ast_metrics.nit
src/parser/parser.nit
src/parser/parser_nodes.nit
src/parser/xss/parser.xss
src/parser_util.nit
src/rapid_type_analysis.nit
src/scope.nit
src/simple_misc_analysis.nit
src/syntax/typing.nit
src/test_parser.nit
tests/sav/test_parser_args1.res
tests/sav/test_parser_args2.res

index b60ab85..316320a 100644 (file)
@@ -39,7 +39,6 @@ private class AutoSuperInitVisitor
 
        redef fun visit(n)
        do
-               if n == null then return
                n.accept_auto_super_init(self)
                n.visit_all(self)
        end
index cdc5ece..3f91b93 100644 (file)
@@ -52,24 +52,22 @@ private class FlowVisitor
 
        redef fun visit(node)
        do
-               if node != null then
-                       if first == null then first = node
-
-                       if current_flow_context.node == null then current_flow_context.node = node
-                       node.accept_flow_visitor(self)
-                       if node isa AExpr then
-                               var flow = self.current_flow_context
-                               node.after_flow_context = flow
-                               # Force the creation of a specific merge after the analysis of the node.
-                               if flow.when_true != flow or flow.when_false != flow then
-                                       self.make_sub_flow
-                                       self.current_flow_context.name = "AUTOSUB"
-                               end
+               if first == null then first = node
+
+               if current_flow_context.node == null then current_flow_context.node = node
+               node.accept_flow_visitor(self)
+               if node isa AExpr then
+                       var flow = self.current_flow_context
+                       node.after_flow_context = flow
+                       # Force the creation of a specific merge after the analysis of the node.
+                       if flow.when_true != flow or flow.when_false != flow then
+                               self.make_sub_flow
+                               self.current_flow_context.name = "AUTOSUB"
                        end
+               end
 
-                       if first == node then
-                               #self.printflow
-                       end
+               if first == node then
+                       #self.printflow
                end
        end
 
index e044bee..b4376a7 100644 (file)
@@ -55,10 +55,8 @@ private class LiteralVisitor
 
        redef fun visit(n)
        do
-               if n != null then
-                       n.accept_literal(self)
-                       n.visit_all(self)
-               end
+               n.accept_literal(self)
+               n.visit_all(self)
        end
 end
 
index cc389be..4ed1ff8 100644 (file)
@@ -84,7 +84,7 @@ private class LocalVarInitVisitor
 
        redef fun visit(n)
        do
-               if n != null then n.accept_local_var_visitor(self)
+               n.accept_local_var_visitor(self)
        end
 end
 
index d66115e..7909bbb 100644 (file)
@@ -55,7 +55,6 @@ private class AstMetricsVisitor
 
        redef fun visit(n)
        do
-               if n == null then return
                n.visit_all(self)
                phase.node_counter.inc(n.class_name)
                if n isa TId or n isa TAttrid or n isa TClassid then
index 1a7fbf4..4f8bbd5 100644 (file)
@@ -1474,11 +1474,9 @@ private class ComputeProdLocationVisitor
        # Location of the last visited token in the current production
        var _last_location: nullable Location = null
 
-       redef fun visit(n: nullable ANode)
+       redef fun visit(n: ANode)
        do
-               if n == null then
-                       return
-               else if n isa Token then
+               if n isa Token then
                        var loc = n.location
                        _last_location = loc
 
index 0af05c6..9625050 100644 (file)
@@ -103,13 +103,14 @@ abstract class Visitor
        # What the visitor do when a node is visited
        # Concrete visitors should implement this method.
        # @toimplement
-       protected fun visit(e: nullable ANode) is abstract
+       protected fun visit(e: ANode) is abstract
 
        # Ask the visitor to visit a given node.
        # Usually automatically called by visit_all* methods.
        # This method should not be redefined
        fun enter_visit(e: nullable ANode)
        do
+               if e == null then return
                var old = _current_node
                _current_node = e
                visit(e)
index a461563..e2fabc5 100644 (file)
@@ -197,11 +197,9 @@ private class ComputeProdLocationVisitor
        # Location of the last visited token in the current production
        var _last_location: nullable Location = null
 
-       redef fun visit(n: nullable PNode)
+       redef fun visit(n: PNode)
        do
-               if n == null then
-                       return
-               else if n isa Token then
+               if n isa Token then
                        var loc = n.location
                        _last_location = loc
 
index 8ca59e8..ed43555 100644 (file)
@@ -110,7 +110,6 @@ private class CollectTokensByTextVisitor
        var result = new Array[Token]
        redef fun visit(node)
        do
-               if node == null then return
                node.visit_all(self)
                if node isa Token and node.text == text then result.add(node)
        end
@@ -123,7 +122,6 @@ private class CollectAnnotationsByNameVisitor
        var result = new Array[AAnnotation]
        redef fun visit(node)
        do
-               if node == null then return
                node.visit_all(self)
                if node isa AAnnotation and node.n_atid.n_id.text == name then result.add(node)
        end
index eb14c94..e779174 100644 (file)
@@ -338,7 +338,6 @@ class RapidTypeVisitor
 
        redef fun visit(n)
        do
-               if n == null then return
                n.accept_rapid_type_visitor(self)
                if n isa AExpr then
                        var implicit_cast_to = n.implicit_cast_to
index 5197c19..9499312 100644 (file)
@@ -114,7 +114,7 @@ private class ScopeVisitor
                return null
        end
 
-       redef fun visit(n: nullable ANode)
+       redef fun visit(n)
        do
                n.accept_scope_visitor(self)
        end
index c5ec019..dac8da7 100644 (file)
@@ -50,7 +50,7 @@ private class SimpleMiscVisitor
        super Visitor
        redef fun visit(n)
        do
-               if n != null then n.accept_simple_misc(self)
+               n.accept_simple_misc(self)
        end
 
        # Number of nested once
index 863d41e..879f40a 100644 (file)
@@ -40,7 +40,7 @@ private class TypingVisitor
        super AbsSyntaxVisitor
        redef fun visit(n)
        do
-               if n != null then n.accept_typing(self)
+               n.accept_typing(self)
        end
 
        # Current knowledge about scoped things (variable, labels, etc.)
index f19857d..78f5799 100644 (file)
@@ -22,9 +22,8 @@ import parser
 class PrintTreeVisitor
        super Visitor
        var _rank: Int
-       redef fun visit(n: nullable ANode)
+       redef fun visit(n)
        do
-               if n == null then return
                if n isa Token then
                        printn("  " * _rank, n.to_s, " ... ", n.location, "\n")
                else
index bccf533..9902641 100644 (file)
@@ -1,5 +1,5 @@
-../src/test_parser.nit:17,1--111,1
-  ../src/test_parser.nit:17,1--110,3
+../src/test_parser.nit:17,1--110,1
+  ../src/test_parser.nit:17,1--109,3
     ../src/test_parser.nit:17,1--18,19
       ../src/test_parser.nit:17,1--18,0
         '# Program used to test the NIT parser
@@ -12,7 +12,7 @@
       keyword 'import' ... ../src/test_parser.nit:20,1--6
       ../src/test_parser.nit:20,8--13
         identifier 'parser' ... ../src/test_parser.nit:20,8--13
-    ../src/test_parser.nit:22,1--42,3
+    ../src/test_parser.nit:22,1--41,3
       ../src/test_parser.nit:22,1
       ../src/test_parser.nit:22,1--5
         keyword 'class' ... ../src/test_parser.nit:22,1--5
         attribute '_rank' ... ../src/test_parser.nit:24,6--10
         ../src/test_parser.nit:24,13--15
           type identifier 'Int' ... ../src/test_parser.nit:24,13--15
-      ../src/test_parser.nit:25,2--36,4
+      ../src/test_parser.nit:25,2--35,4
         keyword 'redef' ... ../src/test_parser.nit:25,2--6
         ../src/test_parser.nit:25,12
         keyword 'fun' ... ../src/test_parser.nit:25,8--10
         ../src/test_parser.nit:25,12--16
           identifier 'visit' ... ../src/test_parser.nit:25,12--16
-        ../src/test_parser.nit:25,17--35
+        ../src/test_parser.nit:25,17--19
           '(' ... ../src/test_parser.nit:25,17
-          ../src/test_parser.nit:25,18--34
+          ../src/test_parser.nit:25,18
             identifier 'n' ... ../src/test_parser.nit:25,18
-            ../src/test_parser.nit:25,21--34
-              keyword 'nullable' ... ../src/test_parser.nit:25,21--28
-              type identifier 'ANode' ... ../src/test_parser.nit:25,30--34
-          ')' ... ../src/test_parser.nit:25,35
-        ../src/test_parser.nit:27,3--36,4
-          ../src/test_parser.nit:27,3--26
+          ')' ... ../src/test_parser.nit:25,19
+        ../src/test_parser.nit:27,3--35,4
+          ../src/test_parser.nit:27,3--31,5
             keyword 'if' ... ../src/test_parser.nit:27,3--4
-            ../src/test_parser.nit:27,6--14
+            ../src/test_parser.nit:27,6--16
               ../src/test_parser.nit:27,6
                 ../src/test_parser.nit:27,6
                 identifier 'n' ... ../src/test_parser.nit:27,6
                 ../src/test_parser.nit:27,6
-              ../src/test_parser.nit:27,11--14
-                keyword 'null' ... ../src/test_parser.nit:27,11--14
-            ../src/test_parser.nit:27,21--26
-              keyword 'return' ... ../src/test_parser.nit:27,21--26
-          ../src/test_parser.nit:28,3--32,5
-            keyword 'if' ... ../src/test_parser.nit:28,3--4
-            ../src/test_parser.nit:28,6--16
-              ../src/test_parser.nit:28,6
-                ../src/test_parser.nit:28,6
-                identifier 'n' ... ../src/test_parser.nit:28,6
-                ../src/test_parser.nit:28,6
-              ../src/test_parser.nit:28,12--16
-                type identifier 'Token' ... ../src/test_parser.nit:28,12--16
-            ../src/test_parser.nit:29,4--58
-              ../src/test_parser.nit:29,4--58
-                ../src/test_parser.nit:29,11
-                identifier 'printn' ... ../src/test_parser.nit:29,4--9
-                ../src/test_parser.nit:29,10--58
-                  '(' ... ../src/test_parser.nit:29,10
-                  ../src/test_parser.nit:29,11--22
-                    ../src/test_parser.nit:29,11--14
-                      literal value '"  "' ... ../src/test_parser.nit:29,11--14
-                    ../src/test_parser.nit:29,18--22
-                      ../src/test_parser.nit:29,18
-                      attribute '_rank' ... ../src/test_parser.nit:29,18--22
-                  ../src/test_parser.nit:29,25--30
-                    ../src/test_parser.nit:29,25
-                      ../src/test_parser.nit:29,25
-                      identifier 'n' ... ../src/test_parser.nit:29,25
-                      ../src/test_parser.nit:29,25
-                    identifier 'to_s' ... ../src/test_parser.nit:29,27--30
-                    ../src/test_parser.nit:29,25
-                  ../src/test_parser.nit:29,33--39
-                    literal value '" ... "' ... ../src/test_parser.nit:29,33--39
-                  ../src/test_parser.nit:29,42--51
-                    ../src/test_parser.nit:29,42
-                      ../src/test_parser.nit:29,42
-                      identifier 'n' ... ../src/test_parser.nit:29,42
-                      ../src/test_parser.nit:29,42
-                    identifier 'location' ... ../src/test_parser.nit:29,44--51
-                    ../src/test_parser.nit:29,42
-                  ../src/test_parser.nit:29,54--57
-                    literal value '"\n"' ... ../src/test_parser.nit:29,54--57
-                  ')' ... ../src/test_parser.nit:29,58
-            ../src/test_parser.nit:31,4--32,5
-              ../src/test_parser.nit:31,4--41
-                ../src/test_parser.nit:31,11
-                identifier 'printn' ... ../src/test_parser.nit:31,4--9
-                ../src/test_parser.nit:31,10--41
-                  '(' ... ../src/test_parser.nit:31,10
-                  ../src/test_parser.nit:31,11--22
-                    ../src/test_parser.nit:31,11--14
-                      literal value '"  "' ... ../src/test_parser.nit:31,11--14
-                    ../src/test_parser.nit:31,18--22
-                      ../src/test_parser.nit:31,18
-                      attribute '_rank' ... ../src/test_parser.nit:31,18--22
-                  ../src/test_parser.nit:31,25--34
-                    ../src/test_parser.nit:31,25
-                      ../src/test_parser.nit:31,25
-                      identifier 'n' ... ../src/test_parser.nit:31,25
-                      ../src/test_parser.nit:31,25
-                    identifier 'location' ... ../src/test_parser.nit:31,27--34
-                    ../src/test_parser.nit:31,25
-                  ../src/test_parser.nit:31,37--40
-                    literal value '"\n"' ... ../src/test_parser.nit:31,37--40
-                  ')' ... ../src/test_parser.nit:31,41
-              keyword 'end' ... ../src/test_parser.nit:32,3--5
+              ../src/test_parser.nit:27,12--16
+                type identifier 'Token' ... ../src/test_parser.nit:27,12--16
+            ../src/test_parser.nit:28,4--58
+              ../src/test_parser.nit:28,4--58
+                ../src/test_parser.nit:28,11
+                identifier 'printn' ... ../src/test_parser.nit:28,4--9
+                ../src/test_parser.nit:28,10--58
+                  '(' ... ../src/test_parser.nit:28,10
+                  ../src/test_parser.nit:28,11--22
+                    ../src/test_parser.nit:28,11--14
+                      literal value '"  "' ... ../src/test_parser.nit:28,11--14
+                    ../src/test_parser.nit:28,18--22
+                      ../src/test_parser.nit:28,18
+                      attribute '_rank' ... ../src/test_parser.nit:28,18--22
+                  ../src/test_parser.nit:28,25--30
+                    ../src/test_parser.nit:28,25
+                      ../src/test_parser.nit:28,25
+                      identifier 'n' ... ../src/test_parser.nit:28,25
+                      ../src/test_parser.nit:28,25
+                    identifier 'to_s' ... ../src/test_parser.nit:28,27--30
+                    ../src/test_parser.nit:28,25
+                  ../src/test_parser.nit:28,33--39
+                    literal value '" ... "' ... ../src/test_parser.nit:28,33--39
+                  ../src/test_parser.nit:28,42--51
+                    ../src/test_parser.nit:28,42
+                      ../src/test_parser.nit:28,42
+                      identifier 'n' ... ../src/test_parser.nit:28,42
+                      ../src/test_parser.nit:28,42
+                    identifier 'location' ... ../src/test_parser.nit:28,44--51
+                    ../src/test_parser.nit:28,42
+                  ../src/test_parser.nit:28,54--57
+                    literal value '"\n"' ... ../src/test_parser.nit:28,54--57
+                  ')' ... ../src/test_parser.nit:28,58
+            ../src/test_parser.nit:30,4--31,5
+              ../src/test_parser.nit:30,4--41
+                ../src/test_parser.nit:30,11
+                identifier 'printn' ... ../src/test_parser.nit:30,4--9
+                ../src/test_parser.nit:30,10--41
+                  '(' ... ../src/test_parser.nit:30,10
+                  ../src/test_parser.nit:30,11--22
+                    ../src/test_parser.nit:30,11--14
+                      literal value '"  "' ... ../src/test_parser.nit:30,11--14
+                    ../src/test_parser.nit:30,18--22
+                      ../src/test_parser.nit:30,18
+                      attribute '_rank' ... ../src/test_parser.nit:30,18--22
+                  ../src/test_parser.nit:30,25--34
+                    ../src/test_parser.nit:30,25
+                      ../src/test_parser.nit:30,25
+                      identifier 'n' ... ../src/test_parser.nit:30,25
+                      ../src/test_parser.nit:30,25
+                    identifier 'location' ... ../src/test_parser.nit:30,27--34
+                    ../src/test_parser.nit:30,25
+                  ../src/test_parser.nit:30,37--40
+                    literal value '"\n"' ... ../src/test_parser.nit:30,37--40
+                  ')' ... ../src/test_parser.nit:30,41
+              keyword 'end' ... ../src/test_parser.nit:31,3--5
+          ../src/test_parser.nit:32,3--19
+            ../src/test_parser.nit:32,11
+            attribute '_rank' ... ../src/test_parser.nit:32,3--7
+            '=' ... ../src/test_parser.nit:32,9
+            ../src/test_parser.nit:32,11--19
+              ../src/test_parser.nit:32,11--15
+                ../src/test_parser.nit:32,11
+                attribute '_rank' ... ../src/test_parser.nit:32,11--15
+              ../src/test_parser.nit:32,19
+                literal value '1' ... ../src/test_parser.nit:32,19
           ../src/test_parser.nit:33,3--19
-            ../src/test_parser.nit:33,11
-            attribute '_rank' ... ../src/test_parser.nit:33,3--7
-            '=' ... ../src/test_parser.nit:33,9
-            ../src/test_parser.nit:33,11--19
-              ../src/test_parser.nit:33,11--15
-                ../src/test_parser.nit:33,11
-                attribute '_rank' ... ../src/test_parser.nit:33,11--15
-              ../src/test_parser.nit:33,19
-                literal value '1' ... ../src/test_parser.nit:33,19
+            ../src/test_parser.nit:33,3
+              ../src/test_parser.nit:33,3
+              identifier 'n' ... ../src/test_parser.nit:33,3
+              ../src/test_parser.nit:33,3
+            identifier 'visit_all' ... ../src/test_parser.nit:33,5--13
+            ../src/test_parser.nit:33,14--19
+              '(' ... ../src/test_parser.nit:33,14
+              ../src/test_parser.nit:33,15--18
+                keyword 'self' ... ../src/test_parser.nit:33,15--18
+              ')' ... ../src/test_parser.nit:33,19
           ../src/test_parser.nit:34,3--19
-            ../src/test_parser.nit:34,3
-              ../src/test_parser.nit:34,3
-              identifier 'n' ... ../src/test_parser.nit:34,3
-              ../src/test_parser.nit:34,3
-            identifier 'visit_all' ... ../src/test_parser.nit:34,5--13
-            ../src/test_parser.nit:34,14--19
-              '(' ... ../src/test_parser.nit:34,14
-              ../src/test_parser.nit:34,15--18
-                keyword 'self' ... ../src/test_parser.nit:34,15--18
-              ')' ... ../src/test_parser.nit:34,19
-          ../src/test_parser.nit:35,3--19
-            ../src/test_parser.nit:35,11
-            attribute '_rank' ... ../src/test_parser.nit:35,3--7
-            '=' ... ../src/test_parser.nit:35,9
-            ../src/test_parser.nit:35,11--19
-              ../src/test_parser.nit:35,11--15
-                ../src/test_parser.nit:35,11
-                attribute '_rank' ... ../src/test_parser.nit:35,11--15
-              ../src/test_parser.nit:35,19
-                literal value '1' ... ../src/test_parser.nit:35,19
-          keyword 'end' ... ../src/test_parser.nit:36,2--4
-      ../src/test_parser.nit:38,2--41,4
-        ../src/test_parser.nit:40,11
-        keyword 'init' ... ../src/test_parser.nit:38,2--5
-        ../src/test_parser.nit:40,11
-        ../src/test_parser.nit:40,3--41,4
-          ../src/test_parser.nit:40,3--11
-            ../src/test_parser.nit:40,11
-            attribute '_rank' ... ../src/test_parser.nit:40,3--7
-            '=' ... ../src/test_parser.nit:40,9
-            ../src/test_parser.nit:40,11
-              literal value '0' ... ../src/test_parser.nit:40,11
-          keyword 'end' ... ../src/test_parser.nit:41,2--4
-      keyword 'end' ... ../src/test_parser.nit:42,1--3
-    ../src/test_parser.nit:44,1--110,3
-      ../src/test_parser.nit:44,1--110,3
-        ../src/test_parser.nit:44,1--110,3
-          ../src/test_parser.nit:44,1--20
+            ../src/test_parser.nit:34,11
+            attribute '_rank' ... ../src/test_parser.nit:34,3--7
+            '=' ... ../src/test_parser.nit:34,9
+            ../src/test_parser.nit:34,11--19
+              ../src/test_parser.nit:34,11--15
+                ../src/test_parser.nit:34,11
+                attribute '_rank' ... ../src/test_parser.nit:34,11--15
+              ../src/test_parser.nit:34,19
+                literal value '1' ... ../src/test_parser.nit:34,19
+          keyword 'end' ... ../src/test_parser.nit:35,2--4
+      ../src/test_parser.nit:37,2--40,4
+        ../src/test_parser.nit:39,11
+        keyword 'init' ... ../src/test_parser.nit:37,2--5
+        ../src/test_parser.nit:39,11
+        ../src/test_parser.nit:39,3--40,4
+          ../src/test_parser.nit:39,3--11
+            ../src/test_parser.nit:39,11
+            attribute '_rank' ... ../src/test_parser.nit:39,3--7
+            '=' ... ../src/test_parser.nit:39,9
+            ../src/test_parser.nit:39,11
+              literal value '0' ... ../src/test_parser.nit:39,11
+          keyword 'end' ... ../src/test_parser.nit:40,2--4
+      keyword 'end' ... ../src/test_parser.nit:41,1--3
+    ../src/test_parser.nit:43,1--109,3
+      ../src/test_parser.nit:43,1--109,3
+        ../src/test_parser.nit:43,1--109,3
+          ../src/test_parser.nit:43,1--20
+            keyword 'var' ... ../src/test_parser.nit:43,1--3
+            identifier 'no_print' ... ../src/test_parser.nit:43,5--12
+            '=' ... ../src/test_parser.nit:43,14
+            ../src/test_parser.nit:43,16--20
+              keyword 'false' ... ../src/test_parser.nit:43,16--20
+          ../src/test_parser.nit:44,1--22
             keyword 'var' ... ../src/test_parser.nit:44,1--3
-            identifier 'no_print' ... ../src/test_parser.nit:44,5--12
-            '=' ... ../src/test_parser.nit:44,14
-            ../src/test_parser.nit:44,16--20
-              keyword 'false' ... ../src/test_parser.nit:44,16--20
-          ../src/test_parser.nit:45,1--22
+            identifier 'only_lexer' ... ../src/test_parser.nit:44,5--14
+            '=' ... ../src/test_parser.nit:44,16
+            ../src/test_parser.nit:44,18--22
+              keyword 'false' ... ../src/test_parser.nit:44,18--22
+          ../src/test_parser.nit:45,1--21
             keyword 'var' ... ../src/test_parser.nit:45,1--3
-            identifier 'only_lexer' ... ../src/test_parser.nit:45,5--14
-            '=' ... ../src/test_parser.nit:45,16
-            ../src/test_parser.nit:45,18--22
-              keyword 'false' ... ../src/test_parser.nit:45,18--22
-          ../src/test_parser.nit:46,1--21
+            identifier 'need_help' ... ../src/test_parser.nit:45,5--13
+            '=' ... ../src/test_parser.nit:45,15
+            ../src/test_parser.nit:45,17--21
+              keyword 'false' ... ../src/test_parser.nit:45,17--21
+          ../src/test_parser.nit:46,1--19
             keyword 'var' ... ../src/test_parser.nit:46,1--3
-            identifier 'need_help' ... ../src/test_parser.nit:46,5--13
-            '=' ... ../src/test_parser.nit:46,15
-            ../src/test_parser.nit:46,17--21
-              keyword 'false' ... ../src/test_parser.nit:46,17--21
-          ../src/test_parser.nit:47,1--19
-            keyword 'var' ... ../src/test_parser.nit:47,1--3
-            identifier 'no_file' ... ../src/test_parser.nit:47,5--11
-            '=' ... ../src/test_parser.nit:47,13
-            ../src/test_parser.nit:47,15--19
-              keyword 'false' ... ../src/test_parser.nit:47,15--19
-          ../src/test_parser.nit:49,1--65,3
-            keyword 'while' ... ../src/test_parser.nit:49,1--5
-            ../src/test_parser.nit:49,7--51
-              ../src/test_parser.nit:49,7--23
-                keyword 'not' ... ../src/test_parser.nit:49,7--9
-                ../src/test_parser.nit:49,11--23
-                  ../src/test_parser.nit:49,11--14
-                    ../src/test_parser.nit:49,11
-                    identifier 'args' ... ../src/test_parser.nit:49,11--14
-                    ../src/test_parser.nit:49,11
-                  identifier 'is_empty' ... ../src/test_parser.nit:49,16--23
-                  ../src/test_parser.nit:49,11
-              ../src/test_parser.nit:49,29--51
-                ../src/test_parser.nit:49,29--44
-                  ../src/test_parser.nit:49,29--38
-                    ../src/test_parser.nit:49,29--32
-                      ../src/test_parser.nit:49,29
-                      identifier 'args' ... ../src/test_parser.nit:49,29--32
-                      ../src/test_parser.nit:49,29
-                    identifier 'first' ... ../src/test_parser.nit:49,34--38
-                    ../src/test_parser.nit:49,29
-                  identifier 'first' ... ../src/test_parser.nit:49,40--44
-                  ../src/test_parser.nit:49,29
-                ../src/test_parser.nit:49,49--51
-                  literal value ''-'' ... ../src/test_parser.nit:49,49--51
-            keyword 'do' ... ../src/test_parser.nit:49,53--54
-            ../src/test_parser.nit:50,2--65,3
-              ../src/test_parser.nit:50,2--63,4
-                keyword 'if' ... ../src/test_parser.nit:50,2--3
-                ../src/test_parser.nit:50,5--22
-                  ../src/test_parser.nit:50,5--14
-                    ../src/test_parser.nit:50,5--8
-                      ../src/test_parser.nit:50,5
-                      identifier 'args' ... ../src/test_parser.nit:50,5--8
-                      ../src/test_parser.nit:50,5
-                    identifier 'first' ... ../src/test_parser.nit:50,10--14
-                    ../src/test_parser.nit:50,5
-                  ../src/test_parser.nit:50,19--22
-                    literal value '"-n"' ... ../src/test_parser.nit:50,19--22
-                ../src/test_parser.nit:51,3--17
-                  ../src/test_parser.nit:51,3--17
-                    ../src/test_parser.nit:51,14
-                    identifier 'no_print' ... ../src/test_parser.nit:51,3--10
-                    ../src/test_parser.nit:51,14
-                    '=' ... ../src/test_parser.nit:51,12
-                    ../src/test_parser.nit:51,14--17
-                      keyword 'true' ... ../src/test_parser.nit:51,14--17
-                ../src/test_parser.nit:52,7--63,4
-                  keyword 'if' ... ../src/test_parser.nit:52,7--8
-                  ../src/test_parser.nit:52,10--27
-                    ../src/test_parser.nit:52,10--19
-                      ../src/test_parser.nit:52,10--13
-                        ../src/test_parser.nit:52,10
-                        identifier 'args' ... ../src/test_parser.nit:52,10--13
-                        ../src/test_parser.nit:52,10
-                      identifier 'first' ... ../src/test_parser.nit:52,15--19
-                      ../src/test_parser.nit:52,10
-                    ../src/test_parser.nit:52,24--27
-                      literal value '"-l"' ... ../src/test_parser.nit:52,24--27
-                  ../src/test_parser.nit:53,3--19
-                    ../src/test_parser.nit:53,3--19
-                      ../src/test_parser.nit:53,16
-                      identifier 'only_lexer' ... ../src/test_parser.nit:53,3--12
-                      ../src/test_parser.nit:53,16
-                      '=' ... ../src/test_parser.nit:53,14
-                      ../src/test_parser.nit:53,16--19
-                        keyword 'true' ... ../src/test_parser.nit:53,16--19
-                  ../src/test_parser.nit:54,7--63,4
-                    keyword 'if' ... ../src/test_parser.nit:54,7--8
-                    ../src/test_parser.nit:54,10--27
-                      ../src/test_parser.nit:54,10--19
-                        ../src/test_parser.nit:54,10--13
-                          ../src/test_parser.nit:54,10
-                          identifier 'args' ... ../src/test_parser.nit:54,10--13
-                          ../src/test_parser.nit:54,10
-                        identifier 'first' ... ../src/test_parser.nit:54,15--19
-                        ../src/test_parser.nit:54,10
-                      ../src/test_parser.nit:54,24--27
-                        literal value '"-p"' ... ../src/test_parser.nit:54,24--27
-                    ../src/test_parser.nit:55,3--20
-                      ../src/test_parser.nit:55,3--20
-                        ../src/test_parser.nit:55,16
-                        identifier 'only_lexer' ... ../src/test_parser.nit:55,3--12
-                        ../src/test_parser.nit:55,16
-                        '=' ... ../src/test_parser.nit:55,14
-                        ../src/test_parser.nit:55,16--20
-                          keyword 'false' ... ../src/test_parser.nit:55,16--20
-                    ../src/test_parser.nit:56,7--63,4
-                      keyword 'if' ... ../src/test_parser.nit:56,7--8
-                      ../src/test_parser.nit:56,10--27
-                        ../src/test_parser.nit:56,10--19
-                          ../src/test_parser.nit:56,10--13
-                            ../src/test_parser.nit:56,10
-                            identifier 'args' ... ../src/test_parser.nit:56,10--13
-                            ../src/test_parser.nit:56,10
-                          identifier 'first' ... ../src/test_parser.nit:56,15--19
-                          ../src/test_parser.nit:56,10
-                        ../src/test_parser.nit:56,24--27
-                          literal value '"-e"' ... ../src/test_parser.nit:56,24--27
-                      ../src/test_parser.nit:57,3--16
-                        ../src/test_parser.nit:57,3--16
-                          ../src/test_parser.nit:57,13
-                          identifier 'no_file' ... ../src/test_parser.nit:57,3--9
-                          ../src/test_parser.nit:57,13
-                          '=' ... ../src/test_parser.nit:57,11
-                          ../src/test_parser.nit:57,13--16
-                            keyword 'true' ... ../src/test_parser.nit:57,13--16
-                      ../src/test_parser.nit:58,7--63,4
-                        keyword 'if' ... ../src/test_parser.nit:58,7--8
-                        ../src/test_parser.nit:58,10--49
-                          ../src/test_parser.nit:58,10--27
-                            ../src/test_parser.nit:58,10--19
-                              ../src/test_parser.nit:58,10--13
-                                ../src/test_parser.nit:58,10
-                                identifier 'args' ... ../src/test_parser.nit:58,10--13
-                                ../src/test_parser.nit:58,10
-                              identifier 'first' ... ../src/test_parser.nit:58,15--19
-                              ../src/test_parser.nit:58,10
-                            ../src/test_parser.nit:58,24--27
-                              literal value '"-h"' ... ../src/test_parser.nit:58,24--27
-                          ../src/test_parser.nit:58,32--49
-                            ../src/test_parser.nit:58,32--41
-                              ../src/test_parser.nit:58,32--35
-                                ../src/test_parser.nit:58,32
-                                identifier 'args' ... ../src/test_parser.nit:58,32--35
-                                ../src/test_parser.nit:58,32
-                              identifier 'first' ... ../src/test_parser.nit:58,37--41
-                              ../src/test_parser.nit:58,32
-                            ../src/test_parser.nit:58,46--49
-                              literal value '"-?"' ... ../src/test_parser.nit:58,46--49
-                        ../src/test_parser.nit:59,3--18
-                          ../src/test_parser.nit:59,3--18
-                            ../src/test_parser.nit:59,15
-                            identifier 'need_help' ... ../src/test_parser.nit:59,3--11
-                            ../src/test_parser.nit:59,15
-                            '=' ... ../src/test_parser.nit:59,13
-                            ../src/test_parser.nit:59,15--18
-                              keyword 'true' ... ../src/test_parser.nit:59,15--18
-                        ../src/test_parser.nit:61,3--63,4
-                          ../src/test_parser.nit:61,3--48
-                            ../src/test_parser.nit:61,3--8
-                              ../src/test_parser.nit:61,3
-                              identifier 'stderr' ... ../src/test_parser.nit:61,3--8
-                              ../src/test_parser.nit:61,3
-                            identifier 'write' ... ../src/test_parser.nit:61,10--14
-                            ../src/test_parser.nit:61,15--48
-                              '(' ... ../src/test_parser.nit:61,15
-                              ../src/test_parser.nit:61,16--47
-                                ../src/test_parser.nit:61,16--32
-                                  literal value '"Unknown option {' ... ../src/test_parser.nit:61,16--32
-                                ../src/test_parser.nit:61,33--42
-                                  ../src/test_parser.nit:61,33--36
-                                    ../src/test_parser.nit:61,33
-                                    identifier 'args' ... ../src/test_parser.nit:61,33--36
-                                    ../src/test_parser.nit:61,33
-                                  identifier 'first' ... ../src/test_parser.nit:61,38--42
-                                  ../src/test_parser.nit:61,33
-                                ../src/test_parser.nit:61,43--47
-                                  '}.\n"' ... ../src/test_parser.nit:61,43--47
-                              ')' ... ../src/test_parser.nit:61,48
-                          ../src/test_parser.nit:62,3--9
-                            ../src/test_parser.nit:62,8
-                            identifier 'exit' ... ../src/test_parser.nit:62,3--6
-                            ../src/test_parser.nit:62,7--9
-                              '(' ... ../src/test_parser.nit:62,7
-                              ../src/test_parser.nit:62,8
-                                literal value '0' ... ../src/test_parser.nit:62,8
-                              ')' ... ../src/test_parser.nit:62,9
-                          keyword 'end' ... ../src/test_parser.nit:63,2--4
-              ../src/test_parser.nit:64,2--11
-                ../src/test_parser.nit:64,2--5
-                  ../src/test_parser.nit:64,2
-                  identifier 'args' ... ../src/test_parser.nit:64,2--5
-                  ../src/test_parser.nit:64,2
-                identifier 'shift' ... ../src/test_parser.nit:64,7--11
-                ../src/test_parser.nit:64,2
-              keyword 'end' ... ../src/test_parser.nit:65,1--3
-          ../src/test_parser.nit:67,1--110,3
-            keyword 'if' ... ../src/test_parser.nit:67,1--2
-            ../src/test_parser.nit:67,4--29
-              ../src/test_parser.nit:67,4--16
-                ../src/test_parser.nit:67,4--7
-                  ../src/test_parser.nit:67,4
-                  identifier 'args' ... ../src/test_parser.nit:67,4--7
-                  ../src/test_parser.nit:67,4
-                identifier 'is_empty' ... ../src/test_parser.nit:67,9--16
-                ../src/test_parser.nit:67,4
-              ../src/test_parser.nit:67,21--29
-                ../src/test_parser.nit:67,21
-                identifier 'need_help' ... ../src/test_parser.nit:67,21--29
-                ../src/test_parser.nit:67,21
-            ../src/test_parser.nit:68,2--75,30
-              ../src/test_parser.nit:68,2--16
+            identifier 'no_file' ... ../src/test_parser.nit:46,5--11
+            '=' ... ../src/test_parser.nit:46,13
+            ../src/test_parser.nit:46,15--19
+              keyword 'false' ... ../src/test_parser.nit:46,15--19
+          ../src/test_parser.nit:48,1--64,3
+            keyword 'while' ... ../src/test_parser.nit:48,1--5
+            ../src/test_parser.nit:48,7--51
+              ../src/test_parser.nit:48,7--23
+                keyword 'not' ... ../src/test_parser.nit:48,7--9
+                ../src/test_parser.nit:48,11--23
+                  ../src/test_parser.nit:48,11--14
+                    ../src/test_parser.nit:48,11
+                    identifier 'args' ... ../src/test_parser.nit:48,11--14
+                    ../src/test_parser.nit:48,11
+                  identifier 'is_empty' ... ../src/test_parser.nit:48,16--23
+                  ../src/test_parser.nit:48,11
+              ../src/test_parser.nit:48,29--51
+                ../src/test_parser.nit:48,29--44
+                  ../src/test_parser.nit:48,29--38
+                    ../src/test_parser.nit:48,29--32
+                      ../src/test_parser.nit:48,29
+                      identifier 'args' ... ../src/test_parser.nit:48,29--32
+                      ../src/test_parser.nit:48,29
+                    identifier 'first' ... ../src/test_parser.nit:48,34--38
+                    ../src/test_parser.nit:48,29
+                  identifier 'first' ... ../src/test_parser.nit:48,40--44
+                  ../src/test_parser.nit:48,29
+                ../src/test_parser.nit:48,49--51
+                  literal value ''-'' ... ../src/test_parser.nit:48,49--51
+            keyword 'do' ... ../src/test_parser.nit:48,53--54
+            ../src/test_parser.nit:49,2--64,3
+              ../src/test_parser.nit:49,2--62,4
+                keyword 'if' ... ../src/test_parser.nit:49,2--3
+                ../src/test_parser.nit:49,5--22
+                  ../src/test_parser.nit:49,5--14
+                    ../src/test_parser.nit:49,5--8
+                      ../src/test_parser.nit:49,5
+                      identifier 'args' ... ../src/test_parser.nit:49,5--8
+                      ../src/test_parser.nit:49,5
+                    identifier 'first' ... ../src/test_parser.nit:49,10--14
+                    ../src/test_parser.nit:49,5
+                  ../src/test_parser.nit:49,19--22
+                    literal value '"-n"' ... ../src/test_parser.nit:49,19--22
+                ../src/test_parser.nit:50,3--17
+                  ../src/test_parser.nit:50,3--17
+                    ../src/test_parser.nit:50,14
+                    identifier 'no_print' ... ../src/test_parser.nit:50,3--10
+                    ../src/test_parser.nit:50,14
+                    '=' ... ../src/test_parser.nit:50,12
+                    ../src/test_parser.nit:50,14--17
+                      keyword 'true' ... ../src/test_parser.nit:50,14--17
+                ../src/test_parser.nit:51,7--62,4
+                  keyword 'if' ... ../src/test_parser.nit:51,7--8
+                  ../src/test_parser.nit:51,10--27
+                    ../src/test_parser.nit:51,10--19
+                      ../src/test_parser.nit:51,10--13
+                        ../src/test_parser.nit:51,10
+                        identifier 'args' ... ../src/test_parser.nit:51,10--13
+                        ../src/test_parser.nit:51,10
+                      identifier 'first' ... ../src/test_parser.nit:51,15--19
+                      ../src/test_parser.nit:51,10
+                    ../src/test_parser.nit:51,24--27
+                      literal value '"-l"' ... ../src/test_parser.nit:51,24--27
+                  ../src/test_parser.nit:52,3--19
+                    ../src/test_parser.nit:52,3--19
+                      ../src/test_parser.nit:52,16
+                      identifier 'only_lexer' ... ../src/test_parser.nit:52,3--12
+                      ../src/test_parser.nit:52,16
+                      '=' ... ../src/test_parser.nit:52,14
+                      ../src/test_parser.nit:52,16--19
+                        keyword 'true' ... ../src/test_parser.nit:52,16--19
+                  ../src/test_parser.nit:53,7--62,4
+                    keyword 'if' ... ../src/test_parser.nit:53,7--8
+                    ../src/test_parser.nit:53,10--27
+                      ../src/test_parser.nit:53,10--19
+                        ../src/test_parser.nit:53,10--13
+                          ../src/test_parser.nit:53,10
+                          identifier 'args' ... ../src/test_parser.nit:53,10--13
+                          ../src/test_parser.nit:53,10
+                        identifier 'first' ... ../src/test_parser.nit:53,15--19
+                        ../src/test_parser.nit:53,10
+                      ../src/test_parser.nit:53,24--27
+                        literal value '"-p"' ... ../src/test_parser.nit:53,24--27
+                    ../src/test_parser.nit:54,3--20
+                      ../src/test_parser.nit:54,3--20
+                        ../src/test_parser.nit:54,16
+                        identifier 'only_lexer' ... ../src/test_parser.nit:54,3--12
+                        ../src/test_parser.nit:54,16
+                        '=' ... ../src/test_parser.nit:54,14
+                        ../src/test_parser.nit:54,16--20
+                          keyword 'false' ... ../src/test_parser.nit:54,16--20
+                    ../src/test_parser.nit:55,7--62,4
+                      keyword 'if' ... ../src/test_parser.nit:55,7--8
+                      ../src/test_parser.nit:55,10--27
+                        ../src/test_parser.nit:55,10--19
+                          ../src/test_parser.nit:55,10--13
+                            ../src/test_parser.nit:55,10
+                            identifier 'args' ... ../src/test_parser.nit:55,10--13
+                            ../src/test_parser.nit:55,10
+                          identifier 'first' ... ../src/test_parser.nit:55,15--19
+                          ../src/test_parser.nit:55,10
+                        ../src/test_parser.nit:55,24--27
+                          literal value '"-e"' ... ../src/test_parser.nit:55,24--27
+                      ../src/test_parser.nit:56,3--16
+                        ../src/test_parser.nit:56,3--16
+                          ../src/test_parser.nit:56,13
+                          identifier 'no_file' ... ../src/test_parser.nit:56,3--9
+                          ../src/test_parser.nit:56,13
+                          '=' ... ../src/test_parser.nit:56,11
+                          ../src/test_parser.nit:56,13--16
+                            keyword 'true' ... ../src/test_parser.nit:56,13--16
+                      ../src/test_parser.nit:57,7--62,4
+                        keyword 'if' ... ../src/test_parser.nit:57,7--8
+                        ../src/test_parser.nit:57,10--49
+                          ../src/test_parser.nit:57,10--27
+                            ../src/test_parser.nit:57,10--19
+                              ../src/test_parser.nit:57,10--13
+                                ../src/test_parser.nit:57,10
+                                identifier 'args' ... ../src/test_parser.nit:57,10--13
+                                ../src/test_parser.nit:57,10
+                              identifier 'first' ... ../src/test_parser.nit:57,15--19
+                              ../src/test_parser.nit:57,10
+                            ../src/test_parser.nit:57,24--27
+                              literal value '"-h"' ... ../src/test_parser.nit:57,24--27
+                          ../src/test_parser.nit:57,32--49
+                            ../src/test_parser.nit:57,32--41
+                              ../src/test_parser.nit:57,32--35
+                                ../src/test_parser.nit:57,32
+                                identifier 'args' ... ../src/test_parser.nit:57,32--35
+                                ../src/test_parser.nit:57,32
+                              identifier 'first' ... ../src/test_parser.nit:57,37--41
+                              ../src/test_parser.nit:57,32
+                            ../src/test_parser.nit:57,46--49
+                              literal value '"-?"' ... ../src/test_parser.nit:57,46--49
+                        ../src/test_parser.nit:58,3--18
+                          ../src/test_parser.nit:58,3--18
+                            ../src/test_parser.nit:58,15
+                            identifier 'need_help' ... ../src/test_parser.nit:58,3--11
+                            ../src/test_parser.nit:58,15
+                            '=' ... ../src/test_parser.nit:58,13
+                            ../src/test_parser.nit:58,15--18
+                              keyword 'true' ... ../src/test_parser.nit:58,15--18
+                        ../src/test_parser.nit:60,3--62,4
+                          ../src/test_parser.nit:60,3--48
+                            ../src/test_parser.nit:60,3--8
+                              ../src/test_parser.nit:60,3
+                              identifier 'stderr' ... ../src/test_parser.nit:60,3--8
+                              ../src/test_parser.nit:60,3
+                            identifier 'write' ... ../src/test_parser.nit:60,10--14
+                            ../src/test_parser.nit:60,15--48
+                              '(' ... ../src/test_parser.nit:60,15
+                              ../src/test_parser.nit:60,16--47
+                                ../src/test_parser.nit:60,16--32
+                                  literal value '"Unknown option {' ... ../src/test_parser.nit:60,16--32
+                                ../src/test_parser.nit:60,33--42
+                                  ../src/test_parser.nit:60,33--36
+                                    ../src/test_parser.nit:60,33
+                                    identifier 'args' ... ../src/test_parser.nit:60,33--36
+                                    ../src/test_parser.nit:60,33
+                                  identifier 'first' ... ../src/test_parser.nit:60,38--42
+                                  ../src/test_parser.nit:60,33
+                                ../src/test_parser.nit:60,43--47
+                                  '}.\n"' ... ../src/test_parser.nit:60,43--47
+                              ')' ... ../src/test_parser.nit:60,48
+                          ../src/test_parser.nit:61,3--9
+                            ../src/test_parser.nit:61,8
+                            identifier 'exit' ... ../src/test_parser.nit:61,3--6
+                            ../src/test_parser.nit:61,7--9
+                              '(' ... ../src/test_parser.nit:61,7
+                              ../src/test_parser.nit:61,8
+                                literal value '0' ... ../src/test_parser.nit:61,8
+                              ')' ... ../src/test_parser.nit:61,9
+                          keyword 'end' ... ../src/test_parser.nit:62,2--4
+              ../src/test_parser.nit:63,2--11
+                ../src/test_parser.nit:63,2--5
+                  ../src/test_parser.nit:63,2
+                  identifier 'args' ... ../src/test_parser.nit:63,2--5
+                  ../src/test_parser.nit:63,2
+                identifier 'shift' ... ../src/test_parser.nit:63,7--11
+                ../src/test_parser.nit:63,2
+              keyword 'end' ... ../src/test_parser.nit:64,1--3
+          ../src/test_parser.nit:66,1--109,3
+            keyword 'if' ... ../src/test_parser.nit:66,1--2
+            ../src/test_parser.nit:66,4--29
+              ../src/test_parser.nit:66,4--16
+                ../src/test_parser.nit:66,4--7
+                  ../src/test_parser.nit:66,4
+                  identifier 'args' ... ../src/test_parser.nit:66,4--7
+                  ../src/test_parser.nit:66,4
+                identifier 'is_empty' ... ../src/test_parser.nit:66,9--16
+                ../src/test_parser.nit:66,4
+              ../src/test_parser.nit:66,21--29
+                ../src/test_parser.nit:66,21
+                identifier 'need_help' ... ../src/test_parser.nit:66,21--29
+                ../src/test_parser.nit:66,21
+            ../src/test_parser.nit:67,2--74,30
+              ../src/test_parser.nit:67,2--16
+                ../src/test_parser.nit:67,8
+                identifier 'print' ... ../src/test_parser.nit:67,2--6
+                ../src/test_parser.nit:67,7--16
+                  '(' ... ../src/test_parser.nit:67,7
+                  ../src/test_parser.nit:67,8--15
+                    literal value '"usage:"' ... ../src/test_parser.nit:67,8--15
+                  ')' ... ../src/test_parser.nit:67,16
+              ../src/test_parser.nit:68,2--54
                 ../src/test_parser.nit:68,8
                 identifier 'print' ... ../src/test_parser.nit:68,2--6
-                ../src/test_parser.nit:68,7--16
+                ../src/test_parser.nit:68,7--54
                   '(' ... ../src/test_parser.nit:68,7
-                  ../src/test_parser.nit:68,8--15
-                    literal value '"usage:"' ... ../src/test_parser.nit:68,8--15
-                  ')' ... ../src/test_parser.nit:68,16
-              ../src/test_parser.nit:69,2--54
+                  ../src/test_parser.nit:68,8--53
+                    literal value '"  test_parser [options]... <filename.nit>..."' ... ../src/test_parser.nit:68,8--53
+                  ')' ... ../src/test_parser.nit:68,54
+              ../src/test_parser.nit:69,2--18
                 ../src/test_parser.nit:69,8
                 identifier 'print' ... ../src/test_parser.nit:69,2--6
-                ../src/test_parser.nit:69,7--54
+                ../src/test_parser.nit:69,7--18
                   '(' ... ../src/test_parser.nit:69,7
-                  ../src/test_parser.nit:69,8--53
-                    literal value '"  test_parser [options]... <filename.nit>..."' ... ../src/test_parser.nit:69,8--53
-                  ')' ... ../src/test_parser.nit:69,54
-              ../src/test_parser.nit:70,2--18
+                  ../src/test_parser.nit:69,8--17
+                    literal value '"options:"' ... ../src/test_parser.nit:69,8--17
+                  ')' ... ../src/test_parser.nit:69,18
+              ../src/test_parser.nit:70,2--36
                 ../src/test_parser.nit:70,8
                 identifier 'print' ... ../src/test_parser.nit:70,2--6
-                ../src/test_parser.nit:70,7--18
+                ../src/test_parser.nit:70,7--36
                   '(' ... ../src/test_parser.nit:70,7
-                  ../src/test_parser.nit:70,8--17
-                    literal value '"options:"' ... ../src/test_parser.nit:70,8--17
-                  ')' ... ../src/test_parser.nit:70,18
-              ../src/test_parser.nit:71,2--36
+                  ../src/test_parser.nit:70,8--35
+                    literal value '"  -n       do not print anything"' ... ../src/test_parser.nit:70,8--35
+                  ')' ... ../src/test_parser.nit:70,36
+              ../src/test_parser.nit:71,2--25
                 ../src/test_parser.nit:71,8
                 identifier 'print' ... ../src/test_parser.nit:71,2--6
-                ../src/test_parser.nit:71,7--36
+                ../src/test_parser.nit:71,7--25
                   '(' ... ../src/test_parser.nit:71,7
-                  ../src/test_parser.nit:71,8--35
-                    literal value '"  -n       do not print anything"' ... ../src/test_parser.nit:71,8--35
-                  ')' ... ../src/test_parser.nit:71,36
-              ../src/test_parser.nit:72,2--25
+                  ../src/test_parser.nit:71,8--24
+                    literal value '"  -l       only lexer"' ... ../src/test_parser.nit:71,8--24
+                  ')' ... ../src/test_parser.nit:71,25
+              ../src/test_parser.nit:72,2--41
                 ../src/test_parser.nit:72,8
                 identifier 'print' ... ../src/test_parser.nit:72,2--6
-                ../src/test_parser.nit:72,7--25
+                ../src/test_parser.nit:72,7--41
                   '(' ... ../src/test_parser.nit:72,7
-                  ../src/test_parser.nit:72,8--24
-                    literal value '"  -l       only lexer"' ... ../src/test_parser.nit:72,8--24
-                  ')' ... ../src/test_parser.nit:72,25
-              ../src/test_parser.nit:73,2--41
+                  ../src/test_parser.nit:72,8--40
+                    literal value '"  -p       lexer and parser (default)"' ... ../src/test_parser.nit:72,8--40
+                  ')' ... ../src/test_parser.nit:72,41
+              ../src/test_parser.nit:73,2--68
                 ../src/test_parser.nit:73,8
                 identifier 'print' ... ../src/test_parser.nit:73,2--6
-                ../src/test_parser.nit:73,7--41
+                ../src/test_parser.nit:73,7--68
                   '(' ... ../src/test_parser.nit:73,7
-                  ../src/test_parser.nit:73,8--40
-                    literal value '"  -p       lexer and parser (default)"' ... ../src/test_parser.nit:73,8--40
-                  ')' ... ../src/test_parser.nit:73,41
-              ../src/test_parser.nit:74,2--68
+                  ../src/test_parser.nit:73,8--67
+                    literal value '"  -e       instead on files, each argument is a content to parse"' ... ../src/test_parser.nit:73,8--67
+                  ')' ... ../src/test_parser.nit:73,68
+              ../src/test_parser.nit:74,2--30
                 ../src/test_parser.nit:74,8
                 identifier 'print' ... ../src/test_parser.nit:74,2--6
-                ../src/test_parser.nit:74,7--68
+                ../src/test_parser.nit:74,7--30
                   '(' ... ../src/test_parser.nit:74,7
-                  ../src/test_parser.nit:74,8--67
-                    literal value '"  -e       instead on files, each argument is a content to parse"' ... ../src/test_parser.nit:74,8--67
-                  ')' ... ../src/test_parser.nit:74,68
-              ../src/test_parser.nit:75,2--30
-                ../src/test_parser.nit:75,8
-                identifier 'print' ... ../src/test_parser.nit:75,2--6
-                ../src/test_parser.nit:75,7--30
-                  '(' ... ../src/test_parser.nit:75,7
-                  ../src/test_parser.nit:75,8--29
-                    literal value '"  -h       print this help"' ... ../src/test_parser.nit:75,8--29
-                  ')' ... ../src/test_parser.nit:75,30
-            ../src/test_parser.nit:77,2--110,3
-              ../src/test_parser.nit:77,2--109,4
-                keyword 'for' ... ../src/test_parser.nit:77,2--4
-                identifier 'a' ... ../src/test_parser.nit:77,6
-                ../src/test_parser.nit:77,11--14
-                  ../src/test_parser.nit:77,11
-                  identifier 'args' ... ../src/test_parser.nit:77,11--14
-                  ../src/test_parser.nit:77,11
-                keyword 'do' ... ../src/test_parser.nit:77,16--17
-                ../src/test_parser.nit:78,3--109,4
-                  ../src/test_parser.nit:78,3--12
-                    keyword 'var' ... ../src/test_parser.nit:78,3--5
-                    identifier 'source' ... ../src/test_parser.nit:78,7--12
-                  ../src/test_parser.nit:79,3--85,5
-                    keyword 'if' ... ../src/test_parser.nit:79,3--4
-                    ../src/test_parser.nit:79,6--12
-                      ../src/test_parser.nit:79,6
-                      identifier 'no_file' ... ../src/test_parser.nit:79,6--12
-                      ../src/test_parser.nit:79,6
-                    ../src/test_parser.nit:80,4--45
-                      ../src/test_parser.nit:80,4--45
-                        ../src/test_parser.nit:80,17
-                        identifier 'source' ... ../src/test_parser.nit:80,4--9
-                        ../src/test_parser.nit:80,17
-                        '=' ... ../src/test_parser.nit:80,11
-                        ../src/test_parser.nit:80,13--45
-                          keyword 'new' ... ../src/test_parser.nit:80,13--15
-                          ../src/test_parser.nit:80,17--26
-                            type identifier 'SourceFile' ... ../src/test_parser.nit:80,17--26
-                          identifier 'from_string' ... ../src/test_parser.nit:80,28--38
-                          ../src/test_parser.nit:80,39--45
-                            '(' ... ../src/test_parser.nit:80,39
-                            ../src/test_parser.nit:80,40--41
-                              literal value '""' ... ../src/test_parser.nit:80,40--41
-                            ../src/test_parser.nit:80,44
-                              ../src/test_parser.nit:80,44
-                              identifier 'a' ... ../src/test_parser.nit:80,44
-                              ../src/test_parser.nit:80,44
-                            ')' ... ../src/test_parser.nit:80,45
-                    ../src/test_parser.nit:82,4--85,5
-                      ../src/test_parser.nit:82,4--31
-                        keyword 'var' ... ../src/test_parser.nit:82,4--6
-                        identifier 'f' ... ../src/test_parser.nit:82,8
-                        '=' ... ../src/test_parser.nit:82,10
-                        ../src/test_parser.nit:82,12--31
-                          keyword 'new' ... ../src/test_parser.nit:82,12--14
-                          ../src/test_parser.nit:82,16--23
-                            type identifier 'IFStream' ... ../src/test_parser.nit:82,16--23
-                          identifier 'open' ... ../src/test_parser.nit:82,25--28
-                          ../src/test_parser.nit:82,29--31
-                            '(' ... ../src/test_parser.nit:82,29
-                            ../src/test_parser.nit:82,30
-                              ../src/test_parser.nit:82,30
-                              identifier 'a' ... ../src/test_parser.nit:82,30
-                              ../src/test_parser.nit:82,30
-                            ')' ... ../src/test_parser.nit:82,31
-                      ../src/test_parser.nit:83,4--32
-                        ../src/test_parser.nit:83,17
-                        identifier 'source' ... ../src/test_parser.nit:83,4--9
-                        ../src/test_parser.nit:83,17
-                        '=' ... ../src/test_parser.nit:83,11
-                        ../src/test_parser.nit:83,13--32
-                          keyword 'new' ... ../src/test_parser.nit:83,13--15
-                          ../src/test_parser.nit:83,17--26
-                            type identifier 'SourceFile' ... ../src/test_parser.nit:83,17--26
-                          ../src/test_parser.nit:83,27--32
-                            '(' ... ../src/test_parser.nit:83,27
-                            ../src/test_parser.nit:83,28
-                              ../src/test_parser.nit:83,28
-                              identifier 'a' ... ../src/test_parser.nit:83,28
-                              ../src/test_parser.nit:83,28
-                            ../src/test_parser.nit:83,31
-                              ../src/test_parser.nit:83,31
-                              identifier 'f' ... ../src/test_parser.nit:83,31
-                              ../src/test_parser.nit:83,31
-                            ')' ... ../src/test_parser.nit:83,32
-                      ../src/test_parser.nit:84,4--10
-                        ../src/test_parser.nit:84,4
-                          ../src/test_parser.nit:84,4
-                          identifier 'f' ... ../src/test_parser.nit:84,4
-                          ../src/test_parser.nit:84,4
-                        identifier 'close' ... ../src/test_parser.nit:84,6--10
-                        ../src/test_parser.nit:84,4
-                      keyword 'end' ... ../src/test_parser.nit:85,3--5
-                  ../src/test_parser.nit:86,3--31
-                    keyword 'var' ... ../src/test_parser.nit:86,3--5
-                    identifier 'lexer' ... ../src/test_parser.nit:86,7--11
-                    '=' ... ../src/test_parser.nit:86,13
-                    ../src/test_parser.nit:86,15--31
-                      keyword 'new' ... ../src/test_parser.nit:86,15--17
-                      ../src/test_parser.nit:86,19--23
-                        type identifier 'Lexer' ... ../src/test_parser.nit:86,19--23
-                      ../src/test_parser.nit:86,24--31
-                        '(' ... ../src/test_parser.nit:86,24
-                        ../src/test_parser.nit:86,25--30
-                          ../src/test_parser.nit:86,25
-                          identifier 'source' ... ../src/test_parser.nit:86,25--30
-                          ../src/test_parser.nit:86,25
-                        ')' ... ../src/test_parser.nit:86,31
-                  ../src/test_parser.nit:87,3--108,5
-                    keyword 'if' ... ../src/test_parser.nit:87,3--4
-                    ../src/test_parser.nit:87,6--15
-                      ../src/test_parser.nit:87,6
-                      identifier 'only_lexer' ... ../src/test_parser.nit:87,6--15
-                      ../src/test_parser.nit:87,6
-                    ../src/test_parser.nit:88,4--94,6
-                      ../src/test_parser.nit:88,4--25
-                        keyword 'var' ... ../src/test_parser.nit:88,4--6
-                        identifier 'token' ... ../src/test_parser.nit:88,8--12
-                        '=' ... ../src/test_parser.nit:88,14
-                        ../src/test_parser.nit:88,16--25
-                          ../src/test_parser.nit:88,16--20
-                            ../src/test_parser.nit:88,16
-                            identifier 'lexer' ... ../src/test_parser.nit:88,16--20
-                            ../src/test_parser.nit:88,16
-                          identifier 'next' ... ../src/test_parser.nit:88,22--25
-                          ../src/test_parser.nit:88,16
-                      ../src/test_parser.nit:89,4--94,6
-                        keyword 'while' ... ../src/test_parser.nit:89,4--8
-                        ../src/test_parser.nit:89,10--26
-                          keyword 'not' ... ../src/test_parser.nit:89,10--12
-                          ../src/test_parser.nit:89,14--26
-                            ../src/test_parser.nit:89,14--18
-                              ../src/test_parser.nit:89,14
-                              identifier 'token' ... ../src/test_parser.nit:89,14--18
-                              ../src/test_parser.nit:89,14
-                            ../src/test_parser.nit:89,24--26
-                              type identifier 'EOF' ... ../src/test_parser.nit:89,24--26
-                        keyword 'do' ... ../src/test_parser.nit:89,28--29
-                        ../src/test_parser.nit:90,5--94,6
-                          ../src/test_parser.nit:90,5--92,7
-                            keyword 'if' ... ../src/test_parser.nit:90,5--6
-                            ../src/test_parser.nit:90,8--19
-                              keyword 'not' ... ../src/test_parser.nit:90,8--10
-                              ../src/test_parser.nit:90,12--19
+                  ../src/test_parser.nit:74,8--29
+                    literal value '"  -h       print this help"' ... ../src/test_parser.nit:74,8--29
+                  ')' ... ../src/test_parser.nit:74,30
+            ../src/test_parser.nit:76,2--109,3
+              ../src/test_parser.nit:76,2--108,4
+                keyword 'for' ... ../src/test_parser.nit:76,2--4
+                identifier 'a' ... ../src/test_parser.nit:76,6
+                ../src/test_parser.nit:76,11--14
+                  ../src/test_parser.nit:76,11
+                  identifier 'args' ... ../src/test_parser.nit:76,11--14
+                  ../src/test_parser.nit:76,11
+                keyword 'do' ... ../src/test_parser.nit:76,16--17
+                ../src/test_parser.nit:77,3--108,4
+                  ../src/test_parser.nit:77,3--12
+                    keyword 'var' ... ../src/test_parser.nit:77,3--5
+                    identifier 'source' ... ../src/test_parser.nit:77,7--12
+                  ../src/test_parser.nit:78,3--84,5
+                    keyword 'if' ... ../src/test_parser.nit:78,3--4
+                    ../src/test_parser.nit:78,6--12
+                      ../src/test_parser.nit:78,6
+                      identifier 'no_file' ... ../src/test_parser.nit:78,6--12
+                      ../src/test_parser.nit:78,6
+                    ../src/test_parser.nit:79,4--45
+                      ../src/test_parser.nit:79,4--45
+                        ../src/test_parser.nit:79,17
+                        identifier 'source' ... ../src/test_parser.nit:79,4--9
+                        ../src/test_parser.nit:79,17
+                        '=' ... ../src/test_parser.nit:79,11
+                        ../src/test_parser.nit:79,13--45
+                          keyword 'new' ... ../src/test_parser.nit:79,13--15
+                          ../src/test_parser.nit:79,17--26
+                            type identifier 'SourceFile' ... ../src/test_parser.nit:79,17--26
+                          identifier 'from_string' ... ../src/test_parser.nit:79,28--38
+                          ../src/test_parser.nit:79,39--45
+                            '(' ... ../src/test_parser.nit:79,39
+                            ../src/test_parser.nit:79,40--41
+                              literal value '""' ... ../src/test_parser.nit:79,40--41
+                            ../src/test_parser.nit:79,44
+                              ../src/test_parser.nit:79,44
+                              identifier 'a' ... ../src/test_parser.nit:79,44
+                              ../src/test_parser.nit:79,44
+                            ')' ... ../src/test_parser.nit:79,45
+                    ../src/test_parser.nit:81,4--84,5
+                      ../src/test_parser.nit:81,4--31
+                        keyword 'var' ... ../src/test_parser.nit:81,4--6
+                        identifier 'f' ... ../src/test_parser.nit:81,8
+                        '=' ... ../src/test_parser.nit:81,10
+                        ../src/test_parser.nit:81,12--31
+                          keyword 'new' ... ../src/test_parser.nit:81,12--14
+                          ../src/test_parser.nit:81,16--23
+                            type identifier 'IFStream' ... ../src/test_parser.nit:81,16--23
+                          identifier 'open' ... ../src/test_parser.nit:81,25--28
+                          ../src/test_parser.nit:81,29--31
+                            '(' ... ../src/test_parser.nit:81,29
+                            ../src/test_parser.nit:81,30
+                              ../src/test_parser.nit:81,30
+                              identifier 'a' ... ../src/test_parser.nit:81,30
+                              ../src/test_parser.nit:81,30
+                            ')' ... ../src/test_parser.nit:81,31
+                      ../src/test_parser.nit:82,4--32
+                        ../src/test_parser.nit:82,17
+                        identifier 'source' ... ../src/test_parser.nit:82,4--9
+                        ../src/test_parser.nit:82,17
+                        '=' ... ../src/test_parser.nit:82,11
+                        ../src/test_parser.nit:82,13--32
+                          keyword 'new' ... ../src/test_parser.nit:82,13--15
+                          ../src/test_parser.nit:82,17--26
+                            type identifier 'SourceFile' ... ../src/test_parser.nit:82,17--26
+                          ../src/test_parser.nit:82,27--32
+                            '(' ... ../src/test_parser.nit:82,27
+                            ../src/test_parser.nit:82,28
+                              ../src/test_parser.nit:82,28
+                              identifier 'a' ... ../src/test_parser.nit:82,28
+                              ../src/test_parser.nit:82,28
+                            ../src/test_parser.nit:82,31
+                              ../src/test_parser.nit:82,31
+                              identifier 'f' ... ../src/test_parser.nit:82,31
+                              ../src/test_parser.nit:82,31
+                            ')' ... ../src/test_parser.nit:82,32
+                      ../src/test_parser.nit:83,4--10
+                        ../src/test_parser.nit:83,4
+                          ../src/test_parser.nit:83,4
+                          identifier 'f' ... ../src/test_parser.nit:83,4
+                          ../src/test_parser.nit:83,4
+                        identifier 'close' ... ../src/test_parser.nit:83,6--10
+                        ../src/test_parser.nit:83,4
+                      keyword 'end' ... ../src/test_parser.nit:84,3--5
+                  ../src/test_parser.nit:85,3--31
+                    keyword 'var' ... ../src/test_parser.nit:85,3--5
+                    identifier 'lexer' ... ../src/test_parser.nit:85,7--11
+                    '=' ... ../src/test_parser.nit:85,13
+                    ../src/test_parser.nit:85,15--31
+                      keyword 'new' ... ../src/test_parser.nit:85,15--17
+                      ../src/test_parser.nit:85,19--23
+                        type identifier 'Lexer' ... ../src/test_parser.nit:85,19--23
+                      ../src/test_parser.nit:85,24--31
+                        '(' ... ../src/test_parser.nit:85,24
+                        ../src/test_parser.nit:85,25--30
+                          ../src/test_parser.nit:85,25
+                          identifier 'source' ... ../src/test_parser.nit:85,25--30
+                          ../src/test_parser.nit:85,25
+                        ')' ... ../src/test_parser.nit:85,31
+                  ../src/test_parser.nit:86,3--107,5
+                    keyword 'if' ... ../src/test_parser.nit:86,3--4
+                    ../src/test_parser.nit:86,6--15
+                      ../src/test_parser.nit:86,6
+                      identifier 'only_lexer' ... ../src/test_parser.nit:86,6--15
+                      ../src/test_parser.nit:86,6
+                    ../src/test_parser.nit:87,4--93,6
+                      ../src/test_parser.nit:87,4--25
+                        keyword 'var' ... ../src/test_parser.nit:87,4--6
+                        identifier 'token' ... ../src/test_parser.nit:87,8--12
+                        '=' ... ../src/test_parser.nit:87,14
+                        ../src/test_parser.nit:87,16--25
+                          ../src/test_parser.nit:87,16--20
+                            ../src/test_parser.nit:87,16
+                            identifier 'lexer' ... ../src/test_parser.nit:87,16--20
+                            ../src/test_parser.nit:87,16
+                          identifier 'next' ... ../src/test_parser.nit:87,22--25
+                          ../src/test_parser.nit:87,16
+                      ../src/test_parser.nit:88,4--93,6
+                        keyword 'while' ... ../src/test_parser.nit:88,4--8
+                        ../src/test_parser.nit:88,10--26
+                          keyword 'not' ... ../src/test_parser.nit:88,10--12
+                          ../src/test_parser.nit:88,14--26
+                            ../src/test_parser.nit:88,14--18
+                              ../src/test_parser.nit:88,14
+                              identifier 'token' ... ../src/test_parser.nit:88,14--18
+                              ../src/test_parser.nit:88,14
+                            ../src/test_parser.nit:88,24--26
+                              type identifier 'EOF' ... ../src/test_parser.nit:88,24--26
+                        keyword 'do' ... ../src/test_parser.nit:88,28--29
+                        ../src/test_parser.nit:89,5--93,6
+                          ../src/test_parser.nit:89,5--91,7
+                            keyword 'if' ... ../src/test_parser.nit:89,5--6
+                            ../src/test_parser.nit:89,8--19
+                              keyword 'not' ... ../src/test_parser.nit:89,8--10
+                              ../src/test_parser.nit:89,12--19
+                                ../src/test_parser.nit:89,12
+                                identifier 'no_print' ... ../src/test_parser.nit:89,12--19
+                                ../src/test_parser.nit:89,12
+                            ../src/test_parser.nit:90,6--64
+                              ../src/test_parser.nit:90,6--64
                                 ../src/test_parser.nit:90,12
-                                identifier 'no_print' ... ../src/test_parser.nit:90,12--19
-                                ../src/test_parser.nit:90,12
-                            ../src/test_parser.nit:91,6--64
-                              ../src/test_parser.nit:91,6--64
-                                ../src/test_parser.nit:91,12
-                                identifier 'print' ... ../src/test_parser.nit:91,6--10
-                                ../src/test_parser.nit:91,11--64
-                                  '(' ... ../src/test_parser.nit:91,11
-                                  ../src/test_parser.nit:91,12--63
-                                    ../src/test_parser.nit:91,12--27
-                                      literal value '"Read token at {' ... ../src/test_parser.nit:91,12--27
-                                    ../src/test_parser.nit:91,28--41
-                                      ../src/test_parser.nit:91,28--32
-                                        ../src/test_parser.nit:91,28
-                                        identifier 'token' ... ../src/test_parser.nit:91,28--32
-                                        ../src/test_parser.nit:91,28
-                                      identifier 'location' ... ../src/test_parser.nit:91,34--41
-                                      ../src/test_parser.nit:91,28
-                                    ../src/test_parser.nit:91,42--50
-                                      literal value '} text='{' ... ../src/test_parser.nit:91,42--50
-                                    ../src/test_parser.nit:91,51--60
-                                      ../src/test_parser.nit:91,51--55
-                                        ../src/test_parser.nit:91,51
-                                        identifier 'token' ... ../src/test_parser.nit:91,51--55
-                                        ../src/test_parser.nit:91,51
-                                      identifier 'text' ... ../src/test_parser.nit:91,57--60
-                                      ../src/test_parser.nit:91,51
-                                    ../src/test_parser.nit:91,61--63
-                                      '}'"' ... ../src/test_parser.nit:91,61--63
-                                  ')' ... ../src/test_parser.nit:91,64
-                            ../src/test_parser.nit:92,5--7
-                              keyword 'end' ... ../src/test_parser.nit:92,5--7
-                          ../src/test_parser.nit:93,5--22
-                            ../src/test_parser.nit:93,13
-                            identifier 'token' ... ../src/test_parser.nit:93,5--9
-                            ../src/test_parser.nit:93,13
-                            '=' ... ../src/test_parser.nit:93,11
-                            ../src/test_parser.nit:93,13--22
-                              ../src/test_parser.nit:93,13--17
-                                ../src/test_parser.nit:93,13
-                                identifier 'lexer' ... ../src/test_parser.nit:93,13--17
-                                ../src/test_parser.nit:93,13
-                              identifier 'next' ... ../src/test_parser.nit:93,19--22
-                              ../src/test_parser.nit:93,13
-                          keyword 'end' ... ../src/test_parser.nit:94,4--6
-                    ../src/test_parser.nit:96,4--108,5
-                      ../src/test_parser.nit:96,4--33
+                                identifier 'print' ... ../src/test_parser.nit:90,6--10
+                                ../src/test_parser.nit:90,11--64
+                                  '(' ... ../src/test_parser.nit:90,11
+                                  ../src/test_parser.nit:90,12--63
+                                    ../src/test_parser.nit:90,12--27
+                                      literal value '"Read token at {' ... ../src/test_parser.nit:90,12--27
+                                    ../src/test_parser.nit:90,28--41
+                                      ../src/test_parser.nit:90,28--32
+                                        ../src/test_parser.nit:90,28
+                                        identifier 'token' ... ../src/test_parser.nit:90,28--32
+                                        ../src/test_parser.nit:90,28
+                                      identifier 'location' ... ../src/test_parser.nit:90,34--41
+                                      ../src/test_parser.nit:90,28
+                                    ../src/test_parser.nit:90,42--50
+                                      literal value '} text='{' ... ../src/test_parser.nit:90,42--50
+                                    ../src/test_parser.nit:90,51--60
+                                      ../src/test_parser.nit:90,51--55
+                                        ../src/test_parser.nit:90,51
+                                        identifier 'token' ... ../src/test_parser.nit:90,51--55
+                                        ../src/test_parser.nit:90,51
+                                      identifier 'text' ... ../src/test_parser.nit:90,57--60
+                                      ../src/test_parser.nit:90,51
+                                    ../src/test_parser.nit:90,61--63
+                                      '}'"' ... ../src/test_parser.nit:90,61--63
+                                  ')' ... ../src/test_parser.nit:90,64
+                            ../src/test_parser.nit:91,5--7
+                              keyword 'end' ... ../src/test_parser.nit:91,5--7
+                          ../src/test_parser.nit:92,5--22
+                            ../src/test_parser.nit:92,13
+                            identifier 'token' ... ../src/test_parser.nit:92,5--9
+                            ../src/test_parser.nit:92,13
+                            '=' ... ../src/test_parser.nit:92,11
+                            ../src/test_parser.nit:92,13--22
+                              ../src/test_parser.nit:92,13--17
+                                ../src/test_parser.nit:92,13
+                                identifier 'lexer' ... ../src/test_parser.nit:92,13--17
+                                ../src/test_parser.nit:92,13
+                              identifier 'next' ... ../src/test_parser.nit:92,19--22
+                              ../src/test_parser.nit:92,13
+                          keyword 'end' ... ../src/test_parser.nit:93,4--6
+                    ../src/test_parser.nit:95,4--107,5
+                      ../src/test_parser.nit:95,4--33
+                        keyword 'var' ... ../src/test_parser.nit:95,4--6
+                        identifier 'parser' ... ../src/test_parser.nit:95,8--13
+                        '=' ... ../src/test_parser.nit:95,15
+                        ../src/test_parser.nit:95,17--33
+                          keyword 'new' ... ../src/test_parser.nit:95,17--19
+                          ../src/test_parser.nit:95,21--26
+                            type identifier 'Parser' ... ../src/test_parser.nit:95,21--26
+                          ../src/test_parser.nit:95,27--33
+                            '(' ... ../src/test_parser.nit:95,27
+                            ../src/test_parser.nit:95,28--32
+                              ../src/test_parser.nit:95,28
+                              identifier 'lexer' ... ../src/test_parser.nit:95,28--32
+                              ../src/test_parser.nit:95,28
+                            ')' ... ../src/test_parser.nit:95,33
+                      ../src/test_parser.nit:96,4--26
                         keyword 'var' ... ../src/test_parser.nit:96,4--6
-                        identifier 'parser' ... ../src/test_parser.nit:96,8--13
-                        '=' ... ../src/test_parser.nit:96,15
-                        ../src/test_parser.nit:96,17--33
-                          keyword 'new' ... ../src/test_parser.nit:96,17--19
-                          ../src/test_parser.nit:96,21--26
-                            type identifier 'Parser' ... ../src/test_parser.nit:96,21--26
-                          ../src/test_parser.nit:96,27--33
-                            '(' ... ../src/test_parser.nit:96,27
-                            ../src/test_parser.nit:96,28--32
-                              ../src/test_parser.nit:96,28
-                              identifier 'lexer' ... ../src/test_parser.nit:96,28--32
-                              ../src/test_parser.nit:96,28
-                            ')' ... ../src/test_parser.nit:96,33
-                      ../src/test_parser.nit:97,4--26
-                        keyword 'var' ... ../src/test_parser.nit:97,4--6
-                        identifier 'tree' ... ../src/test_parser.nit:97,8--11
-                        '=' ... ../src/test_parser.nit:97,13
-                        ../src/test_parser.nit:97,15--26
-                          ../src/test_parser.nit:97,15--20
-                            ../src/test_parser.nit:97,15
-                            identifier 'parser' ... ../src/test_parser.nit:97,15--20
-                            ../src/test_parser.nit:97,15
-                          identifier 'parse' ... ../src/test_parser.nit:97,22--26
-                          ../src/test_parser.nit:97,15
-                      ../src/test_parser.nit:99,4--25
-                        keyword 'var' ... ../src/test_parser.nit:99,4--6
-                        identifier 'error' ... ../src/test_parser.nit:99,8--12
-                        '=' ... ../src/test_parser.nit:99,14
-                        ../src/test_parser.nit:99,16--25
-                          ../src/test_parser.nit:99,16--19
-                            ../src/test_parser.nit:99,16
-                            identifier 'tree' ... ../src/test_parser.nit:99,16--19
-                            ../src/test_parser.nit:99,16
-                          identifier 'n_eof' ... ../src/test_parser.nit:99,21--25
-                          ../src/test_parser.nit:99,16
-                      ../src/test_parser.nit:100,4--103,6
-                        keyword 'if' ... ../src/test_parser.nit:100,4--5
-                        ../src/test_parser.nit:100,7--22
-                          ../src/test_parser.nit:100,7--11
-                            ../src/test_parser.nit:100,7
-                            identifier 'error' ... ../src/test_parser.nit:100,7--11
-                            ../src/test_parser.nit:100,7
-                          ../src/test_parser.nit:100,17--22
-                            type identifier 'AError' ... ../src/test_parser.nit:100,17--22
-                        ../src/test_parser.nit:101,5--102,10
-                          ../src/test_parser.nit:101,5--58
-                            ../src/test_parser.nit:101,11
-                            identifier 'print' ... ../src/test_parser.nit:101,5--9
-                            ../src/test_parser.nit:101,10--58
-                              '(' ... ../src/test_parser.nit:101,10
-                              ../src/test_parser.nit:101,11--57
-                                ../src/test_parser.nit:101,11--21
-                                  literal value '"Error at {' ... ../src/test_parser.nit:101,11--21
-                                ../src/test_parser.nit:101,22--35
-                                  ../src/test_parser.nit:101,22--26
-                                    ../src/test_parser.nit:101,22
-                                    identifier 'error' ... ../src/test_parser.nit:101,22--26
-                                    ../src/test_parser.nit:101,22
-                                  identifier 'location' ... ../src/test_parser.nit:101,28--35
-                                  ../src/test_parser.nit:101,22
-                                ../src/test_parser.nit:101,36--42
-                                  literal value '}:\n\t{' ... ../src/test_parser.nit:101,36--42
-                                ../src/test_parser.nit:101,43--55
-                                  ../src/test_parser.nit:101,43--47
-                                    ../src/test_parser.nit:101,43
-                                    identifier 'error' ... ../src/test_parser.nit:101,43--47
-                                    ../src/test_parser.nit:101,43
-                                  identifier 'message' ... ../src/test_parser.nit:101,49--55
-                                  ../src/test_parser.nit:101,43
-                                ../src/test_parser.nit:101,56--57
-                                  '}"' ... ../src/test_parser.nit:101,56--57
-                              ')' ... ../src/test_parser.nit:101,58
-                          ../src/test_parser.nit:102,5--10
-                            keyword 'return' ... ../src/test_parser.nit:102,5--10
-                        ../src/test_parser.nit:103,4--6
-                          keyword 'end' ... ../src/test_parser.nit:103,4--6
-                      ../src/test_parser.nit:105,4--107,6
-                        keyword 'if' ... ../src/test_parser.nit:105,4--5
-                        ../src/test_parser.nit:105,7--18
-                          keyword 'not' ... ../src/test_parser.nit:105,7--9
-                          ../src/test_parser.nit:105,11--18
-                            ../src/test_parser.nit:105,11
-                            identifier 'no_print' ... ../src/test_parser.nit:105,11--18
-                            ../src/test_parser.nit:105,11
-                        ../src/test_parser.nit:106,5--44
-                          ../src/test_parser.nit:106,5--44
-                            ../src/test_parser.nit:106,5--26
-                              '(' ... ../src/test_parser.nit:106,5
-                              ../src/test_parser.nit:106,6--25
-                                keyword 'new' ... ../src/test_parser.nit:106,6--8
-                                ../src/test_parser.nit:106,10--25
-                                  type identifier 'PrintTreeVisitor' ... ../src/test_parser.nit:106,10--25
-                                ../src/test_parser.nit:106,6
-                              ')' ... ../src/test_parser.nit:106,26
-                            identifier 'enter_visit' ... ../src/test_parser.nit:106,28--38
-                            ../src/test_parser.nit:106,39--44
-                              '(' ... ../src/test_parser.nit:106,39
-                              ../src/test_parser.nit:106,40--43
-                                ../src/test_parser.nit:106,40
-                                identifier 'tree' ... ../src/test_parser.nit:106,40--43
-                                ../src/test_parser.nit:106,40
-                              ')' ... ../src/test_parser.nit:106,44
-                        ../src/test_parser.nit:107,4--6
-                          keyword 'end' ... ../src/test_parser.nit:107,4--6
-                      keyword 'end' ... ../src/test_parser.nit:108,3--5
-                  keyword 'end' ... ../src/test_parser.nit:109,2--4
-              keyword 'end' ... ../src/test_parser.nit:110,1--3
-  end of file ... ../src/test_parser.nit:111,1
+                        identifier 'tree' ... ../src/test_parser.nit:96,8--11
+                        '=' ... ../src/test_parser.nit:96,13
+                        ../src/test_parser.nit:96,15--26
+                          ../src/test_parser.nit:96,15--20
+                            ../src/test_parser.nit:96,15
+                            identifier 'parser' ... ../src/test_parser.nit:96,15--20
+                            ../src/test_parser.nit:96,15
+                          identifier 'parse' ... ../src/test_parser.nit:96,22--26
+                          ../src/test_parser.nit:96,15
+                      ../src/test_parser.nit:98,4--25
+                        keyword 'var' ... ../src/test_parser.nit:98,4--6
+                        identifier 'error' ... ../src/test_parser.nit:98,8--12
+                        '=' ... ../src/test_parser.nit:98,14
+                        ../src/test_parser.nit:98,16--25
+                          ../src/test_parser.nit:98,16--19
+                            ../src/test_parser.nit:98,16
+                            identifier 'tree' ... ../src/test_parser.nit:98,16--19
+                            ../src/test_parser.nit:98,16
+                          identifier 'n_eof' ... ../src/test_parser.nit:98,21--25
+                          ../src/test_parser.nit:98,16
+                      ../src/test_parser.nit:99,4--102,6
+                        keyword 'if' ... ../src/test_parser.nit:99,4--5
+                        ../src/test_parser.nit:99,7--22
+                          ../src/test_parser.nit:99,7--11
+                            ../src/test_parser.nit:99,7
+                            identifier 'error' ... ../src/test_parser.nit:99,7--11
+                            ../src/test_parser.nit:99,7
+                          ../src/test_parser.nit:99,17--22
+                            type identifier 'AError' ... ../src/test_parser.nit:99,17--22
+                        ../src/test_parser.nit:100,5--101,10
+                          ../src/test_parser.nit:100,5--58
+                            ../src/test_parser.nit:100,11
+                            identifier 'print' ... ../src/test_parser.nit:100,5--9
+                            ../src/test_parser.nit:100,10--58
+                              '(' ... ../src/test_parser.nit:100,10
+                              ../src/test_parser.nit:100,11--57
+                                ../src/test_parser.nit:100,11--21
+                                  literal value '"Error at {' ... ../src/test_parser.nit:100,11--21
+                                ../src/test_parser.nit:100,22--35
+                                  ../src/test_parser.nit:100,22--26
+                                    ../src/test_parser.nit:100,22
+                                    identifier 'error' ... ../src/test_parser.nit:100,22--26
+                                    ../src/test_parser.nit:100,22
+                                  identifier 'location' ... ../src/test_parser.nit:100,28--35
+                                  ../src/test_parser.nit:100,22
+                                ../src/test_parser.nit:100,36--42
+                                  literal value '}:\n\t{' ... ../src/test_parser.nit:100,36--42
+                                ../src/test_parser.nit:100,43--55
+                                  ../src/test_parser.nit:100,43--47
+                                    ../src/test_parser.nit:100,43
+                                    identifier 'error' ... ../src/test_parser.nit:100,43--47
+                                    ../src/test_parser.nit:100,43
+                                  identifier 'message' ... ../src/test_parser.nit:100,49--55
+                                  ../src/test_parser.nit:100,43
+                                ../src/test_parser.nit:100,56--57
+                                  '}"' ... ../src/test_parser.nit:100,56--57
+                              ')' ... ../src/test_parser.nit:100,58
+                          ../src/test_parser.nit:101,5--10
+                            keyword 'return' ... ../src/test_parser.nit:101,5--10
+                        ../src/test_parser.nit:102,4--6
+                          keyword 'end' ... ../src/test_parser.nit:102,4--6
+                      ../src/test_parser.nit:104,4--106,6
+                        keyword 'if' ... ../src/test_parser.nit:104,4--5
+                        ../src/test_parser.nit:104,7--18
+                          keyword 'not' ... ../src/test_parser.nit:104,7--9
+                          ../src/test_parser.nit:104,11--18
+                            ../src/test_parser.nit:104,11
+                            identifier 'no_print' ... ../src/test_parser.nit:104,11--18
+                            ../src/test_parser.nit:104,11
+                        ../src/test_parser.nit:105,5--44
+                          ../src/test_parser.nit:105,5--44
+                            ../src/test_parser.nit:105,5--26
+                              '(' ... ../src/test_parser.nit:105,5
+                              ../src/test_parser.nit:105,6--25
+                                keyword 'new' ... ../src/test_parser.nit:105,6--8
+                                ../src/test_parser.nit:105,10--25
+                                  type identifier 'PrintTreeVisitor' ... ../src/test_parser.nit:105,10--25
+                                ../src/test_parser.nit:105,6
+                              ')' ... ../src/test_parser.nit:105,26
+                            identifier 'enter_visit' ... ../src/test_parser.nit:105,28--38
+                            ../src/test_parser.nit:105,39--44
+                              '(' ... ../src/test_parser.nit:105,39
+                              ../src/test_parser.nit:105,40--43
+                                ../src/test_parser.nit:105,40
+                                identifier 'tree' ... ../src/test_parser.nit:105,40--43
+                                ../src/test_parser.nit:105,40
+                              ')' ... ../src/test_parser.nit:105,44
+                        ../src/test_parser.nit:106,4--6
+                          keyword 'end' ... ../src/test_parser.nit:106,4--6
+                      keyword 'end' ... ../src/test_parser.nit:107,3--5
+                  keyword 'end' ... ../src/test_parser.nit:108,2--4
+              keyword 'end' ... ../src/test_parser.nit:109,1--3
+  end of file ... ../src/test_parser.nit:110,1
index 4b39a6b..2730912 100644 (file)
@@ -63,545 +63,534 @@ Read token at ../src/test_parser.nit:25,8--10 text='fun'
 Read token at ../src/test_parser.nit:25,12--16 text='visit'
 Read token at ../src/test_parser.nit:25,17 text='('
 Read token at ../src/test_parser.nit:25,18 text='n'
-Read token at ../src/test_parser.nit:25,19 text=':'
-Read token at ../src/test_parser.nit:25,21--28 text='nullable'
-Read token at ../src/test_parser.nit:25,30--34 text='ANode'
-Read token at ../src/test_parser.nit:25,35 text=')'
-Read token at ../src/test_parser.nit:25,36--26,0 text='
+Read token at ../src/test_parser.nit:25,19 text=')'
+Read token at ../src/test_parser.nit:25,20--26,0 text='
 '
 Read token at ../src/test_parser.nit:26,2--3 text='do'
 Read token at ../src/test_parser.nit:26,4--27,0 text='
 '
 Read token at ../src/test_parser.nit:27,3--4 text='if'
 Read token at ../src/test_parser.nit:27,6 text='n'
-Read token at ../src/test_parser.nit:27,8--9 text='=='
-Read token at ../src/test_parser.nit:27,11--14 text='null'
-Read token at ../src/test_parser.nit:27,16--19 text='then'
-Read token at ../src/test_parser.nit:27,21--26 text='return'
-Read token at ../src/test_parser.nit:27,27--28,0 text='
-'
-Read token at ../src/test_parser.nit:28,3--4 text='if'
-Read token at ../src/test_parser.nit:28,6 text='n'
-Read token at ../src/test_parser.nit:28,8--10 text='isa'
-Read token at ../src/test_parser.nit:28,12--16 text='Token'
-Read token at ../src/test_parser.nit:28,18--21 text='then'
-Read token at ../src/test_parser.nit:28,22--29,0 text='
-'
-Read token at ../src/test_parser.nit:29,4--9 text='printn'
-Read token at ../src/test_parser.nit:29,10 text='('
-Read token at ../src/test_parser.nit:29,11--14 text='"  "'
-Read token at ../src/test_parser.nit:29,16 text='*'
-Read token at ../src/test_parser.nit:29,18--22 text='_rank'
-Read token at ../src/test_parser.nit:29,23 text=','
-Read token at ../src/test_parser.nit:29,25 text='n'
-Read token at ../src/test_parser.nit:29,26 text='.'
-Read token at ../src/test_parser.nit:29,27--30 text='to_s'
-Read token at ../src/test_parser.nit:29,31 text=','
-Read token at ../src/test_parser.nit:29,33--39 text='" ... "'
-Read token at ../src/test_parser.nit:29,40 text=','
-Read token at ../src/test_parser.nit:29,42 text='n'
-Read token at ../src/test_parser.nit:29,43 text='.'
-Read token at ../src/test_parser.nit:29,44--51 text='location'
-Read token at ../src/test_parser.nit:29,52 text=','
-Read token at ../src/test_parser.nit:29,54--57 text='"\n"'
-Read token at ../src/test_parser.nit:29,58 text=')'
-Read token at ../src/test_parser.nit:29,59--30,0 text='
-'
-Read token at ../src/test_parser.nit:30,3--6 text='else'
-Read token at ../src/test_parser.nit:30,7--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--22 text='_rank'
-Read token at ../src/test_parser.nit:31,23 text=','
-Read token at ../src/test_parser.nit:31,25 text='n'
-Read token at ../src/test_parser.nit:31,26 text='.'
-Read token at ../src/test_parser.nit:31,27--34 text='location'
-Read token at ../src/test_parser.nit:31,35 text=','
-Read token at ../src/test_parser.nit:31,37--40 text='"\n"'
-Read token at ../src/test_parser.nit:31,41 text=')'
-Read token at ../src/test_parser.nit:31,42--32,0 text='
-'
-Read token at ../src/test_parser.nit:32,3--5 text='end'
-Read token at ../src/test_parser.nit:32,6--33,0 text='
-'
-Read token at ../src/test_parser.nit:33,3--7 text='_rank'
-Read token at ../src/test_parser.nit:33,9 text='='
-Read token at ../src/test_parser.nit:33,11--15 text='_rank'
-Read token at ../src/test_parser.nit:33,17 text='+'
-Read token at ../src/test_parser.nit:33,19 text='1'
+Read token at ../src/test_parser.nit:27,8--10 text='isa'
+Read token at ../src/test_parser.nit:27,12--16 text='Token'
+Read token at ../src/test_parser.nit:27,18--21 text='then'
+Read token at ../src/test_parser.nit:27,22--28,0 text='
+'
+Read token at ../src/test_parser.nit:28,4--9 text='printn'
+Read token at ../src/test_parser.nit:28,10 text='('
+Read token at ../src/test_parser.nit:28,11--14 text='"  "'
+Read token at ../src/test_parser.nit:28,16 text='*'
+Read token at ../src/test_parser.nit:28,18--22 text='_rank'
+Read token at ../src/test_parser.nit:28,23 text=','
+Read token at ../src/test_parser.nit:28,25 text='n'
+Read token at ../src/test_parser.nit:28,26 text='.'
+Read token at ../src/test_parser.nit:28,27--30 text='to_s'
+Read token at ../src/test_parser.nit:28,31 text=','
+Read token at ../src/test_parser.nit:28,33--39 text='" ... "'
+Read token at ../src/test_parser.nit:28,40 text=','
+Read token at ../src/test_parser.nit:28,42 text='n'
+Read token at ../src/test_parser.nit:28,43 text='.'
+Read token at ../src/test_parser.nit:28,44--51 text='location'
+Read token at ../src/test_parser.nit:28,52 text=','
+Read token at ../src/test_parser.nit:28,54--57 text='"\n"'
+Read token at ../src/test_parser.nit:28,58 text=')'
+Read token at ../src/test_parser.nit:28,59--29,0 text='
+'
+Read token at ../src/test_parser.nit:29,3--6 text='else'
+Read token at ../src/test_parser.nit:29,7--30,0 text='
+'
+Read token at ../src/test_parser.nit:30,4--9 text='printn'
+Read token at ../src/test_parser.nit:30,10 text='('
+Read token at ../src/test_parser.nit:30,11--14 text='"  "'
+Read token at ../src/test_parser.nit:30,16 text='*'
+Read token at ../src/test_parser.nit:30,18--22 text='_rank'
+Read token at ../src/test_parser.nit:30,23 text=','
+Read token at ../src/test_parser.nit:30,25 text='n'
+Read token at ../src/test_parser.nit:30,26 text='.'
+Read token at ../src/test_parser.nit:30,27--34 text='location'
+Read token at ../src/test_parser.nit:30,35 text=','
+Read token at ../src/test_parser.nit:30,37--40 text='"\n"'
+Read token at ../src/test_parser.nit:30,41 text=')'
+Read token at ../src/test_parser.nit:30,42--31,0 text='
+'
+Read token at ../src/test_parser.nit:31,3--5 text='end'
+Read token at ../src/test_parser.nit:31,6--32,0 text='
+'
+Read token at ../src/test_parser.nit:32,3--7 text='_rank'
+Read token at ../src/test_parser.nit:32,9 text='='
+Read token at ../src/test_parser.nit:32,11--15 text='_rank'
+Read token at ../src/test_parser.nit:32,17 text='+'
+Read token at ../src/test_parser.nit:32,19 text='1'
+Read token at ../src/test_parser.nit:32,20--33,0 text='
+'
+Read token at ../src/test_parser.nit:33,3 text='n'
+Read token at ../src/test_parser.nit:33,4 text='.'
+Read token at ../src/test_parser.nit:33,5--13 text='visit_all'
+Read token at ../src/test_parser.nit:33,14 text='('
+Read token at ../src/test_parser.nit:33,15--18 text='self'
+Read token at ../src/test_parser.nit:33,19 text=')'
 Read token at ../src/test_parser.nit:33,20--34,0 text='
 '
-Read token at ../src/test_parser.nit:34,3 text='n'
-Read token at ../src/test_parser.nit:34,4 text='.'
-Read token at ../src/test_parser.nit:34,5--13 text='visit_all'
-Read token at ../src/test_parser.nit:34,14 text='('
-Read token at ../src/test_parser.nit:34,15--18 text='self'
-Read token at ../src/test_parser.nit:34,19 text=')'
+Read token at ../src/test_parser.nit:34,3--7 text='_rank'
+Read token at ../src/test_parser.nit:34,9 text='='
+Read token at ../src/test_parser.nit:34,11--15 text='_rank'
+Read token at ../src/test_parser.nit:34,17 text='-'
+Read token at ../src/test_parser.nit:34,19 text='1'
 Read token at ../src/test_parser.nit:34,20--35,0 text='
 '
-Read token at ../src/test_parser.nit:35,3--7 text='_rank'
-Read token at ../src/test_parser.nit:35,9 text='='
-Read token at ../src/test_parser.nit:35,11--15 text='_rank'
-Read token at ../src/test_parser.nit:35,17 text='-'
-Read token at ../src/test_parser.nit:35,19 text='1'
-Read token at ../src/test_parser.nit:35,20--36,0 text='
+Read token at ../src/test_parser.nit:35,2--4 text='end'
+Read token at ../src/test_parser.nit:35,5--36,0 text='
 '
-Read token at ../src/test_parser.nit:36,2--4 text='end'
-Read token at ../src/test_parser.nit:36,5--37,0 text='
+Read token at ../src/test_parser.nit:36,1--37,0 text='
 '
-Read token at ../src/test_parser.nit:37,1--38,0 text='
+Read token at ../src/test_parser.nit:37,2--5 text='init'
+Read token at ../src/test_parser.nit:37,6--38,0 text='
 '
-Read token at ../src/test_parser.nit:38,2--5 text='init'
-Read token at ../src/test_parser.nit:38,6--39,0 text='
+Read token at ../src/test_parser.nit:38,2--3 text='do'
+Read token at ../src/test_parser.nit:38,4--39,0 text='
 '
-Read token at ../src/test_parser.nit:39,2--3 text='do'
-Read token at ../src/test_parser.nit:39,4--40,0 text='
+Read token at ../src/test_parser.nit:39,3--7 text='_rank'
+Read token at ../src/test_parser.nit:39,9 text='='
+Read token at ../src/test_parser.nit:39,11 text='0'
+Read token at ../src/test_parser.nit:39,12--40,0 text='
 '
-Read token at ../src/test_parser.nit:40,3--7 text='_rank'
-Read token at ../src/test_parser.nit:40,9 text='='
-Read token at ../src/test_parser.nit:40,11 text='0'
-Read token at ../src/test_parser.nit:40,12--41,0 text='
+Read token at ../src/test_parser.nit:40,2--4 text='end'
+Read token at ../src/test_parser.nit:40,5--41,0 text='
 '
-Read token at ../src/test_parser.nit:41,2--4 text='end'
-Read token at ../src/test_parser.nit:41,5--42,0 text='
+Read token at ../src/test_parser.nit:41,1--3 text='end'
+Read token at ../src/test_parser.nit:41,4--42,0 text='
 '
-Read token at ../src/test_parser.nit:42,1--3 text='end'
-Read token at ../src/test_parser.nit:42,4--43,0 text='
+Read token at ../src/test_parser.nit:42,1--43,0 text='
 '
-Read token at ../src/test_parser.nit:43,1--44,0 text='
+Read token at ../src/test_parser.nit:43,1--3 text='var'
+Read token at ../src/test_parser.nit:43,5--12 text='no_print'
+Read token at ../src/test_parser.nit:43,14 text='='
+Read token at ../src/test_parser.nit:43,16--20 text='false'
+Read token at ../src/test_parser.nit:43,21--44,0 text='
 '
 Read token at ../src/test_parser.nit:44,1--3 text='var'
-Read token at ../src/test_parser.nit:44,5--12 text='no_print'
-Read token at ../src/test_parser.nit:44,14 text='='
-Read token at ../src/test_parser.nit:44,16--20 text='false'
-Read token at ../src/test_parser.nit:44,21--45,0 text='
+Read token at ../src/test_parser.nit:44,5--14 text='only_lexer'
+Read token at ../src/test_parser.nit:44,16 text='='
+Read token at ../src/test_parser.nit:44,18--22 text='false'
+Read token at ../src/test_parser.nit:44,23--45,0 text='
 '
 Read token at ../src/test_parser.nit:45,1--3 text='var'
-Read token at ../src/test_parser.nit:45,5--14 text='only_lexer'
-Read token at ../src/test_parser.nit:45,16 text='='
-Read token at ../src/test_parser.nit:45,18--22 text='false'
-Read token at ../src/test_parser.nit:45,23--46,0 text='
+Read token at ../src/test_parser.nit:45,5--13 text='need_help'
+Read token at ../src/test_parser.nit:45,15 text='='
+Read token at ../src/test_parser.nit:45,17--21 text='false'
+Read token at ../src/test_parser.nit:45,22--46,0 text='
 '
 Read token at ../src/test_parser.nit:46,1--3 text='var'
-Read token at ../src/test_parser.nit:46,5--13 text='need_help'
-Read token at ../src/test_parser.nit:46,15 text='='
-Read token at ../src/test_parser.nit:46,17--21 text='false'
-Read token at ../src/test_parser.nit:46,22--47,0 text='
-'
-Read token at ../src/test_parser.nit:47,1--3 text='var'
-Read token at ../src/test_parser.nit:47,5--11 text='no_file'
-Read token at ../src/test_parser.nit:47,13 text='='
-Read token at ../src/test_parser.nit:47,15--19 text='false'
-Read token at ../src/test_parser.nit:47,20--48,0 text='
-'
-Read token at ../src/test_parser.nit:48,1--49,0 text='
-'
-Read token at ../src/test_parser.nit:49,1--5 text='while'
-Read token at ../src/test_parser.nit:49,7--9 text='not'
-Read token at ../src/test_parser.nit:49,11--14 text='args'
-Read token at ../src/test_parser.nit:49,15 text='.'
-Read token at ../src/test_parser.nit:49,16--23 text='is_empty'
-Read token at ../src/test_parser.nit:49,25--27 text='and'
-Read token at ../src/test_parser.nit:49,29--32 text='args'
-Read token at ../src/test_parser.nit:49,33 text='.'
-Read token at ../src/test_parser.nit:49,34--38 text='first'
-Read token at ../src/test_parser.nit:49,39 text='.'
-Read token at ../src/test_parser.nit:49,40--44 text='first'
-Read token at ../src/test_parser.nit:49,46--47 text='=='
-Read token at ../src/test_parser.nit:49,49--51 text=''-''
-Read token at ../src/test_parser.nit:49,53--54 text='do'
-Read token at ../src/test_parser.nit:49,55--50,0 text='
-'
-Read token at ../src/test_parser.nit:50,2--3 text='if'
-Read token at ../src/test_parser.nit:50,5--8 text='args'
-Read token at ../src/test_parser.nit:50,9 text='.'
-Read token at ../src/test_parser.nit:50,10--14 text='first'
-Read token at ../src/test_parser.nit:50,16--17 text='=='
-Read token at ../src/test_parser.nit:50,19--22 text='"-n"'
-Read token at ../src/test_parser.nit:50,24--27 text='then'
-Read token at ../src/test_parser.nit:50,28--51,0 text='
-'
-Read token at ../src/test_parser.nit:51,3--10 text='no_print'
-Read token at ../src/test_parser.nit:51,12 text='='
-Read token at ../src/test_parser.nit:51,14--17 text='true'
-Read token at ../src/test_parser.nit:51,18--52,0 text='
-'
-Read token at ../src/test_parser.nit:52,2--5 text='else'
-Read token at ../src/test_parser.nit:52,7--8 text='if'
-Read token at ../src/test_parser.nit:52,10--13 text='args'
-Read token at ../src/test_parser.nit:52,14 text='.'
-Read token at ../src/test_parser.nit:52,15--19 text='first'
-Read token at ../src/test_parser.nit:52,21--22 text='=='
-Read token at ../src/test_parser.nit:52,24--27 text='"-l"'
-Read token at ../src/test_parser.nit:52,29--32 text='then'
-Read token at ../src/test_parser.nit:52,33--53,0 text='
-'
-Read token at ../src/test_parser.nit:53,3--12 text='only_lexer'
-Read token at ../src/test_parser.nit:53,14 text='='
-Read token at ../src/test_parser.nit:53,16--19 text='true'
-Read token at ../src/test_parser.nit:53,20--54,0 text='
-'
-Read token at ../src/test_parser.nit:54,2--5 text='else'
-Read token at ../src/test_parser.nit:54,7--8 text='if'
-Read token at ../src/test_parser.nit:54,10--13 text='args'
-Read token at ../src/test_parser.nit:54,14 text='.'
-Read token at ../src/test_parser.nit:54,15--19 text='first'
-Read token at ../src/test_parser.nit:54,21--22 text='=='
-Read token at ../src/test_parser.nit:54,24--27 text='"-p"'
-Read token at ../src/test_parser.nit:54,29--32 text='then'
-Read token at ../src/test_parser.nit:54,33--55,0 text='
-'
-Read token at ../src/test_parser.nit:55,3--12 text='only_lexer'
-Read token at ../src/test_parser.nit:55,14 text='='
-Read token at ../src/test_parser.nit:55,16--20 text='false'
-Read token at ../src/test_parser.nit:55,21--56,0 text='
-'
-Read token at ../src/test_parser.nit:56,2--5 text='else'
-Read token at ../src/test_parser.nit:56,7--8 text='if'
-Read token at ../src/test_parser.nit:56,10--13 text='args'
-Read token at ../src/test_parser.nit:56,14 text='.'
-Read token at ../src/test_parser.nit:56,15--19 text='first'
-Read token at ../src/test_parser.nit:56,21--22 text='=='
-Read token at ../src/test_parser.nit:56,24--27 text='"-e"'
-Read token at ../src/test_parser.nit:56,29--32 text='then'
-Read token at ../src/test_parser.nit:56,33--57,0 text='
-'
-Read token at ../src/test_parser.nit:57,3--9 text='no_file'
-Read token at ../src/test_parser.nit:57,11 text='='
-Read token at ../src/test_parser.nit:57,13--16 text='true'
-Read token at ../src/test_parser.nit:57,17--58,0 text='
-'
-Read token at ../src/test_parser.nit:58,2--5 text='else'
-Read token at ../src/test_parser.nit:58,7--8 text='if'
-Read token at ../src/test_parser.nit:58,10--13 text='args'
-Read token at ../src/test_parser.nit:58,14 text='.'
-Read token at ../src/test_parser.nit:58,15--19 text='first'
-Read token at ../src/test_parser.nit:58,21--22 text='=='
-Read token at ../src/test_parser.nit:58,24--27 text='"-h"'
-Read token at ../src/test_parser.nit:58,29--30 text='or'
-Read token at ../src/test_parser.nit:58,32--35 text='args'
-Read token at ../src/test_parser.nit:58,36 text='.'
-Read token at ../src/test_parser.nit:58,37--41 text='first'
-Read token at ../src/test_parser.nit:58,43--44 text='=='
-Read token at ../src/test_parser.nit:58,46--49 text='"-?"'
-Read token at ../src/test_parser.nit:58,51--54 text='then'
-Read token at ../src/test_parser.nit:58,55--59,0 text='
-'
-Read token at ../src/test_parser.nit:59,3--11 text='need_help'
-Read token at ../src/test_parser.nit:59,13 text='='
-Read token at ../src/test_parser.nit:59,15--18 text='true'
-Read token at ../src/test_parser.nit:59,19--60,0 text='
-'
-Read token at ../src/test_parser.nit:60,2--5 text='else'
-Read token at ../src/test_parser.nit:60,6--61,0 text='
-'
-Read token at ../src/test_parser.nit:61,3--8 text='stderr'
-Read token at ../src/test_parser.nit:61,9 text='.'
-Read token at ../src/test_parser.nit:61,10--14 text='write'
-Read token at ../src/test_parser.nit:61,15 text='('
-Read token at ../src/test_parser.nit:61,16--32 text='"Unknown option {'
-Read token at ../src/test_parser.nit:61,33--36 text='args'
-Read token at ../src/test_parser.nit:61,37 text='.'
-Read token at ../src/test_parser.nit:61,38--42 text='first'
-Read token at ../src/test_parser.nit:61,43--47 text='}.\n"'
-Read token at ../src/test_parser.nit:61,48 text=')'
-Read token at ../src/test_parser.nit:61,49--62,0 text='
-'
-Read token at ../src/test_parser.nit:62,3--6 text='exit'
-Read token at ../src/test_parser.nit:62,7 text='('
-Read token at ../src/test_parser.nit:62,8 text='0'
-Read token at ../src/test_parser.nit:62,9 text=')'
-Read token at ../src/test_parser.nit:62,10--63,0 text='
-'
-Read token at ../src/test_parser.nit:63,2--4 text='end'
-Read token at ../src/test_parser.nit:63,5--64,0 text='
-'
-Read token at ../src/test_parser.nit:64,2--5 text='args'
-Read token at ../src/test_parser.nit:64,6 text='.'
-Read token at ../src/test_parser.nit:64,7--11 text='shift'
-Read token at ../src/test_parser.nit:64,12--65,0 text='
-'
-Read token at ../src/test_parser.nit:65,1--3 text='end'
-Read token at ../src/test_parser.nit:65,4--66,0 text='
-'
-Read token at ../src/test_parser.nit:66,1--67,0 text='
-'
-Read token at ../src/test_parser.nit:67,1--2 text='if'
-Read token at ../src/test_parser.nit:67,4--7 text='args'
-Read token at ../src/test_parser.nit:67,8 text='.'
-Read token at ../src/test_parser.nit:67,9--16 text='is_empty'
-Read token at ../src/test_parser.nit:67,18--19 text='or'
-Read token at ../src/test_parser.nit:67,21--29 text='need_help'
-Read token at ../src/test_parser.nit:67,31--34 text='then'
-Read token at ../src/test_parser.nit:67,35--68,0 text='
+Read token at ../src/test_parser.nit:46,5--11 text='no_file'
+Read token at ../src/test_parser.nit:46,13 text='='
+Read token at ../src/test_parser.nit:46,15--19 text='false'
+Read token at ../src/test_parser.nit:46,20--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='first'
+Read token at ../src/test_parser.nit:48,46--47 text='=='
+Read token at ../src/test_parser.nit:48,49--51 text=''-''
+Read token at ../src/test_parser.nit:48,53--54 text='do'
+Read token at ../src/test_parser.nit:48,55--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='"-e"'
+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--9 text='no_file'
+Read token at ../src/test_parser.nit:56,11 text='='
+Read token at ../src/test_parser.nit:56,13--16 text='true'
+Read token at ../src/test_parser.nit:56,17--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='"-h"'
+Read token at ../src/test_parser.nit:57,29--30 text='or'
+Read token at ../src/test_parser.nit:57,32--35 text='args'
+Read token at ../src/test_parser.nit:57,36 text='.'
+Read token at ../src/test_parser.nit:57,37--41 text='first'
+Read token at ../src/test_parser.nit:57,43--44 text='=='
+Read token at ../src/test_parser.nit:57,46--49 text='"-?"'
+Read token at ../src/test_parser.nit:57,51--54 text='then'
+Read token at ../src/test_parser.nit:57,55--58,0 text='
+'
+Read token at ../src/test_parser.nit:58,3--11 text='need_help'
+Read token at ../src/test_parser.nit:58,13 text='='
+Read token at ../src/test_parser.nit:58,15--18 text='true'
+Read token at ../src/test_parser.nit:58,19--59,0 text='
+'
+Read token at ../src/test_parser.nit:59,2--5 text='else'
+Read token at ../src/test_parser.nit:59,6--60,0 text='
+'
+Read token at ../src/test_parser.nit:60,3--8 text='stderr'
+Read token at ../src/test_parser.nit:60,9 text='.'
+Read token at ../src/test_parser.nit:60,10--14 text='write'
+Read token at ../src/test_parser.nit:60,15 text='('
+Read token at ../src/test_parser.nit:60,16--32 text='"Unknown option {'
+Read token at ../src/test_parser.nit:60,33--36 text='args'
+Read token at ../src/test_parser.nit:60,37 text='.'
+Read token at ../src/test_parser.nit:60,38--42 text='first'
+Read token at ../src/test_parser.nit:60,43--47 text='}.\n"'
+Read token at ../src/test_parser.nit:60,48 text=')'
+Read token at ../src/test_parser.nit:60,49--61,0 text='
+'
+Read token at ../src/test_parser.nit:61,3--6 text='exit'
+Read token at ../src/test_parser.nit:61,7 text='('
+Read token at ../src/test_parser.nit:61,8 text='0'
+Read token at ../src/test_parser.nit:61,9 text=')'
+Read token at ../src/test_parser.nit:61,10--62,0 text='
+'
+Read token at ../src/test_parser.nit:62,2--4 text='end'
+Read token at ../src/test_parser.nit:62,5--63,0 text='
+'
+Read token at ../src/test_parser.nit:63,2--5 text='args'
+Read token at ../src/test_parser.nit:63,6 text='.'
+Read token at ../src/test_parser.nit:63,7--11 text='shift'
+Read token at ../src/test_parser.nit:63,12--64,0 text='
+'
+Read token at ../src/test_parser.nit:64,1--3 text='end'
+Read token at ../src/test_parser.nit:64,4--65,0 text='
+'
+Read token at ../src/test_parser.nit:65,1--66,0 text='
+'
+Read token at ../src/test_parser.nit:66,1--2 text='if'
+Read token at ../src/test_parser.nit:66,4--7 text='args'
+Read token at ../src/test_parser.nit:66,8 text='.'
+Read token at ../src/test_parser.nit:66,9--16 text='is_empty'
+Read token at ../src/test_parser.nit:66,18--19 text='or'
+Read token at ../src/test_parser.nit:66,21--29 text='need_help'
+Read token at ../src/test_parser.nit:66,31--34 text='then'
+Read token at ../src/test_parser.nit:66,35--67,0 text='
+'
+Read token at ../src/test_parser.nit:67,2--6 text='print'
+Read token at ../src/test_parser.nit:67,7 text='('
+Read token at ../src/test_parser.nit:67,8--15 text='"usage:"'
+Read token at ../src/test_parser.nit:67,16 text=')'
+Read token at ../src/test_parser.nit:67,17--68,0 text='
 '
 Read token at ../src/test_parser.nit:68,2--6 text='print'
 Read token at ../src/test_parser.nit:68,7 text='('
-Read token at ../src/test_parser.nit:68,8--15 text='"usage:"'
-Read token at ../src/test_parser.nit:68,16 text=')'
-Read token at ../src/test_parser.nit:68,17--69,0 text='
+Read token at ../src/test_parser.nit:68,8--53 text='"  test_parser [options]... <filename.nit>..."'
+Read token at ../src/test_parser.nit:68,54 text=')'
+Read token at ../src/test_parser.nit:68,55--69,0 text='
 '
 Read token at ../src/test_parser.nit:69,2--6 text='print'
 Read token at ../src/test_parser.nit:69,7 text='('
-Read token at ../src/test_parser.nit:69,8--53 text='"  test_parser [options]... <filename.nit>..."'
-Read token at ../src/test_parser.nit:69,54 text=')'
-Read token at ../src/test_parser.nit:69,55--70,0 text='
+Read token at ../src/test_parser.nit:69,8--17 text='"options:"'
+Read token at ../src/test_parser.nit:69,18 text=')'
+Read token at ../src/test_parser.nit:69,19--70,0 text='
 '
 Read token at ../src/test_parser.nit:70,2--6 text='print'
 Read token at ../src/test_parser.nit:70,7 text='('
-Read token at ../src/test_parser.nit:70,8--17 text='"options:"'
-Read token at ../src/test_parser.nit:70,18 text=')'
-Read token at ../src/test_parser.nit:70,19--71,0 text='
+Read token at ../src/test_parser.nit:70,8--35 text='"  -n      do not print anything"'
+Read token at ../src/test_parser.nit:70,36 text=')'
+Read token at ../src/test_parser.nit:70,37--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--35 text='"  -n      do not print anything"'
-Read token at ../src/test_parser.nit:71,36 text=')'
-Read token at ../src/test_parser.nit:71,37--72,0 text='
+Read token at ../src/test_parser.nit:71,8--24 text='"  -l      only lexer"'
+Read token at ../src/test_parser.nit:71,25 text=')'
+Read token at ../src/test_parser.nit:71,26--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--24 text='"  -l      only lexer"'
-Read token at ../src/test_parser.nit:72,25 text=')'
-Read token at ../src/test_parser.nit:72,26--73,0 text='
+Read token at ../src/test_parser.nit:72,8--40 text='"  -p      lexer and parser (default)"'
+Read token at ../src/test_parser.nit:72,41 text=')'
+Read token at ../src/test_parser.nit:72,42--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--40 text='"  -p      lexer and parser (default)"'
-Read token at ../src/test_parser.nit:73,41 text=')'
-Read token at ../src/test_parser.nit:73,42--74,0 text='
+Read token at ../src/test_parser.nit:73,8--67 text='"  -e      instead on files, each argument is a content to parse"'
+Read token at ../src/test_parser.nit:73,68 text=')'
+Read token at ../src/test_parser.nit:73,69--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--67 text='"  -e      instead on files, each argument is a content to parse"'
-Read token at ../src/test_parser.nit:74,68 text=')'
-Read token at ../src/test_parser.nit:74,69--75,0 text='
-'
-Read token at ../src/test_parser.nit:75,2--6 text='print'
-Read token at ../src/test_parser.nit:75,7 text='('
-Read token at ../src/test_parser.nit:75,8--29 text='"  -h      print this help"'
-Read token at ../src/test_parser.nit:75,30 text=')'
-Read token at ../src/test_parser.nit:75,31--76,0 text='
-'
-Read token at ../src/test_parser.nit:76,1--4 text='else'
-Read token at ../src/test_parser.nit:76,5--77,0 text='
-'
-Read token at ../src/test_parser.nit:77,2--4 text='for'
-Read token at ../src/test_parser.nit:77,6 text='a'
-Read token at ../src/test_parser.nit:77,8--9 text='in'
-Read token at ../src/test_parser.nit:77,11--14 text='args'
-Read token at ../src/test_parser.nit:77,16--17 text='do'
-Read token at ../src/test_parser.nit:77,18--78,0 text='
-'
-Read token at ../src/test_parser.nit:78,3--5 text='var'
-Read token at ../src/test_parser.nit:78,7--12 text='source'
-Read token at ../src/test_parser.nit:78,13--79,0 text='
-'
-Read token at ../src/test_parser.nit:79,3--4 text='if'
-Read token at ../src/test_parser.nit:79,6--12 text='no_file'
-Read token at ../src/test_parser.nit:79,14--17 text='then'
-Read token at ../src/test_parser.nit:79,18--80,0 text='
-'
-Read token at ../src/test_parser.nit:80,4--9 text='source'
-Read token at ../src/test_parser.nit:80,11 text='='
-Read token at ../src/test_parser.nit:80,13--15 text='new'
-Read token at ../src/test_parser.nit:80,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:80,27 text='.'
-Read token at ../src/test_parser.nit:80,28--38 text='from_string'
-Read token at ../src/test_parser.nit:80,39 text='('
-Read token at ../src/test_parser.nit:80,40--41 text='""'
-Read token at ../src/test_parser.nit:80,42 text=','
-Read token at ../src/test_parser.nit:80,44 text='a'
-Read token at ../src/test_parser.nit:80,45 text=')'
-Read token at ../src/test_parser.nit:80,46--81,0 text='
-'
-Read token at ../src/test_parser.nit:81,3--6 text='else'
-Read token at ../src/test_parser.nit:81,7--82,0 text='
-'
-Read token at ../src/test_parser.nit:82,4--6 text='var'
-Read token at ../src/test_parser.nit:82,8 text='f'
-Read token at ../src/test_parser.nit:82,10 text='='
-Read token at ../src/test_parser.nit:82,12--14 text='new'
-Read token at ../src/test_parser.nit:82,16--23 text='IFStream'
-Read token at ../src/test_parser.nit:82,24 text='.'
-Read token at ../src/test_parser.nit:82,25--28 text='open'
-Read token at ../src/test_parser.nit:82,29 text='('
-Read token at ../src/test_parser.nit:82,30 text='a'
-Read token at ../src/test_parser.nit:82,31 text=')'
-Read token at ../src/test_parser.nit:82,32--83,0 text='
-'
-Read token at ../src/test_parser.nit:83,4--9 text='source'
-Read token at ../src/test_parser.nit:83,11 text='='
-Read token at ../src/test_parser.nit:83,13--15 text='new'
-Read token at ../src/test_parser.nit:83,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:83,27 text='('
-Read token at ../src/test_parser.nit:83,28 text='a'
-Read token at ../src/test_parser.nit:83,29 text=','
-Read token at ../src/test_parser.nit:83,31 text='f'
-Read token at ../src/test_parser.nit:83,32 text=')'
-Read token at ../src/test_parser.nit:83,33--84,0 text='
-'
-Read token at ../src/test_parser.nit:84,4 text='f'
-Read token at ../src/test_parser.nit:84,5 text='.'
-Read token at ../src/test_parser.nit:84,6--10 text='close'
-Read token at ../src/test_parser.nit:84,11--85,0 text='
-'
-Read token at ../src/test_parser.nit:85,3--5 text='end'
-Read token at ../src/test_parser.nit:85,6--86,0 text='
-'
-Read token at ../src/test_parser.nit:86,3--5 text='var'
-Read token at ../src/test_parser.nit:86,7--11 text='lexer'
-Read token at ../src/test_parser.nit:86,13 text='='
-Read token at ../src/test_parser.nit:86,15--17 text='new'
-Read token at ../src/test_parser.nit:86,19--23 text='Lexer'
-Read token at ../src/test_parser.nit:86,24 text='('
-Read token at ../src/test_parser.nit:86,25--30 text='source'
-Read token at ../src/test_parser.nit:86,31 text=')'
-Read token at ../src/test_parser.nit:86,32--87,0 text='
-'
-Read token at ../src/test_parser.nit:87,3--4 text='if'
-Read token at ../src/test_parser.nit:87,6--15 text='only_lexer'
-Read token at ../src/test_parser.nit:87,17--20 text='then'
-Read token at ../src/test_parser.nit:87,21--88,0 text='
-'
-Read token at ../src/test_parser.nit:88,4--6 text='var'
-Read token at ../src/test_parser.nit:88,8--12 text='token'
-Read token at ../src/test_parser.nit:88,14 text='='
-Read token at ../src/test_parser.nit:88,16--20 text='lexer'
-Read token at ../src/test_parser.nit:88,21 text='.'
-Read token at ../src/test_parser.nit:88,22--25 text='next'
-Read token at ../src/test_parser.nit:88,26--89,0 text='
-'
-Read token at ../src/test_parser.nit:89,4--8 text='while'
-Read token at ../src/test_parser.nit:89,10--12 text='not'
-Read token at ../src/test_parser.nit:89,14--18 text='token'
-Read token at ../src/test_parser.nit:89,20--22 text='isa'
-Read token at ../src/test_parser.nit:89,24--26 text='EOF'
-Read token at ../src/test_parser.nit:89,28--29 text='do'
-Read token at ../src/test_parser.nit:89,30--90,0 text='
-'
-Read token at ../src/test_parser.nit:90,5--6 text='if'
-Read token at ../src/test_parser.nit:90,8--10 text='not'
-Read token at ../src/test_parser.nit:90,12--19 text='no_print'
-Read token at ../src/test_parser.nit:90,21--24 text='then'
-Read token at ../src/test_parser.nit:90,25--91,0 text='
-'
-Read token at ../src/test_parser.nit:91,6--10 text='print'
-Read token at ../src/test_parser.nit:91,11 text='('
-Read token at ../src/test_parser.nit:91,12--27 text='"Read token at {'
-Read token at ../src/test_parser.nit:91,28--32 text='token'
-Read token at ../src/test_parser.nit:91,33 text='.'
-Read token at ../src/test_parser.nit:91,34--41 text='location'
-Read token at ../src/test_parser.nit:91,42--50 text='} text='{'
-Read token at ../src/test_parser.nit:91,51--55 text='token'
-Read token at ../src/test_parser.nit:91,56 text='.'
-Read token at ../src/test_parser.nit:91,57--60 text='text'
-Read token at ../src/test_parser.nit:91,61--63 text='}'"'
-Read token at ../src/test_parser.nit:91,64 text=')'
-Read token at ../src/test_parser.nit:91,65--92,0 text='
-'
-Read token at ../src/test_parser.nit:92,5--7 text='end'
-Read token at ../src/test_parser.nit:92,8--93,0 text='
-'
-Read token at ../src/test_parser.nit:93,5--9 text='token'
-Read token at ../src/test_parser.nit:93,11 text='='
-Read token at ../src/test_parser.nit:93,13--17 text='lexer'
-Read token at ../src/test_parser.nit:93,18 text='.'
-Read token at ../src/test_parser.nit:93,19--22 text='next'
-Read token at ../src/test_parser.nit:93,23--94,0 text='
-'
-Read token at ../src/test_parser.nit:94,4--6 text='end'
+Read token at ../src/test_parser.nit:74,8--29 text='"  -h      print this help"'
+Read token at ../src/test_parser.nit:74,30 text=')'
+Read token at ../src/test_parser.nit:74,31--75,0 text='
+'
+Read token at ../src/test_parser.nit:75,1--4 text='else'
+Read token at ../src/test_parser.nit:75,5--76,0 text='
+'
+Read token at ../src/test_parser.nit:76,2--4 text='for'
+Read token at ../src/test_parser.nit:76,6 text='a'
+Read token at ../src/test_parser.nit:76,8--9 text='in'
+Read token at ../src/test_parser.nit:76,11--14 text='args'
+Read token at ../src/test_parser.nit:76,16--17 text='do'
+Read token at ../src/test_parser.nit:76,18--77,0 text='
+'
+Read token at ../src/test_parser.nit:77,3--5 text='var'
+Read token at ../src/test_parser.nit:77,7--12 text='source'
+Read token at ../src/test_parser.nit:77,13--78,0 text='
+'
+Read token at ../src/test_parser.nit:78,3--4 text='if'
+Read token at ../src/test_parser.nit:78,6--12 text='no_file'
+Read token at ../src/test_parser.nit:78,14--17 text='then'
+Read token at ../src/test_parser.nit:78,18--79,0 text='
+'
+Read token at ../src/test_parser.nit:79,4--9 text='source'
+Read token at ../src/test_parser.nit:79,11 text='='
+Read token at ../src/test_parser.nit:79,13--15 text='new'
+Read token at ../src/test_parser.nit:79,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:79,27 text='.'
+Read token at ../src/test_parser.nit:79,28--38 text='from_string'
+Read token at ../src/test_parser.nit:79,39 text='('
+Read token at ../src/test_parser.nit:79,40--41 text='""'
+Read token at ../src/test_parser.nit:79,42 text=','
+Read token at ../src/test_parser.nit:79,44 text='a'
+Read token at ../src/test_parser.nit:79,45 text=')'
+Read token at ../src/test_parser.nit:79,46--80,0 text='
+'
+Read token at ../src/test_parser.nit:80,3--6 text='else'
+Read token at ../src/test_parser.nit:80,7--81,0 text='
+'
+Read token at ../src/test_parser.nit:81,4--6 text='var'
+Read token at ../src/test_parser.nit:81,8 text='f'
+Read token at ../src/test_parser.nit:81,10 text='='
+Read token at ../src/test_parser.nit:81,12--14 text='new'
+Read token at ../src/test_parser.nit:81,16--23 text='IFStream'
+Read token at ../src/test_parser.nit:81,24 text='.'
+Read token at ../src/test_parser.nit:81,25--28 text='open'
+Read token at ../src/test_parser.nit:81,29 text='('
+Read token at ../src/test_parser.nit:81,30 text='a'
+Read token at ../src/test_parser.nit:81,31 text=')'
+Read token at ../src/test_parser.nit:81,32--82,0 text='
+'
+Read token at ../src/test_parser.nit:82,4--9 text='source'
+Read token at ../src/test_parser.nit:82,11 text='='
+Read token at ../src/test_parser.nit:82,13--15 text='new'
+Read token at ../src/test_parser.nit:82,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:82,27 text='('
+Read token at ../src/test_parser.nit:82,28 text='a'
+Read token at ../src/test_parser.nit:82,29 text=','
+Read token at ../src/test_parser.nit:82,31 text='f'
+Read token at ../src/test_parser.nit:82,32 text=')'
+Read token at ../src/test_parser.nit:82,33--83,0 text='
+'
+Read token at ../src/test_parser.nit:83,4 text='f'
+Read token at ../src/test_parser.nit:83,5 text='.'
+Read token at ../src/test_parser.nit:83,6--10 text='close'
+Read token at ../src/test_parser.nit:83,11--84,0 text='
+'
+Read token at ../src/test_parser.nit:84,3--5 text='end'
+Read token at ../src/test_parser.nit:84,6--85,0 text='
+'
+Read token at ../src/test_parser.nit:85,3--5 text='var'
+Read token at ../src/test_parser.nit:85,7--11 text='lexer'
+Read token at ../src/test_parser.nit:85,13 text='='
+Read token at ../src/test_parser.nit:85,15--17 text='new'
+Read token at ../src/test_parser.nit:85,19--23 text='Lexer'
+Read token at ../src/test_parser.nit:85,24 text='('
+Read token at ../src/test_parser.nit:85,25--30 text='source'
+Read token at ../src/test_parser.nit:85,31 text=')'
+Read token at ../src/test_parser.nit:85,32--86,0 text='
+'
+Read token at ../src/test_parser.nit:86,3--4 text='if'
+Read token at ../src/test_parser.nit:86,6--15 text='only_lexer'
+Read token at ../src/test_parser.nit:86,17--20 text='then'
+Read token at ../src/test_parser.nit:86,21--87,0 text='
+'
+Read token at ../src/test_parser.nit:87,4--6 text='var'
+Read token at ../src/test_parser.nit:87,8--12 text='token'
+Read token at ../src/test_parser.nit:87,14 text='='
+Read token at ../src/test_parser.nit:87,16--20 text='lexer'
+Read token at ../src/test_parser.nit:87,21 text='.'
+Read token at ../src/test_parser.nit:87,22--25 text='next'
+Read token at ../src/test_parser.nit:87,26--88,0 text='
+'
+Read token at ../src/test_parser.nit:88,4--8 text='while'
+Read token at ../src/test_parser.nit:88,10--12 text='not'
+Read token at ../src/test_parser.nit:88,14--18 text='token'
+Read token at ../src/test_parser.nit:88,20--22 text='isa'
+Read token at ../src/test_parser.nit:88,24--26 text='EOF'
+Read token at ../src/test_parser.nit:88,28--29 text='do'
+Read token at ../src/test_parser.nit:88,30--89,0 text='
+'
+Read token at ../src/test_parser.nit:89,5--6 text='if'
+Read token at ../src/test_parser.nit:89,8--10 text='not'
+Read token at ../src/test_parser.nit:89,12--19 text='no_print'
+Read token at ../src/test_parser.nit:89,21--24 text='then'
+Read token at ../src/test_parser.nit:89,25--90,0 text='
+'
+Read token at ../src/test_parser.nit:90,6--10 text='print'
+Read token at ../src/test_parser.nit:90,11 text='('
+Read token at ../src/test_parser.nit:90,12--27 text='"Read token at {'
+Read token at ../src/test_parser.nit:90,28--32 text='token'
+Read token at ../src/test_parser.nit:90,33 text='.'
+Read token at ../src/test_parser.nit:90,34--41 text='location'
+Read token at ../src/test_parser.nit:90,42--50 text='} text='{'
+Read token at ../src/test_parser.nit:90,51--55 text='token'
+Read token at ../src/test_parser.nit:90,56 text='.'
+Read token at ../src/test_parser.nit:90,57--60 text='text'
+Read token at ../src/test_parser.nit:90,61--63 text='}'"'
+Read token at ../src/test_parser.nit:90,64 text=')'
+Read token at ../src/test_parser.nit:90,65--91,0 text='
+'
+Read token at ../src/test_parser.nit:91,5--7 text='end'
+Read token at ../src/test_parser.nit:91,8--92,0 text='
+'
+Read token at ../src/test_parser.nit:92,5--9 text='token'
+Read token at ../src/test_parser.nit:92,11 text='='
+Read token at ../src/test_parser.nit:92,13--17 text='lexer'
+Read token at ../src/test_parser.nit:92,18 text='.'
+Read token at ../src/test_parser.nit:92,19--22 text='next'
+Read token at ../src/test_parser.nit:92,23--93,0 text='
+'
+Read token at ../src/test_parser.nit:93,4--6 text='end'
+Read token at ../src/test_parser.nit:93,7--94,0 text='
+'
+Read token at ../src/test_parser.nit:94,3--6 text='else'
 Read token at ../src/test_parser.nit:94,7--95,0 text='
 '
-Read token at ../src/test_parser.nit:95,3--6 text='else'
-Read token at ../src/test_parser.nit:95,7--96,0 text='
+Read token at ../src/test_parser.nit:95,4--6 text='var'
+Read token at ../src/test_parser.nit:95,8--13 text='parser'
+Read token at ../src/test_parser.nit:95,15 text='='
+Read token at ../src/test_parser.nit:95,17--19 text='new'
+Read token at ../src/test_parser.nit:95,21--26 text='Parser'
+Read token at ../src/test_parser.nit:95,27 text='('
+Read token at ../src/test_parser.nit:95,28--32 text='lexer'
+Read token at ../src/test_parser.nit:95,33 text=')'
+Read token at ../src/test_parser.nit:95,34--96,0 text='
 '
 Read token at ../src/test_parser.nit:96,4--6 text='var'
-Read token at ../src/test_parser.nit:96,8--13 text='parser'
-Read token at ../src/test_parser.nit:96,15 text='='
-Read token at ../src/test_parser.nit:96,17--19 text='new'
-Read token at ../src/test_parser.nit:96,21--26 text='Parser'
-Read token at ../src/test_parser.nit:96,27 text='('
-Read token at ../src/test_parser.nit:96,28--32 text='lexer'
-Read token at ../src/test_parser.nit:96,33 text=')'
-Read token at ../src/test_parser.nit:96,34--97,0 text='
-'
-Read token at ../src/test_parser.nit:97,4--6 text='var'
-Read token at ../src/test_parser.nit:97,8--11 text='tree'
-Read token at ../src/test_parser.nit:97,13 text='='
-Read token at ../src/test_parser.nit:97,15--20 text='parser'
-Read token at ../src/test_parser.nit:97,21 text='.'
-Read token at ../src/test_parser.nit:97,22--26 text='parse'
-Read token at ../src/test_parser.nit:97,27--98,0 text='
-'
-Read token at ../src/test_parser.nit:98,1--99,0 text='
-'
-Read token at ../src/test_parser.nit:99,4--6 text='var'
-Read token at ../src/test_parser.nit:99,8--12 text='error'
-Read token at ../src/test_parser.nit:99,14 text='='
-Read token at ../src/test_parser.nit:99,16--19 text='tree'
-Read token at ../src/test_parser.nit:99,20 text='.'
-Read token at ../src/test_parser.nit:99,21--25 text='n_eof'
-Read token at ../src/test_parser.nit:99,26--100,0 text='
-'
-Read token at ../src/test_parser.nit:100,4--5 text='if'
-Read token at ../src/test_parser.nit:100,7--11 text='error'
-Read token at ../src/test_parser.nit:100,13--15 text='isa'
-Read token at ../src/test_parser.nit:100,17--22 text='AError'
-Read token at ../src/test_parser.nit:100,24--27 text='then'
-Read token at ../src/test_parser.nit:100,28--101,0 text='
-'
-Read token at ../src/test_parser.nit:101,5--9 text='print'
-Read token at ../src/test_parser.nit:101,10 text='('
-Read token at ../src/test_parser.nit:101,11--21 text='"Error at {'
-Read token at ../src/test_parser.nit:101,22--26 text='error'
-Read token at ../src/test_parser.nit:101,27 text='.'
-Read token at ../src/test_parser.nit:101,28--35 text='location'
-Read token at ../src/test_parser.nit:101,36--42 text='}:\n\t{'
-Read token at ../src/test_parser.nit:101,43--47 text='error'
-Read token at ../src/test_parser.nit:101,48 text='.'
-Read token at ../src/test_parser.nit:101,49--55 text='message'
-Read token at ../src/test_parser.nit:101,56--57 text='}"'
-Read token at ../src/test_parser.nit:101,58 text=')'
-Read token at ../src/test_parser.nit:101,59--102,0 text='
-'
-Read token at ../src/test_parser.nit:102,5--10 text='return'
-Read token at ../src/test_parser.nit:102,11--103,0 text='
-'
-Read token at ../src/test_parser.nit:103,4--6 text='end'
-Read token at ../src/test_parser.nit:103,7--104,0 text='
-'
-Read token at ../src/test_parser.nit:104,1--105,0 text='
-'
-Read token at ../src/test_parser.nit:105,4--5 text='if'
-Read token at ../src/test_parser.nit:105,7--9 text='not'
-Read token at ../src/test_parser.nit:105,11--18 text='no_print'
-Read token at ../src/test_parser.nit:105,20--23 text='then'
-Read token at ../src/test_parser.nit:105,24--106,0 text='
-'
-Read token at ../src/test_parser.nit:106,5 text='('
-Read token at ../src/test_parser.nit:106,6--8 text='new'
-Read token at ../src/test_parser.nit:106,10--25 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:106,26 text=')'
-Read token at ../src/test_parser.nit:106,27 text='.'
-Read token at ../src/test_parser.nit:106,28--38 text='enter_visit'
-Read token at ../src/test_parser.nit:106,39 text='('
-Read token at ../src/test_parser.nit:106,40--43 text='tree'
-Read token at ../src/test_parser.nit:106,44 text=')'
-Read token at ../src/test_parser.nit:106,45--107,0 text='
-'
-Read token at ../src/test_parser.nit:107,4--6 text='end'
-Read token at ../src/test_parser.nit:107,7--108,0 text='
-'
-Read token at ../src/test_parser.nit:108,3--5 text='end'
-Read token at ../src/test_parser.nit:108,6--109,0 text='
-'
-Read token at ../src/test_parser.nit:109,2--4 text='end'
-Read token at ../src/test_parser.nit:109,5--110,0 text='
-'
-Read token at ../src/test_parser.nit:110,1--3 text='end'
-Read token at ../src/test_parser.nit:110,4--111,0 text='
+Read token at ../src/test_parser.nit:96,8--11 text='tree'
+Read token at ../src/test_parser.nit:96,13 text='='
+Read token at ../src/test_parser.nit:96,15--20 text='parser'
+Read token at ../src/test_parser.nit:96,21 text='.'
+Read token at ../src/test_parser.nit:96,22--26 text='parse'
+Read token at ../src/test_parser.nit:96,27--97,0 text='
+'
+Read token at ../src/test_parser.nit:97,1--98,0 text='
+'
+Read token at ../src/test_parser.nit:98,4--6 text='var'
+Read token at ../src/test_parser.nit:98,8--12 text='error'
+Read token at ../src/test_parser.nit:98,14 text='='
+Read token at ../src/test_parser.nit:98,16--19 text='tree'
+Read token at ../src/test_parser.nit:98,20 text='.'
+Read token at ../src/test_parser.nit:98,21--25 text='n_eof'
+Read token at ../src/test_parser.nit:98,26--99,0 text='
+'
+Read token at ../src/test_parser.nit:99,4--5 text='if'
+Read token at ../src/test_parser.nit:99,7--11 text='error'
+Read token at ../src/test_parser.nit:99,13--15 text='isa'
+Read token at ../src/test_parser.nit:99,17--22 text='AError'
+Read token at ../src/test_parser.nit:99,24--27 text='then'
+Read token at ../src/test_parser.nit:99,28--100,0 text='
+'
+Read token at ../src/test_parser.nit:100,5--9 text='print'
+Read token at ../src/test_parser.nit:100,10 text='('
+Read token at ../src/test_parser.nit:100,11--21 text='"Error at {'
+Read token at ../src/test_parser.nit:100,22--26 text='error'
+Read token at ../src/test_parser.nit:100,27 text='.'
+Read token at ../src/test_parser.nit:100,28--35 text='location'
+Read token at ../src/test_parser.nit:100,36--42 text='}:\n\t{'
+Read token at ../src/test_parser.nit:100,43--47 text='error'
+Read token at ../src/test_parser.nit:100,48 text='.'
+Read token at ../src/test_parser.nit:100,49--55 text='message'
+Read token at ../src/test_parser.nit:100,56--57 text='}"'
+Read token at ../src/test_parser.nit:100,58 text=')'
+Read token at ../src/test_parser.nit:100,59--101,0 text='
+'
+Read token at ../src/test_parser.nit:101,5--10 text='return'
+Read token at ../src/test_parser.nit:101,11--102,0 text='
+'
+Read token at ../src/test_parser.nit:102,4--6 text='end'
+Read token at ../src/test_parser.nit:102,7--103,0 text='
+'
+Read token at ../src/test_parser.nit:103,1--104,0 text='
+'
+Read token at ../src/test_parser.nit:104,4--5 text='if'
+Read token at ../src/test_parser.nit:104,7--9 text='not'
+Read token at ../src/test_parser.nit:104,11--18 text='no_print'
+Read token at ../src/test_parser.nit:104,20--23 text='then'
+Read token at ../src/test_parser.nit:104,24--105,0 text='
+'
+Read token at ../src/test_parser.nit:105,5 text='('
+Read token at ../src/test_parser.nit:105,6--8 text='new'
+Read token at ../src/test_parser.nit:105,10--25 text='PrintTreeVisitor'
+Read token at ../src/test_parser.nit:105,26 text=')'
+Read token at ../src/test_parser.nit:105,27 text='.'
+Read token at ../src/test_parser.nit:105,28--38 text='enter_visit'
+Read token at ../src/test_parser.nit:105,39 text='('
+Read token at ../src/test_parser.nit:105,40--43 text='tree'
+Read token at ../src/test_parser.nit:105,44 text=')'
+Read token at ../src/test_parser.nit:105,45--106,0 text='
+'
+Read token at ../src/test_parser.nit:106,4--6 text='end'
+Read token at ../src/test_parser.nit:106,7--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,2--4 text='end'
+Read token at ../src/test_parser.nit:108,5--109,0 text='
+'
+Read token at ../src/test_parser.nit:109,1--3 text='end'
+Read token at ../src/test_parser.nit:109,4--110,0 text='
 '