From 89df31b629a938e09478edbd24fc6fd24454f2a8 Mon Sep 17 00:00:00 2001 From: Victor Date: Sat, 18 Apr 2015 17:42:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20mee?= =?UTF-8?q?t/set=5Fname=20=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=BE=D0=BD=D0=B0=D0=B6=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/everlastingsummer/Lexer.java | 2 ++ src/com/annimon/everlastingsummer/Parser.java | 10 ++++++++++ src/com/annimon/everlastingsummer/TokenType.java | 1 + src/com/annimon/everlastingsummer/ViewActivity.java | 4 ++++ 4 files changed, 17 insertions(+) diff --git a/src/com/annimon/everlastingsummer/Lexer.java b/src/com/annimon/everlastingsummer/Lexer.java index 76597ba..1bdd83b 100644 --- a/src/com/annimon/everlastingsummer/Lexer.java +++ b/src/com/annimon/everlastingsummer/Lexer.java @@ -68,6 +68,8 @@ public final class Lexer { KEYWORDS.put("night_time", TokenType.NIGHT_TIME); KEYWORDS.put("make_names_known", TokenType.MAKE_NAMES_KNOWN); KEYWORDS.put("make_names_unknown", TokenType.MAKE_NAMES_UNKNOWN); + KEYWORDS.put("set_name", TokenType.SET_NAME); + KEYWORDS.put("meet", TokenType.SET_NAME); } private final List tokens; diff --git a/src/com/annimon/everlastingsummer/Parser.java b/src/com/annimon/everlastingsummer/Parser.java index 38afa32..981f065 100644 --- a/src/com/annimon/everlastingsummer/Parser.java +++ b/src/com/annimon/everlastingsummer/Parser.java @@ -230,6 +230,16 @@ public final class Parser { return false; } + if (match(token, TokenType.SET_NAME)) { + consume(TokenType.LPAREN); + final String whoid = consume(TokenType.TEXT).getText(); + // TODO: consume(TokenType.COMMA) + final String name = consume(TokenType.TEXT).getText(); + consume(TokenType.RPAREN); + ViewActivity.getInstance().meet(whoid, name); + return false; + } + if (match(token, TokenType.WORD)) { if (match(TokenType.EQ)) { // variable = expression diff --git a/src/com/annimon/everlastingsummer/TokenType.java b/src/com/annimon/everlastingsummer/TokenType.java index 3afad37..496f057 100644 --- a/src/com/annimon/everlastingsummer/TokenType.java +++ b/src/com/annimon/everlastingsummer/TokenType.java @@ -68,6 +68,7 @@ public enum TokenType { NIGHT_TIME, MAKE_NAMES_KNOWN, MAKE_NAMES_UNKNOWN, + SET_NAME, EOF } diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index 106a3bb..44b8d64 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -298,6 +298,10 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch characters.makeNamesUnknown(); } + public void meet(String whoid, String name) { + characters.setName(whoid, name); + } + public void menu(final Menu menu) { Dialogs.with(this).showGameMenu(menu, new DialogInterface.OnClickListener() { @Override