From 2e9e28ceb3444e0aaf0ff7c704800b9cdc25dc87 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Thu, 20 Feb 2020 15:59:22 +0800 Subject: fix comments issue. --- src/MoonP/moon_parser.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') 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() { plain_space = *set(" \t"); Break = nl(-expr('\r') >> '\n'); Any = Break | any(); - White = *(set(" \t") | Break); Stop = Break | eof(); Indent = plain_space; Comment = "--" >> *(not_(set("\r\n")) >> Any) >> and_(Stop); @@ -45,8 +44,9 @@ MoonParser::MoonParser() { multi_line_content = *(not_(multi_line_close) >> Any); MultiLineComment = multi_line_open >> multi_line_content >> multi_line_close; EscapeNewLine = expr('\\') >> *(set(" \t") | MultiLineComment) >> -Comment >> Break; - Space = *(set(" \t") | MultiLineComment | EscapeNewLine) >> -Comment; + Space = *(set(" \t") | and_(set("-\\")) >> (MultiLineComment | EscapeNewLine)) >> -Comment; SpaceBreak = Space >> Break; + White = Space >> *(Break >> Space); EmptyLine = SpaceBreak; AlphaNum = range('a', 'z') | range('A', 'Z') | range('0', '9') | '_'; Name = (range('a', 'z') | range('A', 'Z') | '_') >> *AlphaNum; @@ -207,7 +207,7 @@ MoonParser::MoonParser() { for_in = star_exp | ExpList; - ForEach = key("for") >> AssignableNameList >> key("in") >> + ForEach = key("for") >> AssignableNameList >> White >> key("in") >> DisableDo >> ensure(for_in, PopDo) >> -key("do") >> Body; @@ -233,7 +233,7 @@ MoonParser::MoonParser() { Comprehension = sym('[') >> Exp >> CompInner >> sym(']'); comp_value = sym(',') >> Exp; - TblComprehension = sym('{') >> (Exp >> -comp_value) >> CompInner >> sym('}'); + TblComprehension = sym('{') >> Exp >> -comp_value >> CompInner >> sym('}'); CompInner = Seperator >> (CompForEach | CompFor) >> *CompClause; star_exp = sym('*') >> Exp; -- cgit v1.2.3-55-g6feb