Fix оператор логического отрицания
This commit is contained in:
parent
377b7f6df1
commit
8954e36007
@ -54,6 +54,7 @@ public final class Lexer {
|
|||||||
KEYWORDS.put("if", TokenType.IF);
|
KEYWORDS.put("if", TokenType.IF);
|
||||||
KEYWORDS.put("else", TokenType.ELSE);
|
KEYWORDS.put("else", TokenType.ELSE);
|
||||||
KEYWORDS.put("endif", TokenType.ENDIF);
|
KEYWORDS.put("endif", TokenType.ENDIF);
|
||||||
|
KEYWORDS.put("not", TokenType.NOT);
|
||||||
|
|
||||||
KEYWORDS.put("renpy.pause", TokenType.RENPY_PAUSE);
|
KEYWORDS.put("renpy.pause", TokenType.RENPY_PAUSE);
|
||||||
KEYWORDS.put("persistent.sprite_time", TokenType.PERSISTENT_SPRITE_TIME);
|
KEYWORDS.put("persistent.sprite_time", TokenType.PERSISTENT_SPRITE_TIME);
|
||||||
|
@ -412,6 +412,13 @@ public final class Parser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Expression expression() {
|
private Expression expression() {
|
||||||
|
return notTest();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Expression notTest() {
|
||||||
|
if (match(TokenType.NOT)) {
|
||||||
|
return new ValueExpression( notTest().eval() != 0 ? 0 : 1 );
|
||||||
|
}
|
||||||
return equality();
|
return equality();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,9 +466,6 @@ public final class Parser {
|
|||||||
if (match(TokenType.PLUS)) {
|
if (match(TokenType.PLUS)) {
|
||||||
return primary();
|
return primary();
|
||||||
}
|
}
|
||||||
if (match(TokenType.EXCL)) {
|
|
||||||
return new ValueExpression( primary().eval() != 0 ? 0 : 1 );
|
|
||||||
}
|
|
||||||
return primary();
|
return primary();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,6 +52,7 @@ public enum TokenType {
|
|||||||
IF,
|
IF,
|
||||||
ELSE,
|
ELSE,
|
||||||
ENDIF,
|
ENDIF,
|
||||||
|
NOT,
|
||||||
|
|
||||||
// команды
|
// команды
|
||||||
RENPY_PAUSE,
|
RENPY_PAUSE,
|
||||||
|
Loading…
Reference in New Issue
Block a user