@@ -244,6 +244,8 @@ tests = [
244244 " f(a,b)" => " (call f a b)"
245245 " f(a=1; b=2)" => " (call f (= a 1) (parameters (= b 2)))" =>
246246 Expr (:call , :f , Expr (:parameters , Expr (:kw , :b , 2 )), Expr (:kw , :a , 1 ))
247+ " f(a; b; c)" => " (call f a (parameters b) (parameters c))" =>
248+ Expr (:call , :f , Expr (:parameters , Expr (:parameters , :c ), :b ), :a )
247249 " (a=1)()" => " (call (= a 1))" => Expr (:call , Expr (:(= ), :a , 1 ))
248250 " f (a)" => " (call f (error-t) a)"
249251 " f(a).g(b)" => " (call (. (call f a) (quote g)) b)"
@@ -568,13 +570,15 @@ tests = [
568570 " (x,y)" => " (tuple x y)"
569571 " (x=1, y=2)" => " (tuple (= x 1) (= y 2))"
570572 # Named tuples with initial semicolon
571- " (;)" => " (tuple (parameters))"
572- " (; a=1)" => " (tuple (parameters (= a 1)))"
573+ " (;)" => " (tuple (parameters))" => Expr ( :tuple , Expr ( :parameters ))
574+ " (; a=1)" => " (tuple (parameters (= a 1)))" => Expr ( :tuple , Expr ( :parameters , Expr ( :kw , :a , 1 )))
573575 # Extra credit: nested parameters and frankentuples
574576 " (x...; y)" => " (tuple (... x) (parameters y))"
575577 " (x...;)" => " (tuple (... x) (parameters))"
576- " (; a=1; b=2)" => " (tuple (parameters (= a 1) (parameters (= b 2))))"
577- " (a; b; c,d)" => " (tuple a (parameters b (parameters c d)))"
578+ " (; a=1; b=2)" => " (tuple (parameters (= a 1)) (parameters (= b 2)))" =>
579+ Expr (:tuple , Expr (:parameters , Expr (:parameters , Expr (:kw , :b , 2 )), Expr (:kw , :a , 1 )))
580+ " (a; b; c,d)" => " (tuple a (parameters b) (parameters c d))" =>
581+ Expr (:tuple , Expr (:parameters , Expr (:parameters , :c , :d ), :b ), :a )
578582 " (a=1, b=2; c=3)" => " (tuple (= a 1) (= b 2) (parameters (= c 3)))"
579583 # Block syntax
580584 " (;;)" => " (block)"
@@ -668,7 +672,7 @@ tests = [
668672 " [x,\n y]" => " (vect x y)"
669673 " [x\n , y]" => " (vect x y)"
670674 " [x\n ,, y]" => " (vect x (error-t ✘ y))"
671- " [x,y ; z]" => " (vect x y (parameters z))"
675+ " [x,y ; z]" => " (vect x y (parameters z))" => Expr ( :vect , Expr ( :parameters , :z ), :x , :y )
672676 " [x=1, y=2]" => " (vect (= x 1) (= y 2))"
673677 " [x=1, ; y=2]" => " (vect (= x 1) (parameters (= y 2)))"
674678 # parse_paren
0 commit comments