JET-142 Support string templates:
Old literals wiped out
This commit is contained in:
@@ -19,7 +19,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
private static final TokenSet WHEN_CONDITION_RECOVERY_SET_WITH_DOUBLE_ARROW = TokenSet.create(RBRACE, IN_KEYWORD, NOT_IN, IS_KEYWORD, NOT_IS, ELSE_KEYWORD, DOUBLE_ARROW, DOT);
|
||||
|
||||
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
|
||||
INTEGER_LITERAL, LONG_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL,
|
||||
INTEGER_LITERAL, LONG_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, OPEN_QUOTE, RAW_STRING_LITERAL,
|
||||
NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
|
||||
FUN_KEYWORD, FOR_KEYWORD, NULL_KEYWORD,
|
||||
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD,
|
||||
@@ -40,7 +40,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
|
||||
// literal constant
|
||||
TRUE_KEYWORD, FALSE_KEYWORD,
|
||||
STRING_LITERAL, RAW_STRING_LITERAL,
|
||||
OPEN_QUOTE, RAW_STRING_LITERAL,
|
||||
INTEGER_LITERAL, LONG_LITERAL, CHARACTER_LITERAL, FLOAT_LITERAL,
|
||||
NULL_KEYWORD,
|
||||
|
||||
@@ -69,9 +69,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
IDENTIFIER, // SimpleName
|
||||
FIELD_IDENTIFIER, // Field reference
|
||||
|
||||
NAMESPACE_KEYWORD, // for absolute qualified names
|
||||
|
||||
OPEN_QUOTE // STRINGS
|
||||
NAMESPACE_KEYWORD // for absolute qualified names
|
||||
);
|
||||
|
||||
private static final TokenSet STATEMENT_FIRST = TokenSet.orSet(
|
||||
@@ -638,7 +636,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
||||
if (at(TRUE_KEYWORD) || at(FALSE_KEYWORD)) {
|
||||
parseOneTokenExpression(BOOLEAN_CONSTANT);
|
||||
}
|
||||
else if (at(STRING_LITERAL) || at(RAW_STRING_LITERAL)) {
|
||||
else if (at(RAW_STRING_LITERAL)) {
|
||||
parseOneTokenExpression(STRING_CONSTANT);
|
||||
}
|
||||
else if (at(INTEGER_LITERAL)) {
|
||||
|
||||
@@ -67,7 +67,6 @@ public class JetConstantExpression extends JetExpression {
|
||||
return nodeText.charAt(1);
|
||||
}
|
||||
else if (elementType == JetNodeTypes.STRING_CONSTANT) {
|
||||
if (nodeText.length() == 1) return "";
|
||||
int tail = nodeText.length();
|
||||
if (nodeText.endsWith("\"")) tail--;
|
||||
return nodeText.substring(1, tail);
|
||||
|
||||
@@ -20,7 +20,7 @@ public interface JetTokens {
|
||||
JetToken LONG_LITERAL = new JetToken("LONG_LITERAL");
|
||||
JetToken FLOAT_LITERAL = new JetToken("FLOAT_CONSTANT");
|
||||
JetToken CHARACTER_LITERAL = new JetToken("CHARACTER_LITERAL");
|
||||
JetToken STRING_LITERAL = new JetToken("STRING_LITERAL");
|
||||
// JetToken STRING_LITERAL = new JetToken("STRING_LITERAL");
|
||||
|
||||
JetToken CLOSING_QUOTE = new JetToken("CLOSING_QUOTE");
|
||||
JetToken OPEN_QUOTE = new JetToken("OPEN_QUOTE");
|
||||
@@ -167,7 +167,7 @@ public interface JetTokens {
|
||||
TokenSet WHITESPACES = TokenSet.create(TokenType.WHITE_SPACE);
|
||||
TokenSet COMMENTS = TokenSet.create(EOL_COMMENT, BLOCK_COMMENT, DOC_COMMENT);
|
||||
|
||||
TokenSet STRINGS = TokenSet.create(CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL);
|
||||
TokenSet STRINGS = TokenSet.create(CHARACTER_LITERAL, REGULAR_STRING_PART, RAW_STRING_LITERAL);
|
||||
TokenSet OPERATIONS = TokenSet.create(AS_KEYWORD, AS_SAFE, IS_KEYWORD, IN_KEYWORD, DOT, PLUSPLUS, MINUSMINUS, MUL, PLUS,
|
||||
MINUS, EXCL, DIV, PERC, LT, GT, LTEQ, GTEQ, EQEQEQ, ARROW, EXCLEQEQEQ, EQEQ, EXCLEQ, ANDAND, OROR,
|
||||
SAFE_ACCESS, ELVIS,
|
||||
|
||||
@@ -115,7 +115,6 @@ public class JetHighlighter extends SyntaxHighlighterBase {
|
||||
keys1.put(JetTokens.LONG_LITERAL, JET_NUMBER);
|
||||
keys1.put(JetTokens.FLOAT_LITERAL, JET_NUMBER);
|
||||
|
||||
keys1.put(JetTokens.STRING_LITERAL, JET_STRING);
|
||||
keys1.put(JetTokens.OPEN_QUOTE, JET_STRING);
|
||||
keys1.put(JetTokens.CLOSING_QUOTE, JET_STRING);
|
||||
keys1.put(JetTokens.REGULAR_STRING_PART, JET_STRING);
|
||||
|
||||
@@ -80,7 +80,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
final Method method = generateFunction("append");
|
||||
method.invoke(null, "IntelliJ ");
|
||||
String value = (String) method.invoke(null, "IDEA");
|
||||
assertEquals(value, "IntelliJ IDEA");
|
||||
assertEquals("IntelliJ IDEA", value);
|
||||
}
|
||||
|
||||
public void testFieldSetterPlusEq() throws Exception {
|
||||
@@ -88,7 +88,7 @@ public class PropertyGenTest extends CodegenTestCase {
|
||||
final Method method = generateFunction("append");
|
||||
method.invoke(null, "IntelliJ ");
|
||||
String value = (String) method.invoke(null, "IDEA");
|
||||
assertEquals(value, "IntelliJ IDEA");
|
||||
assertEquals("IntelliJ IDEA", value);
|
||||
}
|
||||
|
||||
public void testAccessorsWithoutBody() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user