@@ -34,6 +34,7 @@ tests = [
3434 " a;;;b;;" => " (toplevel a b)"
3535 """ "x" a ; "y" b """ =>
3636 """ (toplevel (macrocall :(Core.var"@doc") "x" a) (macrocall :(Core.var"@doc") "y" b))"""
37+ " x y" => " x (error-t y)"
3738 ],
3839 JuliaSyntax. parse_eq => [
3940 # parse_assignment
@@ -140,10 +141,16 @@ tests = [
140141 " 2(x)" => " (call-i 2 * x)"
141142 " (2)(3)x" => " (call-i 2 * 3 x)"
142143 " (x-1)y" => " (call-i (call-i x - 1) * y)"
143- " 0xenomorph " => " 0x0e " # ie, not juxtoposition
144+ " x'y " => " (call-i (' x) * y) "
144145 # errors
145146 " \" a\"\" b\" " => " (call-i \" a\" * (error-t) \" b\" )"
146147 " \" a\" x" => " (call-i \" a\" * (error-t) x)"
148+ # Not juxtaposition - parse_juxtapose will consume only the first token.
149+ " x.3" => " x"
150+ " sqrt(2)2" => " (call sqrt 2)"
151+ " x' y" => " (' x)"
152+ " x 'y" => " x"
153+ " 0xenomorph" => " 0x0e"
147154 ],
148155 JuliaSyntax. parse_unary => [
149156 " +2" => " 2"
@@ -461,6 +468,7 @@ tests = [
461468 " try x catch ; y end" => " (try (block x) false (block y) false false)"
462469 " try x catch \n y end" => " (try (block x) false (block y) false false)"
463470 " try x catch e y end" => " (try (block x) e (block y) false false)"
471+ " try x catch \$ e y end" => " (try (block x) (\$ e) (block y) false false)"
464472 " try x finally y end" => " (try (block x) false false false (block y))"
465473 # v1.8 only
466474 ((v= v " 1.8" ,), " try catch ; else end" ) => " (try (block) false (block) (block) false)"
@@ -549,7 +557,8 @@ tests = [
549557 " (x \n\n for a in as)" => " (generator x (= a as))"
550558 ],
551559 JuliaSyntax. parse_atom => [
552- " :foo" => " (quote foo)"
560+ " :foo" => " (quote foo)"
561+ " : foo" => " (quote (error-t) foo)"
553562 # Literal colons
554563 " :)" => " :"
555564 " : end" => " :"
@@ -744,6 +753,10 @@ broken_tests = [
744753 " @S[a b]" => " (macrocall S (hcat a b))"
745754 " @S[a; b]" => " (macrocall S (vcat a b))"
746755 " @S[a; b ;; c; d]" => " (macrocall S (ncat-2 (nrow-1 a b) (nrow-1 c d)))"
756+ # Bad character literals
757+ " '\\ xff'" => " (error '\\ xff')"
758+ " '\\ x80'" => " (error '\\ x80')"
759+ " 'ab'" => " (error 'ab')"
747760 ]
748761 JuliaSyntax. parse_call => [
749762 # kw's in ref
0 commit comments