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:
parent
37cf836c40
commit
45749bf471
@ -14,7 +14,7 @@ public class HotaruLexer extends Lexer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static final String TEXT_CHARS = "'\"";
|
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;
|
private static final Map<String, HotaruTokenId> OPERATORS;
|
||||||
static {
|
static {
|
||||||
@ -23,7 +23,10 @@ public class HotaruLexer extends Lexer {
|
|||||||
OPERATORS.put(")", HotaruTokenId.RPAREN);
|
OPERATORS.put(")", HotaruTokenId.RPAREN);
|
||||||
OPERATORS.put("{", HotaruTokenId.LBRACE);
|
OPERATORS.put("{", HotaruTokenId.LBRACE);
|
||||||
OPERATORS.put("}", HotaruTokenId.RBRACE);
|
OPERATORS.put("}", HotaruTokenId.RBRACE);
|
||||||
|
OPERATORS.put(":", HotaruTokenId.COLON);
|
||||||
OPERATORS.put("=", HotaruTokenId.EQ);
|
OPERATORS.put("=", HotaruTokenId.EQ);
|
||||||
|
OPERATORS.put("+", HotaruTokenId.PLUS);
|
||||||
|
OPERATORS.put("-", HotaruTokenId.MINUS);
|
||||||
OPERATORS.put(".", HotaruTokenId.DOT);
|
OPERATORS.put(".", HotaruTokenId.DOT);
|
||||||
OPERATORS.put(",", HotaruTokenId.COMMA);
|
OPERATORS.put(",", HotaruTokenId.COMMA);
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,13 @@ public enum HotaruTokenId {
|
|||||||
TEXT(Category.STRING),
|
TEXT(Category.STRING),
|
||||||
|
|
||||||
EQ(Category.OPERATOR),
|
EQ(Category.OPERATOR),
|
||||||
|
PLUS(Category.OPERATOR),
|
||||||
|
MINUS(Category.OPERATOR),
|
||||||
LPAREN(Category.OPERATOR),
|
LPAREN(Category.OPERATOR),
|
||||||
RPAREN(Category.OPERATOR),
|
RPAREN(Category.OPERATOR),
|
||||||
LBRACE(Category.OPERATOR),
|
LBRACE(Category.OPERATOR),
|
||||||
RBRACE(Category.OPERATOR),
|
RBRACE(Category.OPERATOR),
|
||||||
|
COLON(Category.OPERATOR),
|
||||||
COMMA(Category.OPERATOR),
|
COMMA(Category.OPERATOR),
|
||||||
DOT(Category.OPERATOR),
|
DOT(Category.OPERATOR),
|
||||||
|
|
||||||
|
@ -76,14 +76,17 @@ class HotaruLexerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testTokenizeOperators() {
|
void testTokenizeOperators() {
|
||||||
assertThat(t("(){}=,."), contains(
|
assertThat(t("(){}=+-,.:"), contains(
|
||||||
tokenId(HotaruTokenId.LPAREN),
|
tokenId(HotaruTokenId.LPAREN),
|
||||||
tokenId(HotaruTokenId.RPAREN),
|
tokenId(HotaruTokenId.RPAREN),
|
||||||
tokenId(HotaruTokenId.LBRACE),
|
tokenId(HotaruTokenId.LBRACE),
|
||||||
tokenId(HotaruTokenId.RBRACE),
|
tokenId(HotaruTokenId.RBRACE),
|
||||||
tokenId(HotaruTokenId.EQ),
|
tokenId(HotaruTokenId.EQ),
|
||||||
|
tokenId(HotaruTokenId.PLUS),
|
||||||
|
tokenId(HotaruTokenId.MINUS),
|
||||||
tokenId(HotaruTokenId.COMMA),
|
tokenId(HotaruTokenId.COMMA),
|
||||||
tokenId(HotaruTokenId.DOT)
|
tokenId(HotaruTokenId.DOT),
|
||||||
|
tokenId(HotaruTokenId.COLON)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,11 +121,16 @@ class HotaruLexerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testStatements() {
|
void testStatements() {
|
||||||
assertThat(t("A = node()"), contains(
|
assertThat(t("A = node({x : 10})"), contains(
|
||||||
tokenId(HotaruTokenId.WORD),
|
tokenId(HotaruTokenId.WORD),
|
||||||
tokenId(HotaruTokenId.EQ),
|
tokenId(HotaruTokenId.EQ),
|
||||||
tokenId(HotaruTokenId.WORD),
|
tokenId(HotaruTokenId.WORD),
|
||||||
tokenId(HotaruTokenId.LPAREN),
|
tokenId(HotaruTokenId.LPAREN),
|
||||||
|
tokenId(HotaruTokenId.LBRACE),
|
||||||
|
tokenId(HotaruTokenId.WORD),
|
||||||
|
tokenId(HotaruTokenId.COLON),
|
||||||
|
tokenId(HotaruTokenId.NUMBER),
|
||||||
|
tokenId(HotaruTokenId.RBRACE),
|
||||||
tokenId(HotaruTokenId.RPAREN)
|
tokenId(HotaruTokenId.RPAREN)
|
||||||
));
|
));
|
||||||
assertThat(t("B.x = 100"), contains(
|
assertThat(t("B.x = 100"), contains(
|
||||||
|
Loading…
Reference in New Issue
Block a user