diff options
author | Li Jin <dragon-fly@qq.com> | 2021-02-08 13:38:07 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2021-02-08 13:38:07 +0800 |
commit | 24dab43a753538dcf3b85bd09bf76c0a3c3c8b73 (patch) | |
tree | 51c59ddf8302657ae3cce5d28ba27c66737fc842 /src/MoonP/moon_parser.cpp | |
parent | 32651cccb380bf4682fa8f6d3e70d74952171f7b (diff) | |
download | yuescript-24dab43a753538dcf3b85bd09bf76c0a3c3c8b73.tar.gz yuescript-24dab43a753538dcf3b85bd09bf76c0a3c3c8b73.tar.bz2 yuescript-24dab43a753538dcf3b85bd09bf76c0a3c3c8b73.zip |
simplify macro syntax. fix issue #38 again.
Diffstat (limited to 'src/MoonP/moon_parser.cpp')
-rw-r--r-- | src/MoonP/moon_parser.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/MoonP/moon_parser.cpp b/src/MoonP/moon_parser.cpp index ec95530..6c1382d 100644 --- a/src/MoonP/moon_parser.cpp +++ b/src/MoonP/moon_parser.cpp | |||
@@ -510,10 +510,9 @@ MoonParser::MoonParser() { | |||
510 | FunLit = -FnArgsDef >> Space >> fn_arrow >> -Body; | 510 | FunLit = -FnArgsDef >> Space >> fn_arrow >> -Body; |
511 | 511 | ||
512 | MacroName = expr('$') >> -Name; | 512 | MacroName = expr('$') >> -Name; |
513 | macro_type = expr("expr") | expr("block") | expr("lua") | expr("text"); | ||
514 | macro_args_def = sym('(') >> White >> -FnArgDefList >> White >> sym(')'); | 513 | macro_args_def = sym('(') >> White >> -FnArgDefList >> White >> sym(')'); |
515 | MacroLit = -macro_args_def >> Space >> expr("->") >> Body; | 514 | MacroLit = -macro_args_def >> Space >> expr("->") >> Body; |
516 | Macro = key("macro") >> Space >> macro_type >> Space >> Name >> sym('=') >> MacroLit; | 515 | Macro = key("macro") >> Space >> Name >> sym('=') >> MacroLit; |
517 | 516 | ||
518 | NameList = Seperator >> Space >> Variable >> *(sym(',') >> Space >> Variable); | 517 | NameList = Seperator >> Space >> Variable >> *(sym(',') >> Space >> Variable); |
519 | NameOrDestructure = Space >> Variable | TableLit; | 518 | NameOrDestructure = Space >> Variable | TableLit; |