From addfc6a4216bc87a03b09b6145bed1f6440ac9e6 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 8 Jul 2011 22:05:14 +0400 Subject: [PATCH] JET-177 Drop extensions --- grammar/src/class_members.grm | 1 - grammar/src/expressions.grm | 3 +- grammar/src/toplevel.grm | 8 +- idea/src/org/jetbrains/jet/JetNodeTypes.java | 1 - .../lang/parsing/JetExpressionParsing.java | 12 +- .../jet/lang/parsing/JetParsing.java | 52 +- .../jetbrains/jet/lang/psi/JetExtension.java | 36 - .../jetbrains/jet/lang/psi/JetVisitor.java | 4 - .../jet/lang/resolve/TopDownAnalyzer.java | 5 - .../jet/lang/types/JetTypeInferrer.java | 5 - idea/src/org/jetbrains/jet/lexer/Jet.flex | 1 - .../org/jetbrains/jet/lexer/JetTokens.java | 3 +- .../org/jetbrains/jet/lexer/_JetLexer.java | 666 ++++++++-------- idea/testData/psi/EOLsOnRollback.jet | 2 +- idea/testData/psi/EOLsOnRollback.txt | 13 +- idea/testData/psi/Extensions.jet | 17 - idea/testData/psi/Extensions_ERR.jet | 5 - idea/testData/psi/LocalDeclarations.jet | 3 - idea/testData/psi/LocalDeclarations.txt | 24 +- idea/testData/psi/SimpleClassMembers.jet | 6 +- idea/testData/psi/SimpleClassMembers.txt | 741 +++++++++--------- idea/testData/psi/SimpleClassMembers_ERR.jet | 2 +- idea/testData/psi/SimpleClassMembers_ERR.txt | 12 +- .../psi/examples/PolymorphicClassObjects.jet | 18 +- .../psi/examples/PolymorphicClassObjects.txt | 283 +++---- .../examples/priorityqueues/BinaryHeap.jet | 33 +- .../examples/priorityqueues/BinaryHeap.txt | 556 +++++++------ 27 files changed, 1140 insertions(+), 1372 deletions(-) delete mode 100644 idea/src/org/jetbrains/jet/lang/psi/JetExtension.java delete mode 100644 idea/testData/psi/Extensions.jet delete mode 100644 idea/testData/psi/Extensions_ERR.jet diff --git a/grammar/src/class_members.grm b/grammar/src/class_members.grm index a50c2f298bd..880ef78485b 100644 --- a/grammar/src/class_members.grm +++ b/grammar/src/class_members.grm @@ -41,7 +41,6 @@ memberDeclaration : function : property : class - : extension : typedef : anonymousInitializer ; diff --git a/grammar/src/expressions.grm b/grammar/src/expressions.grm index 6d6e4bba935..18c13eae9f1 100644 --- a/grammar/src/expressions.grm +++ b/grammar/src/expressions.grm @@ -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: diff --git a/grammar/src/toplevel.grm b/grammar/src/toplevel.grm index 9176a411350..be183d75fde 100644 --- a/grammar/src/toplevel.grm +++ b/grammar/src/toplevel.grm @@ -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 - ; + ; \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/JetNodeTypes.java b/idea/src/org/jetbrains/jet/JetNodeTypes.java index 32d3d7410d0..9b447eefc02 100644 --- a/idea/src/org/jetbrains/jet/JetNodeTypes.java +++ b/idea/src/org/jetbrains/jet/JetNodeTypes.java @@ -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); diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index 0a4c90e2f51..ee79c91b1c6 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -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); } diff --git a/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java b/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java index 53a85185f55..6b444a8c360 100644 --- a/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java +++ b/idea/src/org/jetbrains/jet/lang/parsing/JetParsing.java @@ -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{","} */ diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetExtension.java b/idea/src/org/jetbrains/jet/lang/psi/JetExtension.java deleted file mode 100644 index d931b077191..00000000000 --- a/idea/src/org/jetbrains/jet/lang/psi/JetExtension.java +++ /dev/null @@ -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 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); - } -} diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java index 74fe39886ba..7235bb583d5 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetVisitor.java @@ -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); } diff --git a/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java b/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java index 48869941b6c..3cad8d451f8 100644 --- a/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java +++ b/idea/src/org/jetbrains/jet/lang/resolve/TopDownAnalyzer.java @@ -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(); diff --git a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java index 3bbe4fd2b59..b787fa6616b 100644 --- a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java +++ b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java @@ -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 diff --git a/idea/src/org/jetbrains/jet/lexer/Jet.flex b/idea/src/org/jetbrains/jet/lexer/Jet.flex index edfc34276eb..1fb3c26dee5 100644 --- a/idea/src/org/jetbrains/jet/lexer/Jet.flex +++ b/idea/src/org/jetbrains/jet/lexer/Jet.flex @@ -92,7 +92,6 @@ RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}? {RAW_STRING_LITERAL} { return JetTokens.RAW_STRING_LITERAL; } "namespace" { return JetTokens.NAMESPACE_KEYWORD ;} - "extension" { return JetTokens.EXTENSION_KEYWORD ;} "continue" { return JetTokens.CONTINUE_KEYWORD ;} "return" { return JetTokens.RETURN_KEYWORD ;} "object" { return JetTokens.OBJECT_KEYWORD ;} diff --git a/idea/src/org/jetbrains/jet/lexer/JetTokens.java b/idea/src/org/jetbrains/jet/lexer/JetTokens.java index f104524c20e..bfa7d488288 100644 --- a/idea/src/org/jetbrains/jet/lexer/JetTokens.java +++ b/idea/src/org/jetbrains/jet/lexer/JetTokens.java @@ -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, diff --git a/idea/src/org/jetbrains/jet/lexer/_JetLexer.java b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java index 7b1b4fb7617..36cb03fff84 100644 --- a/idea/src/org/jetbrains/jet/lexer/_JetLexer.java +++ b/idea/src/org/jetbrains/jet/lexer/_JetLexer.java @@ -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 * JFlex 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 * /Users/abreslav/work/jet/idea/src/org/jetbrains/jet/lexer/Jet.flex */ 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; diff --git a/idea/testData/psi/EOLsOnRollback.jet b/idea/testData/psi/EOLsOnRollback.jet index 67fc2c3eb34..b5bd7b1a9e3 100644 --- a/idea/testData/psi/EOLsOnRollback.jet +++ b/idea/testData/psi/EOLsOnRollback.jet @@ -1,7 +1,7 @@ fun foo() { class foo fun foo() - extension foo for boo + class foo type x = t var r diff --git a/idea/testData/psi/EOLsOnRollback.txt b/idea/testData/psi/EOLsOnRollback.txt index 4ce26ff7333..9716abed628 100644 --- a/idea/testData/psi/EOLsOnRollback.txt +++ b/idea/testData/psi/EOLsOnRollback.txt @@ -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 - PsiElement(for)('for') - PsiWhiteSpace(' ') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('boo') - PsiWhiteSpace('\n\n ') TYPEDEF PsiElement(type)('type') PsiWhiteSpace(' ') diff --git a/idea/testData/psi/Extensions.jet b/idea/testData/psi/Extensions.jet deleted file mode 100644 index 6b8bf64220c..00000000000 --- a/idea/testData/psi/Extensions.jet +++ /dev/null @@ -1,17 +0,0 @@ -extension for bar -extension foo for bar -extension for bar -extension foo for bar -extension foo for fun () : () - -extension for bar; -extension foo for bar; -extension for bar; -extension foo for bar; -extension foo for fun () : (); - -extension for bar {} -extension foo for bar {} -extension for bar {} -extension foo for bar {} -extension foo for fun () : () {} \ No newline at end of file diff --git a/idea/testData/psi/Extensions_ERR.jet b/idea/testData/psi/Extensions_ERR.jet deleted file mode 100644 index 7dd42ebd6b5..00000000000 --- a/idea/testData/psi/Extensions_ERR.jet +++ /dev/null @@ -1,5 +0,0 @@ -extension for -extension foo bar -extension for -extension foo for fun () : () {} \ No newline at end of file diff --git a/idea/testData/psi/LocalDeclarations.jet b/idea/testData/psi/LocalDeclarations.jet index 5181558fb42..abe0308a864 100644 --- a/idea/testData/psi/LocalDeclarations.jet +++ b/idea/testData/psi/LocalDeclarations.jet @@ -8,7 +8,4 @@ fun foo() { [a] var foo = 4 type f = fun T.() : () - virtual extension foo for bar { - - } } diff --git a/idea/testData/psi/LocalDeclarations.txt b/idea/testData/psi/LocalDeclarations.txt index e039f0ca6cc..521c1fb6674 100644 --- a/idea/testData/psi/LocalDeclarations.txt +++ b/idea/testData/psi/LocalDeclarations.txt @@ -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 - - 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)('}') \ No newline at end of file diff --git a/idea/testData/psi/SimpleClassMembers.jet b/idea/testData/psi/SimpleClassMembers.jet index 0aa33e631a7..125b86cf2c3 100644 --- a/idea/testData/psi/SimpleClassMembers.jet +++ b/idea/testData/psi/SimpleClassMembers.jet @@ -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 { } diff --git a/idea/testData/psi/SimpleClassMembers.txt b/idea/testData/psi/SimpleClassMembers.txt index c76ec036370..f29673fb7fa 100644 --- a/idea/testData/psi/SimpleClassMembers.txt +++ b/idea/testData/psi/SimpleClassMembers.txt @@ -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 - 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 - - 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 - - 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 - - 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 - - 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 + + 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 + + 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 - - 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 + + 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 '} - \ No newline at end of file + 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)('}') \ No newline at end of file diff --git a/idea/testData/psi/SimpleClassMembers_ERR.jet b/idea/testData/psi/SimpleClassMembers_ERR.jet index 618218aeae6..3600f3e5724 100644 --- a/idea/testData/psi/SimpleClassMembers_ERR.jet +++ b/idea/testData/psi/SimpleClassMembers_ERR.jet @@ -1,6 +1,6 @@ class foo { - extension foo for X { } - + class foo {} - class Bar { sdfsd diff --git a/idea/testData/psi/SimpleClassMembers_ERR.txt b/idea/testData/psi/SimpleClassMembers_ERR.txt index 68d1fc18421..74599c339fd 100644 --- a/idea/testData/psi/SimpleClassMembers_ERR.txt +++ b/idea/testData/psi/SimpleClassMembers_ERR.txt @@ -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 - 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 diff --git a/idea/testData/psi/examples/PolymorphicClassObjects.jet b/idea/testData/psi/examples/PolymorphicClassObjects.jet index b2b042c4ac7..7479ba745be 100644 --- a/idea/testData/psi/examples/PolymorphicClassObjects.jet +++ b/idea/testData/psi/examples/PolymorphicClassObjects.jet @@ -16,16 +16,12 @@ class List { } -extension Map - where - T : Iterable, - class object T : Buildable for T { - - fun map(f : fun (E) : R) : T = { - val builder = T.newBuilder() - for (e in this) { - builder += f(e) - } - builder.result() +fun where + T : Iterable, + class object T : Buildable Map.map(f : fun (E) : R) : T = { + val builder = T.newBuilder() + for (e in this) { + builder += f(e) } + builder.result() } \ No newline at end of file diff --git a/idea/testData/psi/examples/PolymorphicClassObjects.txt b/idea/testData/psi/examples/PolymorphicClassObjects.txt index 34c55ca19d7..6d075b580d3 100644 --- a/idea/testData/psi/examples/PolymorphicClassObjects.txt +++ b/idea/testData/psi/examples/PolymorphicClassObjects.txt @@ -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)('}') \ No newline at end of file + 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)('}') \ No newline at end of file diff --git a/idea/testData/psi/examples/priorityqueues/BinaryHeap.jet b/idea/testData/psi/examples/priorityqueues/BinaryHeap.jet index d7e5aaf8285..5c8f9e05080 100644 --- a/idea/testData/psi/examples/priorityqueues/BinaryHeap.jet +++ b/idea/testData/psi/examples/priorityqueues/BinaryHeap.jet @@ -64,34 +64,29 @@ class BinaryHeap : IPriorityQueue { } } - 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.compareTo(other : T) : Int = compare(this, other) } diff --git a/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt b/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt index 32400ffd229..48d975a1f91 100644 --- a/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt +++ b/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt @@ -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 - - 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 - - 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')