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