diff options
Diffstat (limited to 'src/MoonP/moon_parser.cpp')
| -rw-r--r-- | src/MoonP/moon_parser.cpp | 19 |
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; |
