Proper parsing for binary operations with type RHS.
This commit is contained in:
@@ -47,19 +47,19 @@ public interface JetNodeTypes {
|
|||||||
JetNodeType TYPE_REFERENCE = new JetNodeType("TYPE_REFERENCE", JetTypeReference.class);
|
JetNodeType TYPE_REFERENCE = new JetNodeType("TYPE_REFERENCE", JetTypeReference.class);
|
||||||
JetNodeType LABELED_TUPLE_ENTRY = new JetNodeType("LABELED_TUPLE_ENTRY");
|
JetNodeType LABELED_TUPLE_ENTRY = new JetNodeType("LABELED_TUPLE_ENTRY");
|
||||||
|
|
||||||
JetNodeType USER_TYPE = new JetNodeType("USER_TYPE", JetUserType.class);
|
JetNodeType USER_TYPE = new JetNodeType("USER_TYPE", JetUserType.class);
|
||||||
JetNodeType TUPLE_TYPE = new JetNodeType("TUPLE_TYPE", JetTupleType.class);
|
JetNodeType TUPLE_TYPE = new JetNodeType("TUPLE_TYPE", JetTupleType.class);
|
||||||
JetNodeType FUNCTION_TYPE = new JetNodeType("FUNCTION_TYPE", JetFunctionType.class);
|
JetNodeType FUNCTION_TYPE = new JetNodeType("FUNCTION_TYPE", JetFunctionType.class);
|
||||||
JetNodeType SELF_TYPE = new JetNodeType("SELF_TYPE", JetSelfType.class);
|
JetNodeType SELF_TYPE = new JetNodeType("SELF_TYPE", JetSelfType.class);
|
||||||
|
|
||||||
JetNodeType DECOMPOSER_PROPERTY_LIST = new JetNodeType("DECOMPOSER_PROPERTY_LIST", JetDecomposerPropertyList.class);
|
JetNodeType DECOMPOSER_PROPERTY_LIST = new JetNodeType("DECOMPOSER_PROPERTY_LIST", JetDecomposerPropertyList.class);
|
||||||
// TODO: review
|
// TODO: review
|
||||||
JetNodeType RECEIVER_TYPE_ATTRIBUTES = new JetNodeType("RECEIVER_TYPE_ATTRIBUTES");
|
JetNodeType RECEIVER_TYPE_ATTRIBUTES = new JetNodeType("RECEIVER_TYPE_ATTRIBUTES");
|
||||||
JetNodeType PROPERTY_ACCESSOR = new JetNodeType("PROPERTY_ACCESSOR", JetPropertyAccessor.class);
|
JetNodeType PROPERTY_ACCESSOR = new JetNodeType("PROPERTY_ACCESSOR", JetPropertyAccessor.class);
|
||||||
JetNodeType INITIALIZER_LIST = new JetNodeType("INITIALIZER_LIST", JetInitializerList.class);
|
JetNodeType INITIALIZER_LIST = new JetNodeType("INITIALIZER_LIST", JetInitializerList.class);
|
||||||
JetNodeType THIS_CALL = new JetNodeType("THIS_CALL", JetDelegatorToThisCall.class);
|
JetNodeType THIS_CALL = new JetNodeType("THIS_CALL", JetDelegatorToThisCall.class);
|
||||||
JetNodeType TYPE_CONSTRAINT_LIST = new JetNodeType("TYPE_CONSTRAINT_LIST", JetTypeConstraintList.class);
|
JetNodeType TYPE_CONSTRAINT_LIST = new JetNodeType("TYPE_CONSTRAINT_LIST", JetTypeConstraintList.class);
|
||||||
JetNodeType TYPE_CONSTRAINT = new JetNodeType("TYPE_CONSTRAINT", JetTypeConstraint.class);
|
JetNodeType TYPE_CONSTRAINT = new JetNodeType("TYPE_CONSTRAINT", JetTypeConstraint.class);
|
||||||
|
|
||||||
// TODO: Not sure if we need separate NT for each kind of constants
|
// TODO: Not sure if we need separate NT for each kind of constants
|
||||||
JetNodeType NULL = new JetNodeType("NULL", JetConstantExpression.class);
|
JetNodeType NULL = new JetNodeType("NULL", JetConstantExpression.class);
|
||||||
@@ -97,6 +97,7 @@ public interface JetNodeTypes {
|
|||||||
JetNodeType REFERENCE_EXPRESSION = new JetNodeType("REFERENCE_EXPRESSION", JetReferenceExpression.class);
|
JetNodeType REFERENCE_EXPRESSION = new JetNodeType("REFERENCE_EXPRESSION", JetReferenceExpression.class);
|
||||||
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 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);
|
||||||
|
|||||||
@@ -61,7 +61,18 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
RANGE(JetTokens.RANGE),
|
RANGE(JetTokens.RANGE),
|
||||||
SIMPLE_NAME(IDENTIFIER),
|
SIMPLE_NAME(IDENTIFIER),
|
||||||
ELVIS(JetTokens.ELVIS),
|
ELVIS(JetTokens.ELVIS),
|
||||||
NAMED_INFIX_OR_TYPE(IN_KEYWORD, NOT_IN, IS_KEYWORD, NOT_IS, AS_KEYWORD, COLON),
|
WITH_TYPE_RHS(IS_KEYWORD, NOT_IS, AS_KEYWORD, COLON) {
|
||||||
|
@Override
|
||||||
|
public void parseRightHandSide(JetExpressionParsing parsing) {
|
||||||
|
parsing.myJetParsing.parseTypeRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JetNodeType getProductType() {
|
||||||
|
return BINARY_WITH_TYPE;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
NAMED_INFIX(IN_KEYWORD, NOT_IN),
|
||||||
COMPARISON(LT, GT, LTEQ, GTEQ),
|
COMPARISON(LT, GT, LTEQ, GTEQ),
|
||||||
EQUALITY(EQEQ, EXCLEQ, EQEQEQ, EXCLEQEQEQ),
|
EQUALITY(EQEQ, EXCLEQ, EQEQEQ, EXCLEQEQEQ),
|
||||||
CONJUNCTION(ANDAND),
|
CONJUNCTION(ANDAND),
|
||||||
@@ -101,6 +112,10 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
parseHigherPrecedence(parsing);
|
parseHigherPrecedence(parsing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JetNodeType getProductType() {
|
||||||
|
return BINARY_EXPRESSION;
|
||||||
|
}
|
||||||
|
|
||||||
public final TokenSet getOperations() {
|
public final TokenSet getOperations() {
|
||||||
return operations;
|
return operations;
|
||||||
}
|
}
|
||||||
@@ -146,7 +161,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
|
|||||||
while (!myBuilder.newlineBeforeCurrentToken() && atSet(precedence.getOperations())) {
|
while (!myBuilder.newlineBeforeCurrentToken() && atSet(precedence.getOperations())) {
|
||||||
advance(); // operation
|
advance(); // operation
|
||||||
precedence.parseRightHandSide(this);
|
precedence.parseRightHandSide(this);
|
||||||
expression.done(BINARY_EXPRESSION);
|
expression.done(precedence.getProductType());
|
||||||
expression = expression.precede();
|
expression = expression.precede();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package org.jetbrains.jet.lang.psi;
|
||||||
|
|
||||||
|
import com.intellij.lang.ASTNode;
|
||||||
|
import com.intellij.psi.PsiElement;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.lexer.JetToken;
|
||||||
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author max
|
||||||
|
*/
|
||||||
|
public class JetBinaryExpressionWithTypeRHS extends JetExpression {
|
||||||
|
public JetBinaryExpressionWithTypeRHS(@NotNull ASTNode node) {
|
||||||
|
super(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void accept(JetVisitor visitor) {
|
||||||
|
visitor.visitBinaryWithTypeRHSExpression(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public JetExpression getLeft() {
|
||||||
|
JetExpression left = findChildByClass(JetExpression.class);
|
||||||
|
assert left != null;
|
||||||
|
return left;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JetTypeReference getRight() {
|
||||||
|
ASTNode node = getOperationTokenNode();
|
||||||
|
while (node != null) {
|
||||||
|
PsiElement psi = node.getPsi();
|
||||||
|
if (psi instanceof JetTypeReference) {
|
||||||
|
return (JetTypeReference) psi;
|
||||||
|
}
|
||||||
|
node = node.getTreeNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public ASTNode getOperationTokenNode() {
|
||||||
|
ASTNode operationNode = getNode().findChildByType(JetTokens.OPERATIONS);
|
||||||
|
assert operationNode != null;
|
||||||
|
return operationNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JetToken getOperationSign() {
|
||||||
|
return (JetToken) getOperationTokenNode().getElementType();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -313,4 +313,8 @@ public class JetVisitor extends PsiElementVisitor {
|
|||||||
public void visitSelfType(JetSelfType type) {
|
public void visitSelfType(JetSelfType type) {
|
||||||
visitTypeElement(type);
|
visitTypeElement(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void visitBinaryWithTypeRHSExpression(JetBinaryExpressionWithTypeRHS expression) {
|
||||||
|
visitExpression(expression);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ fun foo() {
|
|||||||
1 foo 2 ?: 1 bar 3
|
1 foo 2 ?: 1 bar 3
|
||||||
a b c d e f g
|
a b c d e f g
|
||||||
a ?: b in b?: c
|
a ?: b in b?: c
|
||||||
a : b < b : c
|
// TODO a : b < b : c
|
||||||
a < b == b > c
|
a < b == b > c
|
||||||
a != b && c
|
a != b && c
|
||||||
a || b && c
|
a || b && c
|
||||||
|
|||||||
@@ -516,26 +516,7 @@ JetFile: Precedence.jet
|
|||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('c')
|
PsiElement(IDENTIFIER)('c')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
BINARY_EXPRESSION
|
PsiComment(EOL_COMMENT)('// TODO a : b < b : c')
|
||||||
BINARY_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('a')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('b')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(LT)('<')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
BINARY_EXPRESSION
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('b')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
PsiElement(COLON)(':')
|
|
||||||
PsiWhiteSpace(' ')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('c')
|
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
BINARY_EXPRESSION
|
BINARY_EXPRESSION
|
||||||
BINARY_EXPRESSION
|
BINARY_EXPRESSION
|
||||||
|
|||||||
@@ -673,14 +673,15 @@ JetFile: Properties.jet
|
|||||||
VALUE_ARGUMENT_LIST
|
VALUE_ARGUMENT_LIST
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
VALUE_ARGUMENT
|
VALUE_ARGUMENT
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('int')
|
PsiElement(IDENTIFIER)('int')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(COLON)(':')
|
PsiElement(COLON)(':')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
REFERENCE_EXPRESSION
|
TYPE_REFERENCE
|
||||||
PsiElement(IDENTIFIER)('x')
|
USER_TYPE
|
||||||
|
PsiElement(IDENTIFIER)('x')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(EQ)('=')
|
PsiElement(EQ)('=')
|
||||||
|
|||||||
@@ -65,21 +65,21 @@ JetFile: ThisType.jet
|
|||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(by)('by')
|
PsiElement(by)('by')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('foo')
|
PsiElement(IDENTIFIER)('foo')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
CALL_EXPRESSION
|
TYPE_REFERENCE
|
||||||
REFERENCE_EXPRESSION
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('List')
|
PsiElement(IDENTIFIER)('List')
|
||||||
TYPE_ARGUMENT_LIST
|
TYPE_ARGUMENT_LIST
|
||||||
PsiElement(LT)('<')
|
PsiElement(LT)('<')
|
||||||
TYPE_REFERENCE
|
TYPE_REFERENCE
|
||||||
SELF_TYPE
|
SELF_TYPE
|
||||||
PsiElement(This)('This')
|
PsiElement(This)('This')
|
||||||
PsiElement(GT)('>')
|
PsiElement(GT)('>')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
CLASS_BODY
|
CLASS_BODY
|
||||||
PsiElement(LBRACE)('{')
|
PsiElement(LBRACE)('{')
|
||||||
|
|||||||
@@ -342,7 +342,7 @@ JetFile: BitArith.jet
|
|||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(EQ)('=')
|
PsiElement(EQ)('=')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
PARENTHESIZED
|
PARENTHESIZED
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
BINARY_EXPRESSION
|
BINARY_EXPRESSION
|
||||||
@@ -380,8 +380,9 @@ JetFile: BitArith.jet
|
|||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
REFERENCE_EXPRESSION
|
TYPE_REFERENCE
|
||||||
PsiElement(IDENTIFIER)('Int')
|
USER_TYPE
|
||||||
|
PsiElement(IDENTIFIER)('Int')
|
||||||
PsiWhiteSpace('\n\n')
|
PsiWhiteSpace('\n\n')
|
||||||
FUN
|
FUN
|
||||||
PsiElement(fun)('fun')
|
PsiElement(fun)('fun')
|
||||||
|
|||||||
@@ -43,21 +43,20 @@ JetFile: HashMap.jet
|
|||||||
DOT_QIALIFIED_EXPRESSION
|
DOT_QIALIFIED_EXPRESSION
|
||||||
PARENTHESIZED
|
PARENTHESIZED
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
THIS_EXPRESSION
|
THIS_EXPRESSION
|
||||||
PsiElement(this)('this')
|
PsiElement(this)('this')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
DOT_QIALIFIED_EXPRESSION
|
TYPE_REFERENCE
|
||||||
DOT_QIALIFIED_EXPRESSION
|
USER_TYPE
|
||||||
REFERENCE_EXPRESSION
|
PsiElement(IDENTIFIER)('java')
|
||||||
PsiElement(IDENTIFIER)('java')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('lang')
|
|
||||||
PsiElement(DOT)('.')
|
PsiElement(DOT)('.')
|
||||||
REFERENCE_EXPRESSION
|
USER_TYPE
|
||||||
|
PsiElement(IDENTIFIER)('lang')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('Object')
|
PsiElement(IDENTIFIER)('Object')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiElement(DOT)('.')
|
PsiElement(DOT)('.')
|
||||||
@@ -66,21 +65,20 @@ JetFile: HashMap.jet
|
|||||||
VALUE_ARGUMENT_LIST
|
VALUE_ARGUMENT_LIST
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
VALUE_ARGUMENT
|
VALUE_ARGUMENT
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('other')
|
PsiElement(IDENTIFIER)('other')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
DOT_QIALIFIED_EXPRESSION
|
TYPE_REFERENCE
|
||||||
DOT_QIALIFIED_EXPRESSION
|
USER_TYPE
|
||||||
REFERENCE_EXPRESSION
|
PsiElement(IDENTIFIER)('java')
|
||||||
PsiElement(IDENTIFIER)('java')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('lang')
|
|
||||||
PsiElement(DOT)('.')
|
PsiElement(DOT)('.')
|
||||||
REFERENCE_EXPRESSION
|
USER_TYPE
|
||||||
|
PsiElement(IDENTIFIER)('lang')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('Object')
|
PsiElement(IDENTIFIER)('Object')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiWhiteSpace('\n')
|
PsiWhiteSpace('\n')
|
||||||
@@ -129,21 +127,20 @@ JetFile: HashMap.jet
|
|||||||
DOT_QIALIFIED_EXPRESSION
|
DOT_QIALIFIED_EXPRESSION
|
||||||
PARENTHESIZED
|
PARENTHESIZED
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
THIS_EXPRESSION
|
THIS_EXPRESSION
|
||||||
PsiElement(this)('this')
|
PsiElement(this)('this')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
DOT_QIALIFIED_EXPRESSION
|
TYPE_REFERENCE
|
||||||
DOT_QIALIFIED_EXPRESSION
|
USER_TYPE
|
||||||
REFERENCE_EXPRESSION
|
PsiElement(IDENTIFIER)('java')
|
||||||
PsiElement(IDENTIFIER)('java')
|
|
||||||
PsiElement(DOT)('.')
|
|
||||||
REFERENCE_EXPRESSION
|
|
||||||
PsiElement(IDENTIFIER)('lang')
|
|
||||||
PsiElement(DOT)('.')
|
PsiElement(DOT)('.')
|
||||||
REFERENCE_EXPRESSION
|
USER_TYPE
|
||||||
|
PsiElement(IDENTIFIER)('lang')
|
||||||
|
PsiElement(DOT)('.')
|
||||||
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('Object')
|
PsiElement(IDENTIFIER)('Object')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiElement(DOT)('.')
|
PsiElement(DOT)('.')
|
||||||
|
|||||||
@@ -356,14 +356,15 @@ JetFile: IOSamples.jet
|
|||||||
RETURN
|
RETURN
|
||||||
PsiElement(return)('return')
|
PsiElement(return)('return')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('next')
|
PsiElement(IDENTIFIER)('next')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
REFERENCE_EXPRESSION
|
TYPE_REFERENCE
|
||||||
PsiElement(IDENTIFIER)('Byte')
|
USER_TYPE
|
||||||
|
PsiElement(IDENTIFIER)('Byte')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
PsiElement(RBRACE)('}')
|
PsiElement(RBRACE)('}')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
|
|||||||
@@ -291,21 +291,21 @@ JetFile: BinaryHeap.jet
|
|||||||
VALUE_ARGUMENT_LIST
|
VALUE_ARGUMENT_LIST
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
VALUE_ARGUMENT
|
VALUE_ARGUMENT
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('T')
|
PsiElement(IDENTIFIER)('T')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(is)('is')
|
PsiElement(is)('is')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
CALL_EXPRESSION
|
TYPE_REFERENCE
|
||||||
REFERENCE_EXPRESSION
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('IComparable')
|
PsiElement(IDENTIFIER)('IComparable')
|
||||||
TYPE_ARGUMENT_LIST
|
TYPE_ARGUMENT_LIST
|
||||||
PsiElement(LT)('<')
|
PsiElement(LT)('<')
|
||||||
TYPE_REFERENCE
|
TYPE_REFERENCE
|
||||||
USER_TYPE
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('T')
|
PsiElement(IDENTIFIER)('T')
|
||||||
PsiElement(GT)('>')
|
PsiElement(GT)('>')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiWhiteSpace('\n ')
|
PsiWhiteSpace('\n ')
|
||||||
BINARY_EXPRESSION
|
BINARY_EXPRESSION
|
||||||
|
|||||||
@@ -145,21 +145,21 @@ JetFile: Comparison.jet
|
|||||||
DOT_QIALIFIED_EXPRESSION
|
DOT_QIALIFIED_EXPRESSION
|
||||||
PARENTHESIZED
|
PARENTHESIZED
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('a')
|
PsiElement(IDENTIFIER)('a')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
CALL_EXPRESSION
|
TYPE_REFERENCE
|
||||||
REFERENCE_EXPRESSION
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('Comparable')
|
PsiElement(IDENTIFIER)('Comparable')
|
||||||
TYPE_ARGUMENT_LIST
|
TYPE_ARGUMENT_LIST
|
||||||
PsiElement(LT)('<')
|
PsiElement(LT)('<')
|
||||||
TYPE_REFERENCE
|
TYPE_REFERENCE
|
||||||
USER_TYPE
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('Object')
|
PsiElement(IDENTIFIER)('Object')
|
||||||
PsiElement(GT)('>')
|
PsiElement(GT)('>')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiElement(DOT)('.')
|
PsiElement(DOT)('.')
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
@@ -167,21 +167,21 @@ JetFile: Comparison.jet
|
|||||||
VALUE_ARGUMENT_LIST
|
VALUE_ARGUMENT_LIST
|
||||||
PsiElement(LPAR)('(')
|
PsiElement(LPAR)('(')
|
||||||
VALUE_ARGUMENT
|
VALUE_ARGUMENT
|
||||||
BINARY_EXPRESSION
|
BINARY_WITH_TYPE
|
||||||
REFERENCE_EXPRESSION
|
REFERENCE_EXPRESSION
|
||||||
PsiElement(IDENTIFIER)('b')
|
PsiElement(IDENTIFIER)('b')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
PsiElement(as)('as')
|
PsiElement(as)('as')
|
||||||
PsiWhiteSpace(' ')
|
PsiWhiteSpace(' ')
|
||||||
CALL_EXPRESSION
|
TYPE_REFERENCE
|
||||||
REFERENCE_EXPRESSION
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('Comparable')
|
PsiElement(IDENTIFIER)('Comparable')
|
||||||
TYPE_ARGUMENT_LIST
|
TYPE_ARGUMENT_LIST
|
||||||
PsiElement(LT)('<')
|
PsiElement(LT)('<')
|
||||||
TYPE_REFERENCE
|
TYPE_REFERENCE
|
||||||
USER_TYPE
|
USER_TYPE
|
||||||
PsiElement(IDENTIFIER)('Object')
|
PsiElement(IDENTIFIER)('Object')
|
||||||
PsiElement(GT)('>')
|
PsiElement(GT)('>')
|
||||||
PsiElement(RPAR)(')')
|
PsiElement(RPAR)(')')
|
||||||
PsiWhiteSpace('\n\n')
|
PsiWhiteSpace('\n\n')
|
||||||
CLASS
|
CLASS
|
||||||
|
|||||||
Reference in New Issue
Block a user