Fixed syntax error for files ending on non-empty line

This commit is contained in:
2021-07-26 10:59:40 +02:00
parent 3165d99fc2
commit 82feb8c43c
6 changed files with 30 additions and 13 deletions
@@ -1051,14 +1051,14 @@ public class M68kParser implements PsiParser, LightPsiParser {
}
/* ********************************************************** */
// !<<eof>> statement EOL
// !<<eof>> statement (<<eof>>|EOL)
static boolean line(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "line")) return false;
boolean r;
Marker m = enter_section_(b);
r = line_0(b, l + 1);
r = r && statement(b, l + 1);
r = r && consumeToken(b, EOL);
r = r && line_2(b, l + 1);
exit_section_(b, m, null, r);
return r;
}
@@ -1073,6 +1073,17 @@ public class M68kParser implements PsiParser, LightPsiParser {
return r;
}
// <<eof>>|EOL
private static boolean line_2(PsiBuilder b, int l) {
if (!recursion_guard_(b, l, "line_2")) return false;
boolean r;
Marker m = enter_section_(b);
r = eof(b, l + 1);
if (!r) r = consumeToken(b, EOL);
exit_section_(b, m, null, r);
return r;
}
/* ********************************************************** */
// Assignment
// | PreprocessorDirective
@@ -118,7 +118,7 @@
M68kFile ::= line*
private line ::= !<<eof>> statement EOL
private line ::= !<<eof>> statement (<<eof>>|EOL)
statement ::= (Assignment
| PreprocessorDirective