JET-142 Support string templates:

Old literals wiped out
This commit is contained in:
Andrey Breslav
2011-07-12 14:07:15 +04:00
parent ee61fa7e10
commit b41e863d27
5 changed files with 8 additions and 12 deletions
@@ -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 {