diff options
author | Li Jin <dragon-fly@qq.com> | 2021-02-09 16:23:15 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2021-02-09 16:23:15 +0800 |
commit | 9f622c5bbd9cfb7e66a9fd3c371461af4249d566 (patch) | |
tree | 72a9157ca752b629dde288f4d2b97a072b7e0d5f | |
parent | 4b5b9181d484607b6eeeda2608ff6483647222a9 (diff) | |
download | yuescript-9f622c5bbd9cfb7e66a9fd3c371461af4249d566.tar.gz yuescript-9f622c5bbd9cfb7e66a9fd3c371461af4249d566.tar.bz2 yuescript-9f622c5bbd9cfb7e66a9fd3c371461af4249d566.zip |
partially fix another issue from issue #38.
-rw-r--r-- | spec/inputs/syntax.mp | 16 | ||||
-rw-r--r-- | src/MoonP/moon_ast.h | 2 | ||||
-rw-r--r-- | src/MoonP/moon_compiler.cpp | 3 | ||||
-rw-r--r-- | 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 | |||
82 | 82 | ||
83 | _ = here(we)"go"[12123] | 83 | _ = here(we)"go"[12123] |
84 | 84 | ||
85 | split"abc xyz 123"\map"#"\printAll! | ||
86 | |||
87 | _ = f""[a] | ||
88 | _ = f""\b! | ||
89 | _ = f"".c! | ||
90 | |||
91 | f ""[a] | ||
92 | f ""\b! | ||
93 | f "".c! | ||
94 | |||
95 | list{"abc", "xyz", "123"}\map"#"\printAll! | ||
96 | |||
97 | _ = f{}[a] | ||
98 | _ = f{}\b! | ||
99 | _ = f{}.c! | ||
100 | |||
85 | -- this runs | 101 | -- this runs |
86 | something = | 102 | something = |
87 | test: 12323 | 103 | 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) | |||
506 | 506 | ||
507 | AST_NODE(Invoke) | 507 | AST_NODE(Invoke) |
508 | ast_ptr<true, Seperator_t> sep; | 508 | ast_ptr<true, Seperator_t> sep; |
509 | ast_sel_list<false, Exp_t, SingleString_t, DoubleString_t, LuaString_t> args; | 509 | ast_sel_list<false, Exp_t, SingleString_t, DoubleString_t, LuaString_t, TableLit_t> args; |
510 | AST_MEMBER(Invoke, &sep, &args) | 510 | AST_MEMBER(Invoke, &sep, &args) |
511 | AST_END(Invoke) | 511 | AST_END(Invoke) |
512 | 512 | ||
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) { | |||
53 | return std::string(sv); | 53 | return std::string(sv); |
54 | } | 54 | } |
55 | 55 | ||
56 | const std::string_view version = "0.5.1"sv; | 56 | const std::string_view version = "0.5.2"sv; |
57 | const std::string_view extension = "mp"sv; | 57 | const std::string_view extension = "mp"sv; |
58 | 58 | ||
59 | class MoonCompilerImpl { | 59 | class MoonCompilerImpl { |
@@ -3439,6 +3439,7 @@ private: | |||
3439 | case id<SingleString_t>(): transformSingleString(static_cast<SingleString_t*>(arg), temp); break; | 3439 | case id<SingleString_t>(): transformSingleString(static_cast<SingleString_t*>(arg), temp); break; |
3440 | case id<DoubleString_t>(): transformDoubleString(static_cast<DoubleString_t*>(arg), temp); break; | 3440 | case id<DoubleString_t>(): transformDoubleString(static_cast<DoubleString_t*>(arg), temp); break; |
3441 | case id<LuaString_t>(): transformLuaString(static_cast<LuaString_t*>(arg), temp); break; | 3441 | case id<LuaString_t>(): transformLuaString(static_cast<LuaString_t*>(arg), temp); break; |
3442 | case id<TableLit_t>(): transformTableLit(static_cast<TableLit_t*>(arg), temp); break; | ||
3442 | default: assert(false); break; | 3443 | default: assert(false); break; |
3443 | } | 3444 | } |
3444 | } | 3445 | } |
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() { | |||
412 | FnArgs | | 412 | FnArgs | |
413 | SingleString | | 413 | SingleString | |
414 | DoubleString | | 414 | DoubleString | |
415 | and_(expr('[')) >> LuaString); | 415 | and_(expr('[')) >> LuaString | |
416 | and_(expr('{')) >> TableLit); | ||
416 | 417 | ||
417 | TableValue = KeyValue | Exp; | 418 | TableValue = KeyValue | Exp; |
418 | 419 | ||