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 * @author abreslav
*/ */
/*package*/ class AbstractJetParsing { /*package*/ class AbstractJetParsing {
protected final SemanticWitespaceAwarePsiBuilder myBuilder; protected final SemanticWhitespaceAwarePsiBuilder myBuilder;
public AbstractJetParsing(SemanticWitespaceAwarePsiBuilder builder) { public AbstractJetParsing(SemanticWhitespaceAwarePsiBuilder builder) {
this.myBuilder = builder; this.myBuilder = builder;
} }
@@ -12,7 +12,7 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
* @author abreslav * @author abreslav
*/ */
public class JetExpressionParsing extends AbstractJetParsing { public class JetExpressionParsing extends AbstractJetParsing {
public JetExpressionParsing(SemanticWitespaceAwarePsiBuilder builder) { public JetExpressionParsing(SemanticWhitespaceAwarePsiBuilder builder) {
super(builder); super(builder);
} }
@@ -8,12 +8,11 @@ import com.intellij.lang.PsiBuilder;
import com.intellij.lang.PsiParser; import com.intellij.lang.PsiParser;
import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.IElementType;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetNodeTypes;
public class JetParser implements PsiParser { public class JetParser implements PsiParser {
@NotNull @NotNull
public ASTNode parse(IElementType iElementType, PsiBuilder psiBuilder) { public ASTNode parse(IElementType iElementType, PsiBuilder psiBuilder) {
new JetParsing(new SemanticWitespaceAwarePsiBuilder(psiBuilder)).parseFile(); new JetParsing(new SemanticWhitespaceAwarePsiBuilderImpl(psiBuilder)).parseFile();
return psiBuilder.getTreeBuilt(); return psiBuilder.getTreeBuilt();
} }
} }
@@ -40,7 +40,7 @@ public class JetParsing extends AbstractJetParsing {
private final JetExpressionParsing myExpressionParsing; private final JetExpressionParsing myExpressionParsing;
public JetParsing(SemanticWitespaceAwarePsiBuilder builder) { public JetParsing(SemanticWhitespaceAwarePsiBuilder builder) {
super(builder); super(builder);
this.myExpressionParsing = new JetExpressionParsing(builder); this.myExpressionParsing = new JetExpressionParsing(builder);
} }
@@ -300,8 +300,8 @@ public class JetParsing extends AbstractJetParsing {
while (!eof()) { while (!eof()) {
if (at(LBRACKET)) { if (at(LBRACKET)) {
parseAttributeAnnotation(); parseAttributeAnnotation();
} else if (MODIFIER_KEYWORDS.contains(tt())) { } else if (atSet(MODIFIER_KEYWORDS)) {
advance(); advance(); // MODIFIER
} }
else { else {
if (!parseModifierSoftKeyword()) break; if (!parseModifierSoftKeyword()) break;
@@ -365,8 +365,8 @@ public class JetParsing extends AbstractJetParsing {
* ; * ;
*/ */
private JetNodeType parseNamespaceBlock() { private JetNodeType parseNamespaceBlock() {
assert at(NAMESPACE); assert at(NAMESPACE_KEYWORD);
advance(); // NAMESPACE advance(); // NAMESPACE_KEYWORD
if (at(LBRACE)) { if (at(LBRACE)) {
error("Expecting namespace name"); error("Expecting namespace name");
@@ -460,6 +460,8 @@ public class JetParsing extends AbstractJetParsing {
private void parseMemberDeclaration() { private void parseMemberDeclaration() {
PsiBuilder.Marker decl = mark(); PsiBuilder.Marker decl = mark();
parseModifierList();
IElementType keywordToken = tt(); IElementType keywordToken = tt();
JetNodeType declType = null; JetNodeType declType = null;
if (keywordToken == CLASS_KEYWORD) { if (keywordToken == CLASS_KEYWORD) {
@@ -490,7 +492,7 @@ public class JetParsing extends AbstractJetParsing {
} }
if (declType == null) { if (declType == null) {
errorAndAdvance("Expecting namespace or top level declaration"); errorAndAdvance("Expecting member declaration");
decl.drop(); decl.drop();
} }
else { else {
@@ -610,17 +612,18 @@ public class JetParsing extends AbstractJetParsing {
TokenSet propertyNameFollow = TokenSet.create(COLON, EQ, LBRACE, EOL_OR_SEMICOLON); 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) { if (lastDot == -1) {
parseAttributeList(); parseAttributeList();
expect(IDENTIFIER, "Expecting property name or receiver type", propertyNameFollow); expect(IDENTIFIER, "Expecting property name or receiver type", propertyNameFollow);
} }
else { else {
// The code below is NOT REENTRANT createTruncatedBuilder(lastDot).parseTypeRef();
myBuilder.setEOFPosition(lastDot); // // The code below is NOT REENTRANT
parseTypeRef(); // myBuilder.setEOFPosition(lastDot);
myBuilder.unSetEOFPosition(); // parseTypeRef();
// myBuilder.unSetEOFPosition();
expect(DOT, "Expecting '.' before a property name", propertyNameFollow); expect(DOT, "Expecting '.' before a property name", propertyNameFollow);
expect(IDENTIFIER, "Expecting property name", propertyNameFollow); expect(IDENTIFIER, "Expecting property name", propertyNameFollow);
@@ -661,6 +664,10 @@ public class JetParsing extends AbstractJetParsing {
return PROPERTY; return PROPERTY;
} }
private JetParsing createTruncatedBuilder(int eofPosition) {
return new JetParsing(new TruncatedSemanticWhitespaceAwarePsiBuilder(myBuilder, eofPosition));
}
/* /*
* getter * getter
* : modifiers * : modifiers
@@ -702,16 +709,17 @@ public class JetParsing extends AbstractJetParsing {
advance(); // FUN_KEYWORD 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 if (lastDot == -1) { // There's no explicit receiver type specified
parseAttributeList(); parseAttributeList();
expect(IDENTIFIER, "Expecting function name or receiver type"); expect(IDENTIFIER, "Expecting function name or receiver type");
} else { } else {
// The code below in NOT REENTRANT createTruncatedBuilder(lastDot).parseTypeRef();
myBuilder.setEOFPosition(lastDot); // // The code below in NOT REENTRANT
parseTypeRef(); // myBuilder.setEOFPosition(lastDot);
myBuilder.unSetEOFPosition(); // parseTypeRef();
// myBuilder.unSetEOFPosition();
TokenSet functionNameFollow = TokenSet.create(LT, LPAR, COLON, EQ); TokenSet functionNameFollow = TokenSet.create(LT, LPAR, COLON, EQ);
expect(DOT, "Expecting '.' before a function name", functionNameFollow); 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 * Looks for a the last top-level (not inside any {} [] () <>) '.' occurring before a
* top-level occurrence of a token from the <code>stopSet</code> * 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(); PsiBuilder.Marker currentPosition = mark();
int lastDot = -1; int lastOccurrence = -1;
int openAngleBrackets = 0; int openAngleBrackets = 0;
int openBraces = 0; int openBraces = 0;
int openParentheses = 0; int openParentheses = 0;
int openBrackets = 0; int openBrackets = 0;
IElementType previousToken = null; IElementType previousToken = null;
while (!eof()) { while (!eof()) {
if (atSet(stopSet)) { if (atSet(stopAt)) {
if (openAngleBrackets == 0 if (openAngleBrackets == 0
&& openBrackets == 0 && openBrackets == 0
&& openBraces == 0 && openBraces == 0
&& openParentheses == 0 && openParentheses == 0
&& previousToken != DOT) break; && (!dontStopRightAfterOccurrence
|| !lookFor.contains(previousToken))) break;
} }
if (at(LPAR)) { if (at(LPAR)) {
openParentheses++; openParentheses++;
@@ -784,18 +793,18 @@ public class JetParsing extends AbstractJetParsing {
else if (at(RBRACKET)) { else if (at(RBRACKET)) {
openBrackets--; openBrackets--;
} }
else if (at(DOT) else if (atSet(lookFor)
&& openAngleBrackets == 0 && openAngleBrackets == 0
&& openBrackets == 0 && openBrackets == 0
&& openBraces == 0 && openBraces == 0
&& openParentheses == 0) { && openParentheses == 0) {
lastDot = myBuilder.getCurrentOffset(); lastOccurrence = myBuilder.getCurrentOffset();
} }
previousToken = tt(); previousToken = tt();
advance(); // skip token advance(); // skip token
} }
currentPosition.rollbackTo(); currentPosition.rollbackTo();
return lastDot; return lastOccurrence ;
} }
/* /*
@@ -1025,13 +1034,20 @@ public class JetParsing extends AbstractJetParsing {
* ; * ;
*/ */
private void parseTypeParameter() { private void parseTypeParameter() {
if (TYPE_PARAMETER_GT_RECOVERY_SET.contains(tt())) { if (atSet(TYPE_PARAMETER_GT_RECOVERY_SET)) {
error("Type parameter declaration expected"); error("Type parameter declaration expected");
return; return;
} }
PsiBuilder.Marker mark = mark(); 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); expect(IDENTIFIER, "Type parameter name expected", TokenSet.EMPTY);
// TODO : other constraints // TODO : other constraints
@@ -1226,7 +1242,13 @@ public class JetParsing extends AbstractJetParsing {
if (!at(RPAR)) { if (!at(RPAR)) {
while (true) { 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 (!parseValueParameter()) {
if (isFunctionTypeContents) { if (isFunctionTypeContents) {
parseModifierList(); // lazy, out, ref parseModifierList(); // lazy, out, ref
@@ -1251,7 +1273,13 @@ public class JetParsing extends AbstractJetParsing {
private boolean parseValueParameter() { private boolean parseValueParameter() {
PsiBuilder.Marker parameter = mark(); 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()) { if (!parseFunctionParameterRest()) {
parameter.rollbackTo(); parameter.rollbackTo();
return false; 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 * @author abreslav
*/ */
public class SemanticWitespaceAwarePsiBuilder extends PsiBuilderAdapter { public class SemanticWhitespaceAwarePsiBuilderImpl extends PsiBuilderAdapter implements SemanticWhitespaceAwarePsiBuilder {
private final WhitespaceSkippedCallback myWhitespaceSkippedCallback = new WhitespaceSkippedCallback() { private final WhitespaceSkippedCallback myWhitespaceSkippedCallback = new WhitespaceSkippedCallback() {
public void onSkip(IElementType type, int start, int end) { public void onSkip(IElementType type, int start, int end) {
CharSequence whitespace = getOriginalText(); CharSequence whitespace = getOriginalText();
@@ -23,9 +23,8 @@ public class SemanticWitespaceAwarePsiBuilder extends PsiBuilderAdapter {
}; };
private boolean myEOLInLastWhitespace; private boolean myEOLInLastWhitespace;
private int myEOFPosition = -1;
public SemanticWitespaceAwarePsiBuilder(final PsiBuilder delegate) { public SemanticWhitespaceAwarePsiBuilderImpl(final PsiBuilder delegate) {
super(delegate); super(delegate);
delegate.setWhitespaceSkippedCallback(myWhitespaceSkippedCallback); delegate.setWhitespaceSkippedCallback(myWhitespaceSkippedCallback);
} }
@@ -36,33 +35,8 @@ public class SemanticWitespaceAwarePsiBuilder extends PsiBuilderAdapter {
super.advanceLexer(); super.advanceLexer();
} }
@Override
public boolean eolInLastWhitespace() { public boolean eolInLastWhitespace() {
return myEOLInLastWhitespace; 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 USER_TYPE
PsiElement(IDENTIFIER)('a') PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiErrorElement:Expecting a parameter declaration
<empty list>
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE
PsiErrorElement:Type expected
<empty list>
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
+28 -31
View File
@@ -17,35 +17,32 @@ in
out out
ref ref
class Bar<abstract class Bar<abstract
virtual virtual
enum enum
open open
attribute attribute
override override
virtual virtual
abstract abstract
private private
protected protected
public public
internal internal
lazy lazy
in in
out out
ref T> { ref T> {
abstract val abstract
virtual val virtual
enum val enum
open val open
attribute val attribute
override val override
virtual val virtual
abstract val abstract
private val private
protected val protected
public val public
internal val internal
in val lazy
lazy
out
ref
} }
+80 -47
View File
@@ -51,35 +51,35 @@ JetFile: SimpleModifiers.jet
TYPE_PARAMETER TYPE_PARAMETER
MODIFIER_LIST MODIFIER_LIST
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(virtual)('virtual')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(enum)('enum') PsiElement(enum)('enum')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(open)('open') PsiElement(open)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(attribute)('attribute') PsiElement(attribute)('attribute')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(override)('override') PsiElement(override)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(virtual)('virtual') PsiElement(virtual)('virtual')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(abstract)('abstract') PsiElement(abstract)('abstract')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(private)('private') PsiElement(private)('private')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(protected)('protected') PsiElement(protected)('protected')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(public)('public') PsiElement(public)('public')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(internal)('internal') PsiElement(internal)('internal')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(lazy)('lazy') PsiElement(lazy)('lazy')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(in)('in') PsiElement(in)('in')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(out)('out') PsiElement(out)('out')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(ref)('ref') PsiElement(ref)('ref')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
@@ -87,37 +87,70 @@ JetFile: SimpleModifiers.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('abstract') PROPERTY
PsiWhiteSpace('\n') PsiElement(val)('val')
PsiElement(IDENTIFIER)('virtual') PsiWhiteSpace(' ')
PsiWhiteSpace('\n') PsiElement(IDENTIFIER)('abstract')
PsiElement(IDENTIFIER)('enum') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n') PROPERTY
PsiElement(IDENTIFIER)('open') PsiElement(val)('val')
PsiWhiteSpace('\n') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('attribute') PsiElement(IDENTIFIER)('virtual')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('override') PROPERTY
PsiWhiteSpace('\n') PsiElement(val)('val')
PsiElement(IDENTIFIER)('virtual') PsiWhiteSpace(' ')
PsiWhiteSpace('\n') PsiElement(IDENTIFIER)('enum')
PsiElement(IDENTIFIER)('abstract') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n') PROPERTY
PsiElement(IDENTIFIER)('private') PsiElement(val)('val')
PsiWhiteSpace('\n') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('protected') PsiElement(IDENTIFIER)('open')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(IDENTIFIER)('public') PROPERTY
PsiWhiteSpace('\n') PsiElement(val)('val')
PsiElement(IDENTIFIER)('internal') PsiWhiteSpace(' ')
PsiWhiteSpace('\n') PsiElement(IDENTIFIER)('attribute')
PsiElement(in)('in') PsiWhiteSpace('\n ')
PsiWhiteSpace('\n') PROPERTY
PsiElement(IDENTIFIER)('lazy') PsiElement(val)('val')
PsiWhiteSpace('\n') PsiWhiteSpace(' ')
PsiElement(out)('out') PsiElement(IDENTIFIER)('override')
PsiWhiteSpace('\n') PsiWhiteSpace('\n ')
PsiElement(ref)('ref') 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') PsiWhiteSpace('\n')
PsiElement(RBRACE)('}') 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 testFunctions_ERR() throws Exception {doTest(true);}
public void testExtensions() throws Exception {doTest(true);} public void testExtensions() throws Exception {doTest(true);}
public void testExtensions_ERR() throws Exception {doTest(true);} public void testExtensions_ERR() throws Exception {doTest(true);}
public void testSoftKeywords() throws Exception {doTest(true);}
} }