JetFile: BinaryHeap.kt PACKAGE_DIRECTIVE CLASS PsiElement(class)('class') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('BinaryHeap') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') DELEGATION_SPECIFIER_LIST DELEGATOR_SUPER_CLASS TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('IPriorityQueue') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace(' ') CLASS_BODY PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') PROPERTY MODIFIER_LIST PsiElement(private)('private') PsiWhiteSpace(' ') PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('data') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('IMutableList') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace('\n ') PROPERTY MODIFIER_LIST PsiElement(private)('private') PsiWhiteSpace(' ') PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('compare') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Comparison') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace('\n\n') PsiComment(EOL_COMMENT)('// this(data : IIterable, compare : Comparison = naturalOrder) {') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('// this.compare = compare') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('// this.data = ArrayList(data)') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('//// siftDown(* this.data.size / 2 .. 0)') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('//') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('// for (val i in data.size / 2 .. 0) {') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('// siftDown(i)') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('// }') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('//') PsiWhiteSpace('\n') PsiComment(EOL_COMMENT)('// }') PsiWhiteSpace('\n\n ') PsiComment(EOL_COMMENT)('//this(compare : Comparison) {') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('// this.compare = compare') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('// this.data = ArrayList()') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('//}') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('//') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('//this() {') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('// this.data = ArrayList()') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('// Assert(T is IComparable)') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('// this.comparator = naturalOrder') PsiWhiteSpace('\n ') PsiComment(EOL_COMMENT)('//}') PsiWhiteSpace('\n\n ') FUN MODIFIER_LIST PsiElement(override)('override') PsiWhiteSpace(' ') PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('extract') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') IF PsiElement(if)('if') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION DOT_QUALIFIED_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('isEmpty') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') THEN THROW PsiElement(throw)('throw') PsiWhiteSpace(' ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('UnderflowException') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('swap') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('0') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_ARGUMENT DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('lastIndex') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('remove') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('lastIndex') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('siftDown') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('0') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ') FUN MODIFIER_LIST PsiElement(override)('override') PsiWhiteSpace(' ') PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('add') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('item') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('add') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('item') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('siftUp') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('lastItem') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ') FUN MODIFIER_LIST PsiElement(private)('private') PsiWhiteSpace(' ') PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('siftDown') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('index') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') PROPERTY PsiElement(var)('var') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('current') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('index') PsiWhiteSpace('\n ') WHILE PsiElement(while)('while') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('left') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('exists') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BODY BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') PROPERTY PsiElement(var)('var') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('min') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiWhiteSpace('\n ') IF PsiElement(if)('if') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION BINARY_EXPRESSION DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('left') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('value') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(LT)('<') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('min') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('value') PsiElement(RPAR)(')') PsiWhiteSpace(' ') THEN BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('min') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQ)('=') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('left') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') IF PsiElement(if)('if') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION BINARY_EXPRESSION DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('right') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('exists') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(ANDAND)('&&') PsiWhiteSpace(' ') BINARY_EXPRESSION DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('right') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('value') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(LT)('<') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('min') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('value') PsiElement(RPAR)(')') PsiWhiteSpace(' ') THEN BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('min') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQ)('=') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('right') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') IF PsiElement(if)('if') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('min') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQEQ)('==') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(RPAR)(')') PsiWhiteSpace(' ') THEN BREAK PsiElement(break)('break') PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('swap') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('min') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_ARGUMENT REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('min') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ') FUN MODIFIER_LIST PsiElement(private)('private') PsiWhiteSpace(' ') PsiElement(fun)('fun') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('siftUp') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('index') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') IF PsiElement(if)('if') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION PREFIX_EXPRESSION OPERATION_REFERENCE PsiElement(EXCL)('!') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('exists') PsiElement(RPAR)(')') PsiWhiteSpace(' ') THEN RETURN PsiElement(return)('return') PsiWhiteSpace('\n ') PROPERTY PsiElement(var)('var') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('current') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('index') PsiWhiteSpace('\n ') WHILE PsiElement(while)('while') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('parent') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('exists') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BODY BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') IF PsiElement(if)('if') PsiWhiteSpace(' ') PsiElement(LPAR)('(') CONDITION BINARY_EXPRESSION DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('value') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(LT)('<') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('parent') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('value') PsiElement(RPAR)(')') PsiWhiteSpace(' ') THEN BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('swap') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_ARGUMENT DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('parent') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQ)('=') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('current') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('parent') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n ') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('parent') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiWhiteSpace('\n ') PROPERTY_ACCESSOR PsiElement(get)('get') PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') BINARY_EXPRESSION PARENTHESIZED PsiElement(LPAR)('(') BINARY_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(MINUS)('-') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiElement(RPAR)(')') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(DIV)('/') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace('\n\n\n ') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('left') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiWhiteSpace('\n ') PROPERTY_ACCESSOR PsiElement(get)('get') PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') BINARY_EXPRESSION BINARY_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(MUL)('*') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(PLUS)('+') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1') PsiWhiteSpace('\n\n\n ') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('right') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiWhiteSpace('\n ') PROPERTY_ACCESSOR PsiElement(get)('get') PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') BINARY_EXPRESSION BINARY_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(MUL)('*') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(PLUS)('+') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('2') PsiWhiteSpace('\n\n\n ') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('value') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('foo') PsiElement(DOT)('.') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('bar') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace('\n ') PROPERTY_ACCESSOR PsiElement(get)('get') PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') ARRAY_ACCESS_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') INDICES PsiElement(LBRACKET)('[') THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiElement(RBRACKET)(']') PsiWhiteSpace('\n ') PROPERTY_ACCESSOR PsiElement(set)('set') PsiElement(LPAR)('(') VALUE_PARAMETER_LIST VALUE_PARAMETER PsiElement(IDENTIFIER)('it') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') BINARY_EXPRESSION REFERENCE_EXPRESSION PsiElement(FIELD_IDENTIFIER)('$value') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('it') PsiWhiteSpace('\n ') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n\n ') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('exists') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Boolean') PsiWhiteSpace('\n ') PROPERTY_ACCESSOR PsiElement(get)('get') PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') BINARY_EXPRESSION PARENTHESIZED PsiElement(LPAR)('(') BINARY_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(LT)('<') PsiWhiteSpace(' ') DOT_QUALIFIED_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('data') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('size') PsiElement(RPAR)(')') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(ANDAND)('&&') PsiWhiteSpace(' ') PARENTHESIZED PsiElement(LPAR)('(') BINARY_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(GTEQ)('>=') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('0') PsiElement(RPAR)(')') PsiWhiteSpace('\n\n ') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_PARAMETER_LIST PsiElement(LT)('<') TYPE_PARAMETER PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('compareTo') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('other') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') CALL_EXPRESSION REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('compare') VALUE_ARGUMENT_LIST PsiElement(LPAR)('(') VALUE_ARGUMENT THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_ARGUMENT REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('other') PsiElement(RPAR)(')') PsiWhiteSpace('\n\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') FUN PsiElement(fun)('fun') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('IMutableList') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('swap') VALUE_PARAMETER_LIST PsiElement(LPAR)('(') VALUE_PARAMETER PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(COMMA)(',') PsiWhiteSpace(' ') VALUE_PARAMETER PsiElement(IDENTIFIER)('b') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiElement(RPAR)(')') PsiWhiteSpace(' ') BLOCK PsiElement(LBRACE)('{') PsiWhiteSpace('\n ') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('t') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') ARRAY_ACCESS_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') INDICES PsiElement(LBRACKET)('[') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(RBRACKET)(']') PsiWhiteSpace('\n ') BINARY_EXPRESSION ARRAY_ACCESS_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') INDICES PsiElement(LBRACKET)('[') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('a') PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQ)('=') PsiWhiteSpace(' ') ARRAY_ACCESS_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') INDICES PsiElement(LBRACKET)('[') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RBRACKET)(']') PsiWhiteSpace('\n ') BINARY_EXPRESSION ARRAY_ACCESS_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') INDICES PsiElement(LBRACKET)('[') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('b') PsiElement(RBRACKET)(']') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(EQ)('=') PsiWhiteSpace(' ') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('t') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') PsiWhiteSpace('\n\n') PROPERTY PsiElement(val)('val') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('IList') TYPE_ARGUMENT_LIST PsiElement(LT)('<') TYPE_PROJECTION TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('T') PsiElement(GT)('>') PsiElement(DOT)('.') PsiElement(IDENTIFIER)('lastIndex') PsiWhiteSpace(' ') PsiElement(COLON)(':') PsiWhiteSpace(' ') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('Int') PsiWhiteSpace('\n ') PROPERTY_ACCESSOR PsiElement(get)('get') PsiElement(LPAR)('(') PsiElement(RPAR)(')') PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') BINARY_EXPRESSION DOT_QUALIFIED_EXPRESSION THIS_EXPRESSION REFERENCE_EXPRESSION PsiElement(this)('this') PsiElement(DOT)('.') REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('size') PsiWhiteSpace(' ') OPERATION_REFERENCE PsiElement(MINUS)('-') PsiWhiteSpace(' ') INTEGER_CONSTANT PsiElement(INTEGER_LITERAL)('1')