|
205 | 205 |
|
206 | 206 | -- the if statement only takes a single lhs, so we wrap in table to git to |
207 | 207 | -- "assign" tuple format |
208 | | -local function format_assign_for_if(lhs, assign) |
| 208 | +local function format_single_assign(lhs, assign) |
209 | 209 | if assign then |
210 | 210 | return format_assign({lhs}, assign) |
211 | 211 | end |
@@ -413,15 +413,16 @@ local build_grammar = wrap_env(function() |
413 | 413 |
|
414 | 414 | Return = key"return" * (ExpListLow/mark"explist" + C"") / mark"return", |
415 | 415 |
|
416 | | - With = key"with" * DisableDo * ensure(Exp, PopDo) * key"do"^-1 * Body / mark"with", |
| 416 | + WithExp = Ct(ExpList) * Assign^-1 / format_assign, |
| 417 | + With = key"with" * DisableDo * ensure(WithExp, PopDo) * key"do"^-1 * Body / mark"with", |
417 | 418 |
|
418 | 419 | Switch = key"switch" * DisableDo * ensure(Exp, PopDo) * key"do"^-1 * Space^-1 * Break * SwitchBlock / mark"switch", |
419 | 420 |
|
420 | 421 | SwitchBlock = EmptyLine^0 * Advance * Ct(SwitchCase * (Break^1 * SwitchCase)^0 * (Break^1 * SwitchElse)^-1) * PopIndent, |
421 | 422 | SwitchCase = key"when" * Exp * key"then"^-1 * Body / mark"case", |
422 | 423 | SwitchElse = key"else" * Body / mark"else", |
423 | 424 |
|
424 | | - IfCond = Exp * Assign^-1 / format_assign_for_if, |
| 425 | + IfCond = Exp * Assign^-1 / format_single_assign, |
425 | 426 |
|
426 | 427 | If = key"if" * IfCond * key"then"^-1 * Body * |
427 | 428 | ((Break * CheckIndent)^-1 * EmptyLine^0 * key"elseif" * pos(IfCond) * key"then"^-1 * Body / mark"elseif")^0 * |
|
0 commit comments