aboutsummaryrefslogtreecommitdiff
path: root/src/MoonP/moon_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/MoonP/moon_parser.cpp')
-rw-r--r--src/MoonP/moon_parser.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/MoonP/moon_parser.cpp b/src/MoonP/moon_parser.cpp
index 6485e46..e984997 100644
--- a/src/MoonP/moon_parser.cpp
+++ b/src/MoonP/moon_parser.cpp
@@ -51,22 +51,19 @@ MoonParser::MoonParser() {
51 EmptyLine = SpaceBreak; 51 EmptyLine = SpaceBreak;
52 AlphaNum = range('a', 'z') | range('A', 'Z') | range('0', '9') | '_'; 52 AlphaNum = range('a', 'z') | range('A', 'Z') | range('0', '9') | '_';
53 Name = (range('a', 'z') | range('A', 'Z') | '_') >> *AlphaNum; 53 Name = (range('a', 'z') | range('A', 'Z') | '_') >> *AlphaNum;
54 Decimal = ( 54 Num = (
55 "0x" >>
56 +(range('0', '9') | range('a', 'f') | range('A', 'F')) >>
57 -(-set("uU") >> set("lL") >> set("lL"))
58 ) | (
59 +range('0', '9') >> -set("uU") >> set("lL") >> set("lL")
60 ) | (
55 ( 61 (
56 +range('0', '9') >> -('.' >> +range('0', '9')) 62 +range('0', '9') >> -('.' >> +range('0', '9'))
57 ) | ( 63 ) | (
58 '.' >> +range('0', '9') 64 '.' >> +range('0', '9')
59 ) 65 )
60 ) >> -(set("eE") >> -expr('-') >> +range('0', '9')); 66 ) >> -(set("eE") >> -expr('-') >> +range('0', '9'));
61 Integer =
62 (
63 "0x" >>
64 +(range('0', '9') | range('a', 'f') | range('A', 'F')) >>
65 -(-set("uU") >> set("lL") >> set("lL"))
66 ) | (
67 +range('0', '9') >> -set("uU") >> set("lL") >> set("lL")
68 );
69 Num = Integer | Decimal;
70 67
71 Cut = false_(); 68 Cut = false_();
72 Seperator = true_(); 69 Seperator = true_();
@@ -513,7 +510,7 @@ MoonParser::MoonParser() {
513 FunLit = -FnArgsDef >> Space >> fn_arrow >> -Body; 510 FunLit = -FnArgsDef >> Space >> fn_arrow >> -Body;
514 511
515 MacroName = expr('$') >> Name; 512 MacroName = expr('$') >> Name;
516 macro_type = expr("expr") | expr("block") | expr("lua"); 513 macro_type = expr("expr") | expr("block") | expr("lua") | expr("text");
517 macro_args_def = sym('(') >> White >> -FnArgDefList >> White >> sym(')'); 514 macro_args_def = sym('(') >> White >> -FnArgDefList >> White >> sym(')');
518 MacroLit = -macro_args_def >> Space >> expr("->") >> Body; 515 MacroLit = -macro_args_def >> Space >> expr("->") >> Body;
519 Macro = key("macro") >> Space >> macro_type >> Space >> Name >> sym('=') >> MacroLit; 516 Macro = key("macro") >> Space >> macro_type >> Space >> Name >> sym('=') >> MacroLit;