diff --git a/grammar/src/expressions.grm b/grammar/src/expressions.grm index f67a599c6c3..8f86ad38834 100644 --- a/grammar/src/expressions.grm +++ b/grammar/src/expressions.grm @@ -8,7 +8,6 @@ expression : range : "null" : "this" ("<" type ">")? - : memberAccessExpression : expressionWithPrecedences : match : if diff --git a/idea/src/org/jetbrains/jet/lang/parsing/AbstractJetParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/AbstractJetParsing.java index 7a122cdf0e7..9f10278ae33 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/AbstractJetParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/AbstractJetParsing.java @@ -103,6 +103,7 @@ import static org.jetbrains.jet.lexer.JetTokens.*; if (myBuilder.eolInLastWhitespace()) return true; } if (token == IDENTIFIER) { + // TODO : this loop seems to be a bad solution for (IElementType type : set.getTypes()) { if (type instanceof JetKeywordToken) { JetKeywordToken expectedKeyword = (JetKeywordToken) type; diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index 2071e132883..83b3e9b3826 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -43,6 +43,72 @@ public class JetExpressionParsing extends AbstractJetParsing { * ; */ public void parseExpression() { + if (at(LPAR)) { + // TODO (expression) or tuple + } + else if (at(INTEGER_LITERAL)) { + // TODO + } + else if (at(CHARACTER_LITERAL)) { + // TODO + } + else if (at(FLOAT_LITERAL)) { + // TODO + } + else if (at(STRING_LITERAL)) { + // TODO + } + else if (at(TRUE_KEYWORD)) { + // TODO + } + else if (at(FALSE_KEYWORD)) { + // TODO + } + else if (at(LBRACKET)) { + // TODO: map, list or range + } + else if (at(NULL_KEYWORD)) { + // TODO + } + else if (at(THIS_KEYWORD)) { + // TODO + } + else if (at(IF_KEYWORD)) { + // TODO + } + else if (at(TYPEOF_KEYWORD)) { + // TODO + } + else if (at(NEW_KEYWORD)) { + // TODO + } + else if (at(OBJECT_KEYWORD)) { + // TODO + } + else if (at(THROW_KEYWORD)) { + // TODO + } + else if (at(RETURN_KEYWORD)) { + // TODO + } + else if (at(CONTINUE_KEYWORD)) { + // TODO + } + else if (at(BREAK_KEYWORD)) { + // TODO + } + else if (at(FOR_KEYWORD)) { + // TODO + } + else if (at(WHILE_KEYWORD)) { + // TODO + } + else if (at(DO_KEYWORD)) { + // TODO + } + else if (atSet(TokenSet.create(CLASS_KEYWORD, EXTENSION_KEYWORD, FUN_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, TYPE_KEYWORD))) { + // TODO + } advance(); // TODO }