diff --git a/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Keywords.java b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Keywords.java new file mode 100644 index 0000000..76d7d1d --- /dev/null +++ b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Keywords.java @@ -0,0 +1,17 @@ +package org.nittalab.dtram.languageserver.model; + +/** + * {@link Keywords} class holds all keywords used in DTRAM. + * + * @author Shohei Yamagiwa + * @since 0.1 + */ +public class Keywords { + public static final String CHANNEL = "channel"; + public static final String INIT = "init"; + public static final String IN = "in"; + public static final String OUT = "out"; + public static final String REF = "ref"; + public static final String SUB_CHANNEL = "sub"; + public static final String NATIVE = "native"; +} diff --git a/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Operators.java b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Operators.java new file mode 100644 index 0000000..cf8a4f4 --- /dev/null +++ b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Operators.java @@ -0,0 +1,45 @@ +package org.nittalab.dtram.languageserver.model; + +/** + * {@link Operators} class holds all operators used in DTRAM. + * + * @author Shohei Yamagiwa + * @since 0.1 + */ +public class Operators { + /** + * Unary operators + */ + public static final String MINUS = "-"; + + /** + * Arithmetic operators + */ + public static final String ADD = "+"; + public static final String SUB = "-"; + public static final String MUL = "*"; + public static final String DIV = "/"; + public static final String MOD = "%"; + + /** + * Rational operators + */ + public static final String EQ = "=="; + public static final String NEQ = "!="; + public static final String GT = ">"; + public static final String LT = "<"; + public static final String GE = ">="; + public static final String LE = "<="; + + /** + * Logical operators + */ + public static final String AND = "&&"; + public static final String OR = "||"; + public static final String NEG = "!"; + + /** + * Assignment operators + */ + public static final String ASSIGNMENT = "="; +} diff --git a/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Tokens.java b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Tokens.java index c5852ea..9d1a9c8 100644 --- a/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Tokens.java +++ b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/model/Tokens.java @@ -9,14 +9,6 @@ public class Tokens { public static final String SPACE = " "; - public static final String CHANNEL = "channel"; - public static final String INIT = "init"; - public static final String IN = "in"; - public static final String OUT = "out"; - public static final String REF = "ref"; - public static final String SUB_CHANNEL = "sub"; - public static final String NATIVE = "native"; - public static final String LEFT_CURLY_BRACKET = "{"; public static final String RIGHT_CURLY_BRACKET = "}"; public static final String LEFT_BRACKET = "("; @@ -24,26 +16,7 @@ public static final String LEFT_SQUARE_BRACKET = "["; public static final String RIGHT_SQUARE_BRACKET = "]"; - public static final String ADD = "+"; - public static final String SUB = "-"; - public static final String MUL = "*"; - public static final String DIV = "/"; - public static final String MOD = "%"; - - public static final String MINUS = "-"; - - public static final String EQ = "=="; - public static final String NEQ = "!="; - public static final String GT = ">"; - public static final String LT = "<"; - public static final String GE = ">="; - public static final String LE = "<="; - public static final String AND = "&&"; - public static final String OR = "||"; - public static final String NEG = "!"; - public static final String EQUALS = "="; - public static final String ASSIGNMENT = "="; public static final String COMMA = ","; public static final String COLON = ":"; public static final String DOT = "."; diff --git a/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/utils/Tokenizer.java b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/utils/Tokenizer.java index 9598c82..387303c 100644 --- a/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/utils/Tokenizer.java +++ b/LanguageServer/src/main/java/org/nittalab/dtram/languageserver/utils/Tokenizer.java @@ -1,5 +1,6 @@ package org.nittalab.dtram.languageserver.utils; +import org.nittalab.dtram.languageserver.model.Operators; import org.nittalab.dtram.languageserver.model.Position; import org.nittalab.dtram.languageserver.model.Token; import org.nittalab.dtram.languageserver.model.Tokens; @@ -45,12 +46,23 @@ tokens = extractMultilineComments(tokens); tokens = extractComments(tokens); - tokens = splitTokens(tokens, Tokens.EQ); - tokens = splitTokens(tokens, Tokens.NEQ); - tokens = splitTokens(tokens, Tokens.GE); - tokens = splitTokens(tokens, Tokens.LE); - tokens = splitTokens(tokens, Tokens.AND); - tokens = splitTokens(tokens, Tokens.OR); + tokens = splitTokens(tokens, Operators.EQ); + tokens = splitTokens(tokens, Operators.NEQ); + tokens = splitTokens(tokens, Operators.GE); + tokens = splitTokens(tokens, Operators.LE); + tokens = splitTokens(tokens, Operators.AND); + tokens = splitTokens(tokens, Operators.OR); + + tokens = splitTokens(tokens, Operators.ADD); + tokens = splitTokens(tokens, Operators.SUB); + tokens = splitTokens(tokens, Operators.MUL); + tokens = splitTokens(tokens, Operators.DIV); + tokens = splitTokens(tokens, Operators.MOD); + tokens = splitTokens(tokens, Operators.MINUS); + tokens = splitTokens(tokens, Operators.GT); + tokens = splitTokens(tokens, Operators.LT); + tokens = splitTokens(tokens, Operators.NEG); + tokens = splitTokens(tokens, Operators.ASSIGNMENT); tokens = splitTokens(tokens, Tokens.LEFT_BRACKET); tokens = splitTokens(tokens, Tokens.RIGHT_BRACKET); @@ -59,20 +71,7 @@ tokens = splitTokens(tokens, Tokens.LEFT_SQUARE_BRACKET); tokens = splitTokens(tokens, Tokens.RIGHT_SQUARE_BRACKET); - tokens = splitTokens(tokens, Tokens.ADD); - tokens = splitTokens(tokens, Tokens.SUB); - tokens = splitTokens(tokens, Tokens.MUL); - tokens = splitTokens(tokens, Tokens.DIV); - tokens = splitTokens(tokens, Tokens.MOD); - - tokens = splitTokens(tokens, Tokens.MINUS); - - tokens = splitTokens(tokens, Tokens.GT); - tokens = splitTokens(tokens, Tokens.LT); - tokens = splitTokens(tokens, Tokens.NEG); - tokens = splitTokens(tokens, Tokens.EQUALS); - tokens = splitTokens(tokens, Tokens.ASSIGNMENT); tokens = splitTokens(tokens, Tokens.COLON); tokens = splitTokens(tokens, Tokens.COMMA); tokens = splitTokens(tokens, Tokens.DOT);