Поддержка функции meet/set_name для задания имени персонажа

This commit is contained in:
Victor 2015-04-18 17:42:01 +03:00
parent 86b3bffcee
commit 89df31b629
4 changed files with 17 additions and 0 deletions

View File

@ -68,6 +68,8 @@ public final class Lexer {
KEYWORDS.put("night_time", TokenType.NIGHT_TIME); KEYWORDS.put("night_time", TokenType.NIGHT_TIME);
KEYWORDS.put("make_names_known", TokenType.MAKE_NAMES_KNOWN); KEYWORDS.put("make_names_known", TokenType.MAKE_NAMES_KNOWN);
KEYWORDS.put("make_names_unknown", TokenType.MAKE_NAMES_UNKNOWN); 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<Token> tokens; private final List<Token> tokens;

View File

@ -230,6 +230,16 @@ public final class Parser {
return false; 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(token, TokenType.WORD)) {
if (match(TokenType.EQ)) { if (match(TokenType.EQ)) {
// variable = expression // variable = expression

View File

@ -68,6 +68,7 @@ public enum TokenType {
NIGHT_TIME, NIGHT_TIME,
MAKE_NAMES_KNOWN, MAKE_NAMES_KNOWN,
MAKE_NAMES_UNKNOWN, MAKE_NAMES_UNKNOWN,
SET_NAME,
EOF EOF
} }

View File

@ -298,6 +298,10 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
characters.makeNamesUnknown(); characters.makeNamesUnknown();
} }
public void meet(String whoid, String name) {
characters.setName(whoid, name);
}
public void menu(final Menu menu) { public void menu(final Menu menu) {
Dialogs.with(this).showGameMenu(menu, new DialogInterface.OnClickListener() { Dialogs.with(this).showGameMenu(menu, new DialogInterface.OnClickListener() {
@Override @Override