From a2f1ddbc731f21bba39d34a13f8bf4c03e967a0c Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Mon, 10 Jan 2011 02:08:26 +0300 Subject: [PATCH] Class initializer --- idea/src/org/jetbrains/jet/JetNodeTypes.java | 2 +- .../jet/lang/psi/JetClassInitializer.java | 24 +++++++++++++++++++ .../jetbrains/jet/lang/psi/JetVisitor.java | 4 ++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetClassInitializer.java diff --git a/idea/src/org/jetbrains/jet/JetNodeTypes.java b/idea/src/org/jetbrains/jet/JetNodeTypes.java index d9931788a9f..b046a3dfb64 100644 --- a/idea/src/org/jetbrains/jet/JetNodeTypes.java +++ b/idea/src/org/jetbrains/jet/JetNodeTypes.java @@ -23,7 +23,7 @@ public interface JetNodeTypes { 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 ANONYMOUS_INITIALIZER = new JetNodeType("ANONYMOUS_INITIALIZER", JetClassInitializer.class); JetNodeType TYPE_PARAMETER_LIST = new JetNodeType("TYPE_PARAMETER_LIST", JetTypeParameterList.class); JetNodeType TYPE_PARAMETER = new JetNodeType("TYPE_PARAMETER", JetTypeParameter.class); diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetClassInitializer.java b/idea/src/org/jetbrains/jet/lang/psi/JetClassInitializer.java new file mode 100644 index 00000000000..41ba77f8172 --- /dev/null +++ b/idea/src/org/jetbrains/jet/lang/psi/JetClassInitializer.java @@ -0,0 +1,24 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * @author max + */ +public class JetClassInitializer extends JetDeclaration { + public JetClassInitializer(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(@NotNull JetVisitor visitor) { + visitor.visitAnonymousInitializer(this); + } + + @Nullable + public JetExpression getBody() { + return findChildByClass(JetExpression.class); + } +} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java index a260c1b2b41..797e37cd23b 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java @@ -277,4 +277,8 @@ public class JetVisitor extends PsiElementVisitor { public void visitInitializerList(JetInitializerList list) { visitJetElement(list); } + + public void visitAnonymousInitializer(JetClassInitializer initializer) { + visitDeclaration(initializer); + } }