提交 efd417e0 编写于 作者: A Andrey Breslav

Parsing object declarations

上级 7ad60022
...@@ -32,6 +32,7 @@ class Example(a : Foo, i : Int) : Bar(i), Some { ...@@ -32,6 +32,7 @@ class Example(a : Foo, i : Int) : Bar(i), Some {
memberDeclaration memberDeclaration
: classObject : classObject
: object
: constructor : constructor
: function : function
: property : property
...@@ -99,4 +100,7 @@ setter ...@@ -99,4 +100,7 @@ setter
parameter parameter
: SimpleName ":" type : SimpleName ":" type
; ;
\ No newline at end of file
object
: "object" SimpleName ":" ":" delegationSpecifier{","}? classBody? // Class body can be optional: this is a declaration
\ No newline at end of file
...@@ -124,6 +124,7 @@ declaration ...@@ -124,6 +124,7 @@ declaration
: extension : extension
: class : class
: typedef : typedef
: object
; ;
statement statement
......
...@@ -21,6 +21,7 @@ import ...@@ -21,6 +21,7 @@ import
toplevelObject toplevelObject
: namespace : namespace
: class : class
: object
: extension : extension
: function : function
: property : property
......
...@@ -16,6 +16,7 @@ public interface JetNodeTypes { ...@@ -16,6 +16,7 @@ public interface JetNodeTypes {
JetNodeType FUN = new JetNodeType("FUN", JetFunction.class); JetNodeType FUN = new JetNodeType("FUN", JetFunction.class);
JetNodeType EXTENSION = new JetNodeType("EXTENSION", JetExtension.class); JetNodeType EXTENSION = new JetNodeType("EXTENSION", JetExtension.class);
JetNodeType TYPEDEF = new JetNodeType("TYPEDEF", JetTypedef.class); JetNodeType TYPEDEF = new JetNodeType("TYPEDEF", JetTypedef.class);
JetNodeType OBJECT_DECLARATION = new JetNodeType("OBJECT_DECLARATION", JetObjectDeclaration.class);
JetNodeType CLASS_OBJECT = new JetNodeType("CLASS_OBJECT", JetClassObject.class); JetNodeType CLASS_OBJECT = new JetNodeType("CLASS_OBJECT", JetClassObject.class);
JetNodeType CONSTRUCTOR = new JetNodeType("CONSTRUCTOR", JetConstructor.class); JetNodeType CONSTRUCTOR = new JetNodeType("CONSTRUCTOR", JetConstructor.class);
......
...@@ -597,7 +597,7 @@ public class JetControlFlowProcessor { ...@@ -597,7 +597,7 @@ public class JetControlFlowProcessor {
@Override @Override
public void visitObjectLiteralExpression(JetObjectLiteralExpression expression) { public void visitObjectLiteralExpression(JetObjectLiteralExpression expression) {
List<JetDelegationSpecifier> delegationSpecifiers = expression.getDelegationSpecifiers(); List<JetDelegationSpecifier> delegationSpecifiers = expression.getObjectDeclaration().getDelegationSpecifiers();
for (JetDelegationSpecifier delegationSpecifier : delegationSpecifiers) { for (JetDelegationSpecifier delegationSpecifier : delegationSpecifiers) {
if (delegationSpecifier instanceof JetDelegatorByExpressionSpecifier) { if (delegationSpecifier instanceof JetDelegatorByExpressionSpecifier) {
JetDelegatorByExpressionSpecifier specifier = (JetDelegatorByExpressionSpecifier) delegationSpecifier; JetDelegatorByExpressionSpecifier specifier = (JetDelegatorByExpressionSpecifier) delegationSpecifier;
......
...@@ -1140,6 +1140,7 @@ public class JetExpressionParsing extends AbstractJetParsing { ...@@ -1140,6 +1140,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
* : extension * : extension
* : class * : class
* : typedef * : typedef
* : object
* ; * ;
*/ */
private JetNodeType parseLocalDeclarationRest(boolean isEnum) { private JetNodeType parseLocalDeclarationRest(boolean isEnum) {
...@@ -1160,6 +1161,10 @@ public class JetExpressionParsing extends AbstractJetParsing { ...@@ -1160,6 +1161,10 @@ public class JetExpressionParsing extends AbstractJetParsing {
else if (keywordToken == TYPE_KEYWORD) { else if (keywordToken == TYPE_KEYWORD) {
declType = myJetParsing.parseTypeDef(); declType = myJetParsing.parseTypeDef();
} }
else if (keywordToken == OBJECT_KEYWORD) {
myJetParsing.parseObject(true);
declType = OBJECT_DECLARATION;
}
return declType; return declType;
} }
...@@ -1594,29 +1599,11 @@ public class JetExpressionParsing extends AbstractJetParsing { ...@@ -1594,29 +1599,11 @@ public class JetExpressionParsing extends AbstractJetParsing {
argument.done(VALUE_ARGUMENT); argument.done(VALUE_ARGUMENT);
} }
/*
* objectLiteral
* : "object" ":" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a)
* ;
*/
public void parseObjectLiteral() { public void parseObjectLiteral() {
assert _at(OBJECT_KEYWORD);
PsiBuilder.Marker literal = mark(); PsiBuilder.Marker literal = mark();
PsiBuilder.Marker declaration = mark();
advance(); // OBJECT_KEYWORD myJetParsing.parseObject(false);
declaration.done(OBJECT_DECLARATION);
if (at(LBRACE)) {
myJetParsing.parseClassBody();
}
else {
expect(COLON, "Expecting ':'", TokenSet.create(IDENTIFIER, NAMESPACE_KEYWORD));
myJetParsing.parseDelegationSpecifierList();
if (at(LBRACE)) {
myJetParsing.parseClassBody();
}
}
literal.done(OBJECT_LITERAL); literal.done(OBJECT_LITERAL);
} }
......
...@@ -213,6 +213,7 @@ public class JetParsing extends AbstractJetParsing { ...@@ -213,6 +213,7 @@ public class JetParsing extends AbstractJetParsing {
* : function * : function
* : property * : property
* : typedef * : typedef
* : object
* ; * ;
*/ */
private void parseTopLevelObject() { private void parseTopLevelObject() {
...@@ -241,6 +242,10 @@ public class JetParsing extends AbstractJetParsing { ...@@ -241,6 +242,10 @@ public class JetParsing extends AbstractJetParsing {
else if (keywordToken == TYPE_KEYWORD) { else if (keywordToken == TYPE_KEYWORD) {
declType = parseTypeDef(); declType = parseTypeDef();
} }
else if (keywordToken == OBJECT_KEYWORD) {
parseObject(true);
declType = OBJECT_DECLARATION;
}
if (declType == null) { if (declType == null) {
errorAndAdvance("Expecting namespace or top level declaration"); errorAndAdvance("Expecting namespace or top level declaration");
...@@ -504,11 +509,10 @@ public class JetParsing extends AbstractJetParsing { ...@@ -504,11 +509,10 @@ public class JetParsing extends AbstractJetParsing {
* ; * ;
*/ */
/*package*/ void parseClassBody() { /*package*/ void parseClassBody() {
assert _at(LBRACE);
PsiBuilder.Marker body = mark(); PsiBuilder.Marker body = mark();
myBuilder.enableNewlines(); myBuilder.enableNewlines();
advance(); // LBRACE expect(LBRACE, "Expecting a class body", TokenSet.create(LBRACE));
while (!eof()) { while (!eof()) {
if (at(RBRACE)) { if (at(RBRACE)) {
...@@ -536,6 +540,7 @@ public class JetParsing extends AbstractJetParsing { ...@@ -536,6 +540,7 @@ public class JetParsing extends AbstractJetParsing {
* : extension * : extension
* : typedef * : typedef
* : anonymousInitializer * : anonymousInitializer
* : object
* ; * ;
*/ */
private void parseMemberDeclaration() { private void parseMemberDeclaration() {
...@@ -580,6 +585,10 @@ public class JetParsing extends AbstractJetParsing { ...@@ -580,6 +585,10 @@ public class JetParsing extends AbstractJetParsing {
} }
else if (keywordToken == THIS_KEYWORD) { else if (keywordToken == THIS_KEYWORD) {
declType = parseConstructor(); declType = parseConstructor();
}
else if (keywordToken == OBJECT_KEYWORD) {
parseObject(true);
declType = OBJECT_DECLARATION;
} else if (keywordToken == LBRACE) { } else if (keywordToken == LBRACE) {
parseBlock(); parseBlock();
declType = ANONYMOUS_INITIALIZER; declType = ANONYMOUS_INITIALIZER;
...@@ -587,6 +596,46 @@ public class JetParsing extends AbstractJetParsing { ...@@ -587,6 +596,46 @@ public class JetParsing extends AbstractJetParsing {
return declType; return declType;
} }
/*
* object
* : "object" SimpleName? ":" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a)
* ;
*/
public void parseObject(boolean declaration) {
assert _at(OBJECT_KEYWORD);
advance(); // OBJECT_KEYWORD
if (declaration) {
expect(IDENTIFIER, "Expecting object name", TokenSet.create(LBRACE));
}
else {
if (at(IDENTIFIER)) {
error("An object expression cannot bind a name");
}
}
if (declaration) { // Body is optional
if (at(COLON)) {
advance(); // COLON
parseDelegationSpecifierList();
}
if (at(LBRACE)) {
parseClassBody();
}
}
else {
if (at(LBRACE)) {
parseClassBody();
}
else {
expect(COLON, "Expecting ':'", TokenSet.create(IDENTIFIER, NAMESPACE_KEYWORD));
parseDelegationSpecifierList();
parseClassBody();
}
}
}
/* /*
* constructor * constructor
* : modifiers "this" functionParameters (":" initializer{","}) block? * : modifiers "this" functionParameters (":" initializer{","}) block?
......
package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetNodeTypes;
import java.util.Collections;
import java.util.List;
/**
* @author abreslav
*/
public class JetObjectDeclaration extends JetNamedDeclaration implements JetClassOrObject {
public JetObjectDeclaration(@NotNull ASTNode node) {
super(node);
}
@Override
@Nullable
public JetDelegationSpecifierList getDelegationSpecifierList() {
return (JetDelegationSpecifierList) findChildByType(JetNodeTypes.DELEGATION_SPECIFIER_LIST);
}
@Override
@NotNull
public List<JetDelegationSpecifier> getDelegationSpecifiers() {
JetDelegationSpecifierList list = getDelegationSpecifierList();
return list != null ? list.getDelegationSpecifiers() : Collections.<JetDelegationSpecifier>emptyList();
}
@Override
@NotNull
public List<JetDeclaration> getDeclarations() {
JetClassBody body = (JetClassBody) findChildByType(JetNodeTypes.CLASS_BODY);
if (body == null) return Collections.emptyList();
return body.getDeclarations();
}
}
...@@ -2,16 +2,12 @@ package org.jetbrains.jet.lang.psi; ...@@ -2,16 +2,12 @@ package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode; import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetNodeTypes; import org.jetbrains.jet.JetNodeTypes;
import java.util.Collections;
import java.util.List;
/** /**
* @author max * @author max
*/ */
public class JetObjectLiteralExpression extends JetExpression implements JetClassOrObject { public class JetObjectLiteralExpression extends JetExpression {
public JetObjectLiteralExpression(@NotNull ASTNode node) { public JetObjectLiteralExpression(@NotNull ASTNode node) {
super(node); super(node);
} }
...@@ -21,25 +17,8 @@ public class JetObjectLiteralExpression extends JetExpression implements JetClas ...@@ -21,25 +17,8 @@ public class JetObjectLiteralExpression extends JetExpression implements JetClas
visitor.visitObjectLiteralExpression(this); visitor.visitObjectLiteralExpression(this);
} }
@Override
@Nullable
public JetDelegationSpecifierList getDelegationSpecifierList() {
return (JetDelegationSpecifierList) findChildByType(JetNodeTypes.DELEGATION_SPECIFIER_LIST);
}
@Override
@NotNull
public List<JetDelegationSpecifier> getDelegationSpecifiers() {
JetDelegationSpecifierList list = getDelegationSpecifierList();
return list != null ? list.getDelegationSpecifiers() : Collections.<JetDelegationSpecifier>emptyList();
}
@Override
@NotNull @NotNull
public List<JetDeclaration> getDeclarations() { public JetObjectDeclaration getObjectDeclaration() {
JetClassBody body = (JetClassBody) findChildByType(JetNodeTypes.CLASS_BODY); return (JetObjectDeclaration) findChildByType(JetNodeTypes.OBJECT_DECLARATION);
if (body == null) return Collections.emptyList();
return body.getDeclarations();
} }
} }
...@@ -293,32 +293,33 @@ JetFile: ByCaluses.jet ...@@ -293,32 +293,33 @@ JetFile: ByCaluses.jet
PsiElement(by)('by') PsiElement(by)('by')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n ') PsiElement(LBRACE)('{')
FUN PsiWhiteSpace('\n ')
PsiElement(fun)('fun') FUN
PsiWhiteSpace(' ') PsiElement(fun)('fun')
PsiElement(IDENTIFIER)('f')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
FUNCTION_LITERAL PsiElement(IDENTIFIER)('f')
PsiElement(LBRACE)('{') VALUE_PARAMETER_LIST
BODY PsiElement(LPAR)('(')
<empty list> PsiElement(RPAR)(')')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n') PsiElement(EQ)('=')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
BODY
<empty list>
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
......
...@@ -172,12 +172,13 @@ JetFile: SimpleClassMembers.jet ...@@ -172,12 +172,13 @@ JetFile: SimpleClassMembers.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n\n ') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
CLASS_OBJECT CLASS_OBJECT
MODIFIER_LIST MODIFIER_LIST
...@@ -186,12 +187,13 @@ JetFile: SimpleClassMembers.jet ...@@ -186,12 +187,13 @@ JetFile: SimpleClassMembers.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n\n ') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
CLASS_OBJECT CLASS_OBJECT
MODIFIER_LIST MODIFIER_LIST
...@@ -200,21 +202,22 @@ JetFile: SimpleClassMembers.jet ...@@ -200,21 +202,22 @@ JetFile: SimpleClassMembers.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CLASS DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CLASS
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('Fooo') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Fooo')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n\n ') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
CLASS_OBJECT CLASS_OBJECT
MODIFIER_LIST MODIFIER_LIST
...@@ -223,33 +226,34 @@ JetFile: SimpleClassMembers.jet ...@@ -223,33 +226,34 @@ JetFile: SimpleClassMembers.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
DELEGATION_SPECIFIER_LIST
DELEGATOR_SUPER_CLASS
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Fooo')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DELEGATOR_BY PsiElement(COLON)(':')
TYPE_REFERENCE PsiWhiteSpace(' ')
USER_TYPE DELEGATION_SPECIFIER_LIST
REFERENCE_EXPRESSION DELEGATOR_SUPER_CLASS
PsiElement(IDENTIFIER)('Bar') TYPE_REFERENCE
PsiWhiteSpace(' ') USER_TYPE
PsiElement(by)('by') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Fooo')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION DELEGATOR_BY
PsiElement(IDENTIFIER)('foo') TYPE_REFERENCE
PsiWhiteSpace(' ') USER_TYPE
CLASS_BODY REFERENCE_EXPRESSION
PsiElement(LBRACE)('{') PsiElement(IDENTIFIER)('Bar')
PsiWhiteSpace('\n\n ') PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') PsiElement(by)('by')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
CLASS_BODY
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
CLASS_OBJECT CLASS_OBJECT
MODIFIER_LIST MODIFIER_LIST
...@@ -258,394 +262,406 @@ JetFile: SimpleClassMembers.jet ...@@ -258,394 +262,406 @@ JetFile: SimpleClassMembers.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST
DELEGATOR_SUPER_CLASS
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Fooo')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DELEGATOR_BY DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CLASS
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('Bar') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Fooo')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(by)('by') DELEGATOR_BY
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Bar')
PsiWhiteSpace(' ')
PsiElement(by)('by')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Goo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
CLASS_BODY
PsiErrorElement:Expecting a class body
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
CLASS
PsiElement(class)('class')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Bar')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
CLASS_BODY
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiElement(COMMA)(',') VALUE_PARAMETER_LIST
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
DELEGATOR_SUPER_CALL PsiElement(RPAR)(')')
TYPE_REFERENCE PsiWhiteSpace('\n\n ')
USER_TYPE PROPERTY
REFERENCE_EXPRESSION PsiElement(val)('val')
PsiElement(IDENTIFIER)('Goo') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('x')
PsiElement(LPAR)('(') PsiWhiteSpace('\n\n ')
PsiElement(RPAR)(')') PROPERTY
PsiWhiteSpace('\n ') PsiElement(var)('var')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') PsiElement(IDENTIFIER)('f')
CLASS PsiWhiteSpace('\n\n ')
PsiElement(class)('class') TYPEDEF
PsiWhiteSpace(' ') PsiElement(type)('type')
PsiElement(IDENTIFIER)('Bar') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo')
TYPE_PARAMETER_LIST PsiWhiteSpace(' ')
<empty list> TYPE_PARAMETER_LIST
CLASS_BODY <empty list>
PsiElement(LBRACE)('{') PsiElement(EQ)('=')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x')
PsiWhiteSpace('\n\n ')
PROPERTY
PsiElement(var)('var')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace('\n\n ')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace('\n\n ')
CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
INITIALIZER_LIST
THIS_CALL
THIS_CONSTRUCTOR_REFERENCE
PsiElement(this)('this')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('bar')
PsiElement(GT)('>') PsiWhiteSpace('\n\n ')
VALUE_ARGUMENT_LIST CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
INITIALIZER_LIST
THIS_CALL
THIS_CONSTRUCTOR_REFERENCE
PsiElement(this)('this')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x')
PsiWhiteSpace('\n\n ')
PROPERTY
PsiElement(var)('var')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace('\n\n ')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace('\n\n ')
CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') PsiElement(COLON)(':')
PsiWhiteSpace('\n\n ') PsiWhiteSpace(' ')
FUN INITIALIZER_LIST
PsiElement(fun)('fun') THIS_CALL
PsiWhiteSpace(' ') THIS_CONSTRUCTOR_REFERENCE
PsiElement(IDENTIFIER)('foo') PsiElement(this)('this')
VALUE_PARAMETER_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') VALUE_ARGUMENT
PsiWhiteSpace('\n\n ') REFERENCE_EXPRESSION
PROPERTY PsiElement(IDENTIFIER)('a')
PsiElement(val)('val') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x') VALUE_ARGUMENT
PsiWhiteSpace('\n\n ') REFERENCE_EXPRESSION
PROPERTY PsiElement(IDENTIFIER)('b')
PsiElement(var)('var') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f') VALUE_ARGUMENT
PsiWhiteSpace('\n\n ') REFERENCE_EXPRESSION
TYPEDEF PsiElement(IDENTIFIER)('c')
PsiElement(type)('type') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiElement(COMMA)(',')
PsiElement(IDENTIFIER)('foo') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') DELEGATOR_SUPER_CALL
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace('\n\n ')
CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
INITIALIZER_LIST
THIS_CALL
THIS_CONSTRUCTOR_REFERENCE
PsiElement(this)('this')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('Foo')
PsiElement(GT)('>') TYPE_ARGUMENT_LIST
VALUE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LPAR)('(') TYPE_PROJECTION
VALUE_ARGUMENT TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('bar') REFERENCE_EXPRESSION
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('T')
PsiWhiteSpace('\n\n ') PsiElement(GT)('>')
CONSTRUCTOR VALUE_ARGUMENT_LIST
PsiElement(this)('this') PsiElement(LPAR)('(')
VALUE_PARAMETER_LIST VALUE_ARGUMENT
PsiElement(LPAR)('(') REFERENCE_EXPRESSION
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
PsiElement(COLON)(':') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') CONSTRUCTOR
INITIALIZER_LIST PsiElement(this)('this')
THIS_CALL VALUE_PARAMETER_LIST
THIS_CONSTRUCTOR_REFERENCE PsiElement(LPAR)('(')
PsiElement(this)('this') PsiElement(RPAR)(')')
VALUE_ARGUMENT_LIST PsiWhiteSpace(' ')
PsiElement(LPAR)('(') PsiElement(COLON)(':')
VALUE_ARGUMENT PsiWhiteSpace(' ')
REFERENCE_EXPRESSION INITIALIZER_LIST
PsiElement(IDENTIFIER)('a') THIS_CALL
PsiElement(COMMA)(',') THIS_CONSTRUCTOR_REFERENCE
PsiWhiteSpace(' ') PsiElement(this)('this')
VALUE_ARGUMENT VALUE_ARGUMENT_LIST
REFERENCE_EXPRESSION PsiElement(LPAR)('(')
PsiElement(IDENTIFIER)('b') VALUE_ARGUMENT
PsiElement(COMMA)(',') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('a')
VALUE_ARGUMENT PsiElement(COMMA)(',')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('c') VALUE_ARGUMENT
PsiElement(RPAR)(')') REFERENCE_EXPRESSION
PsiElement(COMMA)(',') PsiElement(IDENTIFIER)('b')
PsiWhiteSpace(' ') PsiElement(COMMA)(',')
DELEGATOR_SUPER_CALL PsiWhiteSpace(' ')
TYPE_REFERENCE VALUE_ARGUMENT
USER_TYPE REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('c')
PsiElement(IDENTIFIER)('Foo') PsiElement(RPAR)(')')
TYPE_ARGUMENT_LIST PsiElement(COMMA)(',')
PsiElement(LT)('<') PsiWhiteSpace(' ')
TYPE_PROJECTION DELEGATOR_SUPER_CALL
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('Foo')
PsiElement(GT)('>') TYPE_ARGUMENT_LIST
VALUE_ARGUMENT_LIST PsiElement(LT)('<')
PsiElement(LPAR)('(') TYPE_PROJECTION
VALUE_ARGUMENT TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('bar') REFERENCE_EXPRESSION
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('T')
PsiWhiteSpace(' ') PsiElement(GT)('>')
BLOCK VALUE_ARGUMENT_LIST
PsiElement(LBRACE)('{') PsiElement(LPAR)('(')
PsiWhiteSpace('\n\n ') VALUE_ARGUMENT
PsiElement(RBRACE)('}') REFERENCE_EXPRESSION
PsiWhiteSpace('\n\n ') PsiElement(IDENTIFIER)('bar')
CLASS_OBJECT PsiElement(RPAR)(')')
PsiElement(class)('class') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') BLOCK
OBJECT_LITERAL PsiElement(LBRACE)('{')
PsiElement(object)('object') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') PsiElement(RBRACE)('}')
CLASS_BODY PsiWhiteSpace('\n\n ')
PsiElement(LBRACE)('{') CLASS_OBJECT
PsiWhiteSpace('\n\n ') PsiElement(class)('class')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') OBJECT_LITERAL
CLASS_OBJECT OBJECT_DECLARATION
MODIFIER_LIST PsiElement(object)('object')
PsiElement(private)('private') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') CLASS_BODY
PsiElement(class)('class') PsiElement(LBRACE)('{')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
OBJECT_LITERAL PsiElement(RBRACE)('}')
PsiElement(object)('object') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') CLASS_OBJECT
CLASS_BODY MODIFIER_LIST
PsiElement(LBRACE)('{') PsiElement(private)('private')
PsiWhiteSpace('\n\n ') PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') PsiElement(class)('class')
PsiWhiteSpace('\n\n ') PsiWhiteSpace(' ')
CLASS_OBJECT OBJECT_LITERAL
MODIFIER_LIST OBJECT_DECLARATION
PsiElement(private)('private') PsiElement(object)('object')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') CLASS_BODY
PsiWhiteSpace(' ') PsiElement(LBRACE)('{')
OBJECT_LITERAL PsiWhiteSpace('\n\n ')
PsiElement(object)('object') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
PsiElement(COLON)(':') CLASS_OBJECT
PsiWhiteSpace(' ') MODIFIER_LIST
DELEGATION_SPECIFIER_LIST PsiElement(private)('private')
DELEGATOR_SUPER_CLASS PsiWhiteSpace(' ')
TYPE_REFERENCE PsiElement(class)('class')
USER_TYPE PsiWhiteSpace(' ')
REFERENCE_EXPRESSION OBJECT_LITERAL
PsiElement(IDENTIFIER)('Fooo') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') PsiElement(COLON)(':')
PsiWhiteSpace('\n\n ') PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') DELEGATION_SPECIFIER_LIST
PsiWhiteSpace('\n\n ') DELEGATOR_SUPER_CLASS
CLASS_OBJECT TYPE_REFERENCE
MODIFIER_LIST USER_TYPE
PsiElement(private)('private') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Fooo')
PsiElement(class)('class') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') CLASS_BODY
OBJECT_LITERAL PsiElement(LBRACE)('{')
PsiElement(object)('object') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') PsiElement(RBRACE)('}')
PsiElement(COLON)(':') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') CLASS_OBJECT
DELEGATION_SPECIFIER_LIST MODIFIER_LIST
DELEGATOR_SUPER_CLASS PsiElement(private)('private')
TYPE_REFERENCE PsiWhiteSpace(' ')
USER_TYPE PsiElement(class)('class')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Fooo') OBJECT_LITERAL
PsiElement(COMMA)(',') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
DELEGATOR_BY PsiWhiteSpace(' ')
TYPE_REFERENCE PsiElement(COLON)(':')
USER_TYPE PsiWhiteSpace(' ')
REFERENCE_EXPRESSION DELEGATION_SPECIFIER_LIST
PsiElement(IDENTIFIER)('Bar') DELEGATOR_SUPER_CLASS
PsiWhiteSpace(' ') TYPE_REFERENCE
PsiElement(by)('by') USER_TYPE
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Fooo')
PsiElement(IDENTIFIER)('foo') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
CLASS_BODY DELEGATOR_BY
PsiElement(LBRACE)('{') TYPE_REFERENCE
PsiWhiteSpace('\n\n ') USER_TYPE
PsiElement(RBRACE)('}') REFERENCE_EXPRESSION
PsiWhiteSpace('\n\n ') PsiElement(IDENTIFIER)('Bar')
CLASS_OBJECT PsiWhiteSpace(' ')
MODIFIER_LIST PsiElement(by)('by')
PsiElement(private)('private') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
PsiElement(class)('class') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL CLASS_BODY
PsiElement(object)('object') PsiElement(LBRACE)('{')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
PsiElement(COLON)(':') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
DELEGATION_SPECIFIER_LIST CLASS_OBJECT
DELEGATOR_SUPER_CLASS MODIFIER_LIST
TYPE_REFERENCE PsiElement(private)('private')
USER_TYPE PsiWhiteSpace(' ')
REFERENCE_EXPRESSION PsiElement(class)('class')
PsiElement(IDENTIFIER)('Fooo') PsiWhiteSpace(' ')
PsiElement(COMMA)(',') OBJECT_LITERAL
PsiWhiteSpace(' ') OBJECT_DECLARATION
DELEGATOR_BY PsiElement(object)('object')
TYPE_REFERENCE PsiWhiteSpace(' ')
USER_TYPE PsiElement(COLON)(':')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Bar') DELEGATION_SPECIFIER_LIST
PsiWhiteSpace(' ') DELEGATOR_SUPER_CLASS
PsiElement(by)('by') TYPE_REFERENCE
PsiWhiteSpace(' ') USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('Fooo')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL DELEGATOR_BY
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Goo') PsiElement(IDENTIFIER)('Bar')
VALUE_ARGUMENT_LIST PsiWhiteSpace(' ')
PsiElement(LPAR)('(') PsiElement(by)('by')
PsiElement(RPAR)(')') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n\n') REFERENCE_EXPRESSION
PsiElement(RBRACE)('}') PsiElement(IDENTIFIER)('foo')
\ No newline at end of file PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Goo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n\n')
CLASS_BODY
PsiErrorElement:Expecting a class body
PsiElement(RBRACE)('}')
PsiErrorElement:Missing '}
<empty list>
\ No newline at end of file
...@@ -485,19 +485,20 @@ JetFile: SimpleExpressions.jet ...@@ -485,19 +485,20 @@ JetFile: SimpleExpressions.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CLASS DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CLASS
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('Foo') REFERENCE_EXPRESSION
CLASS_BODY PsiElement(IDENTIFIER)('Foo')
PsiElement(LBRACE)('{') CLASS_BODY
PsiElement(RBRACE)('}') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
VALUE_PARAMETER VALUE_PARAMETER
......
...@@ -18,106 +18,107 @@ JetFile: AnonymousObjects.jet ...@@ -18,106 +18,107 @@ JetFile: AnonymousObjects.jet
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT VALUE_ARGUMENT
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CALL
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('MouseAdapter') REFERENCE_EXPRESSION
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('MouseAdapter')
PsiElement(LPAR)('(') VALUE_ARGUMENT_LIST
PsiElement(RPAR)(')') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n\n ') PsiElement(LBRACE)('{')
PROPERTY PsiWhiteSpace('\n\n ')
MODIFIER_LIST PROPERTY
PsiElement(private)('private') MODIFIER_LIST
PsiWhiteSpace(' ') PsiElement(private)('private')
PsiElement(var)('var') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(var)('var')
PsiElement(IDENTIFIER)('clickCount') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('clickCount')
PsiElement(EQ)('=') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(EQ)('=')
INTEGER_CONSTANT PsiWhiteSpace(' ')
PsiElement(INTEGER_LITERAL)('0') INTEGER_CONSTANT
PsiElement(SEMICOLON)(';') PsiElement(INTEGER_LITERAL)('0')
PsiWhiteSpace('\n\n ')
FUN
MODIFIER_LIST
PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('mouseClicked')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('MouseEvent')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
POSTFIX_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('clickCount')
OPERATION_REFERENCE
PsiElement(PLUSPLUS)('++')
PsiElement(SEMICOLON)(';') PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n\n ')
IF FUN
PsiElement(if)('if') MODIFIER_LIST
PsiWhiteSpace(' ') PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('mouseClicked')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
CONDITION VALUE_PARAMETER
BINARY_EXPRESSION PsiElement(IDENTIFIER)('e')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('clickCount') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE TYPE_REFERENCE
PsiElement(GT)('>') USER_TYPE
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
INTEGER_CONSTANT PsiElement(IDENTIFIER)('MouseEvent')
PsiElement(INTEGER_LITERAL)('3')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
THEN BLOCK
DOT_QUALIFIED_EXPRESSION PsiElement(LBRACE)('{')
REFERENCE_EXPRESSION PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('GOD') POSTFIX_EXPRESSION
PsiElement(DOT)('.') REFERENCE_EXPRESSION
CALL_EXPRESSION PsiElement(IDENTIFIER)('clickCount')
OPERATION_REFERENCE
PsiElement(PLUSPLUS)('++')
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('sendMessage') PsiElement(IDENTIFIER)('clickCount')
VALUE_ARGUMENT_LIST PsiWhiteSpace(' ')
PsiElement(LPAR)('(') OPERATION_REFERENCE
VALUE_ARGUMENT PsiElement(GT)('>')
DOT_QUALIFIED_EXPRESSION PsiWhiteSpace(' ')
REFERENCE_EXPRESSION INTEGER_CONSTANT
PsiElement(IDENTIFIER)('GodMEssages') PsiElement(INTEGER_LITERAL)('3')
PsiElement(DOT)('.') PsiElement(RPAR)(')')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('TOO_MANY_CLICKS') THEN
PsiElement(RPAR)(')') DOT_QUALIFIED_EXPRESSION
PsiElement(SEMICOLON)(';') REFERENCE_EXPRESSION
PsiWhiteSpace('\n ') PsiElement(IDENTIFIER)('GOD')
PsiElement(RBRACE)('}') PsiElement(DOT)('.')
PsiWhiteSpace('\n') CALL_EXPRESSION
PsiElement(RBRACE)('}') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('sendMessage')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('GodMEssages')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('TOO_MANY_CLICKS')
PsiElement(RPAR)(')')
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
CLASS CLASS
...@@ -155,52 +156,53 @@ JetFile: AnonymousObjects.jet ...@@ -155,52 +156,53 @@ JetFile: AnonymousObjects.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n ') PsiElement(LBRACE)('{')
FUN PsiWhiteSpace('\n ')
PsiElement(fun)('fun') FUN
PsiWhiteSpace(' ') PsiElement(fun)('fun')
PsiElement(IDENTIFIER)('sendMessage')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('message')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('GodMEssage')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
THROW
PsiElement(throw)('throw')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
NEW PsiElement(IDENTIFIER)('sendMessage')
PsiElement(new)('new') VALUE_PARAMETER_LIST
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
TYPE_REFERENCE VALUE_PARAMETER
USER_TYPE PsiElement(IDENTIFIER)('message')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('RuntimeException') PsiElement(COLON)(':')
VALUE_ARGUMENT_LIST PsiWhiteSpace(' ')
PsiElement(LPAR)('(') TYPE_REFERENCE
VALUE_ARGUMENT USER_TYPE
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('message') PsiElement(IDENTIFIER)('GodMEssage')
PsiElement(DOT)('.') PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
THROW
PsiElement(throw)('throw')
PsiWhiteSpace(' ')
NEW
PsiElement(new)('new')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('name') PsiElement(IDENTIFIER)('RuntimeException')
PsiElement(RPAR)(')') VALUE_ARGUMENT_LIST
PsiWhiteSpace('\n') PsiElement(LPAR)('(')
PsiElement(RBRACE)('}') VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('message')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('name')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
PsiElement(SEMICOLON)(';') PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
\ No newline at end of file
...@@ -1872,684 +1872,685 @@ JetFile: BinaryTree.jet ...@@ -1872,684 +1872,685 @@ JetFile: BinaryTree.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CLASS DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CLASS
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('IMutableIterator') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('IMutableIterator')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n ') PsiElement(LBRACE)('{')
PROPERTY PsiWhiteSpace('\n ')
PsiElement(val)('val') PROPERTY
PsiWhiteSpace(' ') PsiElement(val)('val')
PsiElement(IDENTIFIER)('version') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('version')
PsiElement(EQ)('=') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(EQ)('=')
DOT_QUALIFIED_EXPRESSION PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION DOT_QUALIFIED_EXPRESSION
PsiElement(IDENTIFIER)('BinaryTree') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('BinaryTree')
PsiElement(DOT)('.')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(DOT)('.') PsiElement(DOT)('.')
THIS_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('down')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Stack')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('TreeNode')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('up')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Stack')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('TreeNode')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(var)('var')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('lastNode')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(this)('this') PsiElement(IDENTIFIER)('TreeNode')
PsiElement(DOT)('.') PsiWhiteSpace('\n\n ')
REFERENCE_EXPRESSION CONSTRUCTOR
PsiElement(IDENTIFIER)('version') PsiElement(this)('this')
PsiWhiteSpace('\n ') VALUE_PARAMETER_LIST
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('down')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Stack')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('TreeNode')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
PROPERTY BLOCK
PsiElement(val)('val') PsiElement(LBRACE)('{')
PsiWhiteSpace(' ') PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('up') IF
PsiWhiteSpace(' ') PsiElement(if)('if')
PsiElement(EQ)('=') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
CALL_EXPRESSION CONDITION
REFERENCE_EXPRESSION BINARY_EXPRESSION
PsiElement(IDENTIFIER)('Stack')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('TreeNode') PsiElement(IDENTIFIER)('root')
PsiElement(GT)('>') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST OPERATION_REFERENCE
PsiElement(LPAR)('(') PsiElement(EXCLEQ)('!=')
PsiElement(RPAR)(')') PsiWhiteSpace(' ')
PsiWhiteSpace('\n ') NULL
PROPERTY PsiElement(null)('null')
PsiElement(var)('var') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('lastNode') THEN
PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('TreeNode')
PsiWhiteSpace('\n\n ')
CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('root')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
THEN
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push') PsiElement(IDENTIFIER)('down')
VALUE_ARGUMENT_LIST PsiElement(DOT)('.')
PsiElement(LPAR)('(') CALL_EXPRESSION
VALUE_ARGUMENT REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('push')
PsiElement(IDENTIFIER)('root') VALUE_ARGUMENT_LIST
PsiElement(RPAR)(')') PsiElement(LPAR)('(')
PsiWhiteSpace(' \n ') VALUE_ARGUMENT
PsiElement(RBRACE)('}') REFERENCE_EXPRESSION
PsiWhiteSpace('\n\n ') PsiElement(IDENTIFIER)('root')
FUN PsiElement(RPAR)(')')
MODIFIER_LIST PsiWhiteSpace(' \n ')
PsiElement(override)('override') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
PsiElement(fun)('fun') FUN
PsiWhiteSpace(' ') MODIFIER_LIST
PsiElement(IDENTIFIER)('next') PsiElement(override)('override')
VALUE_PARAMETER_LIST PsiWhiteSpace(' ')
PsiElement(LPAR)('(') PsiElement(fun)('fun')
PsiElement(RPAR)(')') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('next')
PsiElement(COLON)(':') VALUE_PARAMETER_LIST
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
CONDITION
PREFIX_EXPRESSION
OPERATION_REFERENCE
PsiElement(EXCL)('!')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('hasNext')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
THEN PsiElement(COLON)(':')
THROW PsiWhiteSpace(' ')
PsiElement(throw)('throw') TYPE_REFERENCE
PsiWhiteSpace(' ') USER_TYPE
CALL_EXPRESSION REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T')
PsiElement(IDENTIFIER)('NoMoreElementsException') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST BLOCK
PsiElement(LPAR)('(') PsiElement(LBRACE)('{')
PsiElement(RPAR)(')') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n ') IF
CALL_EXPRESSION PsiElement(if)('if')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('checkVersion')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
CONDITION
PREFIX_EXPRESSION
OPERATION_REFERENCE
PsiElement(EXCL)('!')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('hasNext')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION THEN
REFERENCE_EXPRESSION THROW
PsiElement(IDENTIFIER)('lastNode') PsiElement(throw)('throw')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE CALL_EXPRESSION
PsiElement(EQ)('=') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('NoMoreElementsException')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
CALL_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('nextNode') PsiElement(IDENTIFIER)('checkVersion')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n\n ')
RETURN BINARY_EXPRESSION
PsiElement(return)('return')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lastNode') PsiElement(IDENTIFIER)('lastNode')
PsiElement(DOT)('.') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION OPERATION_REFERENCE
PsiElement(IDENTIFIER)('value') PsiElement(EQ)('=')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') CALL_EXPRESSION
PsiWhiteSpace('\n\n ') REFERENCE_EXPRESSION
FUN PsiElement(IDENTIFIER)('nextNode')
MODIFIER_LIST VALUE_ARGUMENT_LIST
PsiElement(private)('private') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
PsiElement(fun)('fun') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') RETURN
PsiElement(IDENTIFIER)('nextNode') PsiElement(return)('return')
VALUE_PARAMETER_LIST PsiWhiteSpace(' ')
PsiElement(LPAR)('(') DOT_QUALIFIED_EXPRESSION
PsiElement(RPAR)(')') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('lastNode')
PsiElement(COLON)(':') PsiElement(DOT)('.')
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
TYPE_REFERENCE PsiElement(IDENTIFIER)('value')
USER_TYPE PsiWhiteSpace('\n ')
REFERENCE_EXPRESSION PsiElement(RBRACE)('}')
PsiElement(IDENTIFIER)('TreeNode') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') FUN
BLOCK MODIFIER_LIST
PsiElement(LBRACE)('{') PsiElement(private)('private')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
WHILE PsiElement(fun)('fun')
PsiElement(while)('while') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('nextNode')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
CONDITION
BOOLEAN_CONSTANT
PsiElement(true)('true')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BODY PsiElement(COLON)(':')
FUNCTION_LITERAL PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') TYPE_REFERENCE
PsiWhiteSpace('\n ') USER_TYPE
BODY REFERENCE_EXPRESSION
IF PsiElement(IDENTIFIER)('TreeNode')
PsiElement(if)('if') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') BLOCK
PsiElement(LPAR)('(') PsiElement(LBRACE)('{')
CONDITION PsiWhiteSpace('\n ')
PREFIX_EXPRESSION WHILE
OPERATION_REFERENCE PsiElement(while)('while')
PsiElement(EXCL)('!') PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION PsiElement(LPAR)('(')
REFERENCE_EXPRESSION CONDITION
PsiElement(IDENTIFIER)('down') BOOLEAN_CONSTANT
PsiElement(DOT)('.') PsiElement(true)('true')
REFERENCE_EXPRESSION PsiElement(RPAR)(')')
PsiElement(IDENTIFIER)('isEmpty') PsiWhiteSpace(' ')
PsiElement(RPAR)(')') BODY
PsiWhiteSpace(' ') FUNCTION_LITERAL
THEN PsiElement(LBRACE)('{')
FUNCTION_LITERAL PsiWhiteSpace('\n ')
PsiElement(LBRACE)('{') BODY
PsiWhiteSpace('\n ') IF
BODY PsiElement(if)('if')
PROPERTY PsiWhiteSpace(' ')
PsiElement(val)('val') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') CONDITION
PsiElement(IDENTIFIER)('curNode') PREFIX_EXPRESSION
PsiWhiteSpace(' ') OPERATION_REFERENCE
PsiElement(EQ)('=') PsiElement(EXCL)('!')
PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION
DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('down')
PsiElement(IDENTIFIER)('down') PsiElement(DOT)('.')
PsiElement(DOT)('.') REFERENCE_EXPRESSION
CALL_EXPRESSION PsiElement(IDENTIFIER)('isEmpty')
REFERENCE_EXPRESSION PsiElement(RPAR)(')')
PsiElement(IDENTIFIER)('pop') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST THEN
PsiElement(LPAR)('(') FUNCTION_LITERAL
PsiElement(RPAR)(')') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('left')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
THEN
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('up')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('left')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace(' ')
PsiElement(else)('else')
PsiWhiteSpace(' ')
ELSE
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('right')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
THEN
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('right')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
RETURN
PsiElement(return)('return')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace(' ')
PsiElement(else)('else')
PsiWhiteSpace(' ')
ELSE
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('curNode')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('up')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('pop')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
IF BODY
PsiElement(if)('if') PROPERTY
PsiWhiteSpace(' ') PsiElement(val)('val')
PsiElement(LPAR)('(') PsiWhiteSpace(' ')
CONDITION PsiElement(IDENTIFIER)('curNode')
BINARY_EXPRESSION PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION PsiElement(EQ)('=')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('curNode') DOT_QUALIFIED_EXPRESSION
PsiElement(DOT)('.') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('right') PsiElement(IDENTIFIER)('pop')
PsiWhiteSpace(' ') VALUE_ARGUMENT_LIST
OPERATION_REFERENCE PsiElement(LPAR)('(')
PsiElement(EXCLEQ)('!=') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace('\n ')
NULL IF
PsiElement(null)('null') PsiElement(if)('if')
PsiElement(RPAR)(')') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
THEN CONDITION
FUNCTION_LITERAL BINARY_EXPRESSION
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down') PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.') PsiElement(DOT)('.')
CALL_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('left')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
THEN
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('up')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push') PsiElement(IDENTIFIER)('down')
VALUE_ARGUMENT_LIST PsiElement(DOT)('.')
PsiElement(LPAR)('(') CALL_EXPRESSION
VALUE_ARGUMENT REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('left')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace(' ')
PsiElement(else)('else')
PsiWhiteSpace(' ')
ELSE
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode') PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.') PsiElement(DOT)('.')
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('right') PsiElement(IDENTIFIER)('right')
PsiElement(RPAR)(')') PsiWhiteSpace(' ')
PsiWhiteSpace('\n ') OPERATION_REFERENCE
PsiElement(RBRACE)('}') PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
THEN
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('right')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
RETURN
PsiElement(return)('return')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(SEMICOLON)(';')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace(' ')
PsiElement(else)('else')
PsiWhiteSpace(' ')
ELSE
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
RETURN BODY
PsiElement(return)('return') PROPERTY
PsiWhiteSpace(' ') PsiElement(val)('val')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('curNode') PsiElement(IDENTIFIER)('curNode')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') PsiElement(EQ)('=')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') DOT_QUALIFIED_EXPRESSION
PsiWhiteSpace('\n ') REFERENCE_EXPRESSION
PsiElement(RBRACE)('}') PsiElement(IDENTIFIER)('up')
PsiWhiteSpace('\n\n ') PsiElement(DOT)('.')
PROPERTY CALL_EXPRESSION
MODIFIER_LIST REFERENCE_EXPRESSION
PsiElement(override)('override') PsiElement(IDENTIFIER)('pop')
PsiWhiteSpace(' ') VALUE_ARGUMENT_LIST
PsiElement(val)('val') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
PsiElement(IDENTIFIER)('hasNext') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') IF
PsiElement(COLON)(':') PsiElement(if)('if')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE PsiElement(LPAR)('(')
USER_TYPE CONDITION
REFERENCE_EXPRESSION BINARY_EXPRESSION
PsiElement(IDENTIFIER)('Boolean') DOT_QUALIFIED_EXPRESSION
PsiWhiteSpace('\n ') REFERENCE_EXPRESSION
PROPERTY_ACCESSOR PsiElement(IDENTIFIER)('curNode')
PsiElement(get)('get') PsiElement(DOT)('.')
PsiElement(LPAR)('(') REFERENCE_EXPRESSION
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('right')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
THEN
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('push')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('right')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
RETURN
PsiElement(return)('return')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('curNode')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
PROPERTY
MODIFIER_LIST
PsiElement(override)('override')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BINARY_EXPRESSION PsiElement(IDENTIFIER)('hasNext')
PREFIX_EXPRESSION PsiWhiteSpace(' ')
OPERATION_REFERENCE PsiElement(COLON)(':')
PsiElement(EXCL)('!') PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('down') REFERENCE_EXPRESSION
PsiElement(DOT)('.') PsiElement(IDENTIFIER)('Boolean')
REFERENCE_EXPRESSION PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('isEmpty') PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE PsiElement(EQ)('=')
PsiElement(OROR)('||')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PREFIX_EXPRESSION BINARY_EXPRESSION
PREFIX_EXPRESSION
OPERATION_REFERENCE
PsiElement(EXCL)('!')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('down')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('isEmpty')
PsiWhiteSpace(' ')
OPERATION_REFERENCE OPERATION_REFERENCE
PsiElement(EXCL)('!') PsiElement(OROR)('||')
DOT_QUALIFIED_EXPRESSION PsiWhiteSpace(' ')
REFERENCE_EXPRESSION PREFIX_EXPRESSION
PsiElement(IDENTIFIER)('up')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('isEmpty')
PsiWhiteSpace('\n\n\n ')
FUN
MODIFIER_LIST
PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('remove')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('checkVersion')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lastNode')
PsiWhiteSpace(' ')
OPERATION_REFERENCE OPERATION_REFERENCE
PsiElement(EQEQ)('==') PsiElement(EXCL)('!')
PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
THEN
THROW
PsiElement(throw)('throw')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('IterationException') PsiElement(IDENTIFIER)('up')
VALUE_ARGUMENT_LIST PsiElement(DOT)('.')
PsiElement(LPAR)('(') REFERENCE_EXPRESSION
VALUE_ARGUMENT PsiElement(IDENTIFIER)('isEmpty')
STRING_CONSTANT PsiWhiteSpace('\n\n\n ')
PsiElement(STRING_LITERAL)('"Nothing to remove"') FUN
PsiElement(RPAR)(')') MODIFIER_LIST
PsiWhiteSpace('\n ') PsiElement(override)('override')
CALL_EXPRESSION PsiWhiteSpace(' ')
REFERENCE_EXPRESSION PsiElement(fun)('fun')
PsiElement(IDENTIFIER)('remove') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('remove')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('checkVersion')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT CONDITION
REFERENCE_EXPRESSION BINARY_EXPRESSION
PsiElement(IDENTIFIER)('lastNode') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lastNode')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EQEQ)('==')
PsiWhiteSpace(' ')
NULL
PsiElement(null)('null')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
POSTFIX_EXPRESSION THEN
REFERENCE_EXPRESSION THROW
PsiElement(IDENTIFIER)('version') PsiElement(throw)('throw')
OPERATION_REFERENCE PsiWhiteSpace(' ')
PsiElement(PLUSPLUS)('++') CALL_EXPRESSION
PsiWhiteSpace('\n ') REFERENCE_EXPRESSION
BINARY_EXPRESSION PsiElement(IDENTIFIER)('IterationException')
DOT_QUALIFIED_EXPRESSION VALUE_ARGUMENT_LIST
DOT_QUALIFIED_EXPRESSION PsiElement(LPAR)('(')
REFERENCE_EXPRESSION VALUE_ARGUMENT
PsiElement(IDENTIFIER)('BinaryTree') STRING_CONSTANT
PsiElement(DOT)('.') PsiElement(STRING_LITERAL)('"Nothing to remove"')
THIS_EXPRESSION PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('remove')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(this)('this') PsiElement(IDENTIFIER)('lastNode')
PsiElement(DOT)('.') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
POSTFIX_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version') PsiElement(IDENTIFIER)('version')
PsiWhiteSpace(' ') OPERATION_REFERENCE
OPERATION_REFERENCE PsiElement(PLUSPLUS)('++')
PsiElement(EQ)('=') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') BINARY_EXPRESSION
REFERENCE_EXPRESSION DOT_QUALIFIED_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
FUN
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('checkVersion')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('BinaryTree')
PsiElement(IDENTIFIER)('BinaryTree')
PsiElement(DOT)('.')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(DOT)('.') PsiElement(DOT)('.')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
FUN
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('checkVersion')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version') PsiElement(IDENTIFIER)('version')
PsiElement(RPAR)(')') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') OPERATION_REFERENCE
THEN PsiElement(EXCLEQ)('!=')
FUNCTION_LITERAL PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') DOT_QUALIFIED_EXPRESSION
PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION
BODY
THROW
PsiElement(throw)('throw')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('ConcurrentModificationException') PsiElement(IDENTIFIER)('BinaryTree')
VALUE_ARGUMENT_LIST PsiElement(DOT)('.')
PsiElement(LPAR)('(') THIS_EXPRESSION
PsiElement(RPAR)(')') REFERENCE_EXPRESSION
PsiWhiteSpace('\n ') PsiElement(this)('this')
PsiElement(RBRACE)('}') PsiElement(DOT)('.')
PsiWhiteSpace(' \n ') REFERENCE_EXPRESSION
PsiElement(RBRACE)('}') PsiElement(IDENTIFIER)('version')
PsiWhiteSpace('\n ') PsiElement(RPAR)(')')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
THEN
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
THROW
PsiElement(throw)('throw')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('ConcurrentModificationException')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace(' \n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
\ No newline at end of file
...@@ -9,194 +9,195 @@ JetFile: Builder.jet ...@@ -9,194 +9,195 @@ JetFile: Builder.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CALL
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('AntBuilder') REFERENCE_EXPRESSION
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('AntBuilder')
PsiElement(LPAR)('(') VALUE_ARGUMENT_LIST
PsiElement(RPAR)(')') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n\n ') PsiElement(LBRACE)('{')
PROPERTY PsiWhiteSpace('\n\n ')
MODIFIER_LIST PROPERTY
ATTRIBUTE_ANNOTATION MODIFIER_LIST
PsiElement(LBRACKET)('[') ATTRIBUTE_ANNOTATION
ATTRIBUTE PsiElement(LBRACKET)('[')
TYPE_REFERENCE ATTRIBUTE
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('lazy') REFERENCE_EXPRESSION
PsiElement(RBRACKET)(']') PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace(' ') PsiElement(RBRACKET)(']')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('groovy')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('library')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
FUNCTION_LITERAL PsiElement(val)('val')
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('classpath')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
STRING_CONSTANT
PsiElement(STRING_LITERAL)('"$libs/groovy-..."')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
PROPERTY
MODIFIER_LIST
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lazy')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('gant')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('library')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
FUNCTION_LITERAL PsiElement(IDENTIFIER)('groovy')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n ') PsiElement(EQ)('=')
BODY PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION CALL_EXPRESSION
DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION
NEW PsiElement(IDENTIFIER)('library')
PsiElement(new)('new') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') FUNCTION_LITERAL
TYPE_REFERENCE PsiElement(LBRACE)('{')
USER_TYPE PsiWhiteSpace('\n ')
REFERENCE_EXPRESSION BODY
PsiElement(IDENTIFIER)('File')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
STRING_CONSTANT
PsiElement(STRING_LITERAL)('"$gantHome/lib"')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('files')
PsiElement(DOT)('.')
CALL_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('each') PsiElement(IDENTIFIER)('classpath')
PsiWhiteSpace(' ') VALUE_ARGUMENT_LIST
FUNCTION_LITERAL PsiElement(LPAR)('(')
PsiElement(LBRACE)('{') VALUE_ARGUMENT
PsiWhiteSpace('\n ') STRING_CONSTANT
BODY PsiElement(STRING_LITERAL)('"$libs/groovy-..."')
CALL_EXPRESSION PsiElement(RPAR)(')')
REFERENCE_EXPRESSION PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('classpath') PsiElement(RBRACE)('}')
VALUE_ARGUMENT_LIST PsiWhiteSpace('\n\n ')
PsiElement(LPAR)('(') PROPERTY
VALUE_ARGUMENT MODIFIER_LIST
REFERENCE_EXPRESSION ATTRIBUTE_ANNOTATION
PsiElement(IDENTIFIER)('it') PsiElement(LBRACKET)('[')
PsiElement(RPAR)(')') ATTRIBUTE
PsiWhiteSpace('\n ') TYPE_REFERENCE
PsiElement(RBRACE)('}') USER_TYPE
PsiWhiteSpace('\n ') REFERENCE_EXPRESSION
PsiElement(RBRACE)('}') PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace('\n\n ') PsiElement(RBRACKET)(']')
PROPERTY
MODIFIER_LIST
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('lazy')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('JPS')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('module')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
FUNCTION_LITERAL PsiElement(val)('val')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n ') PsiElement(IDENTIFIER)('gant')
BODY PsiWhiteSpace(' ')
BINARY_EXPRESSION PsiElement(EQ)('=')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('targetLevel') CALL_EXPRESSION
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
OPERATION_REFERENCE PsiElement(IDENTIFIER)('library')
PsiElement(EQ)('=') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') FUNCTION_LITERAL
STRING_CONSTANT PsiElement(LBRACE)('{')
PsiElement(STRING_LITERAL)('"1.5"')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
CALL_EXPRESSION BODY
REFERENCE_EXPRESSION DOT_QUALIFIED_EXPRESSION
PsiElement(IDENTIFIER)('classpath') DOT_QUALIFIED_EXPRESSION
VALUE_ARGUMENT_LIST NEW
PsiElement(LPAR)('(') PsiElement(new)('new')
VALUE_ARGUMENT PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('File')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
STRING_CONSTANT
PsiElement(STRING_LITERAL)('"$gantHome/lib"')
PsiElement(RPAR)(')')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('antLayout') PsiElement(IDENTIFIER)('files')
PsiElement(COMMA)(',') PsiElement(DOT)('.')
PsiWhiteSpace(' ') CALL_EXPRESSION
VALUE_ARGUMENT
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('gant') PsiElement(IDENTIFIER)('each')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') FUNCTION_LITERAL
VALUE_ARGUMENT PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BODY
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('classpath')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('it')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
PROPERTY
MODIFIER_LIST
ATTRIBUTE_ANNOTATION
PsiElement(LBRACKET)('[')
ATTRIBUTE
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('groovy') PsiElement(IDENTIFIER)('lazy')
PsiElement(RPAR)(')') PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('JPS')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('module')
PsiWhiteSpace(' ')
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
CALL_EXPRESSION BODY
REFERENCE_EXPRESSION BINARY_EXPRESSION
PsiElement(IDENTIFIER)('src') REFERENCE_EXPRESSION
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('targetLevel')
PsiElement(LPAR)('(') PsiWhiteSpace(' ')
VALUE_ARGUMENT OPERATION_REFERENCE
STRING_CONSTANT PsiElement(EQ)('=')
PsiElement(STRING_LITERAL)('"$projectHome/antLayout/src"') PsiWhiteSpace(' ')
PsiElement(RPAR)(')') STRING_CONSTANT
PsiWhiteSpace('\n ') PsiElement(STRING_LITERAL)('"1.5"')
PsiElement(RBRACE)('}') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n\n') CALL_EXPRESSION
PsiElement(RBRACE)('}') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('classpath')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('antLayout')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('gant')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('groovy')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('src')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
STRING_CONSTANT
PsiElement(STRING_LITERAL)('"$projectHome/antLayout/src"')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}')
PsiElement(DOT)('.') PsiElement(DOT)('.')
CALL_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
......
...@@ -135,63 +135,64 @@ JetFile: PolymorphicClassObjects.jet ...@@ -135,63 +135,64 @@ JetFile: PolymorphicClassObjects.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CLASS DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CLASS
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('Buildable') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Buildable')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n ') PsiElement(LBRACE)('{')
FUN PsiWhiteSpace('\n ')
MODIFIER_LIST FUN
PsiElement(override)('override') MODIFIER_LIST
PsiWhiteSpace(' ') PsiElement(override)('override')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('newBuilder')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('E')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_PARAMETER PsiElement(fun)('fun')
PsiElement(IDENTIFIER)('R') PsiWhiteSpace(' ')
PsiElement(GT)('>') PsiElement(IDENTIFIER)('newBuilder')
VALUE_PARAMETER_LIST TYPE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LT)('<')
PsiElement(RPAR)(')') TYPE_PARAMETER
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('E')
PsiElement(COLON)(':') PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_PARAMETER
USER_TYPE PsiElement(IDENTIFIER)('R')
REFERENCE_EXPRESSION PsiElement(GT)('>')
PsiElement(IDENTIFIER)('Builder') VALUE_PARAMETER_LIST
TYPE_ARGUMENT_LIST PsiElement(LPAR)('(')
PsiElement(LT)('<') PsiElement(RPAR)(')')
TYPE_PROJECTION PsiWhiteSpace(' ')
TYPE_REFERENCE PsiElement(COLON)(':')
USER_TYPE PsiWhiteSpace(' ')
REFERENCE_EXPRESSION TYPE_REFERENCE
PsiElement(IDENTIFIER)('E') USER_TYPE
PsiElement(COMMA)(',') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Builder')
TYPE_PROJECTION TYPE_ARGUMENT_LIST
TYPE_REFERENCE PsiElement(LT)('<')
USER_TYPE TYPE_PROJECTION
REFERENCE_EXPRESSION TYPE_REFERENCE
PsiElement(IDENTIFIER)('R') USER_TYPE
PsiElement(GT)('>') REFERENCE_EXPRESSION
PsiWhiteSpace('\n\n ') PsiElement(IDENTIFIER)('E')
PsiElement(RBRACE)('}') PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('R')
PsiElement(GT)('>')
PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
......
...@@ -37,90 +37,91 @@ JetFile: UpdateOperation.jet ...@@ -37,90 +37,91 @@ JetFile: UpdateOperation.jet
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n ') PsiElement(LBRACE)('{')
FUN PsiWhiteSpace('\n ')
PsiElement(fun)('fun') FUN
PsiWhiteSpace(' ') PsiElement(fun)('fun')
PsiElement(IDENTIFIER)('copy')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('from')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Pair')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
VALUE_PARAMETER PsiElement(IDENTIFIER)('copy')
PsiElement(IDENTIFIER)('x') VALUE_PARAMETER_LIST
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
PsiElement(COLON)(':') VALUE_PARAMETER
PsiElement(IDENTIFIER)('from')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Pair')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE VALUE_PARAMETER
USER_TYPE PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int') PsiElement(IDENTIFIER)('from')
PsiWhiteSpace(' ') PsiElement(DOT)('.')
PsiElement(EQ)('=') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('x')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION VALUE_PARAMETER
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('y')
PsiElement(IDENTIFIER)('from') PsiWhiteSpace(' ')
PsiElement(DOT)('.') PsiElement(COLON)(':')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x') TYPE_REFERENCE
PsiElement(COMMA)(',') USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('from')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('y')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
VALUE_PARAMETER PsiElement(EQ)('=')
PsiElement(IDENTIFIER)('y') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') NEW
PsiElement(COLON)(':') PsiElement(new)('new')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int') PsiElement(IDENTIFIER)('Pair')
PsiWhiteSpace(' ') VALUE_ARGUMENT_LIST
PsiElement(EQ)('=') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') VALUE_ARGUMENT
DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('x')
PsiElement(IDENTIFIER)('from') PsiElement(COMMA)(',')
PsiElement(DOT)('.') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION VALUE_ARGUMENT
PsiElement(IDENTIFIER)('y') REFERENCE_EXPRESSION
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('y')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
PsiElement(EQ)('=') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') PsiElement(RBRACE)('}')
NEW
PsiElement(new)('new')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Pair')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('x')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('y')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
......
...@@ -140,252 +140,253 @@ JetFile: ArrayList.jet ...@@ -140,252 +140,253 @@ JetFile: ArrayList.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CALL
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('IMutableIterator') REFERENCE_EXPRESSION
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('IMutableIterator')
PsiElement(LPAR)('(') VALUE_ARGUMENT_LIST
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
CLASS_BODY
PsiElement(LBRACE)('{')
PsiWhiteSpace(' ')
PsiComment(EOL_COMMENT)('// T is inferred')
PsiWhiteSpace('\n ')
PROPERTY
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('index')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0')
PsiWhiteSpace('\n ')
PROPERTY
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(var)('var')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('myVersion')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace('\n\n ')
FUN
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('checkVersion')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
IF
PsiElement(if)('if')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EXCLEQ)('!=')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('myVersion')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
THEN CLASS_BODY
THROW PsiElement(LBRACE)('{')
PsiElement(throw)('throw')
PsiWhiteSpace(' ')
NEW
PsiElement(new)('new')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('ConcurrentModificationException')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
FUN
MODIFIER_LIST
PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('next')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BLOCK PsiComment(EOL_COMMENT)('// T is inferred')
PsiElement(LBRACE)('{') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n ') PROPERTY
CALL_EXPRESSION MODIFIER_LIST
REFERENCE_EXPRESSION PsiElement(private)('private')
PsiElement(IDENTIFIER)('checkVersion') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST PsiElement(val)('val')
PsiElement(LPAR)('(') PsiWhiteSpace(' ')
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('index')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
IF PsiElement(EQ)('=')
PsiElement(if)('if') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0')
PsiWhiteSpace('\n ')
PROPERTY
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(var)('var')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('myVersion')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace('\n\n ')
FUN
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('checkVersion')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
CONDITION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('hasNext')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
THEN BLOCK
THROW PsiElement(LBRACE)('{')
PsiElement(throw)('throw') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') IF
NEW PsiElement(if)('if')
PsiElement(new)('new') PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
CONDITION
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE OPERATION_REFERENCE
USER_TYPE PsiElement(EXCLEQ)('!=')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('NoMoreElementsException') REFERENCE_EXPRESSION
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('myVersion')
PsiElement(LPAR)('(') PsiElement(RPAR)(')')
PsiElement(RPAR)(')') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n ') THEN
ARRAY_ACCESS_EXPRESSION THROW
REFERENCE_EXPRESSION PsiElement(throw)('throw')
PsiElement(IDENTIFIER)('data') PsiWhiteSpace(' ')
INDICES NEW
PsiElement(LBRACKET)('[') PsiElement(new)('new')
POSTFIX_EXPRESSION PsiWhiteSpace(' ')
REFERENCE_EXPRESSION TYPE_REFERENCE
PsiElement(IDENTIFIER)('index') USER_TYPE
OPERATION_REFERENCE REFERENCE_EXPRESSION
PsiElement(PLUSPLUS)('++') PsiElement(IDENTIFIER)('ConcurrentModificationException')
PsiElement(RBRACKET)(']') VALUE_ARGUMENT_LIST
PsiWhiteSpace('\n ') PsiElement(LPAR)('(')
PsiElement(RBRACE)('}') PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n ')
PROPERTY PsiElement(RBRACE)('}')
MODIFIER_LIST PsiWhiteSpace('\n\n ')
PsiElement(override)('override') FUN
PsiWhiteSpace(' ') MODIFIER_LIST
PsiElement(val)('val') PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('hasNext')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BINARY_EXPRESSION PsiElement(IDENTIFIER)('next')
REFERENCE_EXPRESSION VALUE_PARAMETER_LIST
PsiElement(IDENTIFIER)('index') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
OPERATION_REFERENCE PsiWhiteSpace(' ')
PsiElement(LT)('<') BLOCK
PsiWhiteSpace(' ') PsiElement(LBRACE)('{')
REFERENCE_EXPRESSION PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('used') CALL_EXPRESSION
PsiWhiteSpace('\n\n\n ') REFERENCE_EXPRESSION
FUN PsiElement(IDENTIFIER)('checkVersion')
MODIFIER_LIST VALUE_ARGUMENT_LIST
PsiElement(override)('override') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
PsiElement(fun)('fun') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') IF
PsiElement(IDENTIFIER)('remove') PsiElement(if)('if')
VALUE_PARAMETER_LIST PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('checkVersion')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
CONDITION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('hasNext')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
THEN
THROW
PsiElement(throw)('throw')
PsiWhiteSpace(' ')
NEW
PsiElement(new)('new')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('NoMoreElementsException')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
ARRAY_ACCESS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('data')
INDICES
PsiElement(LBRACKET)('[')
POSTFIX_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('index')
OPERATION_REFERENCE
PsiElement(PLUSPLUS)('++')
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
PROPERTY
MODIFIER_LIST
PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('hasNext')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY_ACCESSOR
PsiElement(val)('val') PsiElement(get)('get')
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
PsiElement(IDENTIFIER)('result') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('index')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(LT)('<')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('used')
PsiWhiteSpace('\n\n\n ')
FUN
MODIFIER_LIST
PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('remove')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('checkVersion')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('result')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION DOT_QUALIFIED_EXPRESSION
PsiElement(IDENTIFIER)('ArrayList') REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('ArrayList')
PsiElement(DOT)('.')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(DOT)('.') PsiElement(DOT)('.')
THIS_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(this)('this') PsiElement(IDENTIFIER)('remove')
PsiElement(DOT)('.') VALUE_ARGUMENT_LIST
CALL_EXPRESSION PsiElement(LPAR)('(')
REFERENCE_EXPRESSION VALUE_ARGUMENT
PsiElement(IDENTIFIER)('remove') BINARY_EXPRESSION
VALUE_ARGUMENT_LIST REFERENCE_EXPRESSION
PsiElement(LPAR)('(') PsiElement(IDENTIFIER)('index')
VALUE_ARGUMENT PsiWhiteSpace(' ')
BINARY_EXPRESSION OPERATION_REFERENCE
REFERENCE_EXPRESSION PsiElement(MINUS)('-')
PsiElement(IDENTIFIER)('index') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') INTEGER_CONSTANT
OPERATION_REFERENCE PsiElement(INTEGER_LITERAL)('1')
PsiElement(MINUS)('-') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace('\n ')
INTEGER_CONSTANT BINARY_EXPRESSION
PsiElement(INTEGER_LITERAL)('1') REFERENCE_EXPRESSION
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('myVersion')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
BINARY_EXPRESSION OPERATION_REFERENCE
REFERENCE_EXPRESSION PsiElement(EQ)('=')
PsiElement(IDENTIFIER)('myVersion') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
OPERATION_REFERENCE PsiElement(IDENTIFIER)('version')
PsiElement(EQ)('=') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('version') PsiElement(IDENTIFIER)('result')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
REFERENCE_EXPRESSION PsiElement(RBRACE)('}')
PsiElement(IDENTIFIER)('result') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n ') PsiElement(RBRACE)('}')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
FUN FUN
MODIFIER_LIST MODIFIER_LIST
......
...@@ -225,116 +225,117 @@ JetFile: List.jet ...@@ -225,116 +225,117 @@ JetFile: List.jet
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OBJECT_LITERAL OBJECT_LITERAL
PsiElement(object)('object') OBJECT_DECLARATION
PsiWhiteSpace(' ') PsiElement(object)('object')
PsiElement(COLON)(':') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(COLON)(':')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL DELEGATION_SPECIFIER_LIST
TYPE_REFERENCE DELEGATOR_SUPER_CALL
USER_TYPE TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('IIterator') REFERENCE_EXPRESSION
VALUE_ARGUMENT_LIST PsiElement(IDENTIFIER)('IIterator')
PsiElement(LPAR)('(') VALUE_ARGUMENT_LIST
PsiElement(RPAR)(')') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
CLASS_BODY PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') CLASS_BODY
PsiWhiteSpace('\n ') PsiElement(LBRACE)('{')
PROPERTY PsiWhiteSpace('\n ')
MODIFIER_LIST PROPERTY
PsiElement(private)('private') MODIFIER_LIST
PsiWhiteSpace(' ') PsiElement(private)('private')
PsiElement(var)('var') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(var)('var')
PsiElement(IDENTIFIER)('current') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('current')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('List')
PsiElement(DOT)('.')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiWhiteSpace('\n\n ')
PROPERTY
MODIFIER_LIST
PsiElement(override)('override')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('hasNext')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BINARY_EXPRESSION DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('current') PsiElement(IDENTIFIER)('List')
PsiWhiteSpace(' ') PsiElement(DOT)('.')
OPERATION_REFERENCE THIS_EXPRESSION
PsiElement(EQEQ)('==') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(this)('this')
REFERENCE_EXPRESSION PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('Nil') PROPERTY
PsiWhiteSpace('\n\n ') MODIFIER_LIST
FUN PsiElement(override)('override')
MODIFIER_LIST PsiWhiteSpace(' ')
PsiElement(override)('override') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(fun)('fun') PsiElement(IDENTIFIER)('hasNext')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('next')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PROPERTY PROPERTY_ACCESSOR
PsiElement(val)('val') PsiElement(get)('get')
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
PsiElement(IDENTIFIER)('result') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION BINARY_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('current') PsiElement(IDENTIFIER)('current')
PsiElement(DOT)('.') PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EQEQ)('==')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('value') PsiElement(IDENTIFIER)('Nil')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n\n ')
BINARY_EXPRESSION FUN
REFERENCE_EXPRESSION MODIFIER_LIST
PsiElement(IDENTIFIER)('current') PsiElement(override)('override')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('next')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('result')
PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('current')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('value')
PsiWhiteSpace('\n ')
BINARY_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('current') PsiElement(IDENTIFIER)('current')
PsiElement(DOT)('.') PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('current')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('tail')
PsiWhiteSpace('\n ')
RETURN
PsiElement(return)('return')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('tail') PsiElement(IDENTIFIER)('result')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
RETURN PsiElement(RBRACE)('}')
PsiElement(return)('return') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') PsiElement(RBRACE)('}')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('result')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n') PsiWhiteSpace('\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册