From 9f622c5bbd9cfb7e66a9fd3c371461af4249d566 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Tue, 9 Feb 2021 16:23:15 +0800 Subject: partially fix another issue from issue #38. --- spec/inputs/syntax.mp | 16 ++++++++++++++++ src/MoonP/moon_ast.h | 2 +- src/MoonP/moon_compiler.cpp | 3 ++- src/MoonP/moon_parser.cpp | 3 ++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/spec/inputs/syntax.mp b/spec/inputs/syntax.mp index 1bb962f..c8ad96d 100644 --- a/spec/inputs/syntax.mp +++ b/spec/inputs/syntax.mp @@ -82,6 +82,22 @@ something [[else]], 2 _ = here(we)"go"[12123] +split"abc xyz 123"\map"#"\printAll! + +_ = f""[a] +_ = f""\b! +_ = f"".c! + +f ""[a] +f ""\b! +f "".c! + +list{"abc", "xyz", "123"}\map"#"\printAll! + +_ = f{}[a] +_ = f{}\b! +_ = f{}.c! + -- this runs something = test: 12323 diff --git a/src/MoonP/moon_ast.h b/src/MoonP/moon_ast.h index c426ef7..d00d855 100644 --- a/src/MoonP/moon_ast.h +++ b/src/MoonP/moon_ast.h @@ -506,7 +506,7 @@ AST_END(Parens) AST_NODE(Invoke) ast_ptr sep; - ast_sel_list args; + ast_sel_list args; AST_MEMBER(Invoke, &sep, &args) AST_END(Invoke) diff --git a/src/MoonP/moon_compiler.cpp b/src/MoonP/moon_compiler.cpp index 09185ce..73bbd60 100644 --- a/src/MoonP/moon_compiler.cpp +++ b/src/MoonP/moon_compiler.cpp @@ -53,7 +53,7 @@ inline std::string s(std::string_view sv) { return std::string(sv); } -const std::string_view version = "0.5.1"sv; +const std::string_view version = "0.5.2"sv; const std::string_view extension = "mp"sv; class MoonCompilerImpl { @@ -3439,6 +3439,7 @@ private: case id(): transformSingleString(static_cast(arg), temp); break; case id(): transformDoubleString(static_cast(arg), temp); break; case id(): transformLuaString(static_cast(arg), temp); break; + case id(): transformTableLit(static_cast(arg), temp); break; default: assert(false); break; } } diff --git a/src/MoonP/moon_parser.cpp b/src/MoonP/moon_parser.cpp index 6c1382d..63ffec7 100644 --- a/src/MoonP/moon_parser.cpp +++ b/src/MoonP/moon_parser.cpp @@ -412,7 +412,8 @@ MoonParser::MoonParser() { FnArgs | SingleString | DoubleString | - and_(expr('[')) >> LuaString); + and_(expr('[')) >> LuaString | + and_(expr('{')) >> TableLit); TableValue = KeyValue | Exp; -- cgit v1.2.3-55-g6feb