Soft keywords fixed
This commit is contained in:
@@ -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();
|
||||||
|
}
|
||||||
+3
-29
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+44
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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)(':')
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)('}')
|
||||||
@@ -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
|
||||||
|
)
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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);}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user