1
0
mirror of https://github.com/aNNiMON/HotaruFX.git synced 2024-09-19 14:14:21 +03:00

Add colon, plus, minus operators

This commit is contained in:
Victor 2017-08-22 10:01:11 +03:00
parent 37cf836c40
commit 45749bf471
3 changed files with 18 additions and 4 deletions

View File

@ -14,7 +14,7 @@ public class HotaruLexer extends Lexer {
}
private static final String TEXT_CHARS = "'\"";
private static final String OPERATOR_CHARS = "(){}=.,";
private static final String OPERATOR_CHARS = "(){}:=+-.,";
private static final Map<String, HotaruTokenId> OPERATORS;
static {
@ -23,7 +23,10 @@ public class HotaruLexer extends Lexer {
OPERATORS.put(")", HotaruTokenId.RPAREN);
OPERATORS.put("{", HotaruTokenId.LBRACE);
OPERATORS.put("}", HotaruTokenId.RBRACE);
OPERATORS.put(":", HotaruTokenId.COLON);
OPERATORS.put("=", HotaruTokenId.EQ);
OPERATORS.put("+", HotaruTokenId.PLUS);
OPERATORS.put("-", HotaruTokenId.MINUS);
OPERATORS.put(".", HotaruTokenId.DOT);
OPERATORS.put(",", HotaruTokenId.COMMA);
}

View File

@ -11,10 +11,13 @@ public enum HotaruTokenId {
TEXT(Category.STRING),
EQ(Category.OPERATOR),
PLUS(Category.OPERATOR),
MINUS(Category.OPERATOR),
LPAREN(Category.OPERATOR),
RPAREN(Category.OPERATOR),
LBRACE(Category.OPERATOR),
RBRACE(Category.OPERATOR),
COLON(Category.OPERATOR),
COMMA(Category.OPERATOR),
DOT(Category.OPERATOR),

View File

@ -76,14 +76,17 @@ class HotaruLexerTest {
@Test
void testTokenizeOperators() {
assertThat(t("(){}=,."), contains(
assertThat(t("(){}=+-,.:"), contains(
tokenId(HotaruTokenId.LPAREN),
tokenId(HotaruTokenId.RPAREN),
tokenId(HotaruTokenId.LBRACE),
tokenId(HotaruTokenId.RBRACE),
tokenId(HotaruTokenId.EQ),
tokenId(HotaruTokenId.PLUS),
tokenId(HotaruTokenId.MINUS),
tokenId(HotaruTokenId.COMMA),
tokenId(HotaruTokenId.DOT)
tokenId(HotaruTokenId.DOT),
tokenId(HotaruTokenId.COLON)
));
}
@ -118,11 +121,16 @@ class HotaruLexerTest {
@Test
void testStatements() {
assertThat(t("A = node()"), contains(
assertThat(t("A = node({x : 10})"), contains(
tokenId(HotaruTokenId.WORD),
tokenId(HotaruTokenId.EQ),
tokenId(HotaruTokenId.WORD),
tokenId(HotaruTokenId.LPAREN),
tokenId(HotaruTokenId.LBRACE),
tokenId(HotaruTokenId.WORD),
tokenId(HotaruTokenId.COLON),
tokenId(HotaruTokenId.NUMBER),
tokenId(HotaruTokenId.RBRACE),
tokenId(HotaruTokenId.RPAREN)
));
assertThat(t("B.x = 100"), contains(