Мелкие исправления
This commit is contained in:
parent
a10147782e
commit
8de37bfa4c
@ -80,6 +80,7 @@ public final class Parser {
|
||||
terminal = statement();
|
||||
} catch (RuntimeException re) {
|
||||
Logger.log("Parser.next()", re);
|
||||
if (tokens.isEmpty()) return;
|
||||
}
|
||||
// антизацикливание
|
||||
counter++;
|
||||
@ -447,25 +448,25 @@ public final class Parser {
|
||||
if (lookMatch(1, TokenType.EQ)) {
|
||||
if (match(TokenType.EQ)) {
|
||||
// ==
|
||||
match(TokenType.EQ);
|
||||
consume(TokenType.EQ);
|
||||
expression = new BinaryExpression(Operator.EQUALS, expression, additive());
|
||||
continue;
|
||||
}
|
||||
if (match(TokenType.GT)) {
|
||||
// >=
|
||||
match(TokenType.EQ);
|
||||
consume(TokenType.EQ);
|
||||
expression = new BinaryExpression(Operator.GTEQ, expression, additive());
|
||||
continue;
|
||||
}
|
||||
if (match(TokenType.LT)) {
|
||||
// <=
|
||||
match(TokenType.EQ);
|
||||
consume(TokenType.EQ);
|
||||
expression = new BinaryExpression(Operator.LTEQ, expression, additive());
|
||||
continue;
|
||||
}
|
||||
if (match(TokenType.EXCL)) {
|
||||
// !=
|
||||
match(TokenType.EQ);
|
||||
consume(TokenType.EQ);
|
||||
expression = new BinaryExpression(Operator.NOTEQUALS, expression, additive());
|
||||
continue;
|
||||
}
|
||||
@ -552,9 +553,10 @@ public final class Parser {
|
||||
// Расчёт уровня меню.
|
||||
if (lookMatch(pos, TokenType.MENU) && lookMatch(pos + 1, TokenType.COLON)) {
|
||||
level++;
|
||||
pos++;
|
||||
pos += 2;
|
||||
}
|
||||
if (lookMatch(pos, TokenType.ENDMENU)) {
|
||||
pos++;
|
||||
level--;
|
||||
// Завершаем работу по достижению ENDMENU первого уровня.
|
||||
if (level <= 0) break;
|
||||
@ -570,9 +572,10 @@ public final class Parser {
|
||||
while (true) {
|
||||
if (lookMatch(pos, TokenType.IF)) level++;
|
||||
else if (lookMatch(pos, TokenType.ENDIF)) {
|
||||
pos++;
|
||||
level--;
|
||||
if (level <= 0) break;
|
||||
}
|
||||
} else if (lookMatch(pos, TokenType.EOF)) break;
|
||||
pos++;
|
||||
}
|
||||
return pos;
|
||||
|
Loading…
Reference in New Issue
Block a user