aboutsummaryrefslogtreecommitdiff
path: root/src/yuescript/yue_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuescript/yue_parser.cpp')
-rw-r--r--src/yuescript/yue_parser.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/yuescript/yue_parser.cpp b/src/yuescript/yue_parser.cpp
index e4de0b5..e755fb2 100644
--- a/src/yuescript/yue_parser.cpp
+++ b/src/yuescript/yue_parser.cpp
@@ -679,10 +679,15 @@ YueParser::YueParser() {
679 advance >> ensure(MultiLineComment >> Space | Comment, PopIndent) | 679 advance >> ensure(MultiLineComment >> Space | Comment, PopIndent) |
680 plain_space) >> and_(Break); 680 plain_space) >> and_(Break);
681 681
682 indentation_error = pl::user(not_(PipeOperator), [](const item_t& item) {
683 throw ParserError("unexpected indent", *item.begin, *item.end);
684 return false;
685 });
686
682 Line = 687 Line =
683 CheckIndent >> Statement | 688 CheckIndent >> Statement |
684 Advance >> ensure(Space >> and_(PipeOperator) >> Statement, PopIndent) | 689 empty_line_break |
685 empty_line_break; 690 Advance >> ensure(Space >> (indentation_error | Statement), PopIndent);
686 Block = Seperator >> Line >> *(+Break >> Line); 691 Block = Seperator >> Line >> *(+Break >> Line);
687 692
688 Shebang = expr("#!") >> *(not_(Stop) >> Any); 693 Shebang = expr("#!") >> *(not_(Stop) >> Any);