Added JetLabeledExpression; added support to parser
This commit is contained in:
@@ -128,6 +128,7 @@ public interface JetNodeTypes {
|
|||||||
JetNodeType IS_EXPRESSION = new JetNodeType("IS_EXPRESSION", JetIsExpression.class); // TODO:
|
JetNodeType IS_EXPRESSION = new JetNodeType("IS_EXPRESSION", JetIsExpression.class); // TODO:
|
||||||
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 LABELED_EXPRESSION = new JetNodeType("LABELED_EXPRESSION", JetLabeledExpression.class);
|
||||||
JetNodeType CALL_EXPRESSION = new JetNodeType("CALL_EXPRESSION", JetCallExpression.class);
|
JetNodeType CALL_EXPRESSION = new JetNodeType("CALL_EXPRESSION", JetCallExpression.class);
|
||||||
JetNodeType ARRAY_ACCESS_EXPRESSION = new JetNodeType("ARRAY_ACCESS_EXPRESSION", JetArrayAccessExpression.class);
|
JetNodeType ARRAY_ACCESS_EXPRESSION = new JetNodeType("ARRAY_ACCESS_EXPRESSION", JetArrayAccessExpression.class);
|
||||||
JetNodeType INDICES = new JetNodeType("INDICES", JetContainerNode.class);
|
JetNodeType INDICES = new JetNodeType("INDICES", JetContainerNode.class);
|
||||||
|
|||||||
@@ -319,6 +319,17 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
expression.drop();
|
expression.drop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* label prefixExpression
|
||||||
|
*/
|
||||||
|
private void parseLabeledExpression() {
|
||||||
|
assert _at(LABEL_IDENTIFIER);
|
||||||
|
PsiBuilder.Marker expression = mark();
|
||||||
|
parseLabel();
|
||||||
|
parsePrefixExpression();
|
||||||
|
expression.done(LABELED_EXPRESSION);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* operation? prefixExpression
|
* operation? prefixExpression
|
||||||
*/
|
*/
|
||||||
@@ -338,7 +349,11 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
myBuilder.disableJoiningComplexTokens();
|
myBuilder.disableJoiningComplexTokens();
|
||||||
if (atSet(Precedence.PREFIX.getOperations())) {
|
if (at(LABEL_IDENTIFIER)) {
|
||||||
|
myBuilder.restoreJoiningComplexTokensState();
|
||||||
|
parseLabeledExpression();
|
||||||
|
}
|
||||||
|
else if (atSet(Precedence.PREFIX.getOperations())) {
|
||||||
PsiBuilder.Marker expression = mark();
|
PsiBuilder.Marker expression = mark();
|
||||||
|
|
||||||
parseOperationReference();
|
parseOperationReference();
|
||||||
@@ -501,7 +516,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
while ((at(LBRACE) || at(LABEL_IDENTIFIER) && lookahead(1) == LBRACE)) {
|
while ((at(LBRACE) || at(LABEL_IDENTIFIER) && lookahead(1) == LBRACE)) {
|
||||||
if (!at(LBRACE)) {
|
if (!at(LBRACE)) {
|
||||||
assert _at(LABEL_IDENTIFIER);
|
assert _at(LABEL_IDENTIFIER);
|
||||||
parsePrefixExpression();
|
parseLabeledExpression();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
parseFunctionLiteral();
|
parseFunctionLiteral();
|
||||||
@@ -1399,11 +1414,11 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
else if (at(LABEL_IDENTIFIER) && lookahead(1) == LBRACE ) {
|
else if (at(LABEL_IDENTIFIER) && lookahead(1) == LBRACE ) {
|
||||||
PsiBuilder.Marker mark = mark();
|
PsiBuilder.Marker mark = mark();
|
||||||
|
|
||||||
parseOperationReference();
|
parseLabel();
|
||||||
|
|
||||||
parseFunctionLiteral(true);
|
parseFunctionLiteral(true);
|
||||||
|
|
||||||
mark.done(PREFIX_EXPRESSION);
|
mark.done(LABELED_EXPRESSION);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
parseExpression();
|
parseExpression();
|
||||||
@@ -1554,7 +1569,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
|
|
||||||
advance(); // BREAK_KEYWORD or CONTINUE_KEYWORD
|
advance(); // BREAK_KEYWORD or CONTINUE_KEYWORD
|
||||||
|
|
||||||
parseLabel();
|
parseLabelOnTheSameLine();
|
||||||
|
|
||||||
marker.done(type);
|
marker.done(type);
|
||||||
}
|
}
|
||||||
@@ -1569,7 +1584,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
|
|
||||||
advance(); // RETURN_KEYWORD
|
advance(); // RETURN_KEYWORD
|
||||||
|
|
||||||
parseLabel();
|
parseLabelOnTheSameLine();
|
||||||
|
|
||||||
if (atSet(EXPRESSION_FIRST) && !at(EOL_OR_SEMICOLON)) parseExpression();
|
if (atSet(EXPRESSION_FIRST) && !at(EOL_OR_SEMICOLON)) parseExpression();
|
||||||
|
|
||||||
@@ -1577,18 +1592,26 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* labels
|
* label?
|
||||||
|
*/
|
||||||
|
private void parseLabelOnTheSameLine() {
|
||||||
|
if (!eol() && at(LABEL_IDENTIFIER)) {
|
||||||
|
parseLabel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* label
|
||||||
*/
|
*/
|
||||||
private void parseLabel() {
|
private void parseLabel() {
|
||||||
if (!eol() && at(LABEL_IDENTIFIER)) {
|
assert _at(LABEL_IDENTIFIER);
|
||||||
PsiBuilder.Marker labelWrap = mark();
|
PsiBuilder.Marker labelWrap = mark();
|
||||||
|
|
||||||
PsiBuilder.Marker mark = mark();
|
PsiBuilder.Marker mark = mark();
|
||||||
advance(); // LABEL_IDENTIFIER
|
advance(); // LABEL_IDENTIFIER
|
||||||
mark.done(LABEL_REFERENCE);
|
mark.done(LABEL_REFERENCE);
|
||||||
|
|
||||||
labelWrap.done(LABEL_QUALIFIER);
|
labelWrap.done(LABEL_QUALIFIER);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1683,7 +1706,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
advance(); // THIS_KEYWORD
|
advance(); // THIS_KEYWORD
|
||||||
thisReference.done(REFERENCE_EXPRESSION);
|
thisReference.done(REFERENCE_EXPRESSION);
|
||||||
|
|
||||||
parseLabel();
|
parseLabelOnTheSameLine();
|
||||||
|
|
||||||
mark.done(THIS_EXPRESSION);
|
mark.done(THIS_EXPRESSION);
|
||||||
}
|
}
|
||||||
@@ -1717,7 +1740,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
}
|
}
|
||||||
myBuilder.restoreNewlinesState();
|
myBuilder.restoreNewlinesState();
|
||||||
}
|
}
|
||||||
parseLabel();
|
parseLabelOnTheSameLine();
|
||||||
|
|
||||||
mark.done(SUPER_EXPRESSION);
|
mark.done(SUPER_EXPRESSION);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2014 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.jet.lang.psi;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2010-2014 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
import com.intellij.lang.ASTNode;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class JetLabeledExpression extends JetExpressionWithLabel {
|
||||||
|
|
||||||
|
public JetLabeledExpression(@NotNull ASTNode node) {
|
||||||
|
super(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable @IfNotParsed
|
||||||
|
public JetExpression getBaseExpression() {
|
||||||
|
return findChildByClass(JetExpression.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -199,9 +199,10 @@ JetFile: ControlStructures.kt
|
|||||||
BREAK
|
BREAK
|
||||||
PsiElement(break)('break')
|
PsiElement(break)('break')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
PREFIX_EXPRESSION
|
LABELED_EXPRESSION
|
||||||
OPERATION_REFERENCE
|
LABEL_QUALIFIER
|
||||||
PsiElement(LABEL_IDENTIFIER)('@la')
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@la')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
BREAK
|
BREAK
|
||||||
PsiElement(break)('break')
|
PsiElement(break)('break')
|
||||||
@@ -213,9 +214,10 @@ JetFile: ControlStructures.kt
|
|||||||
CONTINUE
|
CONTINUE
|
||||||
PsiElement(continue)('continue')
|
PsiElement(continue)('continue')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
PREFIX_EXPRESSION
|
LABELED_EXPRESSION
|
||||||
OPERATION_REFERENCE
|
LABEL_QUALIFIER
|
||||||
PsiElement(LABEL_IDENTIFIER)('@la')
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@la')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
CONTINUE
|
CONTINUE
|
||||||
PsiElement(continue)('continue')
|
PsiElement(continue)('continue')
|
||||||
|
|||||||
@@ -15,23 +15,14 @@ fun foo() {
|
|||||||
|
|
||||||
return@@
|
return@@
|
||||||
return@@ 1
|
return@@ 1
|
||||||
return@@ (@@ 1)
|
|
||||||
return@@ @@ 1
|
|
||||||
|
|
||||||
@a return@@
|
|
||||||
@a return@@ 1
|
|
||||||
@a return@@ (@@ 1)
|
|
||||||
@a return@@ @@ 1
|
|
||||||
|
|
||||||
break
|
break
|
||||||
break@
|
break@
|
||||||
break@a
|
break@a
|
||||||
break@@
|
|
||||||
|
|
||||||
continue
|
continue
|
||||||
continue@
|
continue@
|
||||||
continue@a
|
continue@a
|
||||||
continue@@
|
|
||||||
|
|
||||||
a.filter @f{
|
a.filter @f{
|
||||||
if (1) return
|
if (1) return
|
||||||
@@ -43,18 +34,11 @@ fun foo() {
|
|||||||
return@ true
|
return@ true
|
||||||
}
|
}
|
||||||
|
|
||||||
a.filter @@{
|
|
||||||
if (1) return
|
|
||||||
return@@ true
|
|
||||||
}
|
|
||||||
|
|
||||||
this
|
this
|
||||||
this@
|
this@
|
||||||
this@a
|
this@a
|
||||||
this@@
|
|
||||||
|
|
||||||
super<A>
|
super<A>
|
||||||
super<A>@
|
super<A>@
|
||||||
super<A>@a
|
super<A>@a
|
||||||
super<A>@@
|
|
||||||
}
|
}
|
||||||
+120
-282
@@ -26,247 +26,147 @@ JetFile: Labels.kt
|
|||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PARENTHESIZED
|
PARENTHESIZED
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
PREFIX_EXPRESSION
|
LABELED_EXPRESSION
|
||||||
OPERATION_REFERENCE
|
LABEL_QUALIFIER
|
||||||
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace('\n\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
PsiErrorElement:Label must be named
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
PsiErrorElement:Label must be named
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
PsiErrorElement:Label must be named
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PARENTHESIZED
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
LABELED_EXPRESSION
|
||||||
|
PsiErrorElement:Label must be named
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
PsiErrorElement:Label must be named
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
LABELED_EXPRESSION
|
||||||
|
PsiErrorElement:Label must be named
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
|
PsiWhiteSpace('\n\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
LABEL_QUALIFIER
|
||||||
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
LABEL_QUALIFIER
|
||||||
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
LABEL_QUALIFIER
|
||||||
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
PARENTHESIZED
|
||||||
|
PsiElement(LPAR)('(')
|
||||||
|
LABELED_EXPRESSION
|
||||||
|
LABEL_QUALIFIER
|
||||||
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
INTEGER_CONSTANT
|
||||||
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
|
PsiElement(RPAR)(')')
|
||||||
|
PsiWhiteSpace('\n ')
|
||||||
|
RETURN
|
||||||
|
PsiElement(return)('return')
|
||||||
|
LABEL_QUALIFIER
|
||||||
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
|
PsiWhiteSpace(' ')
|
||||||
|
LABELED_EXPRESSION
|
||||||
|
LABEL_QUALIFIER
|
||||||
|
LABEL_REFERENCE
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PARENTHESIZED
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INTEGER_CONSTANT
|
INTEGER_CONSTANT
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
PsiWhiteSpace('\n\n ')
|
PsiWhiteSpace('\n\n ')
|
||||||
RETURN
|
RETURN
|
||||||
PsiElement(return)('return')
|
PsiElement(return)('return')
|
||||||
LABEL_QUALIFIER
|
PsiErrorElement:Label must be named
|
||||||
LABEL_REFERENCE
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
LABELED_EXPRESSION
|
||||||
PsiWhiteSpace('\n ')
|
PsiErrorElement:Label must be named
|
||||||
RETURN
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
PsiElement(return)('return')
|
PsiWhiteSpace('\n ')
|
||||||
LABEL_QUALIFIER
|
RETURN
|
||||||
LABEL_REFERENCE
|
PsiElement(return)('return')
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
PsiErrorElement:Label must be named
|
||||||
PsiWhiteSpace(' ')
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
INTEGER_CONSTANT
|
LABELED_EXPRESSION
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
PsiErrorElement:Label must be named
|
||||||
PsiWhiteSpace('\n ')
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PARENTHESIZED
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PARENTHESIZED
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PARENTHESIZED
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
INTEGER_CONSTANT
|
INTEGER_CONSTANT
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
PsiElement(INTEGER_LITERAL)('1')
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
PsiWhiteSpace('\n\n ')
|
||||||
BREAK
|
BREAK
|
||||||
PsiElement(break)('break')
|
PsiElement(break)('break')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
BREAK
|
BREAK
|
||||||
PsiElement(break)('break')
|
PsiElement(break)('break')
|
||||||
LABEL_QUALIFIER
|
PsiErrorElement:Label must be named
|
||||||
LABEL_REFERENCE
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
BREAK
|
BREAK
|
||||||
PsiElement(break)('break')
|
PsiElement(break)('break')
|
||||||
LABEL_QUALIFIER
|
LABEL_QUALIFIER
|
||||||
LABEL_REFERENCE
|
LABEL_REFERENCE
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
BREAK
|
|
||||||
PsiElement(break)('break')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
PsiWhiteSpace('\n\n ')
|
||||||
CONTINUE
|
CONTINUE
|
||||||
PsiElement(continue)('continue')
|
PsiElement(continue)('continue')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
CONTINUE
|
CONTINUE
|
||||||
PsiElement(continue)('continue')
|
PsiElement(continue)('continue')
|
||||||
LABEL_QUALIFIER
|
PsiErrorElement:Label must be named
|
||||||
LABEL_REFERENCE
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
CONTINUE
|
CONTINUE
|
||||||
PsiElement(continue)('continue')
|
PsiElement(continue)('continue')
|
||||||
LABEL_QUALIFIER
|
LABEL_QUALIFIER
|
||||||
LABEL_REFERENCE
|
LABEL_REFERENCE
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
CONTINUE
|
|
||||||
PsiElement(continue)('continue')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
PsiWhiteSpace('\n\n ')
|
||||||
DOT_QUALIFIED_EXPRESSION
|
DOT_QUALIFIED_EXPRESSION
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
@@ -276,9 +176,10 @@ JetFile: Labels.kt
|
|||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('filter')
|
PsiElement(IDENTIFIER)('filter')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PREFIX_EXPRESSION
|
LABELED_EXPRESSION
|
||||||
OPERATION_REFERENCE
|
LABEL_QUALIFIER
|
||||||
PsiElement(LABEL_IDENTIFIER)('@f')
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@f')
|
||||||
FUNCTION_LITERAL_EXPRESSION
|
FUNCTION_LITERAL_EXPRESSION
|
||||||
FUNCTION_LITERAL
|
FUNCTION_LITERAL
|
||||||
PsiElement(LBRACE)('{')
|
PsiElement(LBRACE)('{')
|
||||||
@@ -316,9 +217,9 @@ JetFile: Labels.kt
|
|||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('filter')
|
PsiElement(IDENTIFIER)('filter')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PREFIX_EXPRESSION
|
LABELED_EXPRESSION
|
||||||
OPERATION_REFERENCE
|
PsiErrorElement:Label must be named
|
||||||
PsiElement(AT)('@')
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
FUNCTION_LITERAL_EXPRESSION
|
FUNCTION_LITERAL_EXPRESSION
|
||||||
FUNCTION_LITERAL
|
FUNCTION_LITERAL
|
||||||
PsiElement(LBRACE)('{')
|
PsiElement(LBRACE)('{')
|
||||||
@@ -339,49 +240,8 @@ JetFile: Labels.kt
|
|||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
RETURN
|
RETURN
|
||||||
PsiElement(return)('return')
|
PsiElement(return)('return')
|
||||||
LABEL_QUALIFIER
|
PsiErrorElement:Label must be named
|
||||||
LABEL_REFERENCE
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
BOOLEAN_CONSTANT
|
|
||||||
PsiElement(true)('true')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
PsiElement(RBRACE)('}')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
|
||||||
DOT_QUALIFIED_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('a')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
CALL_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('filter')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PREFIX_EXPRESSION
|
|
||||||
OPERATION_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
FUNCTION_LITERAL_EXPRESSION
|
|
||||||
FUNCTION_LITERAL
|
|
||||||
PsiElement(LBRACE)('{')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
BLOCK
|
|
||||||
IF
|
|
||||||
PsiElement(if)('if')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(LPAR)('(')
|
|
||||||
CONDITION
|
|
||||||
INTEGER_CONSTANT
|
|
||||||
PsiElement(INTEGER_LITERAL)('1')
|
|
||||||
PsiElement(RPAR)(')')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
THEN
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
RETURN
|
|
||||||
PsiElement(return)('return')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
BOOLEAN_CONSTANT
|
BOOLEAN_CONSTANT
|
||||||
PsiElement(true)('true')
|
PsiElement(true)('true')
|
||||||
@@ -395,9 +255,8 @@ JetFile: Labels.kt
|
|||||||
THIS_EXPRESSION
|
THIS_EXPRESSION
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(this)('this')
|
PsiElement(this)('this')
|
||||||
LABEL_QUALIFIER
|
PsiErrorElement:Label must be named
|
||||||
LABEL_REFERENCE
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
THIS_EXPRESSION
|
THIS_EXPRESSION
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
@@ -405,13 +264,6 @@ JetFile: Labels.kt
|
|||||||
LABEL_QUALIFIER
|
LABEL_QUALIFIER
|
||||||
LABEL_REFERENCE
|
LABEL_REFERENCE
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
THIS_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(this)('this')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace('\n\n ')
|
PsiWhiteSpace('\n\n ')
|
||||||
SUPER_EXPRESSION
|
SUPER_EXPRESSION
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
@@ -432,9 +284,8 @@ JetFile: Labels.kt
|
|||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('A')
|
PsiElement(IDENTIFIER)('A')
|
||||||
PsiElement(GT)('>')
|
PsiElement(GT)('>')
|
||||||
LABEL_QUALIFIER
|
PsiErrorElement:Label must be named
|
||||||
LABEL_REFERENCE
|
PsiElement(LABEL_IDENTIFIER)('@')
|
||||||
PsiElement(AT)('@')
|
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
SUPER_EXPRESSION
|
SUPER_EXPRESSION
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
@@ -448,18 +299,5 @@ JetFile: Labels.kt
|
|||||||
LABEL_QUALIFIER
|
LABEL_QUALIFIER
|
||||||
LABEL_REFERENCE
|
LABEL_REFERENCE
|
||||||
PsiElement(LABEL_IDENTIFIER)('@a')
|
PsiElement(LABEL_IDENTIFIER)('@a')
|
||||||
PsiWhiteSpace('\n ')
|
|
||||||
SUPER_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(super)('super')
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
TYPE_REFERENCE
|
|
||||||
USER_TYPE
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('A')
|
|
||||||
PsiElement(GT)('>')
|
|
||||||
LABEL_QUALIFIER
|
|
||||||
LABEL_REFERENCE
|
|
||||||
PsiElement(ATAT)('@@')
|
|
||||||
PsiWhiteSpace('\n')
|
PsiWhiteSpace('\n')
|
||||||
PsiElement(RBRACE)('}')
|
PsiElement(RBRACE)('}')
|
||||||
@@ -701,9 +701,10 @@ JetFile: SimpleExpressions.kt
|
|||||||
BREAK
|
BREAK
|
||||||
PsiElement(break)('break')
|
PsiElement(break)('break')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
PREFIX_EXPRESSION
|
LABELED_EXPRESSION
|
||||||
OPERATION_REFERENCE
|
LABEL_QUALIFIER
|
||||||
PsiElement(LABEL_IDENTIFIER)('@la')
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@la')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
BREAK
|
BREAK
|
||||||
PsiElement(break)('break')
|
PsiElement(break)('break')
|
||||||
@@ -715,9 +716,10 @@ JetFile: SimpleExpressions.kt
|
|||||||
CONTINUE
|
CONTINUE
|
||||||
PsiElement(continue)('continue')
|
PsiElement(continue)('continue')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
PREFIX_EXPRESSION
|
LABELED_EXPRESSION
|
||||||
OPERATION_REFERENCE
|
LABEL_QUALIFIER
|
||||||
PsiElement(LABEL_IDENTIFIER)('@la')
|
LABEL_REFERENCE
|
||||||
|
PsiElement(LABEL_IDENTIFIER)('@la')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
CONTINUE
|
CONTINUE
|
||||||
PsiElement(continue)('continue')
|
PsiElement(continue)('continue')
|
||||||
|
|||||||
Reference in New Issue
Block a user