Добавлены новые токены: MENU, ENDMENU, COLON
This commit is contained in:
parent
36f777aac4
commit
47f67833d6
@ -15,12 +15,12 @@ public final class Lexer {
|
||||
private final List<Token> tokens;
|
||||
private final StringBuilder buffer;
|
||||
|
||||
private static final String OPERATOR_CHARS = "=+-()[]$";
|
||||
private static final String OPERATOR_CHARS = "=+-()[]$:";
|
||||
private static final TokenType[] OPERATOR_TYPES = new TokenType[] {
|
||||
TokenType.EQ,
|
||||
TokenType.PLUS, TokenType.MINUS,
|
||||
TokenType.LPAREN, TokenType.RPAREN, TokenType.LBRACKET, TokenType.RBRACKET,
|
||||
TokenType.COMMAND
|
||||
TokenType.COMMAND, TokenType.COLON,
|
||||
};
|
||||
|
||||
private static final String[] KEYWORDS = {
|
||||
@ -32,7 +32,8 @@ public final class Lexer {
|
||||
"at",
|
||||
"window", "hide", "show",
|
||||
"with",
|
||||
"return",
|
||||
|
||||
"return", "menu", "endmenu",
|
||||
|
||||
"renpy.pause", "persistent.sprite_time",
|
||||
"prolog_time", "day_time", "sunset_time", "night_time"
|
||||
@ -46,7 +47,8 @@ public final class Lexer {
|
||||
TokenType.AT,
|
||||
TokenType.WINDOW, TokenType.HIDE, TokenType.SHOW,
|
||||
TokenType.WITH,
|
||||
TokenType.RETURN,
|
||||
|
||||
TokenType.RETURN, TokenType.MENU, TokenType.ENDMENU,
|
||||
|
||||
TokenType.RENPY_PAUSE, TokenType.PERSISTENT_SPRITE_TIME,
|
||||
TokenType.PROLOG_TIME, TokenType.DAY_TIME, TokenType.SUNSET_TIME, TokenType.NIGHT_TIME
|
||||
@ -112,10 +114,6 @@ public final class Lexer {
|
||||
}
|
||||
|
||||
private void tokenizeWord(char ch) {
|
||||
if (ch == ':') {
|
||||
addToken(TokenType.LABEL, false);
|
||||
return;
|
||||
}
|
||||
if (Character.isLetterOrDigit(ch) || (ch == '_') || (ch == '.')) {
|
||||
buffer.append(ch);
|
||||
} else {
|
||||
|
@ -6,7 +6,6 @@ package com.annimon.everlastingsummer;
|
||||
public enum TokenType {
|
||||
|
||||
COMMAND, // начинается с $
|
||||
LABEL, // заканчивается на :
|
||||
WORD,
|
||||
TEXT,
|
||||
NUMBER,
|
||||
@ -19,6 +18,7 @@ public enum TokenType {
|
||||
RPAREN,
|
||||
LBRACKET,
|
||||
RBRACKET,
|
||||
COLON,
|
||||
|
||||
// ключевые слова
|
||||
PLAY,
|
||||
@ -42,6 +42,8 @@ public enum TokenType {
|
||||
AT,
|
||||
WITH,
|
||||
|
||||
MENU,
|
||||
ENDMENU,
|
||||
RETURN,
|
||||
|
||||
// команды
|
||||
|
Loading…
Reference in New Issue
Block a user