diff options
Diffstat (limited to '')
| -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 | ||
