From 1d6317356ab124915fafbeca7b4cb1044b031775 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Fri, 7 Jan 2011 16:57:44 +0300 Subject: [PATCH] Stub implementation for expression nodes --- idea/src/org/jetbrains/jet/JetNodeTypes.java | 103 +++++++++--------- .../lang/parsing/JetExpressionParsing.java | 2 +- .../jet/lang/psi/JetAnnotatedExpression.java | 22 ++++ .../lang/psi/JetArrayAccessExpression.java | 18 +++ .../jet/lang/psi/JetBinaryExpression.java | 71 ++++++++++++ .../jet/lang/psi/JetBreakExpression.java | 18 +++ .../jet/lang/psi/JetCallExpression.java | 18 +++ .../jet/lang/psi/JetContinueExpression.java | 18 +++ .../jet/lang/psi/JetDoWhileExpression.java | 18 +++ .../lang/psi/JetDotQualifiedExpression.java | 18 +++ .../jet/lang/psi/JetForExpression.java | 18 +++ .../psi/JetFunctionLiteralExpression.java | 18 +++ .../lang/psi/JetHashQualifiedExpression.java | 18 +++ .../jet/lang/psi/JetIfExpression.java | 18 +++ .../jet/lang/psi/JetNewExpression.java | 18 +++ .../lang/psi/JetObjectLiteralExpression.java | 18 +++ .../jet/lang/psi/JetQualifiedExpression.java | 13 +++ .../jet/lang/psi/JetReturnExpression.java | 18 +++ .../lang/psi/JetRootNamespaceExpression.java | 18 +++ .../lang/psi/JetSafeQualifiedExpression.java | 18 +++ .../jet/lang/psi/JetThrowExpression.java | 18 +++ .../jet/lang/psi/JetTryExpression.java | 18 +++ .../jetbrains/jet/lang/psi/JetVisitor.java | 84 ++++++++++++++ .../jet/lang/psi/JetWhileExpression.java | 18 +++ .../examples/priorityqueues/BinaryHeap.txt | 2 +- 25 files changed, 567 insertions(+), 54 deletions(-) create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetAnnotatedExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetBinaryExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetDoWhileExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetDotQualifiedExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetForExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetFunctionLiteralExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetHashQualifiedExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetIfExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetObjectLiteralExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetQualifiedExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetRootNamespaceExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetSafeQualifiedExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetThrowExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetTryExpression.java create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetWhileExpression.java diff --git a/idea/src/org/jetbrains/jet/JetNodeTypes.java b/idea/src/org/jetbrains/jet/JetNodeTypes.java index 1245fa7dc4a..b6b3d5c2dee 100644 --- a/idea/src/org/jetbrains/jet/JetNodeTypes.java +++ b/idea/src/org/jetbrains/jet/JetNodeTypes.java @@ -20,9 +20,10 @@ public interface JetNodeTypes { JetNodeType TYPEDEF = new JetNodeType("TYPEDEF", JetTypedef.class); JetNodeType DECOMPOSER = new JetNodeType("DECOMPOSER", JetDecomposer.class); - JetNodeType CLASS_OBJECT = new JetNodeType("CLASS_OBJECT", JetClassObject.class); - JetNodeType CONSTRUCTOR = new JetNodeType("CONSTRUCTOR", JetConstructor.class); - JetNodeType ENUM_ENTRY = new JetNodeType("ENUM_ENTRY", JetEnumEntry.class); + JetNodeType CLASS_OBJECT = new JetNodeType("CLASS_OBJECT", JetClassObject.class); + JetNodeType CONSTRUCTOR = new JetNodeType("CONSTRUCTOR", JetConstructor.class); + JetNodeType ENUM_ENTRY = new JetNodeType("ENUM_ENTRY", JetEnumEntry.class); + JetNodeType ANONYMOUS_INITIALIZER = new JetNodeType("ANONYMOUS_INITIALIZER"); JetNodeType TYPE_PARAMETER_LIST = new JetNodeType("TYPE_PARAMETER_LIST", JetTypeParameterList.class); JetNodeType TYPE_PARAMETER = new JetNodeType("TYPE_PARAMETER", JetTypeParameter.class); @@ -51,6 +52,7 @@ public interface JetNodeTypes { JetNodeType LABELED_TUPLE_ENTRY = new JetNodeType("LABELED_TUPLE_ENTRY"); JetNodeType TUPLE_TYPE = new JetNodeType("TUPLE_TYPE"); JetNodeType FUNCTION_TYPE = new JetNodeType("FUNCTION_TYPE"); + JetNodeType SELF_TYPE = new JetNodeType("SELF_TYPE"); JetNodeType DECOMPOSER_PROPERTY_LIST = new JetNodeType("DECOMPOSER_PROPERTY_LIST"); // TODO: review JetNodeType RECEIVER_TYPE_ATTRIBUTES = new JetNodeType("RECEIVER_TYPE_ATTRIBUTES"); @@ -62,56 +64,53 @@ public interface JetNodeTypes { JetNodeType TYPE_CONSTRAINT = new JetNodeType("TYPE_CONSTRAINT"); // TODO: Not sure if we need separate NT for each kind of constants - JetNodeType NULL = new JetNodeType("NULL", JetConstantExpression.class); - JetNodeType BOOLEAN_CONSTANT = new JetNodeType("BOOLEAN_CONSTANT", JetConstantExpression.class); - JetNodeType FLOAT_CONSTANT = new JetNodeType("FLOAT_CONSTANT", JetConstantExpression.class); - JetNodeType CHARACTER_CONSTANT = new JetNodeType("CHARACTER_CONSTANT", JetConstantExpression.class); - JetNodeType STRING_CONSTANT = new JetNodeType("STRING_CONSTANT", JetConstantExpression.class); - JetNodeType INTEGER_CONSTANT = new JetNodeType("INTEGER_CONSTANT", JetConstantExpression.class); - JetNodeType SUPERTYE_QUALIFIER = new JetNodeType("SUPERTYE_QUALIFIER", JetConstantExpression.class); - JetNodeType LONG_CONSTANT = new JetNodeType("LONG_CONSTANT", JetConstantExpression.class); + JetNodeType NULL = new JetNodeType("NULL", JetConstantExpression.class); + JetNodeType BOOLEAN_CONSTANT = new JetNodeType("BOOLEAN_CONSTANT", JetConstantExpression.class); + JetNodeType FLOAT_CONSTANT = new JetNodeType("FLOAT_CONSTANT", JetConstantExpression.class); + JetNodeType CHARACTER_CONSTANT = new JetNodeType("CHARACTER_CONSTANT", JetConstantExpression.class); + JetNodeType STRING_CONSTANT = new JetNodeType("STRING_CONSTANT", JetConstantExpression.class); + JetNodeType INTEGER_CONSTANT = new JetNodeType("INTEGER_CONSTANT", JetConstantExpression.class); + JetNodeType SUPERTYE_QUALIFIER = new JetNodeType("SUPERTYE_QUALIFIER", JetConstantExpression.class); + JetNodeType LONG_CONSTANT = new JetNodeType("LONG_CONSTANT", JetConstantExpression.class); - JetNodeType TUPLE = new JetNodeType("TUPLE", JetTupleExpression.class); - JetNodeType TYPEOF = new JetNodeType("TYPEOF", JetTypeofExpression.class); - JetNodeType NEW = new JetNodeType("NEW"); - JetNodeType RETURN = new JetNodeType("RETURN"); - JetNodeType THROW = new JetNodeType("THROW"); - JetNodeType CONTINUE = new JetNodeType("CONTINUE"); - JetNodeType BREAK = new JetNodeType("BREAK"); - JetNodeType IF = new JetNodeType("IF"); - JetNodeType CONDITION = new JetNodeType("CONDITION"); - JetNodeType THEN = new JetNodeType("THEN"); - JetNodeType ELSE = new JetNodeType("ELSE"); - JetNodeType TRY = new JetNodeType("TRY"); - JetNodeType CATCH = new JetNodeType("CATCH"); - JetNodeType FINALLY = new JetNodeType("FINALLY"); - JetNodeType FOR = new JetNodeType("FOR"); - JetNodeType WHILE = new JetNodeType("WHILE"); - JetNodeType DO_WHILE = new JetNodeType("DO_WHILE"); - JetNodeType LOOP_PARAMETER = new JetNodeType("LOOP_PARAMETER"); - JetNodeType LOOP_RANGE = new JetNodeType("LOOP_RANGE"); - JetNodeType BODY = new JetNodeType("BODY"); - JetNodeType RECEIVER_TYPE = new JetNodeType("RECEIVER_TYPE"); - JetNodeType FUNCTION_LITERAL = new JetNodeType("FUNCTION_LITERAL"); - JetNodeType ANNOTATED_EXPRESSION = new JetNodeType("ANNOTATED_EXPRESSION"); - JetNodeType REFERENCE_EXPRESSION = new JetNodeType("REFERENCE_EXPRESSION", JetReferenceExpression.class); - JetNodeType BINARY_EXPRESSION = new JetNodeType("BINARY_EXPRESSION"); - JetNodeType PREFIX_EXPRESSION = new JetNodeType("PREFIX_EXPRESSION", JetPrefixExpression.class); - JetNodeType POSTFIX_EXPRESSION = new JetNodeType("POSTFIX_EXPRESSION", JetPostfixExpression.class); - JetNodeType CALL_EXPRESSION = new JetNodeType("CALL_EXPRESSION"); - JetNodeType ARRAY_ACCESS_EXPRESSION = new JetNodeType("ARRAY_ACCESS_EXPRESSION"); - JetNodeType INDICES = new JetNodeType("INDICES"); - JetNodeType DOT_QIALIFIED_EXPRESSION = new JetNodeType("DOT_QIALIFIED_EXPRESSION"); - JetNodeType HASH_QIALIFIED_EXPRESSION = new JetNodeType("HASH_QIALIFIED_EXPRESSION"); - JetNodeType SAFE_ACCESS_EXPRESSION = new JetNodeType("SAFE_ACCESS_EXPRESSION"); - JetNodeType MATCH_ENTRY = new JetNodeType("MATCH_ENTRY"); - JetNodeType PATTERN = new JetNodeType("PATTERN"); - JetNodeType TUPLE_PATTERN = new JetNodeType("TUPLE_PATTERN"); - JetNodeType OBJECT_LITERAL = new JetNodeType("OBJECT_LITERAL"); - JetNodeType ROOT_NAMESPACE = new JetNodeType("ROOT_NAMESPACE"); - JetNodeType FIELD_REFERENCE = new JetNodeType("FIELD_REFERENCE"); - JetNodeType SELF_TYPE = new JetNodeType("SELF_TYPE"); - JetNodeType ANONYMOUS_INITIALIZER = new JetNodeType("ANONYMOUS_INITIALIZER"); + JetNodeType TUPLE = new JetNodeType("TUPLE", JetTupleExpression.class); + JetNodeType TYPEOF = new JetNodeType("TYPEOF", JetTypeofExpression.class); + JetNodeType NEW = new JetNodeType("NEW", JetNewExpression.class); + JetNodeType RETURN = new JetNodeType("RETURN", JetReturnExpression.class); + JetNodeType THROW = new JetNodeType("THROW", JetThrowExpression.class); + JetNodeType CONTINUE = new JetNodeType("CONTINUE", JetContinueExpression.class); + JetNodeType BREAK = new JetNodeType("BREAK", JetBreakExpression.class); + JetNodeType IF = new JetNodeType("IF", JetIfExpression.class); + JetNodeType CONDITION = new JetNodeType("CONDITION"); + JetNodeType THEN = new JetNodeType("THEN"); + JetNodeType ELSE = new JetNodeType("ELSE"); + JetNodeType TRY = new JetNodeType("TRY", JetTryExpression.class); + JetNodeType CATCH = new JetNodeType("CATCH"); + JetNodeType FINALLY = new JetNodeType("FINALLY"); + JetNodeType FOR = new JetNodeType("FOR", JetForExpression.class); + JetNodeType WHILE = new JetNodeType("WHILE", JetWhileExpression.class); + JetNodeType DO_WHILE = new JetNodeType("DO_WHILE", JetDoWhileExpression.class); + JetNodeType LOOP_PARAMETER = new JetNodeType("LOOP_PARAMETER"); + JetNodeType LOOP_RANGE = new JetNodeType("LOOP_RANGE"); + JetNodeType BODY = new JetNodeType("BODY"); + JetNodeType RECEIVER_TYPE = new JetNodeType("RECEIVER_TYPE"); + JetNodeType FUNCTION_LITERAL = new JetNodeType("FUNCTION_LITERAL", JetFunctionLiteralExpression.class); + JetNodeType ANNOTATED_EXPRESSION = new JetNodeType("ANNOTATED_EXPRESSION", JetAnnotatedExpression.class); + JetNodeType REFERENCE_EXPRESSION = new JetNodeType("REFERENCE_EXPRESSION", JetReferenceExpression.class); + JetNodeType BINARY_EXPRESSION = new JetNodeType("BINARY_EXPRESSION", JetBinaryExpression.class); + JetNodeType PREFIX_EXPRESSION = new JetNodeType("PREFIX_EXPRESSION", JetPrefixExpression.class); + JetNodeType POSTFIX_EXPRESSION = new JetNodeType("POSTFIX_EXPRESSION", JetPostfixExpression.class); + JetNodeType CALL_EXPRESSION = new JetNodeType("CALL_EXPRESSION", JetCallExpression.class); + JetNodeType ARRAY_ACCESS_EXPRESSION = new JetNodeType("ARRAY_ACCESS_EXPRESSION", JetArrayAccessExpression.class); + JetNodeType INDICES = new JetNodeType("INDICES"); + JetNodeType DOT_QIALIFIED_EXPRESSION = new JetNodeType("DOT_QIALIFIED_EXPRESSION", JetDotQualifiedExpression.class); + JetNodeType HASH_QIALIFIED_EXPRESSION = new JetNodeType("HASH_QIALIFIED_EXPRESSION", JetHashQualifiedExpression.class); + JetNodeType SAFE_ACCESS_EXPRESSION = new JetNodeType("SAFE_ACCESS_EXPRESSION", JetSafeQualifiedExpression.class); + JetNodeType MATCH_ENTRY = new JetNodeType("MATCH_ENTRY"); + JetNodeType PATTERN = new JetNodeType("PATTERN"); + JetNodeType TUPLE_PATTERN = new JetNodeType("TUPLE_PATTERN"); + JetNodeType OBJECT_LITERAL = new JetNodeType("OBJECT_LITERAL", JetObjectLiteralExpression.class); + JetNodeType ROOT_NAMESPACE = new JetNodeType("ROOT_NAMESPACE", JetRootNamespaceExpression.class); IElementType NAMESPACE_NAME = new JetNodeType("NAMESPACE_NAME"); diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index 0ea08135a51..bbaacef7776 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -325,7 +325,7 @@ public class JetExpressionParsing extends AbstractJetParsing { parseLocalDeclaration(); } else if (at(FIELD_IDENTIFIER)) { - parseOneTokenExpression(FIELD_REFERENCE); + parseOneTokenExpression(REFERENCE_EXPRESSION); } else if (at(IDENTIFIER)) { if (JetParsing.MODIFIER_KEYWORD_MAP.containsKey(myBuilder.getTokenText())) { diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetAnnotatedExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetAnnotatedExpression.java new file mode 100644 index 00000000000..db61386ef5d --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetAnnotatedExpression.java @@ -0,0 +1,22 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetAnnotatedExpression extends JetExpression { + public JetAnnotatedExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitAnnotatedExpression(this); + } + + public JetExpression getBaseExpression() { + return findChildByClass(JetExpression.class); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java new file mode 100644 index 00000000000..3e567302df7 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetArrayAccessExpression extends JetExpression { + public JetArrayAccessExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitArrayAccessExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetBinaryExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetBinaryExpression.java new file mode 100644 index 00000000000..b9cc8cc7266 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetBinaryExpression.java @@ -0,0 +1,71 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiErrorElement; +import com.intellij.psi.tree.IElementType; +import com.intellij.psi.tree.TokenSet; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lexer.JetToken; +import org.jetbrains.jet.lexer.JetTokens; + +import static org.jetbrains.jet.lexer.JetTokens.*; + +/** + * @author max + */ +public class JetBinaryExpression extends JetExpression { + public JetBinaryExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitBinaryExpression(this); + } + + @NotNull + public JetExpression getLeft() { + JetExpression left = findChildByClass(JetExpression.class); + assert left != null; + return left; + } + + @Nullable + public JetExpression getRight() { + ASTNode node = getOperationTokenNode(); + while (node != null) { + PsiElement psi = node.getPsi(); + if (psi instanceof JetExpression) { + return (JetExpression) psi; + } + node = node.getTreeNext(); + } + + return null; + } + + public ASTNode getOperationTokenNode() { + PsiElement child = getLeft().getNextSibling(); + + while (child != null) { + IElementType tt = child.getNode().getElementType(); + + if (JetTokens.WHITE_SPACE_OR_COMMENT_BIT_SET.contains(tt) || child instanceof PsiErrorElement) { + child = child.getNextSibling(); + } + else { + return child.getNode(); + } + } + + return null; + } + + @Nullable + public JetToken getOperationSign() { + ASTNode node = getOperationTokenNode(); + return node != null ? (JetToken) node.getElementType() : null; + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java new file mode 100644 index 00000000000..0bbefd9a91b --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetBreakExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetBreakExpression extends JetExpression { + public JetBreakExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitBreakExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java new file mode 100644 index 00000000000..7bc9b8eaa6b --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetCallExpression extends JetExpression { + public JetCallExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitCallExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java new file mode 100644 index 00000000000..b9282c946bf --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetContinueExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetContinueExpression extends JetExpression { + public JetContinueExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitContinueExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetDoWhileExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetDoWhileExpression.java new file mode 100644 index 00000000000..91d142f9134 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetDoWhileExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetDoWhileExpression extends JetExpression { + public JetDoWhileExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitDoWhileExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetDotQualifiedExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetDotQualifiedExpression.java new file mode 100644 index 00000000000..bc84003bb95 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetDotQualifiedExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetDotQualifiedExpression extends JetQualifiedExpression { + public JetDotQualifiedExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitDotQualifiedExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetForExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetForExpression.java new file mode 100644 index 00000000000..e3458e03545 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetForExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetForExpression extends JetExpression { + public JetForExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitForExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetFunctionLiteralExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetFunctionLiteralExpression.java new file mode 100644 index 00000000000..e459a6ac365 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetFunctionLiteralExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetFunctionLiteralExpression extends JetExpression { + public JetFunctionLiteralExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitFunctionLiteralExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetHashQualifiedExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetHashQualifiedExpression.java new file mode 100644 index 00000000000..8d57cb07fbf --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetHashQualifiedExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetHashQualifiedExpression extends JetQualifiedExpression { + public JetHashQualifiedExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitHashQualifiedExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetIfExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetIfExpression.java new file mode 100644 index 00000000000..4ad72770491 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetIfExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetIfExpression extends JetExpression { + public JetIfExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitIfExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java new file mode 100644 index 00000000000..8bbeee203bd --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetNewExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetNewExpression extends JetExpression { + public JetNewExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitNewExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetObjectLiteralExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetObjectLiteralExpression.java new file mode 100644 index 00000000000..8721f89599a --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetObjectLiteralExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetObjectLiteralExpression extends JetExpression { + public JetObjectLiteralExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitObjectLiteralExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetQualifiedExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetQualifiedExpression.java new file mode 100644 index 00000000000..f0655cab543 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetQualifiedExpression.java @@ -0,0 +1,13 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public abstract class JetQualifiedExpression extends JetExpression { + public JetQualifiedExpression(@NotNull ASTNode node) { + super(node); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java new file mode 100644 index 00000000000..07f7930cdc7 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetReturnExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetReturnExpression extends JetExpression { + public JetReturnExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitReturnExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetRootNamespaceExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetRootNamespaceExpression.java new file mode 100644 index 00000000000..7a6ad148bc9 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetRootNamespaceExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetRootNamespaceExpression extends JetExpression { + public JetRootNamespaceExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitRootNamespaceExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetSafeQualifiedExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetSafeQualifiedExpression.java new file mode 100644 index 00000000000..a83d09e5e36 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetSafeQualifiedExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetSafeQualifiedExpression extends JetQualifiedExpression { + public JetSafeQualifiedExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitSafeQualifiedExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetThrowExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetThrowExpression.java new file mode 100644 index 00000000000..137fbb7f900 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetThrowExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetThrowExpression extends JetExpression { + public JetThrowExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitThrowExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetTryExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetTryExpression.java new file mode 100644 index 00000000000..407c1015bc4 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetTryExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetTryExpression extends JetExpression { + public JetTryExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitTryExpression(this); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java index b4a9252ba4b..cacd1e6d941 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java @@ -157,4 +157,88 @@ public class JetVisitor extends PsiElementVisitor { public void visitTypeofExpression(JetTypeofExpression expression) { visitExpression(expression); } + + public void visitBinaryExpression(JetBinaryExpression expression) { + visitExpression(expression); + } + + public void visitNewExpression(JetNewExpression expression) { + visitExpression(expression); + } + + public void visitReturnExpression(JetReturnExpression expression) { + visitExpression(expression); + } + + public void visitThrowExpression(JetThrowExpression expression) { + visitExpression(expression); + } + + public void visitBreakExpression(JetBreakExpression expression) { + visitExpression(expression); + } + + public void visitContinueExpression(JetContinueExpression expression) { + visitExpression(expression); + } + + public void visitIfExpression(JetIfExpression expression) { + visitExpression(expression); + } + + public void visitTryExpression(JetTryExpression expression) { + visitExpression(expression); + } + + public void visitForExpression(JetForExpression expression) { + visitExpression(expression); + } + + public void visitWhileExpression(JetWhileExpression expression) { + visitExpression(expression); + } + + public void visitDoWhileExpression(JetDoWhileExpression expression) { + visitExpression(expression); + } + + public void visitFunctionLiteralExpression(JetFunctionLiteralExpression expression) { + visitExpression(expression); + } + + public void visitAnnotatedExpression(JetAnnotatedExpression expression) { + visitExpression(expression); + } + + public void visitCallExpression(JetCallExpression expression) { + visitExpression(expression); + } + + public void visitArrayAccessExpression(JetArrayAccessExpression expression) { + visitExpression(expression); + } + + public void visitQualifiedExpression(JetQualifiedExpression expression) { + visitExpression(expression); + } + + public void visitHashQualifiedExpression(JetHashQualifiedExpression expression) { + visitQualifiedExpression(expression); + } + + public void visitDotQualifiedExpression(JetDotQualifiedExpression expression) { + visitQualifiedExpression(expression); + } + + public void visitSafeQualifiedExpression(JetSafeQualifiedExpression expression) { + visitQualifiedExpression(expression); + } + + public void visitObjectLiteralExpression(JetObjectLiteralExpression expression) { + visitExpression(expression); + } + + public void visitRootNamespaceExpression(JetRootNamespaceExpression expression) { + visitExpression(expression); + } } diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetWhileExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetWhileExpression.java new file mode 100644 index 00000000000..561fc18acd8 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetWhileExpression.java @@ -0,0 +1,18 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; + +/** + * @author max + */ +public class JetWhileExpression extends JetExpression { + public JetWhileExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(JetVisitor visitor) { + visitor.visitWhileExpression(this); + } +} diff --git a/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt b/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt index fb4c74a64f9..78b1dcfb8db 100644 --- a/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt +++ b/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt @@ -1018,7 +1018,7 @@ JetFile: BinaryHeap.jet PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') BINARY_EXPRESSION - FIELD_REFERENCE + REFERENCE_EXPRESSION PsiElement(FIELD_IDENTIFIER)('$value') PsiWhiteSpace(' ') PsiElement(EQ)('=')