diff --git a/src/com/annimon/everlastingsummer/Lexer.java b/src/com/annimon/everlastingsummer/Lexer.java index e1aa4d9..f26b689 100644 --- a/src/com/annimon/everlastingsummer/Lexer.java +++ b/src/com/annimon/everlastingsummer/Lexer.java @@ -62,6 +62,7 @@ public final class Lexer { KEYWORDS.put("not", TokenType.NOT); KEYWORDS.put("renpy.pause", TokenType.RENPY_PAUSE); + KEYWORDS.put("renpy.say", TokenType.RENPY_SAY); KEYWORDS.put("persistent.sprite_time", TokenType.PERSISTENT_SPRITE_TIME); KEYWORDS.put("prolog_time", TokenType.PROLOG_TIME); KEYWORDS.put("day_time", TokenType.DAY_TIME); diff --git a/src/com/annimon/everlastingsummer/Parser.java b/src/com/annimon/everlastingsummer/Parser.java index 8973f1a..7952637 100644 --- a/src/com/annimon/everlastingsummer/Parser.java +++ b/src/com/annimon/everlastingsummer/Parser.java @@ -228,6 +228,20 @@ public final class Parser { return true; } + if (match(token, TokenType.RENPY_SAY)) { + consume(TokenType.LPAREN); + final String whoid = consume(TokenType.WORD).getText(); + // TODO: consume(TokenType.COMMA) + final String text = consume(TokenType.TEXT).getText(); + // TODO: consume(TokenType.COMMA) + consume(TokenType.WORD); // interact + consume(TokenType.EQ); + final boolean interact = consumeBoolean(); + consume(TokenType.RPAREN); + ViewActivity.getInstance().text(whoid, text); + return interact; + } + if (match(token, TokenType.PERSISTENT_SPRITE_TIME)) { consume(TokenType.EQ); consume(TokenType.TEXT); diff --git a/src/com/annimon/everlastingsummer/TokenType.java b/src/com/annimon/everlastingsummer/TokenType.java index f1fe1e7..72ddcc3 100644 --- a/src/com/annimon/everlastingsummer/TokenType.java +++ b/src/com/annimon/everlastingsummer/TokenType.java @@ -62,6 +62,7 @@ public enum TokenType { // команды RENPY_PAUSE, + RENPY_SAY, PERSISTENT_SPRITE_TIME, PROLOG_TIME, DAY_TIME,