From b41e863d2794e451ce29006940bca24015e1b106 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 12 Jul 2011 14:07:15 +0400 Subject: [PATCH] JET-142 Support string templates: Old literals wiped out --- .../jet/lang/parsing/JetExpressionParsing.java | 10 ++++------ .../jetbrains/jet/lang/psi/JetConstantExpression.java | 1 - idea/src/org/jetbrains/jet/lexer/JetTokens.java | 4 ++-- idea/src/org/jetbrains/jet/plugin/JetHighlighter.java | 1 - .../org/jetbrains/jet/codegen/PropertyGenTest.java | 4 ++-- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index dc41f16c643..35bc3dcf8dd 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -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)) { diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java index c057e48b0b9..9bd030956d0 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetConstantExpression.java @@ -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); diff --git a/idea/src/org/jetbrains/jet/lexer/JetTokens.java b/idea/src/org/jetbrains/jet/lexer/JetTokens.java index cbb0f7bb9cf..07b418207bf 100644 --- a/idea/src/org/jetbrains/jet/lexer/JetTokens.java +++ b/idea/src/org/jetbrains/jet/lexer/JetTokens.java @@ -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, diff --git a/idea/src/org/jetbrains/jet/plugin/JetHighlighter.java b/idea/src/org/jetbrains/jet/plugin/JetHighlighter.java index dd79d0cf126..60bc4859c11 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetHighlighter.java +++ b/idea/src/org/jetbrains/jet/plugin/JetHighlighter.java @@ -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); diff --git a/idea/tests/org/jetbrains/jet/codegen/PropertyGenTest.java b/idea/tests/org/jetbrains/jet/codegen/PropertyGenTest.java index e62bf750316..cbc9e0f08cf 100644 --- a/idea/tests/org/jetbrains/jet/codegen/PropertyGenTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/PropertyGenTest.java @@ -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 {