diff options
author | Li Jin <dragon-fly@qq.com> | 2020-03-23 10:45:24 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2020-03-23 10:45:24 +0800 |
commit | 14d7e02285857226e26288c1ac83a14eb4fbd478 (patch) | |
tree | be1ee9300a8516b186b1dc8a057f05b17847cabd /src/MoonP/moon_parser.cpp | |
parent | c4556457629bebbb632dbf4e87a49e2d684697c2 (diff) | |
download | yuescript-14d7e02285857226e26288c1ac83a14eb4fbd478.tar.gz yuescript-14d7e02285857226e26288c1ac83a14eb4fbd478.tar.bz2 yuescript-14d7e02285857226e26288c1ac83a14eb4fbd478.zip |
add support for macro system expanding to Lua codes directly.
Diffstat (limited to 'src/MoonP/moon_parser.cpp')
-rw-r--r-- | src/MoonP/moon_parser.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/MoonP/moon_parser.cpp b/src/MoonP/moon_parser.cpp index f0269d7..c8a3a23 100644 --- a/src/MoonP/moon_parser.cpp +++ b/src/MoonP/moon_parser.cpp | |||
@@ -472,7 +472,7 @@ MoonParser::MoonParser() { | |||
472 | FunLit = -FnArgsDef >> Space >> fn_arrow >> -Body; | 472 | FunLit = -FnArgsDef >> Space >> fn_arrow >> -Body; |
473 | 473 | ||
474 | MacroName = expr('$') >> Name; | 474 | MacroName = expr('$') >> Name; |
475 | macro_type = expr("expr") | expr("block"); | 475 | macro_type = expr("expr") | expr("block") | expr("lua"); |
476 | macro_args_def = sym('(') >> White >> -FnArgDefList >> White >> sym(')'); | 476 | macro_args_def = sym('(') >> White >> -FnArgDefList >> White >> sym(')'); |
477 | MacroLit = -macro_args_def >> Space >> expr("->") >> Body; | 477 | MacroLit = -macro_args_def >> Space >> expr("->") >> Body; |
478 | Macro = key("macro") >> Space >> macro_type >> Space >> Name >> sym('=') >> MacroLit; | 478 | Macro = key("macro") >> Space >> macro_type >> Space >> Name >> sym('=') >> MacroLit; |
@@ -608,8 +608,8 @@ namespace Utils { | |||
608 | 608 | ||
609 | void trim(std::string& str) { | 609 | void trim(std::string& str) { |
610 | if (str.empty()) return; | 610 | if (str.empty()) return; |
611 | str.erase(0, str.find_first_not_of(" \t")); | 611 | str.erase(0, str.find_first_not_of(" \t\n")); |
612 | str.erase(str.find_last_not_of(" \t") + 1); | 612 | str.erase(str.find_last_not_of(" \t\n") + 1); |
613 | } | 613 | } |
614 | } | 614 | } |
615 | 615 | ||