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