Special node for match expression (as its RHS is not an expression)

This commit is contained in:
Maxim Shafirov
2011-01-11 00:32:59 +03:00
parent 5779dc6885
commit 04fbaa26fe
11 changed files with 1097 additions and 1005 deletions
@@ -98,6 +98,7 @@ public interface JetNodeTypes {
JetNodeType THIS_EXPRESSION = new JetNodeType("THIS_EXPRESSION", JetThisExpression.class); JetNodeType THIS_EXPRESSION = new JetNodeType("THIS_EXPRESSION", JetThisExpression.class);
JetNodeType BINARY_EXPRESSION = new JetNodeType("BINARY_EXPRESSION", JetBinaryExpression.class); JetNodeType BINARY_EXPRESSION = new JetNodeType("BINARY_EXPRESSION", JetBinaryExpression.class);
JetNodeType BINARY_WITH_TYPE = new JetNodeType("BINARY_WITH_TYPE", JetBinaryExpressionWithTypeRHS.class); JetNodeType BINARY_WITH_TYPE = new JetNodeType("BINARY_WITH_TYPE", JetBinaryExpressionWithTypeRHS.class);
JetNodeType MATCH_EXPRESSION = new JetNodeType("MATCH_EXPRESSION", JetMatchExpression.class);
JetNodeType PREFIX_EXPRESSION = new JetNodeType("PREFIX_EXPRESSION", JetPrefixExpression.class); JetNodeType PREFIX_EXPRESSION = new JetNodeType("PREFIX_EXPRESSION", JetPrefixExpression.class);
JetNodeType POSTFIX_EXPRESSION = new JetNodeType("POSTFIX_EXPRESSION", JetPostfixExpression.class); JetNodeType POSTFIX_EXPRESSION = new JetNodeType("POSTFIX_EXPRESSION", JetPostfixExpression.class);
JetNodeType CALL_EXPRESSION = new JetNodeType("CALL_EXPRESSION", JetCallExpression.class); JetNodeType CALL_EXPRESSION = new JetNodeType("CALL_EXPRESSION", JetCallExpression.class);
@@ -106,6 +107,7 @@ public interface JetNodeTypes {
JetNodeType DOT_QIALIFIED_EXPRESSION = new JetNodeType("DOT_QIALIFIED_EXPRESSION", JetDotQualifiedExpression.class); JetNodeType DOT_QIALIFIED_EXPRESSION = new JetNodeType("DOT_QIALIFIED_EXPRESSION", JetDotQualifiedExpression.class);
JetNodeType HASH_QIALIFIED_EXPRESSION = new JetNodeType("HASH_QIALIFIED_EXPRESSION", JetHashQualifiedExpression.class); JetNodeType HASH_QIALIFIED_EXPRESSION = new JetNodeType("HASH_QIALIFIED_EXPRESSION", JetHashQualifiedExpression.class);
JetNodeType SAFE_ACCESS_EXPRESSION = new JetNodeType("SAFE_ACCESS_EXPRESSION", JetSafeQualifiedExpression.class); JetNodeType SAFE_ACCESS_EXPRESSION = new JetNodeType("SAFE_ACCESS_EXPRESSION", JetSafeQualifiedExpression.class);
JetNodeType MATCH_BLOCK = new JetNodeType("MATCH_BLOCK", JetMatchBlock.class);
JetNodeType MATCH_ENTRY = new JetNodeType("MATCH_ENTRY"); JetNodeType MATCH_ENTRY = new JetNodeType("MATCH_ENTRY");
JetNodeType PATTERN = new JetNodeType("PATTERN"); JetNodeType PATTERN = new JetNodeType("PATTERN");
JetNodeType TUPLE_PATTERN = new JetNodeType("TUPLE_PATTERN"); JetNodeType TUPLE_PATTERN = new JetNodeType("TUPLE_PATTERN");
@@ -82,6 +82,11 @@ public class JetExpressionParsing extends AbstractJetParsing {
public void parseRightHandSide(JetExpressionParsing parsing) { public void parseRightHandSide(JetExpressionParsing parsing) {
parsing.parseMatchBlock(); parsing.parseMatchBlock();
} }
@Override
public JetNodeType getProductType() {
return MATCH_EXPRESSION;
}
}, },
// TODO: don't build a binary tree, build a tuple // TODO: don't build a binary tree, build a tuple
ARROW(JetTokens.ARROW), ARROW(JetTokens.ARROW),
@@ -403,6 +408,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
* "{" matchEntry+ "}" * "{" matchEntry+ "}"
*/ */
private void parseMatchBlock() { private void parseMatchBlock() {
PsiBuilder.Marker mark = mark();
expect(LBRACE, "Expecting '{' to open a match block"); expect(LBRACE, "Expecting '{' to open a match block");
while (!eof() && !at(RBRACE)) { while (!eof() && !at(RBRACE)) {
if (at(CASE_KEYWORD) || at(LBRACKET)) { if (at(CASE_KEYWORD) || at(LBRACKET)) {
@@ -412,6 +418,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
} }
} }
expect(RBRACE, "Expecting '}'"); expect(RBRACE, "Expecting '}'");
mark.done(MATCH_BLOCK);
} }
/* /*
@@ -0,0 +1,18 @@
package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
/**
* @author max
*/
public class JetMatchBlock extends JetElement {
public JetMatchBlock(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(JetVisitor visitor) {
visitor.visitMatchBlock(this);
}
}
@@ -0,0 +1,32 @@
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;
/**
* @author max
*/
public class JetMatchExpression extends JetExpression {
public JetMatchExpression(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(JetVisitor visitor) {
visitor.visitMatchExpression(this);
}
@NotNull
public JetExpression getTestedExpression() {
JetExpression left = findChildByClass(JetExpression.class);
assert left != null;
return left;
}
@Nullable
public JetMatchBlock getMatchBlock() {
return (JetMatchBlock) findChildByType(JetNodeTypes.MATCH_BLOCK);
}
}
@@ -317,4 +317,12 @@ public class JetVisitor extends PsiElementVisitor {
public void visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression) { public void visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression) {
visitExpression(expression); visitExpression(expression);
} }
public void visitMatchExpression(JetMatchExpression expression) {
visitExpression(expression);
}
public void visitMatchBlock(JetMatchBlock block) {
visitJetElement(block);
}
} }
+14 -7
View File
@@ -34,12 +34,13 @@ JetFile: Match.jet
FUNCTION_LITERAL FUNCTION_LITERAL
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
BODY BODY
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_ENTRY MATCH_ENTRY
@@ -88,22 +89,24 @@ JetFile: Match.jet
BLOCK BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -120,12 +123,13 @@ JetFile: Match.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -362,26 +366,29 @@ JetFile: Match.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
BINARY_EXPRESSION MATCH_EXPRESSION
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
+14 -7
View File
@@ -13,22 +13,24 @@ JetFile: Match_ERR.jet
BLOCK BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -44,12 +46,13 @@ JetFile: Match_ERR.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -65,12 +68,13 @@ JetFile: Match_ERR.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiErrorElement:Expecting 'case' to start pattern matching PsiErrorElement:Expecting 'case' to start pattern matching
@@ -92,12 +96,13 @@ JetFile: Match_ERR.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiErrorElement:Expecting 'case' to start pattern matching PsiErrorElement:Expecting 'case' to start pattern matching
@@ -107,13 +112,14 @@ JetFile: Match_ERR.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -163,6 +169,7 @@ JetFile: Match_ERR.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
+2 -1
View File
@@ -212,12 +212,13 @@ JetFile: NewlinesInParentheses.jet
PsiElement(IDENTIFIER)('d') PsiElement(IDENTIFIER)('d')
PsiElement(RBRACKET)(']') PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
+8 -4
View File
@@ -605,8 +605,8 @@ JetFile: Precedence.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BINARY_EXPRESSION MATCH_EXPRESSION
BINARY_EXPRESSION MATCH_EXPRESSION
BINARY_EXPRESSION BINARY_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b') PsiElement(IDENTIFIER)('b')
@@ -618,11 +618,13 @@ JetFile: Precedence.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
@@ -632,7 +634,7 @@ JetFile: Precedence.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BINARY_EXPRESSION MATCH_EXPRESSION
BINARY_EXPRESSION BINARY_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b') PsiElement(IDENTIFIER)('b')
@@ -644,6 +646,7 @@ JetFile: Precedence.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
@@ -660,12 +663,13 @@ JetFile: Precedence.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(ARROW)('->') PsiElement(ARROW)('->')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c') PsiElement(IDENTIFIER)('c')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
+2 -1
View File
@@ -72,12 +72,13 @@ JetFile: RootNamespace.jet
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e') PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
+10 -5
View File
@@ -380,7 +380,7 @@ JetFile: BinaryTree.jet
BOOLEAN_CONSTANT BOOLEAN_CONSTANT
PsiElement(false)('false') PsiElement(false)('false')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
CALL_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('compare') PsiElement(IDENTIFIER)('compare')
@@ -402,6 +402,7 @@ JetFile: BinaryTree.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -653,7 +654,7 @@ JetFile: BinaryTree.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
CALL_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('compare') PsiElement(IDENTIFIER)('compare')
@@ -675,6 +676,7 @@ JetFile: BinaryTree.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -831,7 +833,7 @@ JetFile: BinaryTree.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
CALL_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('compare') PsiElement(IDENTIFIER)('compare')
@@ -853,6 +855,7 @@ JetFile: BinaryTree.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -1197,7 +1200,7 @@ JetFile: BinaryTree.jet
NULL NULL
PsiElement(null)('null') PsiElement(null)('null')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
CALL_EXPRESSION CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('compare') PsiElement(IDENTIFIER)('compare')
@@ -1219,6 +1222,7 @@ JetFile: BinaryTree.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY
@@ -1309,12 +1313,13 @@ JetFile: BinaryTree.jet
BLOCK BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
BINARY_EXPRESSION MATCH_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('node') PsiElement(IDENTIFIER)('node')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(match)('match') PsiElement(match)('match')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
MATCH_BLOCK
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
MATCH_ENTRY MATCH_ENTRY