diff --git a/moonscript/parse.lua b/moonscript/parse.lua index 13001bc..e3966c7 100644 --- a/moonscript/parse.lua +++ b/moonscript/parse.lua @@ -409,9 +409,9 @@ local build_grammar = wrap_env(function() Local = key"local" * ((op"*" + op"^") / mark"declare_glob" + Ct(NameList) / mark"declare_with_shadows"), - Import = key"import" * Ct(ImportNameList) * key"from" * Exp / mark"import", + Import = key"import" * Ct(ImportNameList) * SpaceBreak^0 * key"from" * Exp / mark"import", ImportName = (sym"\\" * Ct(Cc"colon_stub" * Name) + Name), - ImportNameList = ImportName * (sym"," * ImportName)^0, + ImportNameList = SpaceBreak^0 * ImportName * ((SpaceBreak^1 + sym"," * SpaceBreak^0) * ImportName)^0, NameList = Name * (sym"," * Name)^0, diff --git a/tests/inputs/import.moon b/tests/inputs/import.moon index dac4101..d86d724 100644 --- a/tests/inputs/import.moon +++ b/tests/inputs/import.moon @@ -20,3 +20,29 @@ import something from a table if indent import okay, \well from tables[100] +do + import a, b, c from z + +do + import a, + b, c from z + +do + import a + b + c from z + +do + import + a + b + c from z + + +do + import + a + b + c + from z + diff --git a/tests/outputs/import.lua b/tests/outputs/import.lua index 9c3cf0e..1bd218e 100644 --- a/tests/outputs/import.lua +++ b/tests/outputs/import.lua @@ -42,4 +42,19 @@ if indent then end end)() end +end +do + a, b, c = z.a, z.b, z.c +end +do + a, b, c = z.a, z.b, z.c +end +do + a, b, c = z.a, z.b, z.c +end +do + a, b, c = z.a, z.b, z.c +end +do + a, b, c = z.a, z.b, z.c end \ No newline at end of file