diff options
Diffstat (limited to '')
| -rw-r--r-- | spec/inputs/existential.moon | 2 | ||||
| -rw-r--r-- | src/MoonP/moon_compiler.cpp | 8 | ||||
| -rw-r--r-- | src/moonp.cpp | 10 |
3 files changed, 14 insertions, 6 deletions
diff --git a/spec/inputs/existential.moon b/spec/inputs/existential.moon index 831383b..7ee3bde 100644 --- a/spec/inputs/existential.moon +++ b/spec/inputs/existential.moon | |||
| @@ -43,3 +43,5 @@ len = utf8?.len or string?.len or (o) -> #o | |||
| 43 | 43 | ||
| 44 | a = tb1?\end? 123 + tb2?\then 456 | 44 | a = tb1?\end? 123 + tb2?\then 456 |
| 45 | 45 | ||
| 46 | b = tb1?\end? or tb2?\then | ||
| 47 | |||
diff --git a/src/MoonP/moon_compiler.cpp b/src/MoonP/moon_compiler.cpp index db2e278..c854f58 100644 --- a/src/MoonP/moon_compiler.cpp +++ b/src/MoonP/moon_compiler.cpp | |||
| @@ -43,7 +43,7 @@ inline std::string s(std::string_view sv) { | |||
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | const char* version() { | 45 | const char* version() { |
| 46 | return "0.3.6"; | 46 | return "0.3.7"; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | // name of table stored in lua registry | 49 | // name of table stored in lua registry |
| @@ -3129,15 +3129,15 @@ private: | |||
| 3129 | return; | 3129 | return; |
| 3130 | } | 3130 | } |
| 3131 | const auto& chainList = chainValue->items.objects(); | 3131 | const auto& chainList = chainValue->items.objects(); |
| 3132 | if (transformChainEndWithColonItem(chainList, out, usage, assignList)) { | ||
| 3133 | return; | ||
| 3134 | } | ||
| 3135 | if (transformChainEndWithEOP(chainList, out, usage, assignList)) { | 3132 | if (transformChainEndWithEOP(chainList, out, usage, assignList)) { |
| 3136 | return; | 3133 | return; |
| 3137 | } | 3134 | } |
| 3138 | if (transformChainWithEOP(chainList, out, usage, assignList)) { | 3135 | if (transformChainWithEOP(chainList, out, usage, assignList)) { |
| 3139 | return; | 3136 | return; |
| 3140 | } | 3137 | } |
| 3138 | if (transformChainEndWithColonItem(chainList, out, usage, assignList)) { | ||
| 3139 | return; | ||
| 3140 | } | ||
| 3141 | transformChainList(chainList, out, usage, assignList); | 3141 | transformChainList(chainList, out, usage, assignList); |
| 3142 | } | 3142 | } |
| 3143 | 3143 | ||
diff --git a/src/moonp.cpp b/src/moonp.cpp index 18eb059..795e6d2 100644 --- a/src/moonp.cpp +++ b/src/moonp.cpp | |||
| @@ -434,14 +434,20 @@ int main(int narg, const char** args) { | |||
| 434 | results.push_back(std::move(task)); | 434 | results.push_back(std::move(task)); |
| 435 | } | 435 | } |
| 436 | int ret = 0; | 436 | int ret = 0; |
| 437 | std::string msg; | 437 | std::list<std::string> errs; |
| 438 | for (auto& result : results) { | 438 | for (auto& result : results) { |
| 439 | int val = 0; | 439 | int val = 0; |
| 440 | std::string msg; | ||
| 440 | std::tie(val, msg) = result.get(); | 441 | std::tie(val, msg) = result.get(); |
| 441 | if (val != 0) { | 442 | if (val != 0) { |
| 442 | ret = val; | 443 | ret = val; |
| 444 | errs.push_back(msg); | ||
| 445 | } else { | ||
| 446 | std::cout << msg; | ||
| 443 | } | 447 | } |
| 444 | std::cout << msg; | 448 | } |
| 449 | for (const auto& err : errs) { | ||
| 450 | std::cout << err; | ||
| 445 | } | 451 | } |
| 446 | return ret; | 452 | return ret; |
| 447 | } | 453 | } |
