Skip to content

Commit 0a2399e

Browse files
committed
let newlines break arguments in fn call with parens
1 parent d8830b1 commit 0a2399e

File tree

4 files changed

+55
-4
lines changed

4 files changed

+55
-4
lines changed

moonscript/parse.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ local build_grammar = wrap_env(debug_grammar, function(root)
165165
Callable = pos(Name / mark("ref")) + SelfName + VarArg + Parens / mark("parens"),
166166
Parens = sym("(") * SpaceBreak ^ 0 * Exp * SpaceBreak ^ 0 * sym(")"),
167167
FnArgs = symx("(") * SpaceBreak ^ 0 * Ct(FnArgsExpList ^ -1) * SpaceBreak ^ 0 * sym(")") + sym("!") * -P("=") * Ct(""),
168-
FnArgsExpList = Exp * (sym(",") * White * Exp) ^ 0,
168+
FnArgsExpList = Exp * ((Break + sym(",")) * White * Exp) ^ 0,
169169
Chain = (Callable + String + -S(".\\")) * ChainItems / mark("chain") + Space * (DotChainItem * ChainItems ^ -1 + ColonChain) / mark("chain"),
170170
ChainItems = ChainItem ^ 1 * ColonChain ^ -1 + ColonChain,
171171
ChainItem = Invoke + DotChainItem + Slice + symx("[") * Exp / mark("index") * sym("]"),

moonscript/parse.moon

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ build_grammar = wrap_env debug_grammar, (root) ->
228228
Parens: sym"(" * SpaceBreak^0 * Exp * SpaceBreak^0 * sym")"
229229

230230
FnArgs: symx"(" * SpaceBreak^0 * Ct(FnArgsExpList^-1) * SpaceBreak^0 * sym")" + sym"!" * -P"=" * Ct""
231-
FnArgsExpList: Exp * (sym"," * White * Exp)^0
231+
FnArgsExpList: Exp * ((Break + sym",") * White * Exp)^0
232232

233233
Chain: (Callable + String + -S".\\") * ChainItems / mark"chain" +
234234
Space * (DotChainItem * ChainItems^-1 + ColonChain) / mark"chain"

spec/inputs/funcs.moon

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,41 @@ k -> if yes then return else return
5959

6060
-> real_name if something
6161

62+
--
63+
64+
d(
65+
->
66+
print "hello world"
67+
10
68+
)
69+
70+
71+
72+
d(
73+
1,2,3
74+
4
75+
5
76+
6
77+
78+
if something
79+
print "okay"
80+
10
81+
82+
10,20
83+
)
84+
85+
86+
f(
87+
88+
)(
89+
90+
)(
91+
what
92+
)(->
93+
print "srue"
94+
123)
95+
96+
--
97+
98+
99+
nil

spec/outputs/funcs.lua

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,21 @@ k(function()
108108
return
109109
end
110110
end)
111-
return function()
111+
_ = function()
112112
if something then
113113
return real_name
114114
end
115-
end
115+
end
116+
d(function()
117+
return print("hello world")
118+
end, 10)
119+
d(1, 2, 3, 4, 5, 6, (function()
120+
if something then
121+
print("okay")
122+
return 10
123+
end
124+
end)(), 10, 20)
125+
f()()(what)(function()
126+
return print("srue")
127+
end, 123)
128+
return nil

0 commit comments

Comments
 (0)