Soft keywords fixed

This commit is contained in:
Andrey Breslav
2010-12-21 18:46:49 +03:00
parent c614d1dadc
commit 4d54f704b9
13 changed files with 1295 additions and 142 deletions
@@ -13,9 +13,9 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
* @author abreslav
*/
/*package*/ class AbstractJetParsing {
protected final SemanticWitespaceAwarePsiBuilder myBuilder;
protected final SemanticWhitespaceAwarePsiBuilder myBuilder;
public AbstractJetParsing(SemanticWitespaceAwarePsiBuilder builder) {
public AbstractJetParsing(SemanticWhitespaceAwarePsiBuilder builder) {
this.myBuilder = builder;
}
@@ -12,7 +12,7 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
* @author abreslav
*/
public class JetExpressionParsing extends AbstractJetParsing {
public JetExpressionParsing(SemanticWitespaceAwarePsiBuilder builder) {
public JetExpressionParsing(SemanticWhitespaceAwarePsiBuilder builder) {
super(builder);
}
@@ -8,12 +8,11 @@ import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiParser;
import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetNodeTypes;
public class JetParser implements PsiParser {
@NotNull
public ASTNode parse(IElementType iElementType, PsiBuilder psiBuilder) {
new JetParsing(new SemanticWitespaceAwarePsiBuilder(psiBuilder)).parseFile();
new JetParsing(new SemanticWhitespaceAwarePsiBuilderImpl(psiBuilder)).parseFile();
return psiBuilder.getTreeBuilt();
}
}
@@ -40,7 +40,7 @@ public class JetParsing extends AbstractJetParsing {
private final JetExpressionParsing myExpressionParsing;
public JetParsing(SemanticWitespaceAwarePsiBuilder builder) {
public JetParsing(SemanticWhitespaceAwarePsiBuilder builder) {
super(builder);
this.myExpressionParsing = new JetExpressionParsing(builder);
}
@@ -300,8 +300,8 @@ public class JetParsing extends AbstractJetParsing {
while (!eof()) {
if (at(LBRACKET)) {
parseAttributeAnnotation();
} else if (MODIFIER_KEYWORDS.contains(tt())) {
advance();
} else if (atSet(MODIFIER_KEYWORDS)) {
advance(); // MODIFIER
}
else {
if (!parseModifierSoftKeyword()) break;
@@ -365,8 +365,8 @@ public class JetParsing extends AbstractJetParsing {
* ;
*/
private JetNodeType parseNamespaceBlock() {
assert at(NAMESPACE);
advance(); // NAMESPACE
assert at(NAMESPACE_KEYWORD);
advance(); // NAMESPACE_KEYWORD
if (at(LBRACE)) {
error("Expecting namespace name");
@@ -460,6 +460,8 @@ public class JetParsing extends AbstractJetParsing {
private void parseMemberDeclaration() {
PsiBuilder.Marker decl = mark();
parseModifierList();
IElementType keywordToken = tt();
JetNodeType declType = null;
if (keywordToken == CLASS_KEYWORD) {
@@ -490,7 +492,7 @@ public class JetParsing extends AbstractJetParsing {
}
if (declType == null) {
errorAndAdvance("Expecting namespace or top level declaration");
errorAndAdvance("Expecting member declaration");
decl.drop();
}
else {
@@ -610,17 +612,18 @@ public class JetParsing extends AbstractJetParsing {
TokenSet propertyNameFollow = TokenSet.create(COLON, EQ, LBRACE, EOL_OR_SEMICOLON);
int lastDot = findLastDotBefore(propertyNameFollow);
int lastDot = findLastBefore(TokenSet.create(DOT), propertyNameFollow, true);
if (lastDot == -1) {
parseAttributeList();
expect(IDENTIFIER, "Expecting property name or receiver type", propertyNameFollow);
}
else {
// The code below is NOT REENTRANT
myBuilder.setEOFPosition(lastDot);
parseTypeRef();
myBuilder.unSetEOFPosition();
createTruncatedBuilder(lastDot).parseTypeRef();
// // The code below is NOT REENTRANT
// myBuilder.setEOFPosition(lastDot);
// parseTypeRef();
// myBuilder.unSetEOFPosition();
expect(DOT, "Expecting '.' before a property name", propertyNameFollow);
expect(IDENTIFIER, "Expecting property name", propertyNameFollow);
@@ -661,6 +664,10 @@ public class JetParsing extends AbstractJetParsing {
return PROPERTY;
}
private JetParsing createTruncatedBuilder(int eofPosition) {
return new JetParsing(new TruncatedSemanticWhitespaceAwarePsiBuilder(myBuilder, eofPosition));
}
/*
* getter
* : modifiers
@@ -702,16 +709,17 @@ public class JetParsing extends AbstractJetParsing {
advance(); // FUN_KEYWORD
int lastDot = findLastDotBefore(TokenSet.create(LPAR));
int lastDot = findLastBefore(TokenSet.create(DOT), TokenSet.create(LPAR), true);
if (lastDot == -1) { // There's no explicit receiver type specified
parseAttributeList();
expect(IDENTIFIER, "Expecting function name or receiver type");
} else {
// The code below in NOT REENTRANT
myBuilder.setEOFPosition(lastDot);
parseTypeRef();
myBuilder.unSetEOFPosition();
createTruncatedBuilder(lastDot).parseTypeRef();
// // The code below in NOT REENTRANT
// myBuilder.setEOFPosition(lastDot);
// parseTypeRef();
// myBuilder.unSetEOFPosition();
TokenSet functionNameFollow = TokenSet.create(LT, LPAR, COLON, EQ);
expect(DOT, "Expecting '.' before a function name", functionNameFollow);
@@ -744,21 +752,22 @@ public class JetParsing extends AbstractJetParsing {
* Looks for a the last top-level (not inside any {} [] () <>) '.' occurring before a
* top-level occurrence of a token from the <code>stopSet</code>
*/
private int findLastDotBefore(TokenSet stopSet) {
private int findLastBefore(TokenSet lookFor, TokenSet stopAt, boolean dontStopRightAfterOccurrence) {
PsiBuilder.Marker currentPosition = mark();
int lastDot = -1;
int lastOccurrence = -1;
int openAngleBrackets = 0;
int openBraces = 0;
int openParentheses = 0;
int openBrackets = 0;
IElementType previousToken = null;
while (!eof()) {
if (atSet(stopSet)) {
if (atSet(stopAt)) {
if (openAngleBrackets == 0
&& openBrackets == 0
&& openBraces == 0
&& openParentheses == 0
&& previousToken != DOT) break;
&& (!dontStopRightAfterOccurrence
|| !lookFor.contains(previousToken))) break;
}
if (at(LPAR)) {
openParentheses++;
@@ -784,18 +793,18 @@ public class JetParsing extends AbstractJetParsing {
else if (at(RBRACKET)) {
openBrackets--;
}
else if (at(DOT)
else if (atSet(lookFor)
&& openAngleBrackets == 0
&& openBrackets == 0
&& openBraces == 0
&& openParentheses == 0) {
lastDot = myBuilder.getCurrentOffset();
lastOccurrence = myBuilder.getCurrentOffset();
}
previousToken = tt();
advance(); // skip token
}
currentPosition.rollbackTo();
return lastDot;
return lastOccurrence ;
}
/*
@@ -1025,13 +1034,20 @@ public class JetParsing extends AbstractJetParsing {
* ;
*/
private void parseTypeParameter() {
if (TYPE_PARAMETER_GT_RECOVERY_SET.contains(tt())) {
if (atSet(TYPE_PARAMETER_GT_RECOVERY_SET)) {
error("Type parameter declaration expected");
return;
}
PsiBuilder.Marker mark = mark();
parseModifierList();
int lastId = findLastBefore(TokenSet.create(IDENTIFIER), TokenSet.create(COMMA, GT, COLON), false);
createTruncatedBuilder(lastId).parseModifierList();
// // The code below is NOT REENTRANT
// myBuilder.setEOFPosition(lastId);
// parseModifierList();
// myBuilder.unSetEOFPosition();
expect(IDENTIFIER, "Type parameter name expected", TokenSet.EMPTY);
// TODO : other constraints
@@ -1226,7 +1242,13 @@ public class JetParsing extends AbstractJetParsing {
if (!at(RPAR)) {
while (true) {
if (at(COMMA)) errorAndAdvance("Expecting a parameter declaration");
if (at(COMMA)) {
errorAndAdvance("Expecting a parameter declaration");
}
else if (at(RPAR)) {
error("Expecting a parameter declaration");
break;
}
if (!parseValueParameter()) {
if (isFunctionTypeContents) {
parseModifierList(); // lazy, out, ref
@@ -1251,7 +1273,13 @@ public class JetParsing extends AbstractJetParsing {
private boolean parseValueParameter() {
PsiBuilder.Marker parameter = mark();
parseModifierList();
int lastId = findLastBefore(TokenSet.create(IDENTIFIER), TokenSet.create(COMMA, RPAR, COLON), false);
createTruncatedBuilder(lastId).parseModifierList();
// // The code below is NOT REENTRANT
// myBuilder.setEOFPosition(lastId);
// parseModifierList();
// myBuilder.unSetEOFPosition();
if (!parseFunctionParameterRest()) {
parameter.rollbackTo();
return false;
@@ -0,0 +1,10 @@
package org.jetbrains.jet.lang.parsing;
import com.intellij.lang.PsiBuilder;
/**
* @author abreslav
*/
public interface SemanticWhitespaceAwarePsiBuilder extends PsiBuilder {
boolean eolInLastWhitespace();
}
@@ -8,7 +8,7 @@ import com.intellij.psi.tree.IElementType;
/**
* @author abreslav
*/
public class SemanticWitespaceAwarePsiBuilder extends PsiBuilderAdapter {
public class SemanticWhitespaceAwarePsiBuilderImpl extends PsiBuilderAdapter implements SemanticWhitespaceAwarePsiBuilder {
private final WhitespaceSkippedCallback myWhitespaceSkippedCallback = new WhitespaceSkippedCallback() {
public void onSkip(IElementType type, int start, int end) {
CharSequence whitespace = getOriginalText();
@@ -23,9 +23,8 @@ public class SemanticWitespaceAwarePsiBuilder extends PsiBuilderAdapter {
};
private boolean myEOLInLastWhitespace;
private int myEOFPosition = -1;
public SemanticWitespaceAwarePsiBuilder(final PsiBuilder delegate) {
public SemanticWhitespaceAwarePsiBuilderImpl(final PsiBuilder delegate) {
super(delegate);
delegate.setWhitespaceSkippedCallback(myWhitespaceSkippedCallback);
}
@@ -36,33 +35,8 @@ public class SemanticWitespaceAwarePsiBuilder extends PsiBuilderAdapter {
super.advanceLexer();
}
@Override
public boolean eolInLastWhitespace() {
return myEOLInLastWhitespace;
}
@Override
public boolean eof() {
if (super.eof()) return true;
return myEOFPosition >= 0 && getCurrentOffset() >= myEOFPosition;
}
@Override
public String getTokenText() {
if (eof()) return null;
return super.getTokenText();
}
@Override
public IElementType getTokenType() {
if (eof()) return null;
return super.getTokenType();
}
public void setEOFPosition(int myEOFPosition) {
this.myEOFPosition = myEOFPosition;
}
public void unSetEOFPosition() {
this.myEOFPosition = -1;
}
}
@@ -0,0 +1,44 @@
package org.jetbrains.jet.lang.parsing;
import com.intellij.psi.tree.IElementType;
/**
* @author abreslav
*/
public class TruncatedSemanticWhitespaceAwarePsiBuilder extends PsiBuilderAdapter implements SemanticWhitespaceAwarePsiBuilder {
private final SemanticWhitespaceAwarePsiBuilder myBuilder;
private final int myEOFPosition;
public TruncatedSemanticWhitespaceAwarePsiBuilder(SemanticWhitespaceAwarePsiBuilder myBuilder, int eofPosition) {
super(myBuilder);
this.myBuilder = myBuilder;
this.myEOFPosition = eofPosition;
}
@Override
public boolean eolInLastWhitespace() {
return myBuilder.eolInLastWhitespace();
}
@Override
public boolean eof() {
if (super.eof()) return true;
return myEOFPosition >= 0 && getCurrentOffset() >= myEOFPosition;
}
@Override
public String getTokenText() {
if (eof()) return null;
return super.getTokenText();
}
@Override
public IElementType getTokenType() {
if (eof()) return null;
return super.getTokenType();
}
}
+2 -3
View File
@@ -53,10 +53,9 @@ JetFile: FunctionTypes_ERR.jet
USER_TYPE
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
PsiErrorElement:Expecting a parameter declaration
<empty list>
PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
+28 -31
View File
@@ -17,35 +17,32 @@ in
out
ref
class Bar<abstract
virtual
enum
open
attribute
override
virtual
abstract
private
protected
public
internal
lazy
in
out
ref T> {
abstract
virtual
enum
open
attribute
override
virtual
abstract
private
protected
public
internal
in
lazy
out
ref
virtual
enum
open
attribute
override
virtual
abstract
private
protected
public
internal
lazy
in
out
ref T> {
val abstract
val virtual
val enum
val open
val attribute
val override
val virtual
val abstract
val private
val protected
val public
val internal
val lazy
}
+80 -47
View File
@@ -51,35 +51,35 @@ JetFile: SimpleModifiers.jet
TYPE_PARAMETER
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(enum)('enum')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(private)('private')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(protected)('protected')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(public)('public')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(internal)('internal')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(lazy)('lazy')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(in)('in')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(out)('out')
PsiWhiteSpace('\n')
PsiWhiteSpace('\n ')
PsiElement(ref)('ref')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('T')
@@ -87,37 +87,70 @@ JetFile: SimpleModifiers.jet
PsiWhiteSpace(' ')
CLASS_BODY
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('enum')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('attribute')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('override')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace('\n')
PsiElement(in)('in')
PsiWhiteSpace('\n')
PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace('\n')
PsiElement(out)('out')
PsiWhiteSpace('\n')
PsiElement(ref)('ref')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('enum')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('override')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
+115
View File
@@ -0,0 +1,115 @@
namespace foo.bar.goo
import foo
public protected private internal
abstract
virtual
enum
open
attribute
override
virtual
abstract
private
protected
public
internal
lazy
in
out
ref
class Bar<abstract, abstract enum : T, lazy virtual,
public protected private internal abstract
virtual
enum
open
attribute
override
virtual
abstract
private
protected
public
internal
lazy open
> wraps (a : B) : A by b {
public protected private internal val abstract
val virtual
val enum
val open
val attribute
val override
val virtual
val abstract
val private
val protected
val public
val internal
val lazy
val wraps
val import
val where
val by
val get
val set
val public
val private
val protected
val internal {
get() = a
set(S : s) {}
}
public protected private internal
fun abstract () : abstract
fun virtual () : virtual
fun enum () : enum
fun open () : open
fun attribute () : attribute
fun override () : override
fun virtual () : virtual
fun abstract () : abstract
fun private () : private
fun protected () : protected
fun public () : public
fun internal () : internal
fun lazy () : lazy
fun wraps () : wraps
fun import () : import
fun where () : where
fun by () : by
fun get () : get
fun set () : set
fun public () : public
fun private () : private
fun protected () : protected
fun internal () : internal
fun test(
abstract : t,
virtual : t,
enum : t,
open : t,
attribute : t,
override : t,
virtual : t,
abstract : t,
private : t,
protected : t,
public : t,
internal : t,
lazy : t,
wraps : t,
import : t,
where : t,
by : t,
get : t,
set : t,
public : t,
private : t,
protected : t,
internal : t
)
}
+953
View File
@@ -0,0 +1,953 @@
JetFile: SoftKeywords.jet
NAMESPACE
PsiElement(namespace)('namespace')
PsiWhiteSpace(' ')
NAMESPACE_NAME
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('bar')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('goo')
PsiWhiteSpace('\n\n')
IMPORT_DIRECTIVE
PsiElement(import)('import')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace('\n\n')
CLASS
MODIFIER_LIST
PsiElement(public)('public')
PsiWhiteSpace(' ')
PsiElement(protected)('protected')
PsiWhiteSpace(' ')
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(internal)('internal')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiWhiteSpace('\n')
PsiElement(enum)('enum')
PsiWhiteSpace('\n')
PsiElement(open)('open')
PsiWhiteSpace('\n')
PsiElement(attribute)('attribute')
PsiWhiteSpace('\n')
PsiElement(override)('override')
PsiWhiteSpace('\n')
PsiElement(virtual)('virtual')
PsiWhiteSpace('\n')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n')
PsiElement(private)('private')
PsiWhiteSpace('\n')
PsiElement(protected)('protected')
PsiWhiteSpace('\n')
PsiElement(public)('public')
PsiWhiteSpace('\n')
PsiElement(internal)('internal')
PsiWhiteSpace('\n')
PsiElement(lazy)('lazy')
PsiWhiteSpace('\n')
PsiElement(in)('in')
PsiWhiteSpace('\n')
PsiElement(out)('out')
PsiWhiteSpace('\n')
PsiElement(ref)('ref')
PsiWhiteSpace('\n ')
PsiElement(class)('class')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Bar')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('abstract')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
MODIFIER_LIST
PsiElement(abstract)('abstract')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('enum')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('T')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
MODIFIER_LIST
PsiElement(lazy)('lazy')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
TYPE_PARAMETER
MODIFIER_LIST
PsiElement(public)('public')
PsiWhiteSpace(' ')
PsiElement(protected)('protected')
PsiWhiteSpace(' ')
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(internal)('internal')
PsiWhiteSpace(' ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiWhiteSpace('\n ')
PsiElement(enum)('enum')
PsiWhiteSpace('\n ')
PsiElement(open)('open')
PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute')
PsiWhiteSpace('\n ')
PsiElement(override)('override')
PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual')
PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract')
PsiWhiteSpace('\n ')
PsiElement(private)('private')
PsiWhiteSpace('\n ')
PsiElement(protected)('protected')
PsiWhiteSpace('\n ')
PsiElement(public)('public')
PsiWhiteSpace('\n ')
PsiElement(internal)('internal')
PsiWhiteSpace('\n ')
PsiElement(lazy)('lazy')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiElement(wraps)('wraps')
PsiWhiteSpace(' ')
PRIMARY_CONSTRUCTOR_PARAMETERS_LIST
PsiElement(LPAR)('(')
PRIMARY_CONSTRUCTOR_PARAMETER
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('B')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
DELEGATION_SPECIFIER_LIST
DELEGATION_SPECIFIER
DELEGATOR_BY
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('A')
PsiWhiteSpace(' ')
PsiElement(by)('by')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('b')
PsiWhiteSpace(' ')
CLASS_BODY
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
PROPERTY
MODIFIER_LIST
PsiElement(public)('public')
PsiWhiteSpace(' ')
PsiElement(protected)('protected')
PsiWhiteSpace(' ')
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(internal)('internal')
PsiWhiteSpace(' ')
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('enum')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('override')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('wraps')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('import')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('where')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('by')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('get')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('set')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace(' ')
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
PROPERTY_GETTER
PsiElement(get)('get')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('a')
PsiWhiteSpace('\n ')
PROPERTY_GETTER
PsiElement(set)('set')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('S')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('s')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(LBRACE)('{')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
FUN
MODIFIER_LIST
PsiElement(public)('public')
PsiWhiteSpace(' ')
PsiElement(protected)('protected')
PsiWhiteSpace(' ')
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(internal)('internal')
PsiWhiteSpace('\n ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('enum')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('enum')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('attribute')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('override')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('override')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('wraps')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('wraps')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('import')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('import')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('where')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('where')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('by')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('by')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('get')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('get')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('set')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('set')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace('\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace('\n\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('test')
TYPE_PARAMETER_LIST
<empty list>
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('enum')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('open')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('attribute')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('override')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('abstract')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('lazy')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('wraps')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('import')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('where')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('by')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('get')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('set')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('public')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('private')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('protected')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiElement(COMMA)(',')
PsiWhiteSpace('\n ')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('internal')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
PsiElement(IDENTIFIER)('t')
PsiWhiteSpace('\n ')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}')
@@ -52,4 +52,5 @@ public class JetParsingTest extends ParsingTestCase {
public void testFunctions_ERR() throws Exception {doTest(true);}
public void testExtensions() throws Exception {doTest(true);}
public void testExtensions_ERR() throws Exception {doTest(true);}
public void testSoftKeywords() throws Exception {doTest(true);}
}