summary refs log tree commit diff stats
path: root/tests/parser
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2017-07-18 11:50:06 +0300
committerAndreas Rumpf <rumpf_a@web.de>2017-08-19 08:57:43 +0200
commit7ad115f530942c0fc6718c146ee1a5a97ed61e6f (patch)
tree200af3aa9257690f92c6c91be478bfbbd17f1e51 /tests/parser
parentc3e5c6c326747cf0acbe0e4f3d8dc71f9332a76e (diff)
downloadNim-7ad115f530942c0fc6718c146ee1a5a97ed61e6f.tar.gz
Restore the old behavior of parsing "quote do:"
close #5845
Diffstat (limited to 'tests/parser')
-rw-r--r--tests/parser/tpostexprblocks.nim394
1 files changed, 212 insertions, 182 deletions
diff --git a/tests/parser/tpostexprblocks.nim b/tests/parser/tpostexprblocks.nim
index 85f2628bf..341ca737a 100644
--- a/tests/parser/tpostexprblocks.nim
+++ b/tests/parser/tpostexprblocks.nim
@@ -1,51 +1,59 @@
 discard """
 nimout: '''
 StmtList
-  Ident !"foo"
+  Ident !"foo010"
   Call
-    Ident !"foo"
+    Ident !"foo020"
   Call
-    Ident !"foo"
+    Ident !"foo030"
     Ident !"x"
   Command
-    Ident !"foo"
+    Ident !"foo040"
     Ident !"x"
   Call
-    Ident !"foo"
+    Ident !"foo050"
     StmtList
       DiscardStmt
         Empty
   Call
-    Ident !"foo"
+    Ident !"foo060"
     StmtList
       DiscardStmt
         Empty
   Call
-    Ident !"foo"
+    Ident !"foo070"
     StrLit test
     StmtList
       DiscardStmt
         Empty
   Call
-    Ident !"foo"
+    Ident !"foo080"
     StrLit test
     StmtList
       DiscardStmt
         Empty
   Command
-    Ident !"foo"
+    Ident !"foo090"
     StrLit test
     StmtList
       DiscardStmt
         Empty
   Command
-    Ident !"foo"
-    StrLit test
-    StmtList
-      DiscardStmt
-        Empty
+    Ident !"foo100"
+    Call
+      StrLit test
+      StmtList
+        DiscardStmt
+          Empty
   Command
-    Ident !"foo"
+    Ident !"foo101"
+    Call
+      IntLit 10
+      StmtList
+        DiscardStmt
+          Empty
+  Command
+    Ident !"foo110"
     IntLit 1
     Par
       Infix
@@ -56,18 +64,19 @@ StmtList
       DiscardStmt
         Empty
   Command
-    Ident !"foo"
+    Ident !"foo120"
     IntLit 1
-    Par
-      Infix
-        Ident !"+"
-        IntLit 2
-        IntLit 3
-    StmtList
-      DiscardStmt
-        Empty
+    Call
+      Par
+        Infix
+          Ident !"+"
+          IntLit 2
+          IntLit 3
+      StmtList
+        DiscardStmt
+          Empty
   Call
-    Ident !"foo"
+    Ident !"foo130"
     Do
       Empty
       Empty
@@ -84,7 +93,7 @@ StmtList
         DiscardStmt
           Empty
   Call
-    Ident !"foo"
+    Ident !"foo140"
     Do
       Empty
       Empty
@@ -101,7 +110,7 @@ StmtList
         DiscardStmt
           Empty
   Call
-    Ident !"foo"
+    Ident !"foo150"
     Do
       Empty
       Empty
@@ -118,25 +127,26 @@ StmtList
         DiscardStmt
           Empty
   Command
-    Ident !"foo"
-    Ident !"x"
-    Do
-      Empty
-      Empty
-      Empty
-      FormalParams
+    Ident !"foo160"
+    Call
+      Ident !"x"
+      Do
         Empty
-        IdentDefs
-          Ident !"y"
-          Empty
-          Empty
-      Empty
-      Empty
-      StmtList
-        DiscardStmt
+        Empty
+        Empty
+        FormalParams
           Empty
+          IdentDefs
+            Ident !"y"
+            Empty
+            Empty
+        Empty
+        Empty
+        StmtList
+          DiscardStmt
+            Empty
   Call
-    Ident !"foo"
+    Ident !"foo170"
     StmtList
       DiscardStmt
         Empty
@@ -145,7 +155,7 @@ StmtList
         DiscardStmt
           Empty
   Call
-    Ident !"foo"
+    Ident !"foo180"
     StmtList
       DiscardStmt
         Empty
@@ -157,62 +167,63 @@ StmtList
         DiscardStmt
           Empty
   Command
-    Ident !"foo"
-    Ident !"x"
-    Do
-      Empty
-      Empty
-      Empty
-      FormalParams
+    Ident !"foo190"
+    Call
+      Ident !"x"
+      Do
         Empty
-        IdentDefs
-          Ident !"y"
-          Empty
-          Empty
-      Empty
-      Empty
-      StmtList
-        DiscardStmt
-          Empty
-    Do
-      Empty
-      Empty
-      Empty
-      FormalParams
-        Ident !"int"
-        IdentDefs
-          Ident !"z"
-          Empty
-          Empty
-      Empty
-      Empty
-      StmtList
-        DiscardStmt
+        Empty
+        Empty
+        FormalParams
           Empty
-    Do
-      Empty
-      Empty
-      Empty
-      FormalParams
-        Ident !"int"
-        IdentDefs
-          Ident !"w"
+          IdentDefs
+            Ident !"y"
+            Empty
+            Empty
+        Empty
+        Empty
+        StmtList
+          DiscardStmt
+            Empty
+      Do
+        Empty
+        Empty
+        Empty
+        FormalParams
           Ident !"int"
-          Empty
-      Empty
-      Empty
-      StmtList
-        DiscardStmt
-          Empty
-    StmtList
-      DiscardStmt
+          IdentDefs
+            Ident !"z"
+            Empty
+            Empty
         Empty
-    Else
+        Empty
+        StmtList
+          DiscardStmt
+            Empty
+      Do
+        Empty
+        Empty
+        Empty
+        FormalParams
+          Ident !"int"
+          IdentDefs
+            Ident !"w"
+            Ident !"int"
+            Empty
+        Empty
+        Empty
+        StmtList
+          DiscardStmt
+            Empty
       StmtList
         DiscardStmt
           Empty
+      Else
+        StmtList
+          DiscardStmt
+            Empty
   Call
-    Ident !"foo"
+    Ident !"foo200"
     Ident !"x"
     Call
       Ident !"bar"
@@ -227,33 +238,33 @@ StmtList
     IdentDefs
       Ident !"a"
       Empty
-      Ident !"foo"
+      Ident !"foo210"
   VarSection
     IdentDefs
       Ident !"a"
       Empty
       Call
-        Ident !"foo"
+        Ident !"foo220"
   VarSection
     IdentDefs
       Ident !"a"
       Empty
       Call
-        Ident !"foo"
+        Ident !"foo230"
         Ident !"x"
   VarSection
     IdentDefs
       Ident !"a"
       Empty
       Command
-        Ident !"foo"
+        Ident !"foo240"
         Ident !"x"
   VarSection
     IdentDefs
       Ident !"a"
       Empty
       Call
-        Ident !"foo"
+        Ident !"foo250"
         StmtList
           DiscardStmt
             Empty
@@ -262,7 +273,7 @@ StmtList
       Ident !"a"
       Empty
       Call
-        Ident !"foo"
+        Ident !"foo260"
         StmtList
           DiscardStmt
             Empty
@@ -271,7 +282,7 @@ StmtList
       Ident !"a"
       Empty
       Call
-        Ident !"foo"
+        Ident !"foo270"
         StmtList
           DiscardStmt
             Empty
@@ -284,62 +295,63 @@ StmtList
       Ident !"a"
       Empty
       Command
-        Ident !"foo"
-        Ident !"x"
-        Do
-          Empty
-          Empty
-          Empty
-          FormalParams
+        Ident !"foo280"
+        Call
+          Ident !"x"
+          Do
             Empty
-            IdentDefs
-              Ident !"y"
-              Empty
-              Empty
-          Empty
-          Empty
-          StmtList
-            DiscardStmt
-              Empty
-        Else
-          StmtList
-            DiscardStmt
+            Empty
+            Empty
+            FormalParams
               Empty
+              IdentDefs
+                Ident !"y"
+                Empty
+                Empty
+            Empty
+            Empty
+            StmtList
+              DiscardStmt
+                Empty
+          Else
+            StmtList
+              DiscardStmt
+                Empty
   Asgn
     Ident !"a"
-    Ident !"foo"
+    Ident !"foo290"
   Asgn
     Ident !"a"
     Call
-      Ident !"foo"
+      Ident !"foo300"
   Asgn
     Ident !"a"
     Call
-      Ident !"foo"
+      Ident !"foo310"
       Ident !"x"
   Asgn
     Ident !"a"
     Command
-      Ident !"foo"
+      Ident !"foo320"
       Ident !"x"
   Asgn
     Ident !"a"
     Call
-      Ident !"foo"
+      Ident !"foo330"
       StmtList
         DiscardStmt
           Empty
   Asgn
     Ident !"a"
     Call
-      Ident !"foo"
+      Ident !"foo340"
       StmtList
         DiscardStmt
           Empty
   Asgn
     Ident !"a"
     Call
-      Ident !"foo"
+      Ident !"foo350"
       StmtList
         DiscardStmt
           Empty
@@ -350,30 +362,42 @@ StmtList
   Asgn
     Ident !"a"
     Command
-      Ident !"foo"
-      Ident !"x"
-      Do
-        Empty
-        Empty
-        Empty
-        FormalParams
+      Ident !"foo360"
+      Call
+        DotExpr
+          Ident !"x"
+          Ident !"bar"
+        Do
           Empty
-          IdentDefs
-            Ident !"y"
-            Empty
-            Empty
-        Empty
-        Empty
-        StmtList
-          DiscardStmt
-            Empty
-      Else
-        StmtList
-          DiscardStmt
+          Empty
+          Empty
+          FormalParams
             Empty
+            IdentDefs
+              Ident !"y"
+              Empty
+              Empty
+          Empty
+          Empty
+          StmtList
+            DiscardStmt
+              Empty
+        Else
+          StmtList
+            DiscardStmt
+              Empty
+  Command
+    DotExpr
+      Ident !"foo370"
+      Ident !"add"
+    Call
+      Ident !"quote"
+      StmtList
+        DiscardStmt
+          Empty
   Call
     DotExpr
-      Ident !"result"
+      Ident !"foo380"
       Ident !"add"
     BracketExpr
       Call
@@ -389,62 +413,65 @@ import macros
 
 dumpTree:
   # simple calls
-  foo
-  foo()
-  foo(x)
-  foo x
+  foo010
+  foo020()
+  foo030(x)
+  foo040 x
+
+  foo050:
+    discard
 
-  foo:
+  foo060 do:
     discard
 
-  foo do:
+  foo070("test"):
     discard
 
-  foo("test"):
+  foo080("test") do:
     discard
 
-  foo("test") do:
+  foo090 "test":
     discard
 
-  foo "test":
+  foo100 "test" do:
     discard
 
-  foo "test" do:
+  foo101 10 do:
     discard
 
   # more complicated calls
-  foo 1, (2+3):
+  foo110 1, (2+3):
     discard
 
-  foo 1, (2+3) do:
+  foo120 1, (2+3) do:
     discard
 
-  foo do (x):
+  foo130 do (x):
     discard
 
-  foo do (x: int):
+  foo140 do (x: int):
     discard
 
-  foo do (x: int) -> int:
+  foo150 do (x: int) -> int:
     discard
 
-  foo x do (y):
+  foo160 x do (y):
     discard
 
   # extra blocks
-  foo:
+  foo170:
     discard
   else:
     discard
 
-  foo do:
+  foo180 do:
     discard
   do:
     discard
   else:
     discard
 
-  foo x do (y):
+  foo190 x do (y):
     discard
   do (z) -> int:
     discard
@@ -456,58 +483,61 @@ dumpTree:
     discard
 
   # call with blocks as a param
-  foo(x, bar do:
+  foo200(x, bar do:
     discard
   else:
     discard
   )
 
   # introduce a variable
-  var a = foo
-  var a = foo()
-  var a = foo(x)
-  var a = foo x
+  var a = foo210
+  var a = foo220()
+  var a = foo230(x)
+  var a = foo240 x
 
-  var a = foo:
+  var a = foo250:
     discard
 
-  var a = foo do:
+  var a = foo260 do:
     discard
 
-  var a = foo do:
+  var a = foo270 do:
     discard
   else:
     discard
 
-  var a = foo x do (y):
+  var a = foo280 x do (y):
     discard
   else:
     discard
 
   # assignments
-  a = foo
-  a = foo()
-  a = foo(x)
-  a = foo x
+  a = foo290
+  a = foo300()
+  a = foo310(x)
+  a = foo320 x
 
-  a = foo:
+  a = foo330:
     discard
 
-  a = foo do:
+  a = foo340 do:
     discard
 
-  a = foo do:
+  a = foo350 do:
     discard
   else:
     discard
 
-  a = foo x do (y):
+  a = foo360 x.bar do (y):
     discard
   else:
     discard
 
+  foo370.add quote do:
+    discard
+
   # some edge cases
-  result.add((quote do:
+  foo380.add((quote do:
     discard
   )[0])