From cf9187623b996eee91f9b7f0fe86e337e04eee86 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 12 Jan 2011 19:01:43 +0300 Subject: [PATCH] TODO + cosmetics --- .../org/jetbrains/jet/lang/parsing/JetExpressionParsing.java | 1 + idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java | 5 +++-- idea/src/org/jetbrains/jet/lang/psi/JetExpression.java | 2 +- idea/src/org/jetbrains/jet/lexer/Jet.flex | 3 +++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index e7c2f31bfde..9cc7853d63c 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -61,6 +61,7 @@ public class JetExpressionParsing extends AbstractJetParsing { RANGE(JetTokens.RANGE), SIMPLE_NAME(IDENTIFIER), ELVIS(JetTokens.ELVIS), + // TODO : make same priority WITH_TYPE_RHS(IS_KEYWORD, NOT_IS, AS_KEYWORD, COLON) { @Override public void parseRightHandSide(JetExpressionParsing parsing) { diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java index ab1f5d51c03..21094f1ef4b 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java @@ -52,7 +52,7 @@ public class JetParsing extends AbstractJetParsing { @Override protected boolean parseCallWithClosure() { if (builderForByClause.getStackSize() > 0) { - return super.parseCallWithClosure(); + return super.parseCallWithClosure(); } return false; } @@ -252,7 +252,7 @@ public class JetParsing extends AbstractJetParsing { extenstion = true; if (TYPE_REF_FIRST.contains(tt()) && !(at(IDENTIFIER) && lookahead(1) == LPAR)) { - // TODO: if this type is annotated with an attribute, and it is a single identifier, it is a error (decomposer [a] foo()) + // TODO: if this type is annotated with an attribute, and it is a single identifier, it is an error (decomposer [a] foo()) parseTypeRef(); // The decomposer name may appear as the last section of the type if (at(DOT)) { @@ -1311,6 +1311,7 @@ public class JetParsing extends AbstractJetParsing { * ; */ private void parseTupleType() { + // TODO : prohibit (a) assert _at(LPAR); PsiBuilder.Marker tuple = mark(); diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetExpression.java index 250c0b46ecb..1c7e621cc59 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetExpression.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetExpression.java @@ -20,7 +20,7 @@ public class JetExpression extends JetElement { } - JetExpression findExpressionUnder(JetNodeType type) { + protected JetExpression findExpressionUnder(JetNodeType type) { PsiElement containerNode = findChildByType(type); if (containerNode == null) return null; diff --git a/idea/src/org/jetbrains/jet/lexer/Jet.flex b/idea/src/org/jetbrains/jet/lexer/Jet.flex index 4be85f435db..cb0b264889d 100644 --- a/idea/src/org/jetbrains/jet/lexer/Jet.flex +++ b/idea/src/org/jetbrains/jet/lexer/Jet.flex @@ -24,11 +24,13 @@ WHITE_SPACE_CHAR=[\ \n\t\f] // TODO: prohibit '$' in identifiers? PLAIN_IDENTIFIER=[:jletter:] [:jletterdigit:]* // TODO: this one MUST allow everything accepted by the runtime +// TODO: Replace backticks by one backslash in the begining ESCAPED_IDENTIFIER = `{PLAIN_IDENTIFIER}` IDENTIFIER = {PLAIN_IDENTIFIER}|{ESCAPED_IDENTIFIER} FIELD_IDENTIFIER = \${IDENTIFIER} BLOCK_COMMENT=("/*"[^"*"]{COMMENT_TAIL})|"/*" +// TODO: Wiki markup for doc comments? DOC_COMMENT="/*""*"+("/"|([^"/""*"]{COMMENT_TAIL}))? COMMENT_TAIL=([^"*"]*("*"+[^"*""/"])?)*("*"+"/")? EOL_COMMENT="/""/"[^\n]* @@ -52,6 +54,7 @@ BINARY_EXPONENT=[Pp][+-]?{DIGIT}+ HEX_SIGNIFICAND={HEX_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}.|0[Xx]{HEX_DIGIT}*.{HEX_DIGIT}+ CHARACTER_LITERAL="'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)? +// TODO: introduce symbols (e.g. 'foo) as another way to write string literals STRING_LITERAL=\"([^\\\"\n]|{ESCAPE_SEQUENCE})*(\"|\\)? ESCAPE_SEQUENCE=\\[^\n]