Парсинг команд для работы с картой
This commit is contained in:
parent
e7b9f18635
commit
e672366a23
@ -70,6 +70,10 @@ public final class Lexer {
|
||||
KEYWORDS.put("make_names_unknown", TokenType.MAKE_NAMES_UNKNOWN);
|
||||
KEYWORDS.put("set_name", TokenType.SET_NAME);
|
||||
KEYWORDS.put("meet", TokenType.SET_NAME);
|
||||
KEYWORDS.put("disable_all_zones", TokenType.DISABLE_ALL_ZONES);
|
||||
KEYWORDS.put("disable_current_zone", TokenType.DISABLE_CURRENT_ZONE);
|
||||
KEYWORDS.put("set_zone", TokenType.SET_ZONE);
|
||||
KEYWORDS.put("show_map", TokenType.SHOW_MAP);
|
||||
}
|
||||
|
||||
private final List<Token> tokens;
|
||||
|
@ -256,6 +256,35 @@ public final class Parser {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Карта
|
||||
if (match(token, TokenType.DISABLE_ALL_ZONES)) {
|
||||
consume(TokenType.LPAREN);
|
||||
consume(TokenType.RPAREN);
|
||||
ViewActivity.getInstance().disableAllZones();
|
||||
return false;
|
||||
}
|
||||
if (match(token, TokenType.DISABLE_CURRENT_ZONE)) {
|
||||
consume(TokenType.LPAREN);
|
||||
consume(TokenType.RPAREN);
|
||||
ViewActivity.getInstance().disableCurrentZone();
|
||||
return false;
|
||||
}
|
||||
if (match(token, TokenType.SET_ZONE)) {
|
||||
consume(TokenType.LPAREN);
|
||||
final String zone = consume(TokenType.TEXT).getText();
|
||||
// TODO: consume(TokenType.COMMA)
|
||||
final String label = consume(TokenType.TEXT).getText();
|
||||
consume(TokenType.RPAREN);
|
||||
ViewActivity.getInstance().setZone(zone, label);
|
||||
return false;
|
||||
}
|
||||
if (match(token, TokenType.SHOW_MAP)) {
|
||||
consume(TokenType.LPAREN);
|
||||
consume(TokenType.RPAREN);
|
||||
ViewActivity.getInstance().showMap();
|
||||
return true;
|
||||
}
|
||||
|
||||
if (match(token, TokenType.WORD)) {
|
||||
if (match(TokenType.EQ)) {
|
||||
// variable = expression
|
||||
|
@ -69,6 +69,10 @@ public enum TokenType {
|
||||
MAKE_NAMES_KNOWN,
|
||||
MAKE_NAMES_UNKNOWN,
|
||||
SET_NAME,
|
||||
DISABLE_ALL_ZONES,
|
||||
DISABLE_CURRENT_ZONE,
|
||||
SET_ZONE,
|
||||
SHOW_MAP,
|
||||
|
||||
EOF
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user