diff options
Diffstat (limited to 'src/MoonP')
-rw-r--r-- | src/MoonP/moon_parser.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/MoonP/moon_parser.cpp b/src/MoonP/moon_parser.cpp index 8d7fdc5..39551d2 100644 --- a/src/MoonP/moon_parser.cpp +++ b/src/MoonP/moon_parser.cpp | |||
@@ -36,7 +36,6 @@ MoonParser::MoonParser() { | |||
36 | plain_space = *set(" \t"); | 36 | plain_space = *set(" \t"); |
37 | Break = nl(-expr('\r') >> '\n'); | 37 | Break = nl(-expr('\r') >> '\n'); |
38 | Any = Break | any(); | 38 | Any = Break | any(); |
39 | White = *(set(" \t") | Break); | ||
40 | Stop = Break | eof(); | 39 | Stop = Break | eof(); |
41 | Indent = plain_space; | 40 | Indent = plain_space; |
42 | Comment = "--" >> *(not_(set("\r\n")) >> Any) >> and_(Stop); | 41 | Comment = "--" >> *(not_(set("\r\n")) >> Any) >> and_(Stop); |
@@ -45,8 +44,9 @@ MoonParser::MoonParser() { | |||
45 | multi_line_content = *(not_(multi_line_close) >> Any); | 44 | multi_line_content = *(not_(multi_line_close) >> Any); |
46 | MultiLineComment = multi_line_open >> multi_line_content >> multi_line_close; | 45 | MultiLineComment = multi_line_open >> multi_line_content >> multi_line_close; |
47 | EscapeNewLine = expr('\\') >> *(set(" \t") | MultiLineComment) >> -Comment >> Break; | 46 | EscapeNewLine = expr('\\') >> *(set(" \t") | MultiLineComment) >> -Comment >> Break; |
48 | Space = *(set(" \t") | MultiLineComment | EscapeNewLine) >> -Comment; | 47 | Space = *(set(" \t") | and_(set("-\\")) >> (MultiLineComment | EscapeNewLine)) >> -Comment; |
49 | SpaceBreak = Space >> Break; | 48 | SpaceBreak = Space >> Break; |
49 | White = Space >> *(Break >> Space); | ||
50 | EmptyLine = SpaceBreak; | 50 | EmptyLine = SpaceBreak; |
51 | AlphaNum = range('a', 'z') | range('A', 'Z') | range('0', '9') | '_'; | 51 | AlphaNum = range('a', 'z') | range('A', 'Z') | range('0', '9') | '_'; |
52 | Name = (range('a', 'z') | range('A', 'Z') | '_') >> *AlphaNum; | 52 | Name = (range('a', 'z') | range('A', 'Z') | '_') >> *AlphaNum; |
@@ -207,7 +207,7 @@ MoonParser::MoonParser() { | |||
207 | 207 | ||
208 | for_in = star_exp | ExpList; | 208 | for_in = star_exp | ExpList; |
209 | 209 | ||
210 | ForEach = key("for") >> AssignableNameList >> key("in") >> | 210 | ForEach = key("for") >> AssignableNameList >> White >> key("in") >> |
211 | DisableDo >> ensure(for_in, PopDo) >> | 211 | DisableDo >> ensure(for_in, PopDo) >> |
212 | -key("do") >> Body; | 212 | -key("do") >> Body; |
213 | 213 | ||
@@ -233,7 +233,7 @@ MoonParser::MoonParser() { | |||
233 | 233 | ||
234 | Comprehension = sym('[') >> Exp >> CompInner >> sym(']'); | 234 | Comprehension = sym('[') >> Exp >> CompInner >> sym(']'); |
235 | comp_value = sym(',') >> Exp; | 235 | comp_value = sym(',') >> Exp; |
236 | TblComprehension = sym('{') >> (Exp >> -comp_value) >> CompInner >> sym('}'); | 236 | TblComprehension = sym('{') >> Exp >> -comp_value >> CompInner >> sym('}'); |
237 | 237 | ||
238 | CompInner = Seperator >> (CompForEach | CompFor) >> *CompClause; | 238 | CompInner = Seperator >> (CompForEach | CompFor) >> *CompClause; |
239 | star_exp = sym('*') >> Exp; | 239 | star_exp = sym('*') >> Exp; |