JET-177 Drop extensions

This commit is contained in:
Andrey Breslav
2011-07-08 22:05:14 +04:00
parent c9b2242c2b
commit addfc6a421
27 changed files with 1140 additions and 1372 deletions
-1
View File
@@ -41,7 +41,6 @@ memberDeclaration
: function : function
: property : property
: class : class
: extension
: typedef : typedef
: anonymousInitializer : anonymousInitializer
; ;
+1 -2
View File
@@ -149,7 +149,6 @@ isRHS
declaration declaration
: function : function
: property : property
: extension
: class : class
: typedef : typedef
: object : object
@@ -259,7 +258,7 @@ arrayAccess
; ;
objectLiteral objectLiteral
: "object" ":" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a) : "object" ":" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object : F, A)
; ;
/* Factory methods: /* Factory methods:
+1 -7
View File
@@ -38,7 +38,6 @@ toplevelObject
: function : function
: property : property
: typedef : typedef
: extension
; ;
namespace namespace
@@ -55,9 +54,4 @@ bq. See [Namespaces]
[undocumented] [undocumented]
typedef typedef
: modifiers "type" SimpleName typeParameters? "=" type : modifiers "type" SimpleName typeParameters? "=" type
; ;
[undocumented]
extension
: modifiers "extension" SimpleName? typeParameters? "for" type classBody? // properties cannot be lazy, cannot have backing fields
;
@@ -14,7 +14,6 @@ public interface JetNodeTypes {
JetNodeType CLASS = new JetNodeType("CLASS", JetClass.class); JetNodeType CLASS = new JetNodeType("CLASS", JetClass.class);
JetNodeType PROPERTY = new JetNodeType("PROPERTY", JetProperty.class); JetNodeType PROPERTY = new JetNodeType("PROPERTY", JetProperty.class);
JetNodeType FUN = new JetNodeType("FUN", JetNamedFunction.class); JetNodeType FUN = new JetNodeType("FUN", JetNamedFunction.class);
JetNodeType EXTENSION = new JetNodeType("EXTENSION", JetExtension.class);
JetNodeType TYPEDEF = new JetNodeType("TYPEDEF", JetTypedef.class); JetNodeType TYPEDEF = new JetNodeType("TYPEDEF", JetTypedef.class);
JetNodeType OBJECT_DECLARATION = new JetNodeType("OBJECT_DECLARATION", JetObjectDeclaration.class); JetNodeType OBJECT_DECLARATION = new JetNodeType("OBJECT_DECLARATION", JetObjectDeclaration.class);
JetNodeType OBJECT_DECLARATION_NAME = new JetNodeType("OBJECT_DECLARATION_NAME", JetObjectDeclarationName.class); JetNodeType OBJECT_DECLARATION_NAME = new JetNodeType("OBJECT_DECLARATION_NAME", JetObjectDeclarationName.class);
@@ -21,7 +21,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create( private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
INTEGER_LITERAL, LONG_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL, INTEGER_LITERAL, LONG_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, STRING_LITERAL, RAW_STRING_LITERAL,
NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, NULL_KEYWORD, FUN_KEYWORD, FOR_KEYWORD, NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD,
CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, TRY_KEYWORD, ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD,
WHEN_KEYWORD, RBRACKET, RBRACE, RPAR, PLUSPLUS, MINUSMINUS, MUL, PLUS, MINUS, EXCL, DIV, PERC, LTEQ, WHEN_KEYWORD, RBRACKET, RBRACE, RPAR, PLUSPLUS, MINUSMINUS, MUL, PLUS, MINUS, EXCL, DIV, PERC, LTEQ,
@@ -79,7 +79,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
LBRACKET, // attribute LBRACKET, // attribute
FUN_KEYWORD, FUN_KEYWORD,
VAL_KEYWORD, VAR_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
EXTENSION_KEYWORD,
CLASS_KEYWORD, CLASS_KEYWORD,
TYPE_KEYWORD TYPE_KEYWORD
), ),
@@ -523,7 +522,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
else if (at(DO_KEYWORD)) { else if (at(DO_KEYWORD)) {
parseDoWhile(); parseDoWhile();
} }
else if (atSet(CLASS_KEYWORD, EXTENSION_KEYWORD, FUN_KEYWORD, VAL_KEYWORD, else if (atSet(CLASS_KEYWORD, FUN_KEYWORD, VAL_KEYWORD,
VAR_KEYWORD, TYPE_KEYWORD)) { VAR_KEYWORD, TYPE_KEYWORD)) {
parseLocalDeclaration(); parseLocalDeclaration();
} }
@@ -1143,9 +1142,6 @@ public class JetExpressionParsing extends AbstractJetParsing {
if (keywordToken == CLASS_KEYWORD) { if (keywordToken == CLASS_KEYWORD) {
declType = myJetParsing.parseClass(isEnum); declType = myJetParsing.parseClass(isEnum);
} }
else if (keywordToken == EXTENSION_KEYWORD) {
declType = myJetParsing.parseExtension();
}
else if (keywordToken == FUN_KEYWORD) { else if (keywordToken == FUN_KEYWORD) {
declType = myJetParsing.parseFunction(); declType = myJetParsing.parseFunction();
} }
@@ -1156,7 +1152,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
declType = myJetParsing.parseTypeDef(); declType = myJetParsing.parseTypeDef();
} }
else if (keywordToken == OBJECT_KEYWORD) { else if (keywordToken == OBJECT_KEYWORD) {
myJetParsing.parseObject(true); myJetParsing.parseObject(true, true);
declType = OBJECT_DECLARATION; declType = OBJECT_DECLARATION;
} }
return declType; return declType;
@@ -1558,7 +1554,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
public void parseObjectLiteral() { public void parseObjectLiteral() {
PsiBuilder.Marker literal = mark(); PsiBuilder.Marker literal = mark();
PsiBuilder.Marker declaration = mark(); PsiBuilder.Marker declaration = mark();
myJetParsing.parseObject(false); myJetParsing.parseObject(false, false); // Body is not optional because of foo(object : A, B)
declaration.done(OBJECT_DECLARATION); declaration.done(OBJECT_DECLARATION);
literal.done(OBJECT_LITERAL); literal.done(OBJECT_LITERAL);
} }
@@ -29,9 +29,9 @@ public class JetParsing extends AbstractJetParsing {
} }
private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD, private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD,
EXTENSION_KEYWORD, FUN_KEYWORD, VAL_KEYWORD, NAMESPACE_KEYWORD); FUN_KEYWORD, VAL_KEYWORD, NAMESPACE_KEYWORD);
private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD, private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_KEYWORD, CLASS_KEYWORD,
EXTENSION_KEYWORD, FUN_KEYWORD, VAL_KEYWORD, IDENTIFIER); FUN_KEYWORD, VAL_KEYWORD, IDENTIFIER);
private static final TokenSet CLASS_NAME_RECOVERY_SET = TokenSet.orSet(TokenSet.create(LT, WRAPS_KEYWORD, LPAR, COLON, LBRACE), TOPLEVEL_OBJECT_FIRST); private static final TokenSet CLASS_NAME_RECOVERY_SET = TokenSet.orSet(TokenSet.create(LT, WRAPS_KEYWORD, LPAR, COLON, LBRACE), TOPLEVEL_OBJECT_FIRST);
private static final TokenSet TYPE_PARAMETER_GT_RECOVERY_SET = TokenSet.create(WHERE_KEYWORD, WRAPS_KEYWORD, LPAR, COLON, LBRACE, GT); private static final TokenSet TYPE_PARAMETER_GT_RECOVERY_SET = TokenSet.create(WHERE_KEYWORD, WRAPS_KEYWORD, LPAR, COLON, LBRACE, GT);
@@ -230,9 +230,6 @@ public class JetParsing extends AbstractJetParsing {
else if (keywordToken == CLASS_KEYWORD) { else if (keywordToken == CLASS_KEYWORD) {
declType = parseClass(detector.isDetected()); declType = parseClass(detector.isDetected());
} }
else if (keywordToken == EXTENSION_KEYWORD) {
declType = parseExtension();
}
else if (keywordToken == FUN_KEYWORD) { else if (keywordToken == FUN_KEYWORD) {
declType = parseFunction(); declType = parseFunction();
} }
@@ -243,7 +240,7 @@ public class JetParsing extends AbstractJetParsing {
declType = parseTypeDef(); declType = parseTypeDef();
} }
else if (keywordToken == OBJECT_KEYWORD) { else if (keywordToken == OBJECT_KEYWORD) {
parseObject(true); parseObject(true, true);
declType = OBJECT_DECLARATION; declType = OBJECT_DECLARATION;
} }
@@ -573,9 +570,6 @@ public class JetParsing extends AbstractJetParsing {
declType = parseClass(isEnum); declType = parseClass(isEnum);
} }
} }
else if (keywordToken == EXTENSION_KEYWORD) {
declType = parseExtension();
}
else if (keywordToken == FUN_KEYWORD) { else if (keywordToken == FUN_KEYWORD) {
declType = parseFunction(); declType = parseFunction();
} }
@@ -589,7 +583,7 @@ public class JetParsing extends AbstractJetParsing {
declType = parseConstructor(); declType = parseConstructor();
} }
else if (keywordToken == OBJECT_KEYWORD) { else if (keywordToken == OBJECT_KEYWORD) {
parseObject(true); parseObject(true, true);
declType = OBJECT_DECLARATION; declType = OBJECT_DECLARATION;
} else if (keywordToken == LBRACE) { } else if (keywordToken == LBRACE) {
parseBlock(); parseBlock();
@@ -600,15 +594,15 @@ public class JetParsing extends AbstractJetParsing {
/* /*
* object * object
* : "object" SimpleName? ":" delegationSpecifier{","}? classBody // Cannot make class body optional: foo(object F, a) * : "object" SimpleName? ":" delegationSpecifier{","}? classBody?
* ; * ;
*/ */
public void parseObject(boolean declaration) { public void parseObject(boolean named, boolean optionalBody) {
assert _at(OBJECT_KEYWORD); assert _at(OBJECT_KEYWORD);
advance(); // OBJECT_KEYWORD advance(); // OBJECT_KEYWORD
if (declaration) { if (named) {
PsiBuilder.Marker propertyDeclaration = mark(); PsiBuilder.Marker propertyDeclaration = mark();
expect(IDENTIFIER, "Expecting object name", TokenSet.create(LBRACE)); expect(IDENTIFIER, "Expecting object name", TokenSet.create(LBRACE));
propertyDeclaration.done(OBJECT_DECLARATION_NAME); propertyDeclaration.done(OBJECT_DECLARATION_NAME);
@@ -619,7 +613,7 @@ public class JetParsing extends AbstractJetParsing {
} }
} }
if (declaration) { // Body is optional if (optionalBody) {
if (at(COLON)) { if (at(COLON)) {
advance(); // COLON advance(); // COLON
parseDelegationSpecifierList(); parseDelegationSpecifierList();
@@ -723,7 +717,7 @@ public class JetParsing extends AbstractJetParsing {
advance(); // CLASS_KEYWORD advance(); // CLASS_KEYWORD
final PsiBuilder.Marker objectDeclaration = mark(); final PsiBuilder.Marker objectDeclaration = mark();
parseObject(false); parseObject(false, true);
objectDeclaration.done(OBJECT_DECLARATION); objectDeclaration.done(OBJECT_DECLARATION);
return CLASS_OBJECT; return CLASS_OBJECT;
@@ -1031,34 +1025,6 @@ public class JetParsing extends AbstractJetParsing {
block.done(BLOCK); block.done(BLOCK);
} }
/*
* extension
* : modifiers "extension" SimpleName? typeParameters? "for" type classBody? // properties cannot be lazy, cannot have backing fields
* ;
*/
public JetNodeType parseExtension() {
assert _at(EXTENSION_KEYWORD);
advance(); // EXTENSION_KEYWORD
consumeIf(IDENTIFIER);
parseTypeParameterList(TokenSet.create(FOR_KEYWORD, LBRACE));
expect(FOR_KEYWORD, "Expecting 'for' to specify the type that is being extended", TYPE_REF_FIRST);
parseTypeRef();
if (at(LBRACE)) {
parseClassBody();
}
else {
consumeIf(SEMICOLON);
}
return EXTENSION;
}
/* /*
* delegationSpecifier{","} * delegationSpecifier{","}
*/ */
@@ -1,36 +0,0 @@
package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetNodeTypes;
import java.util.Collections;
import java.util.List;
/**
* @author max
*/
public class JetExtension extends JetTypeParameterListOwner {
public JetExtension(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JetVisitor visitor) {
visitor.visitExtension(this);
}
@NotNull
public List<JetDeclaration> getDeclarations() {
JetClassBody body = (JetClassBody) findChildByType(JetNodeTypes.CLASS_BODY);
if (body == null) return Collections.emptyList();
return body.getDeclarations();
}
@Nullable @IfNotParsed
public JetTypeReference getTargetTypeRef() {
return (JetTypeReference) findChildByType(JetNodeTypes.TYPE_REFERENCE);
}
}
@@ -30,10 +30,6 @@ public class JetVisitor extends PsiElementVisitor {
visitDeclaration(constructor); visitDeclaration(constructor);
} }
public void visitExtension(JetExtension extension) {
visitNamedDeclaration(extension);
}
public void visitNamedFunction(JetNamedFunction function) { public void visitNamedFunction(JetNamedFunction function) {
visitNamedDeclaration(function); visitNamedDeclaration(function);
} }
@@ -247,11 +247,6 @@ public class TopDownAnalyzer {
trace.getErrorHandler().genericError(typedef.getNode(), "Unsupported [TopDownAnalyzer]"); trace.getErrorHandler().genericError(typedef.getNode(), "Unsupported [TopDownAnalyzer]");
} }
@Override
public void visitExtension(JetExtension extension) {
trace.getErrorHandler().genericError(extension.getNode(), "Unsupported [TopDownAnalyzer]");
}
@Override @Override
public void visitClassObject(JetClassObject classObject) { public void visitClassObject(JetClassObject classObject) {
JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration(); JetObjectDeclaration objectDeclaration = classObject.getObjectDeclaration();
@@ -2534,11 +2534,6 @@ public class JetTypeInferrer {
super.visitClass(klass); // TODO super.visitClass(klass); // TODO
} }
@Override
public void visitExtension(JetExtension extension) {
super.visitExtension(extension); // TODO
}
@Override @Override
public void visitTypedef(JetTypedef typedef) { public void visitTypedef(JetTypedef typedef) {
super.visitTypedef(typedef); // TODO super.visitTypedef(typedef); // TODO
@@ -92,7 +92,6 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
<YYINITIAL> {RAW_STRING_LITERAL} { return JetTokens.RAW_STRING_LITERAL; } <YYINITIAL> {RAW_STRING_LITERAL} { return JetTokens.RAW_STRING_LITERAL; }
<YYINITIAL> "namespace" { return JetTokens.NAMESPACE_KEYWORD ;} <YYINITIAL> "namespace" { return JetTokens.NAMESPACE_KEYWORD ;}
<YYINITIAL> "extension" { return JetTokens.EXTENSION_KEYWORD ;}
<YYINITIAL> "continue" { return JetTokens.CONTINUE_KEYWORD ;} <YYINITIAL> "continue" { return JetTokens.CONTINUE_KEYWORD ;}
<YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;} <YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;}
<YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;} <YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;}
@@ -31,7 +31,6 @@ public interface JetTokens {
JetKeywordToken VAL_KEYWORD = JetKeywordToken.keyword("val"); JetKeywordToken VAL_KEYWORD = JetKeywordToken.keyword("val");
JetKeywordToken VAR_KEYWORD = JetKeywordToken.keyword("var"); JetKeywordToken VAR_KEYWORD = JetKeywordToken.keyword("var");
JetKeywordToken FUN_KEYWORD = JetKeywordToken.keyword("fun"); JetKeywordToken FUN_KEYWORD = JetKeywordToken.keyword("fun");
JetKeywordToken EXTENSION_KEYWORD = JetKeywordToken.keyword("extension");
JetKeywordToken FOR_KEYWORD = JetKeywordToken.keyword("for"); JetKeywordToken FOR_KEYWORD = JetKeywordToken.keyword("for");
JetKeywordToken NULL_KEYWORD = JetKeywordToken.keyword("null"); JetKeywordToken NULL_KEYWORD = JetKeywordToken.keyword("null");
JetKeywordToken TRUE_KEYWORD = JetKeywordToken.keyword("true"); JetKeywordToken TRUE_KEYWORD = JetKeywordToken.keyword("true");
@@ -136,7 +135,7 @@ public interface JetTokens {
JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref"); JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref");
TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD,
THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD, NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD,
IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD,
+323 -343
View File
@@ -1,4 +1,4 @@
/* The following code was generated by JFlex 1.4.3 on 7/8/11 8:13 PM */ /* The following code was generated by JFlex 1.4.3 on 7/8/11 9:42 PM */
/* It's an automatically generated code. Do not modify it. */ /* It's an automatically generated code. Do not modify it. */
package org.jetbrains.jet.lexer; package org.jetbrains.jet.lexer;
@@ -11,7 +11,7 @@ import com.intellij.psi.tree.IElementType;
/** /**
* This class is a scanner generated by * This class is a scanner generated by
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3 * <a href="http://www.jflex.de/">JFlex</a> 1.4.3
* on 7/8/11 8:13 PM from the specification file * on 7/8/11 9:42 PM from the specification file
* <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt> * <tt>/Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex</tt>
*/ */
class _JetLexer implements FlexLexer { class _JetLexer implements FlexLexer {
@@ -35,15 +35,15 @@ class _JetLexer implements FlexLexer {
* Translates characters to character classes * Translates characters to character classes
*/ */
private static final String ZZ_CMAP_PACKED = private static final String ZZ_CMAP_PACKED =
"\11\5\1\3\1\13\1\0\1\3\1\0\16\5\4\0\1\3\1\57"+ "\11\5\1\3\1\13\1\0\1\3\1\0\16\5\4\0\1\3\1\56"+
"\1\25\1\100\1\7\1\67\1\64\1\23\1\74\1\75\1\12\1\61"+ "\1\25\1\77\1\7\1\66\1\63\1\23\1\73\1\74\1\12\1\60"+
"\1\77\1\21\1\17\1\11\1\14\11\1\1\66\1\76\1\62\1\56"+ "\1\76\1\21\1\17\1\11\1\14\11\1\1\65\1\75\1\61\1\55"+
"\1\63\1\60\1\10\1\2\1\16\2\2\1\20\1\2\5\4\1\4"+ "\1\62\1\57\1\10\1\2\1\16\2\2\1\20\1\2\5\4\1\4"+
"\3\4\1\22\3\4\1\53\3\4\1\15\2\4\1\70\1\24\1\71"+ "\3\4\1\22\3\4\1\52\3\4\1\15\2\4\1\67\1\24\1\70"+
"\1\0\1\4\1\6\1\27\1\43\1\34\1\55\1\31\1\51\1\4"+ "\1\0\1\4\1\6\1\27\1\42\1\34\1\54\1\31\1\50\1\4"+
"\1\46\1\37\1\44\1\50\1\47\1\30\1\26\1\40\1\33\1\4"+ "\1\45\1\37\1\43\1\47\1\46\1\30\1\26\1\35\1\33\1\4"+
"\1\42\1\32\1\36\1\41\1\54\1\45\1\35\1\52\1\4\1\72"+ "\1\41\1\32\1\36\1\40\1\53\1\44\1\15\1\51\1\4\1\71"+
"\1\65\1\73\1\0\41\5\2\0\4\4\4\0\1\4\2\0\1\5"+ "\1\64\1\72\1\0\41\5\2\0\4\4\4\0\1\4\2\0\1\5"+
"\7\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4\1\0\u013f\4"+ "\7\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4\1\0\u013f\4"+
"\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4\21\0\130\5"+ "\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4\21\0\130\5"+
"\5\0\23\5\12\0\1\4\13\0\1\4\1\0\3\4\1\0\1\4"+ "\5\0\23\5\12\0\1\4\13\0\1\4\1\0\3\4\1\0\1\4"+
@@ -144,19 +144,19 @@ class _JetLexer implements FlexLexer {
"\1\33\1\34\1\0\1\35\1\0\1\36\1\0\1\37"+ "\1\33\1\34\1\0\1\35\1\0\1\36\1\0\1\37"+
"\1\0\1\40\1\41\1\42\1\43\1\44\1\35\2\2"+ "\1\0\1\40\1\41\1\42\1\43\1\44\1\35\2\2"+
"\1\35\1\45\1\46\1\47\1\50\2\12\3\13\2\3"+ "\1\35\1\45\1\46\1\47\1\50\2\12\3\13\2\3"+
"\1\51\7\3\1\52\1\53\1\54\11\3\1\55\1\56"+ "\1\51\7\3\1\52\1\53\1\54\10\3\1\55\1\56"+
"\1\57\1\0\1\60\1\61\1\62\1\63\1\64\1\65"+ "\1\57\1\0\1\60\1\61\1\62\1\63\1\64\1\65"+
"\1\66\1\67\1\70\1\71\1\72\1\35\1\3\2\0"+ "\1\66\1\67\1\70\1\71\1\72\1\35\1\3\2\0"+
"\1\42\1\73\4\0\1\13\1\74\2\3\1\75\5\3"+ "\1\42\1\73\4\0\1\13\1\74\2\3\1\75\5\3"+
"\1\76\11\3\1\77\1\100\1\3\1\101\1\102\1\103"+ "\1\76\10\3\1\77\1\100\1\3\1\101\1\102\1\103"+
"\1\104\1\105\1\106\1\36\1\37\1\0\2\73\1\35"+ "\1\104\1\105\1\106\1\36\1\37\1\0\2\73\1\35"+
"\2\0\1\3\1\107\1\3\1\110\2\3\1\111\1\112"+ "\2\0\1\3\1\107\1\110\3\3\1\111\1\112\1\3"+
"\1\3\1\113\3\3\1\114\2\3\1\115\1\42\2\0"+ "\1\113\2\3\1\114\2\3\1\115\1\42\2\0\2\3"+
"\3\3\1\116\1\117\2\3\1\120\1\121\1\122\1\74"+ "\1\116\1\3\1\117\1\3\1\120\1\121\1\122\1\74"+
"\3\3\1\123\1\124\5\3\1\125\1\126\1\127"; "\2\3\1\123\1\124\3\3\1\125\1\126";
private static int [] zzUnpackAction() { private static int [] zzUnpackAction() {
int [] result = new int[201]; int [] result = new int[193];
int offset = 0; int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result; return result;
@@ -181,35 +181,34 @@ class _JetLexer implements FlexLexer {
private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
private static final String ZZ_ROWMAP_PACKED_0 = private static final String ZZ_ROWMAP_PACKED_0 =
"\0\0\0\101\0\202\0\303\0\u0104\0\u0145\0\u0186\0\u01c7"+ "\0\0\0\100\0\200\0\300\0\u0100\0\u0140\0\u0180\0\u01c0"+
"\0\u0208\0\u0249\0\u028a\0\u02cb\0\u030c\0\u034d\0\u038e\0\u03cf"+ "\0\u0200\0\u0240\0\u0280\0\u02c0\0\u0300\0\u0340\0\u0380\0\u03c0"+
"\0\u0410\0\u0451\0\u0492\0\u04d3\0\u0514\0\u0555\0\u0596\0\u05d7"+ "\0\u0400\0\u0440\0\u0480\0\u04c0\0\u0500\0\u0540\0\u0580\0\u05c0"+
"\0\u0618\0\u0659\0\u069a\0\u06db\0\u071c\0\u075d\0\u079e\0\u07df"+ "\0\u0600\0\u0640\0\u0680\0\u06c0\0\u0700\0\u0740\0\u0780\0\u07c0"+
"\0\u0820\0\u0861\0\u08a2\0\u08e3\0\u0924\0\101\0\u0965\0\101"+ "\0\u0800\0\u0840\0\u0880\0\u08c0\0\u0900\0\100\0\u0940\0\100"+
"\0\101\0\101\0\101\0\101\0\101\0\101\0\101\0\101"+ "\0\100\0\100\0\100\0\100\0\100\0\100\0\100\0\100"+
"\0\u09a6\0\u09e7\0\u0a28\0\u0a69\0\u0aaa\0\u0aeb\0\u0b2c\0\101"+ "\0\u0980\0\u09c0\0\u0a00\0\u0a40\0\u0a80\0\u0ac0\0\u0b00\0\100"+
"\0\u0b6d\0\u0bae\0\101\0\101\0\u0bef\0\u0c30\0\u0c71\0\u0cb2"+ "\0\u0b40\0\u0b80\0\100\0\100\0\u0bc0\0\u0c00\0\u0c40\0\u0c80"+
"\0\101\0\101\0\101\0\101\0\101\0\u0cf3\0\u0d34\0\u0d75"+ "\0\100\0\100\0\100\0\100\0\100\0\u0cc0\0\u0d00\0\u0d40"+
"\0\u0db6\0\u0df7\0\u0e38\0\u0e79\0\u0eba\0\u0efb\0\u0f3c\0\u0f7d"+ "\0\u0d80\0\u0dc0\0\u0e00\0\u0e40\0\u0e80\0\u0ec0\0\u0f00\0\u0f40"+
"\0\u0fbe\0\u0fff\0\u1040\0\303\0\303\0\303\0\u1081\0\u10c2"+ "\0\u0f80\0\u0fc0\0\u1000\0\300\0\300\0\300\0\u1040\0\u1080"+
"\0\u1103\0\u1144\0\u1185\0\u11c6\0\u1207\0\u1248\0\u1289\0\303"+ "\0\u10c0\0\u1100\0\u1140\0\u1180\0\u11c0\0\u1200\0\300\0\u1240"+
"\0\u12ca\0\101\0\u130b\0\u134c\0\101\0\101\0\101\0\101"+ "\0\100\0\u1280\0\u12c0\0\100\0\100\0\100\0\100\0\100"+
"\0\101\0\101\0\101\0\101\0\101\0\101\0\u138d\0\101"+ "\0\100\0\100\0\100\0\100\0\100\0\u1300\0\100\0\u1340"+
"\0\u13ce\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595"+ "\0\u1380\0\u13c0\0\u1400\0\u1440\0\u1480\0\u14c0\0\u1500\0\100"+
"\0\101\0\u15d6\0\u1617\0\u1658\0\101\0\u1699\0\u16da\0\u171b"+ "\0\u1540\0\u1580\0\u15c0\0\100\0\u1600\0\u1640\0\u1680\0\u16c0"+
"\0\u175c\0\u179d\0\303\0\u17de\0\u181f\0\u1860\0\u18a1\0\u18e2"+ "\0\u1700\0\300\0\u1740\0\u1780\0\u17c0\0\u1800\0\u1840\0\u1880"+
"\0\u1923\0\u1964\0\u19a5\0\u19e6\0\303\0\303\0\u1a27\0\303"+ "\0\u18c0\0\u1900\0\300\0\300\0\u1940\0\300\0\300\0\100"+
"\0\303\0\101\0\101\0\101\0\101\0\101\0\101\0\u1a68"+ "\0\100\0\100\0\100\0\100\0\100\0\u1980\0\u19c0\0\100"+
"\0\u1aa9\0\101\0\u1aea\0\u138d\0\u1b2b\0\u1b6c\0\303\0\u1bad"+ "\0\u1a00\0\u1300\0\u1a40\0\u1a80\0\300\0\300\0\u1ac0\0\u1b00"+
"\0\303\0\u1bee\0\u1c2f\0\303\0\303\0\u1c70\0\303\0\u1cb1"+ "\0\u1b40\0\300\0\300\0\u1b80\0\300\0\u1bc0\0\u1c00\0\300"+
"\0\u1cf2\0\u1d33\0\303\0\u1d74\0\u1db5\0\303\0\101\0\u1df6"+ "\0\u1c40\0\u1c80\0\300\0\100\0\u1cc0\0\u1d00\0\u1d40\0\u1d80"+
"\0\u1e37\0\u1e78\0\u1eb9\0\u1efa\0\303\0\303\0\u1f3b\0\u1f7c"+ "\0\300\0\u1dc0\0\300\0\u1e00\0\300\0\300\0\300\0\100"+
"\0\303\0\303\0\303\0\101\0\u1fbd\0\u1ffe\0\u203f\0\303"+ "\0\u1e40\0\u1e80\0\300\0\300\0\u1ec0\0\u1f00\0\u1f40\0\300"+
"\0\303\0\u2080\0\u20c1\0\u2102\0\u2143\0\u2184\0\303\0\303"+ "\0\300";
"\0\303";
private static int [] zzUnpackRowMap() { private static int [] zzUnpackRowMap() {
int [] result = new int[201]; int [] result = new int[193];
int offset = 0; int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result; return result;
@@ -235,216 +234,201 @@ class _JetLexer implements FlexLexer {
"\1\2\1\3\1\4\1\5\1\4\1\2\1\6\1\7"+ "\1\2\1\3\1\4\1\5\1\4\1\2\1\6\1\7"+
"\1\10\1\11\1\12\1\5\1\13\2\4\1\14\1\4"+ "\1\10\1\11\1\12\1\5\1\13\2\4\1\14\1\4"+
"\1\15\1\4\1\16\1\2\1\17\1\20\1\21\1\4"+ "\1\15\1\4\1\16\1\2\1\17\1\20\1\21\1\4"+
"\1\22\2\4\1\23\1\4\1\24\1\25\1\26\1\4"+ "\1\22\2\4\1\23\1\24\1\25\1\26\1\4\1\27"+
"\1\27\1\30\1\4\1\31\3\4\1\32\1\4\1\33"+ "\1\30\1\4\1\31\3\4\1\32\1\4\1\33\1\34"+
"\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43"+ "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44"+
"\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+ "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54"+
"\1\54\1\55\1\56\1\57\1\60\102\0\1\3\12\0"+ "\1\55\1\56\1\57\1\60\101\0\1\3\12\0\1\3"+
"\1\3\2\0\1\61\1\62\10\0\1\62\50\0\2\4"+ "\2\0\1\61\1\62\10\0\1\62\47\0\2\4\1\0"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\30\4\26\0\1\5\7\0\1\5"+
"\67\0\1\63\1\0\1\63\2\0\1\63\5\0\2\63"+
"\1\0\1\63\1\0\1\63\3\0\30\63\24\0\1\4"+
"\1\64\1\0\1\64\1\4\1\65\1\64\4\0\1\4"+
"\2\64\1\0\1\64\1\0\1\64\3\0\30\64\25\0"+
"\1\66\1\0\1\66\1\0\1\67\1\66\1\70\4\0"+
"\2\66\1\0\1\66\1\0\1\66\3\0\30\66\34\0"+
"\1\71\1\72\43\0\1\73\100\0\1\74\23\0\1\75"+
"\12\0\1\75\1\76\1\77\1\61\1\62\10\0\1\62"+
"\3\0\1\76\5\0\1\77\36\0\1\100\12\0\1\100"+
"\2\0\1\101\102\0\1\102\34\0\1\103\4\0\1\104"+
"\15\0\13\16\1\0\7\16\1\105\1\106\54\16\13\107"+
"\1\0\10\107\1\110\1\111\53\107\1\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\1\4\1\112\11\4\1\113\14\4\24\0"+ "\1\4\3\0\27\4\26\0\1\5\7\0\1\5\66\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ "\1\63\1\0\1\63\2\0\1\63\5\0\2\63\1\0"+
"\1\4\1\0\1\4\3\0\4\4\1\114\23\4\24\0"+ "\1\63\1\0\1\63\3\0\27\63\24\0\1\4\1\64"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ "\1\0\1\64\1\4\1\65\1\64\4\0\1\4\2\64"+
"\1\4\1\0\1\4\3\0\7\4\1\115\11\4\1\116"+ "\1\0\1\64\1\0\1\64\3\0\27\64\25\0\1\66"+
"\6\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\1\0\1\66\1\0\1\67\1\66\1\70\4\0\2\66"+
"\3\4\1\0\1\4\1\0\1\4\3\0\12\4\1\117"+ "\1\0\1\66\1\0\1\66\3\0\27\66\34\0\1\71"+
"\6\4\1\120\6\4\24\0\2\4\1\0\2\4\1\0"+ "\1\72\42\0\1\73\77\0\1\74\23\0\1\75\12\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\75\1\76\1\77\1\61\1\62\10\0\1\62\10\0"+
"\14\4\1\121\3\4\1\122\3\4\1\123\3\4\24\0"+ "\1\77\36\0\1\100\12\0\1\100\2\0\1\101\101\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+ "\1\102\33\0\1\103\4\0\1\104\15\0\13\16\1\0"+
"\1\4\1\0\1\4\3\0\1\124\3\4\1\125\16\4"+ "\7\16\1\105\1\106\53\16\13\107\1\0\10\107\1\110"+
"\1\126\4\4\24\0\2\4\1\0\2\4\1\0\1\4"+ "\1\111\52\107\1\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\15\4"+
"\1\127\12\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\130\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\14\4"+
"\1\131\13\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\20\4"+
"\1\132\7\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\4"+ "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\4"+
"\1\133\10\4\1\134\1\135\14\4\24\0\2\4\1\0"+ "\1\112\10\4\1\113\14\4\24\0\2\4\1\0\2\4"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\20\4\1\136\7\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\1\4\1\137\26\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\12\4\1\140\15\4\101\0\1\141\4\0"+
"\1\142\54\0\1\143\16\0\1\144\41\0\1\145\46\0"+
"\1\146\70\0\1\147\2\0\1\150\75\0\1\151\100\0"+
"\1\152\106\0\1\153\101\0\1\154\71\0\1\155\23\0"+
"\1\100\12\0\1\100\2\0\1\156\62\0\1\157\12\0"+
"\1\157\4\0\1\157\37\0\1\157\20\0\2\63\1\0"+
"\2\63\1\160\1\63\4\0\3\63\1\0\1\63\1\0"+
"\1\63\3\0\30\63\24\0\2\64\1\0\2\64\1\0"+
"\1\64\4\0\3\64\1\0\1\64\1\0\1\64\3\0"+
"\30\64\25\0\1\161\1\0\1\161\2\0\1\161\5\0"+
"\2\161\1\0\1\161\1\0\1\161\3\0\30\161\24\0"+
"\2\66\1\0\2\66\1\0\1\66\4\0\3\66\1\0"+
"\1\66\1\0\1\66\3\0\30\66\25\0\1\162\1\0"+
"\1\162\2\0\1\162\5\0\2\162\1\0\1\162\1\0"+
"\1\162\3\0\30\162\23\0\13\71\1\0\65\71\12\163"+
"\1\164\66\163\1\0\1\75\12\0\1\75\2\0\1\165"+
"\1\62\10\0\1\62\50\0\2\76\11\0\1\76\1\0"+
"\1\76\1\166\1\76\1\0\1\167\4\0\1\76\1\0"+
"\1\76\1\0\1\167\1\76\6\0\1\76\5\0\1\76"+
"\3\0\1\76\24\0\1\77\12\0\1\77\2\0\1\170"+
"\62\0\1\100\12\0\1\100\3\0\1\62\10\0\1\62"+
"\47\0\13\16\1\0\65\16\13\107\1\0\10\107\1\110"+
"\1\171\66\107\1\0\65\107\25\0\1\172\54\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\2\4\1\173\25\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\21\4\1\174\6\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\30\4\2\0\1\175\21\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\10\4\1\176\17\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\4\4\1\177\23\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\1\200\27\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\1\4\1\201\26\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\13\4\1\202\10\4\1\203\3\4\24\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
"\1\4\1\0\1\4\3\0\11\4\1\204\2\4\1\205"+
"\13\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\5\4\1\206"+
"\22\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\16\4\1\207"+
"\11\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\10\4\1\210"+
"\17\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\211"+
"\24\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\212"+
"\5\4\1\213\16\4\24\0\2\4\1\0\2\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\21\4\1\214\6\4\24\0\2\4\1\0\2\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\14\4\1\215\13\4\24\0\2\4\1\0\2\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\1\216\27\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\11\4"+
"\1\217\16\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\14\4"+
"\1\220\4\4\1\221\6\4\101\0\1\222\50\0\1\223"+
"\3\0\1\224\124\0\1\225\23\0\1\157\12\0\1\157"+
"\65\0\2\161\1\0\2\161\1\226\1\161\4\0\3\161"+
"\1\0\1\161\1\0\1\161\3\0\30\161\24\0\2\162"+
"\1\0\2\162\1\227\1\162\4\0\3\162\1\0\1\162"+
"\1\0\1\162\3\0\30\162\23\0\12\163\1\230\66\163"+
"\11\231\1\232\1\164\66\231\1\0\1\100\12\0\1\100"+
"\65\0\2\233\11\0\1\233\1\0\1\233\1\156\1\233"+
"\6\0\1\233\1\0\1\233\2\0\1\233\6\0\1\233"+
"\5\0\1\233\3\0\1\233\24\0\1\157\12\0\1\157"+
"\4\0\1\234\37\0\1\234\36\0\1\156\61\0\25\172"+
"\1\235\53\172\1\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\236\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\21\4"+
"\1\237\6\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\240\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\241\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\10\4"+
"\1\242\17\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\4\4"+
"\1\243\23\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\244\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\4\4"+
"\1\245\23\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\12\4"+
"\1\246\15\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\247\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\3\4"+
"\1\250\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\13\4"+
"\1\251\14\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\4"+
"\1\252\26\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\253"+
"\27\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\21\4\1\254"+
"\6\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\4\4\1\255"+
"\23\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\4\4\1\256"+
"\23\4\23\0\11\163\1\257\1\230\66\163\12\231\1\260"+
"\66\231\1\0\2\233\11\0\1\233\1\0\1\233\1\0"+
"\1\233\1\0\1\167\4\0\1\233\1\0\1\233\1\0"+
"\1\167\1\233\6\0\1\233\5\0\1\233\3\0\1\233"+
"\23\0\25\172\1\261\53\172\1\0\2\4\1\0\2\4"+
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
"\3\0\4\4\1\262\23\4\24\0\2\4\1\0\2\4"+ "\3\0\4\4\1\114\22\4\24\0\2\4\1\0\2\4"+
"\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
"\3\0\1\263\27\4\24\0\2\4\1\0\2\4\1\0"+ "\3\0\20\4\1\115\6\4\24\0\2\4\1\0\2\4"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\0\1\4\4\0\3\4\1\0\1\4\1\0\1\4"+
"\11\4\1\264\16\4\24\0\2\4\1\0\2\4\1\0"+ "\3\0\7\4\1\116\10\4\1\117\6\4\24\0\2\4"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\4\4\1\265\23\4\24\0\2\4\1\0\2\4\1\0"+ "\1\0\1\4\3\0\14\4\1\120\12\4\24\0\2\4"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\17\4\1\266\10\4\24\0\2\4\1\0\2\4\1\0"+ "\1\0\1\4\3\0\13\4\1\121\3\4\1\122\3\4"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\123\3\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\6\4\1\267\21\4\24\0\2\4\1\0\2\4\1\0"+ "\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\124"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\3\4\1\125\15\4\1\126\4\4\24\0\2\4\1\0"+
"\14\4\1\270\13\4\24\0\2\4\1\0\2\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\4\3\0\3\4\1\127\23\4\24\0\2\4\1\0"+
"\22\4\1\271\5\4\24\0\2\4\1\0\2\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\4\3\0\13\4\1\130\13\4\24\0\2\4\1\0"+
"\3\4\1\272\24\4\24\0\2\4\1\0\2\4\1\0"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+ "\1\4\3\0\17\4\1\131\7\4\24\0\2\4\1\0"+
"\3\4\1\273\24\4\23\0\11\231\1\232\1\260\66\231"+ "\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\25\172\1\274\53\172\1\0\2\4\1\0\2\4\1\0"+ "\1\4\3\0\1\4\1\132\5\4\1\133\2\4\1\134"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\5\4\1\275\22\4\24\0\2\4\1\0\2\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\4\4\1\276\23\4\24\0\2\4\1\0\2\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\1\277\27\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\10\4"+
"\1\300\17\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\301"+
"\27\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\1\4\1\302"+
"\26\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\11\4\1\303"+
"\16\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\13\4\1\304"+
"\14\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\14\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\6\4\1\305"+ "\3\4\1\0\1\4\1\0\1\4\3\0\17\4\1\135"+
"\21\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\7\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\12\4\1\306"+ "\3\4\1\0\1\4\1\0\1\4\3\0\1\4\1\136"+
"\15\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\25\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\307"+ "\3\4\1\0\1\4\1\0\1\4\3\0\7\4\1\137"+
"\24\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\17\4\100\0\1\140\4\0\1\141\54\0\1\142\15\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\3\4\1\310"+ "\1\143\41\0\1\144\45\0\1\145\67\0\1\146\2\0"+
"\24\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+ "\1\147\74\0\1\150\77\0\1\151\105\0\1\152\100\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\1\311\27\4"+ "\1\153\70\0\1\154\23\0\1\100\12\0\1\100\2\0"+
"\23\0"; "\1\155\61\0\1\156\12\0\1\156\4\0\1\156\36\0"+
"\1\156\20\0\2\63\1\0\2\63\1\157\1\63\4\0"+
"\3\63\1\0\1\63\1\0\1\63\3\0\27\63\24\0"+
"\2\64\1\0\2\64\1\0\1\64\4\0\3\64\1\0"+
"\1\64\1\0\1\64\3\0\27\64\25\0\1\160\1\0"+
"\1\160\2\0\1\160\5\0\2\160\1\0\1\160\1\0"+
"\1\160\3\0\27\160\24\0\2\66\1\0\2\66\1\0"+
"\1\66\4\0\3\66\1\0\1\66\1\0\1\66\3\0"+
"\27\66\25\0\1\161\1\0\1\161\2\0\1\161\5\0"+
"\2\161\1\0\1\161\1\0\1\161\3\0\27\161\23\0"+
"\13\71\1\0\64\71\12\162\1\163\65\162\1\0\1\75"+
"\12\0\1\75\2\0\1\164\1\62\10\0\1\62\47\0"+
"\2\76\11\0\1\76\1\0\1\76\1\165\1\76\1\0"+
"\1\166\4\0\1\76\1\0\1\76\1\0\1\166\1\76"+
"\5\0\1\76\5\0\1\76\3\0\1\76\24\0\1\77"+
"\12\0\1\77\2\0\1\167\61\0\1\100\12\0\1\100"+
"\3\0\1\62\10\0\1\62\46\0\13\16\1\0\64\16"+
"\13\107\1\0\10\107\1\110\1\170\65\107\1\0\64\107"+
"\25\0\1\171\53\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\2\4"+
"\1\172\24\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\20\4"+
"\1\173\6\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\27\4"+
"\2\0\1\174\21\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\4\4"+
"\1\175\22\4\24\0\2\4\1\0\2\4\1\0\1\4"+
"\4\0\3\4\1\0\1\4\1\0\1\4\3\0\1\176"+
"\26\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\1\4\1\177"+
"\25\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\15\4\1\200"+
"\11\4\24\0\2\4\1\0\2\4\1\0\1\4\4\0"+
"\3\4\1\0\1\4\1\0\1\4\3\0\12\4\1\201"+
"\10\4\1\202\3\4\24\0\2\4\1\0\2\4\1\0"+
"\1\4\4\0\3\4\1\0\1\4\1\0\1\4\3\0"+
"\11\4\1\203\1\4\1\204\13\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\5\4\1\205\21\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\10\4\1\206\16\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\3\4\1\207\23\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\3\4\1\210\5\4\1\211\15\4\24\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
"\1\4\1\0\1\4\3\0\20\4\1\212\6\4\24\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
"\1\4\1\0\1\4\3\0\13\4\1\213\13\4\24\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
"\1\4\1\0\1\4\3\0\1\214\26\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\11\4\1\215\15\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\13\4\1\216\4\4\1\217\6\4"+
"\100\0\1\220\50\0\1\221\3\0\1\222\122\0\1\223"+
"\23\0\1\156\12\0\1\156\64\0\2\160\1\0\2\160"+
"\1\224\1\160\4\0\3\160\1\0\1\160\1\0\1\160"+
"\3\0\27\160\24\0\2\161\1\0\2\161\1\225\1\161"+
"\4\0\3\161\1\0\1\161\1\0\1\161\3\0\27\161"+
"\23\0\12\162\1\226\65\162\11\227\1\230\1\163\65\227"+
"\1\0\1\100\12\0\1\100\64\0\2\231\11\0\1\231"+
"\1\0\1\231\1\155\1\231\6\0\1\231\1\0\1\231"+
"\2\0\1\231\5\0\1\231\5\0\1\231\3\0\1\231"+
"\24\0\1\156\12\0\1\156\4\0\1\232\36\0\1\232"+
"\36\0\1\155\60\0\25\171\1\233\52\171\1\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\3\4\1\234\23\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\20\4\1\235\6\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\3\4\1\236\23\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\10\4\1\237\16\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\4\4\1\240\22\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\3\4\1\241\23\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\3\4\1\242\23\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\4\4\1\243\22\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\7\4\1\244\17\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\3\4\1\245\23\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\12\4\1\246\14\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\1\4\1\247\25\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\1\250\26\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\20\4\1\251\6\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\4\4\1\252\22\4\24\0\2\4\1\0"+
"\2\4\1\0\1\4\4\0\3\4\1\0\1\4\1\0"+
"\1\4\3\0\4\4\1\253\22\4\23\0\11\162\1\254"+
"\1\226\65\162\12\227\1\255\65\227\1\0\2\231\11\0"+
"\1\231\1\0\1\231\1\0\1\231\1\0\1\166\4\0"+
"\1\231\1\0\1\231\1\0\1\166\1\231\5\0\1\231"+
"\5\0\1\231\3\0\1\231\23\0\25\171\1\256\52\171"+
"\1\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\4\4\1\257\22\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\11\4\1\260\15\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\4\4\1\261\22\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\6\4\1\262\20\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\16\4\1\263\10\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\13\4\1\264\13\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\21\4\1\265\5\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\3\4\1\266\23\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\3\4\1\267\23\4"+
"\23\0\11\227\1\230\1\255\65\227\25\171\1\270\52\171"+
"\1\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\5\4\1\271\21\4"+
"\24\0\2\4\1\0\2\4\1\0\1\4\4\0\3\4"+
"\1\0\1\4\1\0\1\4\3\0\1\272\26\4\24\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
"\1\4\1\0\1\4\3\0\10\4\1\273\16\4\24\0"+
"\2\4\1\0\2\4\1\0\1\4\4\0\3\4\1\0"+
"\1\4\1\0\1\4\3\0\1\274\26\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\1\4\1\275\25\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\12\4\1\276\14\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\6\4\1\277\20\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\3\4\1\300\23\4\24\0\2\4"+
"\1\0\2\4\1\0\1\4\4\0\3\4\1\0\1\4"+
"\1\0\1\4\3\0\3\4\1\301\23\4\23\0";
private static int [] zzUnpackTrans() { private static int [] zzUnpackTrans() {
int [] result = new int[8645]; int [] result = new int[8064];
int offset = 0; int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result; return result;
@@ -487,13 +471,13 @@ class _JetLexer implements FlexLexer {
private static final String ZZ_ATTRIBUTE_PACKED_0 = private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\1\0\1\11\43\1\1\11\1\1\11\11\1\0\1\1"+ "\1\0\1\11\43\1\1\11\1\1\11\11\1\0\1\1"+
"\1\0\1\1\1\0\1\1\1\0\1\11\2\1\2\11"+ "\1\0\1\1\1\0\1\1\1\0\1\11\2\1\2\11"+
"\4\1\5\11\34\1\1\11\1\0\1\1\12\11\1\1"+ "\4\1\5\11\33\1\1\11\1\0\1\1\12\11\1\1"+
"\1\11\2\0\2\1\4\0\1\11\3\1\1\11\24\1"+ "\1\11\2\0\2\1\4\0\1\11\3\1\1\11\23\1"+
"\6\11\1\0\1\1\1\11\1\1\2\0\21\1\1\11"+ "\6\11\1\0\1\1\1\11\1\1\2\0\20\1\1\11"+
"\2\0\12\1\1\11\15\1"; "\2\0\11\1\1\11\11\1";
private static int [] zzUnpackAttribute() { private static int [] zzUnpackAttribute() {
int [] result = new int[201]; int [] result = new int[193];
int offset = 0; int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result; return result;
@@ -801,351 +785,347 @@ class _JetLexer implements FlexLexer {
case 3: case 3:
{ return JetTokens.IDENTIFIER; { return JetTokens.IDENTIFIER;
} }
case 88: break; case 87: break;
case 63: case 63:
{ return JetTokens.FOR_KEYWORD ; { return JetTokens.FOR_KEYWORD ;
} }
case 89: break; case 88: break;
case 84: case 84:
{ return JetTokens.RETURN_KEYWORD ; { return JetTokens.RETURN_KEYWORD ;
} }
case 90: break; case 89: break;
case 71: case 71:
{ return JetTokens.NULL_KEYWORD ; { return JetTokens.NULL_KEYWORD ;
} }
case 91: break; case 90: break;
case 16: case 16:
{ return JetTokens.LT ; { return JetTokens.LT ;
} }
case 92: break; case 91: break;
case 45: case 45:
{ return JetTokens.DO_KEYWORD ; { return JetTokens.DO_KEYWORD ;
} }
case 93: break; case 92: break;
case 15: case 15:
{ return JetTokens.PLUS ; { return JetTokens.PLUS ;
} }
case 94: break; case 93: break;
case 60: case 60:
{ return JetTokens.RAW_STRING_LITERAL; { return JetTokens.RAW_STRING_LITERAL;
} }
case 95: break; case 94: break;
case 51: case 51:
{ return JetTokens.PLUSEQ ; { return JetTokens.PLUSEQ ;
} }
case 96: break; case 95: break;
case 27: case 27:
{ return JetTokens.COMMA ; { return JetTokens.COMMA ;
} }
case 97: break; case 96: break;
case 17: case 17:
{ return JetTokens.GT ; { return JetTokens.GT ;
} }
case 98: break; case 97: break;
case 4: case 4:
{ return JetTokens.WHITE_SPACE; { return JetTokens.WHITE_SPACE;
} }
case 99: break; case 98: break;
case 25: case 25:
{ return JetTokens.RPAR ; { return JetTokens.RPAR ;
} }
case 100: break; case 99: break;
case 47: case 47:
{ return JetTokens.DOUBLE_ARROW; { return JetTokens.DOUBLE_ARROW;
} }
case 101: break; case 100: break;
case 73: case 73:
{ return JetTokens.TRUE_KEYWORD ; { return JetTokens.TRUE_KEYWORD ;
} }
case 102: break; case 101: break;
case 30: case 30:
{ return JetTokens.FIELD_IDENTIFIER; { return JetTokens.FIELD_IDENTIFIER;
} }
case 103: break; case 102: break;
case 55: case 55:
{ return JetTokens.ANDAND ; { return JetTokens.ANDAND ;
} }
case 104: break; case 103: break;
case 59: case 59:
{ return JetTokens.DOC_COMMENT; { return JetTokens.DOC_COMMENT;
} }
case 105: break; case 104: break;
case 29: case 29:
{ return JetTokens.FLOAT_LITERAL; { return JetTokens.FLOAT_LITERAL;
} }
case 106: break; case 105: break;
case 33: case 33:
{ return JetTokens.EOL_COMMENT; { return JetTokens.EOL_COMMENT;
} }
case 107: break; case 106: break;
case 76: case 76:
{ return JetTokens.WHEN_KEYWORD ; { return JetTokens.WHEN_KEYWORD ;
} }
case 108: break; case 107: break;
case 18: case 18:
{ return JetTokens.COLON ; { return JetTokens.COLON ;
} }
case 109: break; case 108: break;
case 53: case 53:
{ return JetTokens.LTEQ ; { return JetTokens.LTEQ ;
} }
case 110: break; case 109: break;
case 40: case 40:
{ return JetTokens.ARROW ; { return JetTokens.ARROW ;
} }
case 111: break; case 110: break;
case 20: case 20:
{ return JetTokens.LBRACKET ; { return JetTokens.LBRACKET ;
} }
case 112: break; case 111: break;
case 58: case 58:
{ yypushback(2); return JetTokens.INTEGER_LITERAL; { yypushback(2); return JetTokens.INTEGER_LITERAL;
} }
case 113: break; case 112: break;
case 10: case 10:
{ return JetTokens.CHARACTER_LITERAL; { return JetTokens.CHARACTER_LITERAL;
} }
case 114: break; case 113: break;
case 65: case 65:
{ return JetTokens.VAR_KEYWORD ; { return JetTokens.VAR_KEYWORD ;
} }
case 115: break; case 114: break;
case 54: case 54:
{ return JetTokens.GTEQ ; { return JetTokens.GTEQ ;
} }
case 116: break; case 115: break;
case 2: case 2:
{ return JetTokens.INTEGER_LITERAL; { return JetTokens.INTEGER_LITERAL;
} }
case 117: break; case 116: break;
case 23: case 23:
{ return JetTokens.RBRACE ; { return JetTokens.RBRACE ;
} }
case 118: break; case 117: break;
case 78: case 78:
{ return JetTokens.CLASS_KEYWORD ; { return JetTokens.CLASS_KEYWORD ;
} }
case 119: break; case 118: break;
case 13: case 13:
{ return JetTokens.EXCL ; { return JetTokens.EXCL ;
} }
case 120: break; case 119: break;
case 62: case 62:
{ return JetTokens.TRY_KEYWORD ; { return JetTokens.TRY_KEYWORD ;
} }
case 121: break; case 120: break;
case 48: case 48:
{ return JetTokens.EXCLEQ ; { return JetTokens.EXCLEQ ;
} }
case 122: break; case 121: break;
case 39: case 39:
{ return JetTokens.MINUSEQ ; { return JetTokens.MINUSEQ ;
} }
case 123: break; case 122: break;
case 79: case 79:
{ return JetTokens.THROW_KEYWORD ; { return JetTokens.THROW_KEYWORD ;
} }
case 124: break; case 123: break;
case 81: case 81:
{ return JetTokens.WHILE_KEYWORD ; { return JetTokens.WHILE_KEYWORD ;
} }
case 125: break; case 124: break;
case 38: case 38:
{ return JetTokens.MINUSMINUS; { return JetTokens.MINUSMINUS;
} }
case 126: break; case 125: break;
case 85: case 85:
{ return JetTokens.CONTINUE_KEYWORD ; { return JetTokens.CONTINUE_KEYWORD ;
} }
case 127: break; case 126: break;
case 32: case 32:
{ return JetTokens.ATAT ; { return JetTokens.ATAT ;
} }
case 128: break; case 127: break;
case 68: case 68:
{ return JetTokens.NOT_IN; { return JetTokens.NOT_IN;
} }
case 129: break; case 128: break;
case 6: case 6:
{ return JetTokens.DIV ; { return JetTokens.DIV ;
} }
case 130: break; case 129: break;
case 50: case 50:
{ return JetTokens.ELVIS ; { return JetTokens.ELVIS ;
} }
case 131: break; case 130: break;
case 31: case 31:
{ return JetTokens.LABEL_IDENTIFIER; { return JetTokens.LABEL_IDENTIFIER;
} }
case 132: break; case 131: break;
case 14: case 14:
{ return JetTokens.QUEST ; { return JetTokens.QUEST ;
} }
case 133: break; case 132: break;
case 56: case 56:
{ return JetTokens.OROR ; { return JetTokens.OROR ;
} }
case 134: break; case 133: break;
case 19: case 19:
{ return JetTokens.PERC ; { return JetTokens.PERC ;
} }
case 135: break; case 134: break;
case 70: case 70:
{ return JetTokens.EXCLEQEQEQ; { return JetTokens.EXCLEQEQEQ;
} }
case 136: break; case 135: break;
case 57: case 57:
{ return JetTokens.PERCEQ ; { return JetTokens.PERCEQ ;
} }
case 137: break; case 136: break;
case 37: case 37:
{ return JetTokens.RANGE ; { return JetTokens.RANGE ;
} }
case 138: break; case 137: break;
case 1: case 1:
{ return TokenType.BAD_CHARACTER; { return TokenType.BAD_CHARACTER;
} }
case 139: break; case 138: break;
case 49: case 49:
{ return JetTokens.SAFE_ACCESS; { return JetTokens.SAFE_ACCESS;
} }
case 140: break; case 139: break;
case 86: case 86:
{ return JetTokens.NAMESPACE_KEYWORD ; { return JetTokens.NAMESPACE_KEYWORD ;
} }
case 141: break; case 140: break;
case 69: case 69:
{ return JetTokens.NOT_IS; { return JetTokens.NOT_IS;
} }
case 142: break; case 141: break;
case 7: case 7:
{ return JetTokens.MUL ; { return JetTokens.MUL ;
} }
case 143: break; case 142: break;
case 21: case 21:
{ return JetTokens.RBRACKET ; { return JetTokens.RBRACKET ;
} }
case 144: break; case 143: break;
case 52: case 52:
{ return JetTokens.PLUSPLUS ; { return JetTokens.PLUSPLUS ;
} }
case 145: break; case 144: break;
case 74: case 74:
{ return JetTokens.THIS_KEYWORD ; { return JetTokens.THIS_KEYWORD ;
} }
case 146: break; case 145: break;
case 8: case 8:
{ return JetTokens.DOT ; { return JetTokens.DOT ;
} }
case 147: break; case 146: break;
case 26: case 26:
{ return JetTokens.SEMICOLON ; { return JetTokens.SEMICOLON ;
} }
case 148: break; case 147: break;
case 44: case 44:
{ return JetTokens.IF_KEYWORD ; { return JetTokens.IF_KEYWORD ;
} }
case 149: break; case 148: break;
case 12: case 12:
{ return JetTokens.EQ ; { return JetTokens.EQ ;
} }
case 150: break; case 149: break;
case 5: case 5:
{ return JetTokens.AT ; { return JetTokens.AT ;
} }
case 151: break; case 150: break;
case 61: case 61:
{ return JetTokens.AS_SAFE; { return JetTokens.AS_SAFE;
} }
case 152: break; case 151: break;
case 24: case 24:
{ return JetTokens.LPAR ; { return JetTokens.LPAR ;
} }
case 153: break; case 152: break;
case 9: case 9:
{ return JetTokens.MINUS ; { return JetTokens.MINUS ;
} }
case 154: break; case 153: break;
case 82: case 82:
{ return JetTokens.FALSE_KEYWORD ; { return JetTokens.FALSE_KEYWORD ;
} }
case 155: break; case 154: break;
case 75: case 75:
{ return JetTokens.TYPE_KEYWORD ; { return JetTokens.TYPE_KEYWORD ;
} }
case 156: break; case 155: break;
case 64: case 64:
{ return JetTokens.FUN_KEYWORD ; { return JetTokens.FUN_KEYWORD ;
} }
case 157: break; case 156: break;
case 43: case 43:
{ return JetTokens.IS_KEYWORD ; { return JetTokens.IS_KEYWORD ;
} }
case 158: break; case 157: break;
case 35: case 35:
{ return JetTokens.DIVEQ ; { return JetTokens.DIVEQ ;
} }
case 159: break; case 158: break;
case 87:
{ return JetTokens.EXTENSION_KEYWORD ;
}
case 160: break;
case 72: case 72:
{ return JetTokens.ELSE_KEYWORD ; { return JetTokens.ELSE_KEYWORD ;
} }
case 161: break; case 159: break;
case 41: case 41:
{ return JetTokens.AS_KEYWORD ; { return JetTokens.AS_KEYWORD ;
} }
case 162: break; case 160: break;
case 42: case 42:
{ return JetTokens.IN_KEYWORD ; { return JetTokens.IN_KEYWORD ;
} }
case 163: break; case 161: break;
case 46: case 46:
{ return JetTokens.EQEQ ; { return JetTokens.EQEQ ;
} }
case 164: break; case 162: break;
case 66: case 66:
{ return JetTokens.VAL_KEYWORD ; { return JetTokens.VAL_KEYWORD ;
} }
case 165: break; case 163: break;
case 67: case 67:
{ return JetTokens.EQEQEQ ; { return JetTokens.EQEQEQ ;
} }
case 166: break; case 164: break;
case 77: case 77:
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ; { return JetTokens.CAPITALIZED_THIS_KEYWORD ;
} }
case 167: break; case 165: break;
case 36: case 36:
{ return JetTokens.MULTEQ ; { return JetTokens.MULTEQ ;
} }
case 168: break; case 166: break;
case 11: case 11:
{ return JetTokens.STRING_LITERAL; { return JetTokens.STRING_LITERAL;
} }
case 169: break; case 167: break;
case 22: case 22:
{ return JetTokens.LBRACE ; { return JetTokens.LBRACE ;
} }
case 170: break; case 168: break;
case 83: case 83:
{ return JetTokens.OBJECT_KEYWORD ; { return JetTokens.OBJECT_KEYWORD ;
} }
case 171: break; case 169: break;
case 80: case 80:
{ return JetTokens.BREAK_KEYWORD ; { return JetTokens.BREAK_KEYWORD ;
} }
case 172: break; case 170: break;
case 34: case 34:
{ return JetTokens.BLOCK_COMMENT; { return JetTokens.BLOCK_COMMENT;
} }
case 173: break; case 171: break;
case 28: case 28:
{ return JetTokens.HASH ; { return JetTokens.HASH ;
} }
case 174: break; case 172: break;
default: default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true; zzAtEOF = true;
+1 -1
View File
@@ -1,7 +1,7 @@
fun foo() { fun foo() {
class foo class foo
fun foo() fun foo()
extension foo for boo class foo
type x = t type x = t
var r var r
+3 -10
View File
@@ -26,20 +26,13 @@ JetFile: EOLsOnRollback.jet
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
EXTENSION CLASS
PsiElement(extension)('extension') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
TYPE_PARAMETER_LIST TYPE_PARAMETER_LIST
<empty list> <empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('boo')
PsiWhiteSpace('\n\n ')
TYPEDEF TYPEDEF
PsiElement(type)('type') PsiElement(type)('type')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
-17
View File
@@ -1,17 +0,0 @@
extension for bar
extension foo for bar
extension <foo> for bar
extension foo<A> for bar
extension foo<A> for fun () : ()
extension for bar;
extension foo for bar;
extension <foo> for bar;
extension foo<A> for bar;
extension foo<A> for fun () : ();
extension for bar {}
extension foo for bar {}
extension <foo> for bar {}
extension foo<A> for bar {}
extension foo<A> for fun () : () {}
-5
View File
@@ -1,5 +0,0 @@
extension for
extension foo bar
extension <foo for bar
extension foo<A> for
extension foo<A> for fun () : () {}
-3
View File
@@ -8,7 +8,4 @@ fun foo() {
[a] var foo = 4 [a] var foo = 4
type f = fun T.() : () type f = fun T.() : ()
virtual extension foo for bar {
}
} }
+1 -23
View File
@@ -124,27 +124,5 @@ JetFile: LocalDeclarations.jet
TUPLE_TYPE TUPLE_TYPE
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n')
EXTENSION
MODIFIER_LIST
PsiElement(virtual)('virtual')
PsiWhiteSpace(' ')
PsiElement(extension)('extension')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace(' ')
CLASS_BODY
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
+3 -3
View File
@@ -1,7 +1,7 @@
class foo { class foo {
extension foo for X { class foo {
extension foo for X { object foo {
} }
@@ -19,7 +19,7 @@ class foo {
} }
class Bar { class Bar {
extension foo for X { object foo {
class object { class object {
} }
+356 -385
View File
@@ -10,36 +10,21 @@ JetFile: SimpleClassMembers.jet
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
EXTENSION CLASS
PsiElement(extension)('extension') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST TYPE_PARAMETER_LIST
<empty list> <empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('X')
PsiWhiteSpace(' ')
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
EXTENSION OBJECT_DECLARATION
PsiElement(extension)('extension') PsiElement(object)('object')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') OBJECT_DECLARATION_NAME
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('X')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
@@ -151,19 +136,11 @@ JetFile: SimpleClassMembers.jet
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
EXTENSION OBJECT_DECLARATION
PsiElement(extension)('extension') PsiElement(object)('object')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') OBJECT_DECLARATION_NAME
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('X')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
@@ -290,368 +267,362 @@ JetFile: SimpleClassMembers.jet
VALUE_ARGUMENT_LIST VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
CLASS_BODY PsiElement(RBRACE)('}')
PsiErrorElement:Expecting a class body PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') CLASS
PsiWhiteSpace('\n\n ') PsiElement(class)('class')
CLASS PsiWhiteSpace(' ')
PsiElement(class)('class') PsiElement(IDENTIFIER)('Bar')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Bar') TYPE_PARAMETER_LIST
PsiWhiteSpace(' ') <empty list>
TYPE_PARAMETER_LIST CLASS_BODY
<empty list> PsiElement(LBRACE)('{')
CLASS_BODY PsiElement(RBRACE)('}')
PsiElement(LBRACE)('{') PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}') FUN
PsiWhiteSpace('\n\n ') PsiElement(fun)('fun')
FUN PsiWhiteSpace(' ')
PsiElement(fun)('fun') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') VALUE_PARAMETER_LIST
PsiElement(IDENTIFIER)('foo') PsiElement(LPAR)('(')
VALUE_PARAMETER_LIST PsiElement(RPAR)(')')
PsiElement(LPAR)('(') PsiWhiteSpace('\n\n ')
PsiElement(RPAR)(')') PROPERTY
PsiWhiteSpace('\n\n ') PsiElement(val)('val')
PROPERTY PsiWhiteSpace(' ')
PsiElement(val)('val') PsiElement(IDENTIFIER)('x')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('x') PROPERTY
PsiWhiteSpace('\n\n ') PsiElement(var)('var')
PROPERTY PsiWhiteSpace(' ')
PsiElement(var)('var') PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('f') TYPEDEF
PsiWhiteSpace('\n\n ') PsiElement(type)('type')
TYPEDEF PsiWhiteSpace(' ')
PsiElement(type)('type') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') TYPE_PARAMETER_LIST
PsiWhiteSpace(' ') <empty list>
TYPE_PARAMETER_LIST PsiElement(EQ)('=')
<empty list> PsiWhiteSpace(' ')
PsiElement(EQ)('=') TYPE_REFERENCE
PsiWhiteSpace(' ') USER_TYPE
TYPE_REFERENCE REFERENCE_EXPRESSION
USER_TYPE PsiElement(IDENTIFIER)('bar')
REFERENCE_EXPRESSION PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('bar') CONSTRUCTOR
PsiWhiteSpace('\n\n ') PsiElement(this)('this')
CONSTRUCTOR VALUE_PARAMETER_LIST
PsiElement(this)('this') PsiElement(LPAR)('(')
VALUE_PARAMETER_LIST PsiElement(RPAR)(')')
PsiElement(LPAR)('(') PsiWhiteSpace(' ')
PsiElement(RPAR)(')') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') INITIALIZER_LIST
PsiWhiteSpace(' ') THIS_CALL
INITIALIZER_LIST THIS_CONSTRUCTOR_REFERENCE
THIS_CALL PsiElement(this)('this')
THIS_CONSTRUCTOR_REFERENCE VALUE_ARGUMENT_LIST
PsiElement(this)('this')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ') PsiElement(COMMA)(',')
PROPERTY PsiWhiteSpace(' ')
PsiElement(val)('val') DELEGATOR_SUPER_CALL
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('x')
PsiWhiteSpace('\n\n ')
PROPERTY
PsiElement(var)('var')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace('\n\n ')
TYPEDEF
PsiElement(type)('type')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar') PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace('\n\n ')
CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace('\n ')
PsiElement(COLON)(':') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace('\n\n ')
INITIALIZER_LIST FUN
THIS_CALL PsiElement(fun)('fun')
THIS_CONSTRUCTOR_REFERENCE PsiWhiteSpace(' ')
PsiElement(this)('this') PsiElement(IDENTIFIER)('foo')
VALUE_ARGUMENT_LIST VALUE_PARAMETER_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
VALUE_ARGUMENT PsiElement(RPAR)(')')
REFERENCE_EXPRESSION PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('a') PROPERTY
PsiElement(COMMA)(',') PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
VALUE_ARGUMENT PsiElement(IDENTIFIER)('x')
REFERENCE_EXPRESSION PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('b') PROPERTY
PsiElement(COMMA)(',') PsiElement(var)('var')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
VALUE_ARGUMENT PsiElement(IDENTIFIER)('f')
REFERENCE_EXPRESSION PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('c') TYPEDEF
PsiElement(RPAR)(')') PsiElement(type)('type')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('foo')
DELEGATOR_SUPER_CALL PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
PsiWhiteSpace('\n\n ')
CONSTRUCTOR
PsiElement(this)('this')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
INITIALIZER_LIST
THIS_CALL
THIS_CONSTRUCTOR_REFERENCE
PsiElement(this)('this')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('a')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('b')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('c')
PsiElement(RPAR)(')')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
DELEGATOR_SUPER_CALL
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo') PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST PsiElement(GT)('>')
PsiElement(LT)('<') VALUE_ARGUMENT_LIST
TYPE_PROJECTION PsiElement(LPAR)('(')
TYPE_REFERENCE VALUE_ARGUMENT
USER_TYPE REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')')
PsiElement(GT)('>') PsiWhiteSpace('\n\n ')
VALUE_ARGUMENT_LIST CONSTRUCTOR
PsiElement(LPAR)('(') PsiElement(this)('this')
VALUE_ARGUMENT VALUE_PARAMETER_LIST
REFERENCE_EXPRESSION PsiElement(LPAR)('(')
PsiElement(IDENTIFIER)('bar') PsiElement(RPAR)(')')
PsiElement(RPAR)(')') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') PsiElement(COLON)(':')
CONSTRUCTOR PsiWhiteSpace(' ')
PsiElement(this)('this') INITIALIZER_LIST
VALUE_PARAMETER_LIST THIS_CALL
PsiElement(LPAR)('(') THIS_CONSTRUCTOR_REFERENCE
PsiElement(RPAR)(')') PsiElement(this)('this')
PsiWhiteSpace(' ') VALUE_ARGUMENT_LIST
PsiElement(COLON)(':') PsiElement(LPAR)('(')
PsiWhiteSpace(' ') VALUE_ARGUMENT
INITIALIZER_LIST REFERENCE_EXPRESSION
THIS_CALL PsiElement(IDENTIFIER)('a')
THIS_CONSTRUCTOR_REFERENCE PsiElement(COMMA)(',')
PsiElement(this)('this') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST VALUE_ARGUMENT
PsiElement(LPAR)('(') REFERENCE_EXPRESSION
VALUE_ARGUMENT PsiElement(IDENTIFIER)('b')
REFERENCE_EXPRESSION PsiElement(COMMA)(',')
PsiElement(IDENTIFIER)('a') PsiWhiteSpace(' ')
PsiElement(COMMA)(',') VALUE_ARGUMENT
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
VALUE_ARGUMENT PsiElement(IDENTIFIER)('c')
REFERENCE_EXPRESSION PsiElement(RPAR)(')')
PsiElement(IDENTIFIER)('b') PsiElement(COMMA)(',')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') DELEGATOR_SUPER_CALL
VALUE_ARGUMENT TYPE_REFERENCE
REFERENCE_EXPRESSION USER_TYPE
PsiElement(IDENTIFIER)('c') REFERENCE_EXPRESSION
PsiElement(RPAR)(')') PsiElement(IDENTIFIER)('Foo')
PsiElement(COMMA)(',') TYPE_ARGUMENT_LIST
PsiWhiteSpace(' ') PsiElement(LT)('<')
DELEGATOR_SUPER_CALL TYPE_PROJECTION
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Foo') PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST PsiElement(GT)('>')
PsiElement(LT)('<') VALUE_ARGUMENT_LIST
TYPE_PROJECTION PsiElement(LPAR)('(')
TYPE_REFERENCE VALUE_ARGUMENT
USER_TYPE REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('bar')
PsiElement(IDENTIFIER)('T') PsiElement(RPAR)(')')
PsiElement(GT)('>') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST BLOCK
PsiElement(LPAR)('(') PsiElement(LBRACE)('{')
VALUE_ARGUMENT PsiWhiteSpace('\n\n ')
REFERENCE_EXPRESSION PsiElement(RBRACE)('}')
PsiElement(IDENTIFIER)('bar') PsiWhiteSpace('\n\n ')
PsiElement(RPAR)(')') CLASS_OBJECT
PsiWhiteSpace(' ') PsiElement(class)('class')
BLOCK PsiWhiteSpace(' ')
PsiElement(LBRACE)('{') OBJECT_DECLARATION
PsiWhiteSpace('\n\n ') PsiElement(object)('object')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') CLASS_BODY
CLASS_OBJECT PsiElement(LBRACE)('{')
PsiElement(class)('class') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') PsiElement(RBRACE)('}')
OBJECT_DECLARATION PsiWhiteSpace('\n\n ')
PsiElement(object)('object') CLASS_OBJECT
PsiWhiteSpace(' ') MODIFIER_LIST
CLASS_BODY PsiElement(private)('private')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') PsiElement(class)('class')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') OBJECT_DECLARATION
CLASS_OBJECT PsiElement(object)('object')
MODIFIER_LIST PsiWhiteSpace(' ')
PsiElement(private)('private') CLASS_BODY
PsiWhiteSpace(' ') PsiElement(LBRACE)('{')
PsiElement(class)('class') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') PsiElement(RBRACE)('}')
OBJECT_DECLARATION PsiWhiteSpace('\n\n ')
PsiElement(object)('object') CLASS_OBJECT
PsiWhiteSpace(' ') MODIFIER_LIST
CLASS_BODY PsiElement(private)('private')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') PsiElement(class)('class')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') OBJECT_DECLARATION
CLASS_OBJECT PsiElement(object)('object')
MODIFIER_LIST PsiWhiteSpace(' ')
PsiElement(private)('private') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') DELEGATION_SPECIFIER_LIST
PsiWhiteSpace(' ') DELEGATOR_SUPER_CLASS
OBJECT_DECLARATION TYPE_REFERENCE
PsiElement(object)('object') USER_TYPE
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
PsiElement(COLON)(':') PsiElement(IDENTIFIER)('Fooo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
DELEGATION_SPECIFIER_LIST CLASS_BODY
DELEGATOR_SUPER_CLASS PsiElement(LBRACE)('{')
TYPE_REFERENCE PsiWhiteSpace('\n\n ')
USER_TYPE PsiElement(RBRACE)('}')
REFERENCE_EXPRESSION PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('Fooo') CLASS_OBJECT
PsiWhiteSpace(' ') MODIFIER_LIST
CLASS_BODY PsiElement(private)('private')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') PsiElement(class)('class')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') OBJECT_DECLARATION
CLASS_OBJECT PsiElement(object)('object')
MODIFIER_LIST PsiWhiteSpace(' ')
PsiElement(private)('private') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') DELEGATION_SPECIFIER_LIST
PsiWhiteSpace(' ') DELEGATOR_SUPER_CLASS
OBJECT_DECLARATION TYPE_REFERENCE
PsiElement(object)('object') USER_TYPE
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
PsiElement(COLON)(':') PsiElement(IDENTIFIER)('Fooo')
PsiWhiteSpace(' ') PsiElement(COMMA)(',')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CLASS DELEGATOR_BY
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Fooo') PsiElement(IDENTIFIER)('Bar')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(by)('by')
DELEGATOR_BY PsiWhiteSpace(' ')
TYPE_REFERENCE REFERENCE_EXPRESSION
USER_TYPE PsiElement(IDENTIFIER)('foo')
REFERENCE_EXPRESSION PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Bar') CLASS_BODY
PsiWhiteSpace(' ') PsiElement(LBRACE)('{')
PsiElement(by)('by') PsiWhiteSpace('\n\n ')
PsiWhiteSpace(' ') PsiElement(RBRACE)('}')
REFERENCE_EXPRESSION PsiWhiteSpace('\n\n ')
PsiElement(IDENTIFIER)('foo') CLASS_OBJECT
PsiWhiteSpace(' ') MODIFIER_LIST
CLASS_BODY PsiElement(private)('private')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') PsiElement(class)('class')
PsiElement(RBRACE)('}') PsiWhiteSpace(' ')
PsiWhiteSpace('\n\n ') OBJECT_DECLARATION
CLASS_OBJECT PsiElement(object)('object')
MODIFIER_LIST PsiWhiteSpace(' ')
PsiElement(private)('private') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(class)('class') DELEGATION_SPECIFIER_LIST
PsiWhiteSpace(' ') DELEGATOR_SUPER_CLASS
OBJECT_DECLARATION TYPE_REFERENCE
PsiElement(object)('object') USER_TYPE
PsiWhiteSpace(' ') REFERENCE_EXPRESSION
PsiElement(COLON)(':') PsiElement(IDENTIFIER)('Fooo')
PsiWhiteSpace(' ') PsiElement(COMMA)(',')
DELEGATION_SPECIFIER_LIST PsiWhiteSpace(' ')
DELEGATOR_SUPER_CLASS DELEGATOR_BY
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Fooo') PsiElement(IDENTIFIER)('Bar')
PsiElement(COMMA)(',') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') PsiElement(by)('by')
DELEGATOR_BY PsiWhiteSpace(' ')
TYPE_REFERENCE REFERENCE_EXPRESSION
USER_TYPE PsiElement(IDENTIFIER)('foo')
REFERENCE_EXPRESSION PsiElement(COMMA)(',')
PsiElement(IDENTIFIER)('Bar') PsiWhiteSpace(' ')
PsiWhiteSpace(' ') DELEGATOR_SUPER_CALL
PsiElement(by)('by') TYPE_REFERENCE
PsiWhiteSpace(' ') USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('Goo')
PsiElement(COMMA)(',') VALUE_ARGUMENT_LIST
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
DELEGATOR_SUPER_CALL PsiElement(RPAR)(')')
TYPE_REFERENCE PsiWhiteSpace('\n\n\n')
USER_TYPE PsiElement(RBRACE)('}')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Goo')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n\n')
CLASS_BODY
PsiErrorElement:Expecting a class body
PsiElement(RBRACE)('}')
PsiErrorElement:Missing '}
<empty list>
+1 -1
View File
@@ -1,6 +1,6 @@
class foo { class foo {
extension foo for X { } - class foo {} -
class Bar { class Bar {
sdfsd sdfsd
+2 -10
View File
@@ -10,23 +10,15 @@ JetFile: SimpleClassMembers_ERR.jet
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
EXTENSION CLASS
PsiElement(extension)('extension') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('foo') PsiElement(IDENTIFIER)('foo')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST TYPE_PARAMETER_LIST
<empty list> <empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('X')
PsiWhiteSpace(' ')
CLASS_BODY CLASS_BODY
PsiElement(LBRACE)('{') PsiElement(LBRACE)('{')
PsiWhiteSpace(' ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiErrorElement:Expecting member declaration PsiErrorElement:Expecting member declaration
@@ -16,16 +16,12 @@ class List<T> {
} }
extension Map<E, T> fun <E, T, R> where
where T : Iterable<E>,
T : Iterable<E>, class object T : Buildable<E, T> Map<E, T>.map(f : fun (E) : R) : T<R> = {
class object T : Buildable<E, T> for T { val builder = T.newBuilder()
for (e in this) {
fun map<R>(f : fun (E) : R) : T<R> = { builder += f(e)
val builder = T.newBuilder()
for (e in this) {
builder += f(e)
}
builder.result()
} }
builder.result()
} }
@@ -195,10 +195,9 @@ JetFile: PolymorphicClassObjects.jet
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
EXTENSION FUN
PsiElement(extension)('extension') PsiElement(fun)('fun')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('Map')
TYPE_PARAMETER_LIST TYPE_PARAMETER_LIST
PsiElement(LT)('<') PsiElement(LT)('<')
TYPE_PARAMETER TYPE_PARAMETER
@@ -207,10 +206,14 @@ JetFile: PolymorphicClassObjects.jet
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_PARAMETER TYPE_PARAMETER
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('R')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
PsiElement(where)('where') PsiElement(where)('where')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
TYPE_CONSTRAINT_LIST TYPE_CONSTRAINT_LIST
TYPE_CONSTRAINT TYPE_CONSTRAINT
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
@@ -231,7 +234,7 @@ JetFile: PolymorphicClassObjects.jet
PsiElement(IDENTIFIER)('E') PsiElement(IDENTIFIER)('E')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiElement(COMMA)(',') PsiElement(COMMA)(',')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
TYPE_CONSTRAINT TYPE_CONSTRAINT
PsiElement(class)('class') PsiElement(class)('class')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -261,145 +264,145 @@ JetFile: PolymorphicClassObjects.jet
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>') PsiElement(GT)('>')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(for)('for') TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Map')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('E')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('map')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
FUNCTION_TYPE
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('E')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('R')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiWhiteSpace(' ') TYPE_ARGUMENT_LIST
CLASS_BODY
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n\n ')
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('map')
TYPE_PARAMETER_LIST
PsiElement(LT)('<') PsiElement(LT)('<')
TYPE_PARAMETER TYPE_PROJECTION
PsiElement(IDENTIFIER)('R')
PsiElement(GT)('>')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('f')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
FUNCTION_TYPE USER_TYPE
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('E')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('R')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
TYPE_ARGUMENT_LIST
PsiElement(LT)('<')
TYPE_PROJECTION
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('R')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
FUNCTION_LITERAL_EXPRESSION
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BLOCK
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('builder')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('newBuilder')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
LOOP_PARAMETER
PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ')
PsiElement(in)('in')
PsiWhiteSpace(' ')
LOOP_RANGE
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BODY
FUNCTION_LITERAL_EXPRESSION
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BLOCK
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('builder')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(PLUSEQ)('+=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('f')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('builder') PsiElement(IDENTIFIER)('R')
PsiElement(DOT)('.') PsiElement(GT)('>')
CALL_EXPRESSION PsiWhiteSpace(' ')
REFERENCE_EXPRESSION PsiElement(EQ)('=')
PsiElement(IDENTIFIER)('result') PsiWhiteSpace(' ')
VALUE_ARGUMENT_LIST FUNCTION_LITERAL_EXPRESSION
PsiElement(LPAR)('(') FUNCTION_LITERAL
PsiElement(RPAR)(')') PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') BLOCK
PsiWhiteSpace('\n') PROPERTY
PsiElement(RBRACE)('}') PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('builder')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('newBuilder')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
FOR
PsiElement(for)('for')
PsiWhiteSpace(' ')
PsiElement(LPAR)('(')
LOOP_PARAMETER
PsiElement(IDENTIFIER)('e')
PsiWhiteSpace(' ')
PsiElement(in)('in')
PsiWhiteSpace(' ')
LOOP_RANGE
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BODY
FUNCTION_LITERAL_EXPRESSION
FUNCTION_LITERAL
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BLOCK
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('builder')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(PLUSEQ)('+=')
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('f')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('e')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('builder')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('result')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')
@@ -64,34 +64,29 @@ class BinaryHeap<T> : IPriorityQueue<T> {
} }
} }
private extension HeapIndex for Int { val Int.parent : Int
val parent : Int get() = (this - 1) / 2
get() = (this - 1) / 2
val left : Int val Int.left : Int
get() = this * 2 + 1 get() = this * 2 + 1
val right : Int val Int.right : Int
get() = this * 2 + 2 get() = this * 2 + 2
val value : T = foo.bar() val Int.value : T = foo.bar()
get() = data[this] get() = data[this]
set(it) { set(it) {
$value = it $value = it
} }
val exists : Boolean val Int.exists : Boolean
get() = (this < data.size) && (this >= 0) get() = (this < data.size) && (this >= 0)
} fun <T> T.compareTo(other : T) : Int = compare(this, other)
private extension for T {
[operator] fun compareTo(other : T) : Int = compare(this, other)
}
} }
@@ -911,144 +911,284 @@ JetFile: BinaryHeap.jet
PsiWhiteSpace('\n ') PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ') PsiWhiteSpace('\n\n ')
EXTENSION PROPERTY
MODIFIER_LIST PsiElement(val)('val')
PsiElement(private)('private')
PsiWhiteSpace(' ')
PsiElement(extension)('extension')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('HeapIndex')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int') PsiElement(IDENTIFIER)('Int')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('parent')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
CLASS_BODY PsiElement(COLON)(':')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n ') TYPE_REFERENCE
PROPERTY USER_TYPE
PsiElement(val)('val') REFERENCE_EXPRESSION
PsiWhiteSpace(' ') PsiElement(IDENTIFIER)('Int')
PsiElement(IDENTIFIER)('parent') PsiWhiteSpace('\n ')
PsiWhiteSpace(' ') PROPERTY_ACCESSOR
PsiElement(COLON)(':') PsiElement(get)('get')
PsiWhiteSpace(' ') PsiElement(LPAR)('(')
TYPE_REFERENCE PsiElement(RPAR)(')')
USER_TYPE PsiWhiteSpace(' ')
REFERENCE_EXPRESSION PsiElement(EQ)('=')
PsiElement(IDENTIFIER)('Int') PsiWhiteSpace(' ')
PsiWhiteSpace('\n ') BINARY_EXPRESSION
PROPERTY_ACCESSOR PARENTHESIZED
PsiElement(get)('get')
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION BINARY_EXPRESSION
PARENTHESIZED THIS_EXPRESSION
PsiElement(LPAR)('(') REFERENCE_EXPRESSION
BINARY_EXPRESSION PsiElement(this)('this')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(MINUS)('-')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE OPERATION_REFERENCE
PsiElement(DIV)('/') PsiElement(MINUS)('-')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2')
PsiWhiteSpace('\n\n\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('left')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
BINARY_EXPRESSION
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(PLUS)('+')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
INTEGER_CONSTANT INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1') PsiElement(INTEGER_LITERAL)('1')
PsiWhiteSpace('\n\n\n ') PsiElement(RPAR)(')')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('right') OPERATION_REFERENCE
PsiElement(DIV)('/')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') INTEGER_CONSTANT
PsiWhiteSpace(' ') PsiElement(INTEGER_LITERAL)('2')
TYPE_REFERENCE PsiWhiteSpace('\n\n\n ')
USER_TYPE PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('left')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
BINARY_EXPRESSION
THIS_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int') PsiElement(this)('this')
PsiWhiteSpace('\n ') PsiWhiteSpace(' ')
PROPERTY_ACCESSOR OPERATION_REFERENCE
PsiElement(get)('get') PsiElement(MUL)('*')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(PLUS)('+')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('1')
PsiWhiteSpace('\n\n\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('right')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
BINARY_EXPRESSION
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(PLUS)('+')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2')
PsiWhiteSpace('\n\n\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('value')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(') PsiElement(LPAR)('(')
PsiElement(RPAR)(')') PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
ARRAY_ACCESS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('data')
INDICES
PsiElement(LBRACKET)('[')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(set)('set')
PsiElement(LPAR)('(')
VALUE_PARAMETER_LIST
VALUE_PARAMETER
PsiElement(IDENTIFIER)('it')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(FIELD_IDENTIFIER)('$value')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') OPERATION_REFERENCE
PsiElement(EQ)('=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('it')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('exists')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Boolean')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
PARENTHESIZED
PsiElement(LPAR)('(')
BINARY_EXPRESSION BINARY_EXPRESSION
BINARY_EXPRESSION THIS_EXPRESSION
THIS_EXPRESSION REFERENCE_EXPRESSION
REFERENCE_EXPRESSION PsiElement(this)('this')
PsiElement(this)('this')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(MUL)('*')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
OPERATION_REFERENCE OPERATION_REFERENCE
PsiElement(PLUS)('+') PsiElement(LT)('<')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('data')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('size')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(ANDAND)('&&')
PsiWhiteSpace(' ')
PARENTHESIZED
PsiElement(LPAR)('(')
BINARY_EXPRESSION
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(GTEQ)('>=')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
INTEGER_CONSTANT INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('2') PsiElement(INTEGER_LITERAL)('0')
PsiWhiteSpace('\n\n\n ') PsiElement(RPAR)(')')
PROPERTY PsiWhiteSpace('\n\n ')
PsiElement(val)('val') FUN
PsiWhiteSpace(' ') PsiElement(fun)('fun')
PsiElement(IDENTIFIER)('value') PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
PsiElement(LT)('<')
TYPE_PARAMETER
PsiElement(IDENTIFIER)('T')
PsiElement(GT)('>')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(DOT)('.')
PsiElement(IDENTIFIER)('compareTo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('other')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(COLON)(':') PsiElement(COLON)(':')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
@@ -1056,188 +1196,32 @@ JetFile: BinaryHeap.jet
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('T')
PsiWhiteSpace(' ') PsiElement(RPAR)(')')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('foo')
PsiElement(DOT)('.')
CALL_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('bar')
VALUE_ARGUMENT_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
ARRAY_ACCESS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('data')
INDICES
PsiElement(LBRACKET)('[')
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(RBRACKET)(']')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(set)('set')
PsiElement(LPAR)('(')
VALUE_PARAMETER_LIST
VALUE_PARAMETER
PsiElement(IDENTIFIER)('it')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
BINARY_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(FIELD_IDENTIFIER)('$value')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('it')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('exists')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Boolean')
PsiWhiteSpace('\n ')
PROPERTY_ACCESSOR
PsiElement(get)('get')
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
BINARY_EXPRESSION
PARENTHESIZED
PsiElement(LPAR)('(')
BINARY_EXPRESSION
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(LT)('<')
PsiWhiteSpace(' ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('data')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('size')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(ANDAND)('&&')
PsiWhiteSpace(' ')
PARENTHESIZED
PsiElement(LPAR)('(')
BINARY_EXPRESSION
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiWhiteSpace(' ')
OPERATION_REFERENCE
PsiElement(GTEQ)('>=')
PsiWhiteSpace(' ')
INTEGER_CONSTANT
PsiElement(INTEGER_LITERAL)('0')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n ')
EXTENSION
MODIFIER_LIST
PsiElement(private)('private')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(extension)('extension') PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_PARAMETER_LIST
<empty list>
PsiElement(for)('for')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
TYPE_REFERENCE TYPE_REFERENCE
USER_TYPE USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T') PsiElement(IDENTIFIER)('Int')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
CLASS_BODY PsiElement(EQ)('=')
PsiElement(LBRACE)('{') PsiWhiteSpace(' ')
PsiWhiteSpace('\n ') CALL_EXPRESSION
FUN REFERENCE_EXPRESSION
MODIFIER_LIST PsiElement(IDENTIFIER)('compare')
ATTRIBUTE_ANNOTATION VALUE_ARGUMENT_LIST
PsiElement(LBRACKET)('[') PsiElement(LPAR)('(')
ATTRIBUTE VALUE_ARGUMENT
TYPE_REFERENCE THIS_EXPRESSION
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('operator')
PsiElement(RBRACKET)(']')
PsiWhiteSpace(' ')
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('compareTo')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
VALUE_PARAMETER
PsiElement(IDENTIFIER)('other')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('T')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
PsiElement(COLON)(':')
PsiWhiteSpace(' ')
TYPE_REFERENCE
USER_TYPE
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('Int') PsiElement(this)('this')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ') PsiWhiteSpace(' ')
PsiElement(EQ)('=') VALUE_ARGUMENT
PsiWhiteSpace(' ')
CALL_EXPRESSION
REFERENCE_EXPRESSION REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('compare') PsiElement(IDENTIFIER)('other')
VALUE_ARGUMENT_LIST PsiElement(RPAR)(')')
PsiElement(LPAR)('(')
VALUE_ARGUMENT
THIS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(this)('this')
PsiElement(COMMA)(',')
PsiWhiteSpace(' ')
VALUE_ARGUMENT
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('other')
PsiElement(RPAR)(')')
PsiWhiteSpace('\n ')
PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')
PsiElement(RBRACE)('}') PsiElement(RBRACE)('}')
PsiWhiteSpace('\n\n') PsiWhiteSpace('\n\n')