@@ -31,6 +31,31 @@ function separator(cst, loc, x::EXPR{Call}, i)
31
31
separator_range (cst, loc[max (i- 1 ,4 )])
32
32
end
33
33
34
+ function separator (cst, loc, x:: EXPR{CSTParser.MacroCall} , i)
35
+ if get (x. args, 2 , nothing ) isa CSTParser. PUNCTUATION # @foo(a, b)
36
+ length (x. args) == 3 && return " "
37
+ length (x. args) == 4 && return " , "
38
+ separator_range (cst, loc[max (i- 1 ,4 )])
39
+ else # @foo a b
40
+ length (x. args) == 1 && return " "
41
+ outer, inner = charrange (cst, loc[i- 1 ])
42
+ inner[end ]+ 1 : outer[end ]
43
+ end
44
+ end
45
+
46
+ function separator (cst, loc, x:: EXPR{CSTParser.TupleH} , i)
47
+ brackets = x. args[1 ] isa CSTParser. PUNCTUATION
48
+ length (x. args) == 2 brackets && return " "
49
+ length (x. args) == 1 + 2 brackets && return " , "
50
+ separator_range (cst, loc[max (i- 1 ,2 + brackets)])
51
+ end
52
+
53
+ ex = CSTParser. parse (" a, b" )
54
+ separator (ex, CSTParser. Location (), ex, 1 )
55
+
56
+ ex = CSTParser. parse (" (a,)" )
57
+ separator (ex, CSTParser. Location (), ex, 2 )
58
+
34
59
function separator (cst, loc, x:: EXPR{CSTParser.Block} , i)
35
60
out, in = charrange (cst, loc[max (i- 1 ,1 )])
36
61
in[end ]+ 1 : out[end ]
0 commit comments