From dfb05629a0da911dfaa4637a46e13d503701befd Mon Sep 17 00:00:00 2001 From: Victor Date: Sun, 3 May 2015 13:56:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20ren?= =?UTF-8?q?py.say?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/everlastingsummer/Lexer.java | 1 + src/com/annimon/everlastingsummer/Parser.java | 14 ++++++++++++++ src/com/annimon/everlastingsummer/TokenType.java | 1 + 3 files changed, 16 insertions(+) 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,