diff --git a/compiler/frontend/src/org/jetbrains/kotlin/lexer/JetTokens.java b/compiler/frontend/src/org/jetbrains/kotlin/lexer/JetTokens.java
index c66d8c150cc..c6bcc8899a2 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/lexer/JetTokens.java
+++ b/compiler/frontend/src/org/jetbrains/kotlin/lexer/JetTokens.java
@@ -73,6 +73,7 @@ public interface JetTokens {
JetKeywordToken DO_KEYWORD = JetKeywordToken.keyword("do");
JetKeywordToken WHEN_KEYWORD = JetKeywordToken.keyword("when");
JetKeywordToken TRAIT_KEYWORD = JetKeywordToken.keyword("trait");
+ JetKeywordToken INTERFACE_KEYWORD = JetKeywordToken.keyword("interface");
// TODO: Discuss "This" keyword
JetKeywordToken CAPITALIZED_THIS_KEYWORD = JetKeywordToken.keyword("This");
@@ -160,7 +161,7 @@ public interface JetTokens {
JetKeywordToken FINALLY_KEYWORD = JetKeywordToken.softKeyword("finally");
JetModifierKeywordToken FINAL_KEYWORD = JetModifierKeywordToken.softKeywordModifier("final");
- TokenSet KEYWORDS = TokenSet.create(PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, CLASS_KEYWORD, TRAIT_KEYWORD,
+ TokenSet KEYWORDS = TokenSet.create(PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, CLASS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD,
THIS_KEYWORD, SUPER_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD,
NULL_KEYWORD,
TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD,
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex b/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex
index 8b3006afb5f..a662d793286 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex
+++ b/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex
@@ -241,6 +241,7 @@ LONG_TEMPLATE_ENTRY_START=\$\{
{CHARACTER_LITERAL} { return JetTokens.CHARACTER_LITERAL; }
"typealias" { return JetTokens.TYPE_ALIAS_KEYWORD ;}
+"interface" { return JetTokens.INTERFACE_KEYWORD ;}
"continue" { return JetTokens.CONTINUE_KEYWORD ;}
"package" { return JetTokens.PACKAGE_KEYWORD ;}
"return" { return JetTokens.RETURN_KEYWORD ;}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java b/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java
index be33b109332..722ea89c079 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java
+++ b/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 4/24/15 7:12 PM */
+/* The following code was generated by JFlex 1.4.3 on 4/29/15 4:44 PM */
package org.jetbrains.kotlin.lexer;
@@ -14,8 +14,8 @@ import org.jetbrains.kotlin.lexer.JetTokens;
/**
* This class is a scanner generated by
* JFlex 1.4.3
- * on 4/24/15 7:12 PM from the specification file
- * /home/sufix/work/kotlin/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex
+ * on 4/29/15 4:44 PM from the specification file
+ * /Users/yole/jetbrains/kotlin/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex
*/
class _JetLexer implements FlexLexer {
/** initial size of the lookahead buffer */
@@ -49,87 +49,68 @@ class _JetLexer implements FlexLexer {
"\1\20\1\11\1\14\11\1\1\72\1\77\1\65\1\62\1\66\1\63"+
"\1\101\1\2\1\16\2\2\1\22\1\21\5\4\1\17\3\4\1\24"+
"\3\4\1\57\3\4\1\15\2\4\1\73\1\26\1\74\1\0\1\4"+
- "\1\6\1\43\1\53\1\45\1\61\1\42\1\56\1\51\1\33\1\34"+
- "\1\54\1\50\1\44\1\4\1\47\1\46\1\41\1\4\1\52\1\35"+
- "\1\32\1\27\1\60\1\55\1\15\1\40\1\4\1\31\1\70\1\36"+
+ "\1\6\1\43\1\54\1\50\1\61\1\42\1\47\1\53\1\33\1\34"+
+ "\1\55\1\52\1\44\1\4\1\45\1\51\1\41\1\4\1\46\1\35"+
+ "\1\32\1\27\1\60\1\56\1\15\1\40\1\4\1\31\1\70\1\36"+
"\54\0\1\4\12\0\1\4\4\0\1\4\5\0\27\4\1\0\37\4"+
- "\1\0\u01ca\4\4\0\14\4\16\0\5\4\7\0\1\4\1\0\1\4"+
- "\201\0\5\4\1\0\2\4\2\0\4\4\10\0\1\4\1\0\3\4"+
- "\1\0\1\4\1\0\24\4\1\0\123\4\1\0\213\4\10\0\236\4"+
- "\11\0\46\4\2\0\1\4\7\0\47\4\110\0\33\4\5\0\3\4"+
- "\55\0\53\4\25\0\12\5\4\0\2\4\1\0\143\4\1\0\1\4"+
- "\17\0\2\4\7\0\2\4\12\5\3\4\2\0\1\4\20\0\1\4"+
- "\1\0\36\4\35\0\131\4\13\0\1\4\16\0\12\5\41\4\11\0"+
- "\2\4\4\0\1\4\5\0\26\4\4\0\1\4\11\0\1\4\3\0"+
- "\1\4\27\0\31\4\253\0\66\4\3\0\1\4\22\0\1\4\7\0"+
- "\12\4\4\0\12\5\1\0\7\4\1\0\7\4\5\0\10\4\2\0"+
- "\2\4\2\0\26\4\1\0\7\4\1\0\1\4\3\0\4\4\3\0"+
- "\1\4\20\0\1\4\15\0\2\4\1\0\3\4\4\0\12\5\2\4"+
- "\23\0\6\4\4\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4"+
- "\1\0\2\4\1\0\2\4\37\0\4\4\1\0\1\4\7\0\12\5"+
- "\2\0\3\4\20\0\11\4\1\0\3\4\1\0\26\4\1\0\7\4"+
- "\1\0\2\4\1\0\5\4\3\0\1\4\22\0\1\4\17\0\2\4"+
- "\4\0\12\5\25\0\10\4\2\0\2\4\2\0\26\4\1\0\7\4"+
- "\1\0\2\4\1\0\5\4\3\0\1\4\36\0\2\4\1\0\3\4"+
- "\4\0\12\5\1\0\1\4\21\0\1\4\1\0\6\4\3\0\3\4"+
- "\1\0\4\4\3\0\2\4\1\0\1\4\1\0\2\4\3\0\2\4"+
- "\3\0\3\4\3\0\14\4\26\0\1\4\25\0\12\5\25\0\10\4"+
- "\1\0\3\4\1\0\27\4\1\0\12\4\1\0\5\4\3\0\1\4"+
- "\32\0\2\4\6\0\2\4\4\0\12\5\25\0\10\4\1\0\3\4"+
- "\1\0\27\4\1\0\12\4\1\0\5\4\3\0\1\4\40\0\1\4"+
- "\1\0\2\4\4\0\12\5\1\0\2\4\22\0\10\4\1\0\3\4"+
- "\1\0\51\4\2\0\1\4\20\0\1\4\21\0\2\4\4\0\12\5"+
- "\12\0\6\4\5\0\22\4\3\0\30\4\1\0\11\4\1\0\1\4"+
- "\2\0\7\4\72\0\60\4\1\0\2\4\14\0\7\4\11\0\12\5"+
- "\47\0\2\4\1\0\1\4\2\0\2\4\1\0\1\4\2\0\1\4"+
- "\6\0\4\4\1\0\7\4\1\0\3\4\1\0\1\4\1\0\1\4"+
- "\2\0\2\4\1\0\4\4\1\0\2\4\11\0\1\4\2\0\5\4"+
- "\1\0\1\4\11\0\12\5\2\0\2\4\42\0\1\4\37\0\12\5"+
- "\26\0\10\4\1\0\44\4\33\0\5\4\163\0\53\4\24\0\1\4"+
- "\12\5\6\0\6\4\4\0\4\4\3\0\1\4\3\0\2\4\7\0"+
- "\3\4\4\0\15\4\14\0\1\4\1\0\12\5\6\0\46\4\12\0"+
- "\53\4\1\0\1\4\3\0\u0149\4\1\0\4\4\2\0\7\4\1\0"+
- "\1\4\1\0\4\4\2\0\51\4\1\0\4\4\2\0\41\4\1\0"+
- "\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\17\4\1\0"+
- "\71\4\1\0\4\4\2\0\103\4\45\0\20\4\20\0\125\4\14\0"+
- "\u026c\4\2\0\21\4\1\0\32\4\5\0\113\4\25\0\15\4\1\0"+
- "\4\4\16\0\22\4\16\0\22\4\16\0\15\4\1\0\3\4\17\0"+
- "\64\4\43\0\1\4\4\0\1\4\3\0\12\5\46\0\12\5\6\0"+
- "\130\4\10\0\51\4\1\0\1\4\5\0\106\4\12\0\35\4\51\0"+
- "\12\5\36\4\2\0\5\4\13\0\54\4\25\0\7\4\10\0\12\5"+
- "\46\0\27\4\11\0\65\4\53\0\12\5\6\0\12\5\15\0\1\4"+
- "\135\0\57\4\21\0\7\4\4\0\12\5\51\0\36\4\15\0\2\4"+
- "\12\5\6\0\46\4\32\0\44\4\34\0\12\5\3\0\3\4\12\5"+
- "\44\4\153\0\4\4\1\0\4\4\16\0\300\4\100\0\u0116\4\2\0"+
- "\6\4\2\0\46\4\2\0\6\4\2\0\10\4\1\0\1\4\1\0"+
- "\1\4\1\0\1\4\1\0\37\4\2\0\65\4\1\0\7\4\1\0"+
- "\1\4\3\0\3\4\1\0\7\4\3\0\4\4\2\0\6\4\4\0"+
- "\15\4\5\0\3\4\1\0\7\4\164\0\1\4\15\0\1\4\20\0"+
- "\15\4\145\0\1\4\4\0\1\4\2\0\12\4\1\0\1\4\3\0"+
- "\5\4\6\0\1\4\1\0\1\4\1\0\1\4\1\0\4\4\1\0"+
- "\13\4\2\0\4\4\5\0\5\4\4\0\1\4\64\0\2\4\u0a7b\0"+
- "\57\4\1\0\57\4\1\0\205\4\6\0\4\4\21\0\46\4\12\0"+
- "\66\4\11\0\1\4\20\0\27\4\11\0\7\4\1\0\7\4\1\0"+
- "\7\4\1\0\7\4\1\0\7\4\1\0\7\4\1\0\7\4\1\0"+
- "\7\4\120\0\1\4\u01d5\0\2\4\52\0\5\4\5\0\2\4\4\0"+
- "\126\4\6\0\3\4\1\0\132\4\1\0\4\4\5\0\51\4\3\0"+
- "\136\4\21\0\33\4\65\0\20\4\u0200\0\u19b6\4\112\0\u51cc\4\64\0"+
- "\u048d\4\103\0\56\4\2\0\u010d\4\3\0\20\4\12\5\2\4\24\0"+
- "\57\4\20\0\31\4\10\0\106\4\61\0\11\4\2\0\147\4\2\0"+
- "\4\4\1\0\2\4\16\0\12\4\120\0\10\4\1\0\3\4\1\0"+
- "\4\4\1\0\27\4\35\0\64\4\16\0\62\4\34\0\12\5\30\0"+
- "\6\4\3\0\1\4\4\0\12\5\34\4\12\0\27\4\31\0\35\4"+
- "\7\0\57\4\34\0\1\4\12\5\46\0\51\4\27\0\3\4\1\0"+
- "\10\4\4\0\12\5\6\0\27\4\3\0\1\4\5\0\60\4\1\0"+
- "\1\4\3\0\2\4\2\0\5\4\2\0\1\4\1\0\1\4\30\0"+
- "\3\4\43\0\6\4\2\0\6\4\2\0\6\4\11\0\7\4\1\0"+
- "\7\4\221\0\43\4\15\0\12\5\6\0\u2ba4\4\14\0\27\4\4\0"+
- "\61\4\u2104\0\u012e\4\2\0\76\4\2\0\152\4\46\0\7\4\14\0"+
- "\5\4\5\0\1\4\1\0\12\4\1\0\15\4\1\0\5\4\1\0"+
- "\1\4\1\0\2\4\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0"+
- "\100\4\2\0\66\4\50\0\14\4\164\0\5\4\1\0\207\4\23\0"+
- "\12\5\7\0\32\4\6\0\32\4\13\0\131\4\3\0\6\4\2\0"+
- "\6\4\2\0\6\4\2\0\3\4\43\0";
+ "\1\0\u013f\4\31\0\162\4\4\0\14\4\16\0\5\4\11\0\1\4"+
+ "\213\0\1\4\13\0\1\4\1\0\3\4\1\0\1\4\1\0\24\4"+
+ "\1\0\54\4\1\0\46\4\1\0\5\4\4\0\202\4\10\0\105\4"+
+ "\1\0\46\4\2\0\2\4\6\0\20\4\41\0\46\4\2\0\1\4"+
+ "\7\0\47\4\110\0\33\4\5\0\3\4\56\0\32\4\5\0\13\4"+
+ "\25\0\12\5\4\0\2\4\1\0\143\4\1\0\1\4\17\0\2\4"+
+ "\7\0\2\4\12\5\3\4\2\0\1\4\20\0\1\4\1\0\36\4"+
+ "\35\0\3\4\60\0\46\4\13\0\1\4\u0152\0\66\4\3\0\1\4"+
+ "\22\0\1\4\7\0\12\4\4\0\12\5\25\0\10\4\2\0\2\4"+
+ "\2\0\26\4\1\0\7\4\1\0\1\4\3\0\4\4\3\0\1\4"+
+ "\36\0\2\4\1\0\3\4\4\0\12\5\2\4\23\0\6\4\4\0"+
+ "\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0\2\4\1\0"+
+ "\2\4\37\0\4\4\1\0\1\4\7\0\12\5\2\0\3\4\20\0"+
+ "\11\4\1\0\3\4\1\0\26\4\1\0\7\4\1\0\2\4\1\0"+
+ "\5\4\3\0\1\4\22\0\1\4\17\0\2\4\4\0\12\5\25\0"+
+ "\10\4\2\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0"+
+ "\5\4\3\0\1\4\36\0\2\4\1\0\3\4\4\0\12\5\1\0"+
+ "\1\4\21\0\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0"+
+ "\2\4\1\0\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0"+
+ "\10\4\1\0\3\4\55\0\11\5\25\0\10\4\1\0\3\4\1\0"+
+ "\27\4\1\0\12\4\1\0\5\4\46\0\2\4\4\0\12\5\25\0"+
+ "\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0\5\4\3\0"+
+ "\1\4\40\0\1\4\1\0\2\4\4\0\12\5\25\0\10\4\1\0"+
+ "\3\4\1\0\27\4\1\0\20\4\46\0\2\4\4\0\12\5\25\0"+
+ "\22\4\3\0\30\4\1\0\11\4\1\0\1\4\2\0\7\4\72\0"+
+ "\60\4\1\0\2\4\14\0\7\4\11\0\12\5\47\0\2\4\1\0"+
+ "\1\4\2\0\2\4\1\0\1\4\2\0\1\4\6\0\4\4\1\0"+
+ "\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0\2\4\1\0"+
+ "\4\4\1\0\2\4\11\0\1\4\2\0\5\4\1\0\1\4\11\0"+
+ "\12\5\2\0\2\4\42\0\1\4\37\0\12\5\26\0\10\4\1\0"+
+ "\42\4\35\0\4\4\164\0\42\4\1\0\5\4\1\0\2\4\25\0"+
+ "\12\5\6\0\6\4\112\0\46\4\12\0\51\4\7\0\132\4\5\0"+
+ "\104\4\5\0\122\4\6\0\7\4\1\0\77\4\1\0\1\4\1\0"+
+ "\4\4\2\0\7\4\1\0\1\4\1\0\4\4\2\0\47\4\1\0"+
+ "\1\4\1\0\4\4\2\0\37\4\1\0\1\4\1\0\4\4\2\0"+
+ "\7\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\7\4\1\0"+
+ "\27\4\1\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0"+
+ "\47\4\1\0\23\4\16\0\11\5\56\0\125\4\14\0\u026c\4\2\0"+
+ "\10\4\12\0\32\4\5\0\113\4\25\0\15\4\1\0\4\4\16\0"+
+ "\22\4\16\0\22\4\16\0\15\4\1\0\3\4\17\0\64\4\43\0"+
+ "\1\4\4\0\1\4\3\0\12\5\46\0\12\5\6\0\130\4\10\0"+
+ "\51\4\127\0\35\4\51\0\12\5\36\4\2\0\5\4\u038b\0\154\4"+
+ "\224\0\234\4\4\0\132\4\6\0\26\4\2\0\6\4\2\0\46\4"+
+ "\2\0\6\4\2\0\10\4\1\0\1\4\1\0\1\4\1\0\1\4"+
+ "\1\0\37\4\2\0\65\4\1\0\7\4\1\0\1\4\3\0\3\4"+
+ "\1\0\7\4\3\0\4\4\2\0\6\4\4\0\15\4\5\0\3\4"+
+ "\1\0\7\4\164\0\1\4\15\0\1\4\202\0\1\4\4\0\1\4"+
+ "\2\0\12\4\1\0\1\4\3\0\5\4\6\0\1\4\1\0\1\4"+
+ "\1\0\1\4\1\0\4\4\1\0\3\4\1\0\7\4\3\0\3\4"+
+ "\5\0\5\4\u0ebb\0\2\4\52\0\5\4\5\0\2\4\4\0\126\4"+
+ "\6\0\3\4\1\0\132\4\1\0\4\4\5\0\50\4\4\0\136\4"+
+ "\21\0\30\4\70\0\20\4\u0200\0\u19b6\4\112\0\u51a6\4\132\0\u048d\4"+
+ "\u0773\0\u2ba4\4\u215c\0\u012e\4\2\0\73\4\225\0\7\4\14\0\5\4"+
+ "\5\0\1\4\1\0\12\4\1\0\15\4\1\0\5\4\1\0\1\4"+
+ "\1\0\2\4\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4"+
+ "\2\0\66\4\50\0\14\4\164\0\5\4\1\0\207\4\23\0\12\5"+
+ "\7\0\32\4\6\0\32\4\13\0\131\4\3\0\6\4\2\0\6\4"+
+ "\2\0\6\4\2\0\3\4\43\0";
/**
* Translates characters to character classes
@@ -155,17 +136,17 @@ class _JetLexer implements FlexLexer {
"\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77"+
"\1\0\1\100\2\101\2\0\1\40\1\102\1\103\1\0"+
"\1\104\1\44\1\3\1\0\1\105\1\106\1\107\1\110"+
- "\1\0\1\2\2\0\1\111\4\3\1\112\4\3\1\113"+
- "\10\3\1\114\1\3\1\115\1\3\1\116\1\117\1\120"+
+ "\1\0\1\2\2\0\1\111\4\3\1\112\5\3\1\113"+
+ "\2\3\1\114\1\3\1\115\7\3\1\116\1\117\1\120"+
"\2\0\1\121\2\40\1\45\1\122\1\123\2\44\1\0"+
- "\1\124\2\3\1\125\3\3\1\126\3\3\1\127\3\3"+
- "\1\130\1\3\1\131\1\77\1\0\1\132\1\133\1\3"+
- "\1\134\1\135\1\3\1\136\3\3\1\137\1\140\1\141"+
- "\1\0\3\3\1\142\1\143\1\3\1\144\2\3\1\145"+
- "\1\146";
+ "\1\124\2\3\1\125\4\3\1\126\1\127\7\3\1\130"+
+ "\1\131\1\77\1\0\1\132\1\133\1\3\1\134\1\3"+
+ "\1\135\2\3\1\136\1\137\2\3\1\140\1\141\1\0"+
+ "\3\3\1\142\1\3\1\143\2\3\1\144\3\3\1\145"+
+ "\1\146\1\147";
private static int [] zzUnpackAction() {
- int [] result = new int[233];
+ int [] result = new int[240];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -202,27 +183,27 @@ class _JetLexer implements FlexLexer {
"\0\u018c\0\u0e70\0\u0eb2\0\u0ef4\0\u0f36\0\u0f78\0\u0fba\0\u018c"+
"\0\u0ffc\0\u103e\0\u1080\0\u10c2\0\u1104\0\u1146\0\u1188\0\u018c"+
"\0\u018c\0\u018c\0\u018c\0\u018c\0\u11ca\0\u120c\0\u124e\0\u1290"+
- "\0\u12d2\0\u0210\0\u0210\0\u0210\0\u1314\0\u018c\0\u1356\0\u1398"+
- "\0\u13da\0\u141c\0\u145e\0\u14a0\0\u14e2\0\u1524\0\u1566\0\u15a8"+
- "\0\u15ea\0\u162c\0\u166e\0\u16b0\0\u16f2\0\u0210\0\u1734\0\u018c"+
+ "\0\u12d2\0\u0210\0\u1314\0\u0210\0\u1356\0\u018c\0\u1398\0\u13da"+
+ "\0\u141c\0\u145e\0\u14a0\0\u14e2\0\u1524\0\u1566\0\u15a8\0\u15ea"+
+ "\0\u162c\0\u166e\0\u16b0\0\u16f2\0\u1734\0\u0210\0\u1776\0\u018c"+
"\0\u018c\0\u018c\0\u018c\0\u018c\0\u018c\0\u018c\0\u018c\0\u018c"+
- "\0\u1776\0\u17b8\0\u018c\0\u018c\0\u17fa\0\u183c\0\u187e\0\u18c0"+
- "\0\u018c\0\u018c\0\u1902\0\u018c\0\u1944\0\u018c\0\u1986\0\u19c8"+
- "\0\u1a0a\0\u1a0a\0\u018c\0\u1a4c\0\u1a8e\0\u1ad0\0\u1b12\0\u018c"+
- "\0\u1b54\0\u1b96\0\u1bd8\0\u1c1a\0\u0210\0\u1c5c\0\u1c9e\0\u1ce0"+
- "\0\u1d22\0\u018c\0\u1d64\0\u1da6\0\u1de8\0\u1e2a\0\u1e6c\0\u1eae"+
- "\0\u1ef0\0\u1f32\0\u0210\0\u1f74\0\u0210\0\u1fb6\0\u0210\0\u0210"+
- "\0\u018c\0\u1ff8\0\u203a\0\u183c\0\u018c\0\u207c\0\u018c\0\u018c"+
- "\0\u018c\0\u20be\0\u2100\0\u2100\0\u0210\0\u2142\0\u2184\0\u0210"+
- "\0\u21c6\0\u2208\0\u224a\0\u0210\0\u228c\0\u22ce\0\u2310\0\u0210"+
- "\0\u2352\0\u2394\0\u23d6\0\u0210\0\u2418\0\u0210\0\u018c\0\u245a"+
- "\0\u0ca2\0\u0210\0\u249c\0\u0210\0\u0210\0\u24de\0\u0210\0\u2520"+
- "\0\u2562\0\u25a4\0\u0210\0\u0210\0\u0210\0\u25e6\0\u2628\0\u266a"+
- "\0\u26ac\0\u0210\0\u0210\0\u26ee\0\u0210\0\u2730\0\u2772\0\u0210"+
- "\0\u0210";
+ "\0\u17b8\0\u17fa\0\u018c\0\u018c\0\u183c\0\u187e\0\u18c0\0\u1902"+
+ "\0\u018c\0\u018c\0\u1944\0\u018c\0\u1986\0\u018c\0\u19c8\0\u1a0a"+
+ "\0\u1a4c\0\u1a4c\0\u018c\0\u1a8e\0\u1ad0\0\u1b12\0\u1b54\0\u018c"+
+ "\0\u1b96\0\u1bd8\0\u1c1a\0\u1c5c\0\u0210\0\u1c9e\0\u1ce0\0\u1d22"+
+ "\0\u1d64\0\u1da6\0\u018c\0\u1de8\0\u1e2a\0\u0210\0\u1e6c\0\u0210"+
+ "\0\u1eae\0\u1ef0\0\u1f32\0\u1f74\0\u1fb6\0\u1ff8\0\u203a\0\u0210"+
+ "\0\u0210\0\u018c\0\u207c\0\u20be\0\u187e\0\u018c\0\u2100\0\u018c"+
+ "\0\u018c\0\u018c\0\u2142\0\u2184\0\u2184\0\u0210\0\u21c6\0\u2208"+
+ "\0\u0210\0\u224a\0\u228c\0\u22ce\0\u2310\0\u0210\0\u0210\0\u2352"+
+ "\0\u2394\0\u23d6\0\u2418\0\u245a\0\u249c\0\u24de\0\u0210\0\u0210"+
+ "\0\u018c\0\u2520\0\u0ca2\0\u0210\0\u2562\0\u0210\0\u25a4\0\u0210"+
+ "\0\u25e6\0\u2628\0\u0210\0\u0210\0\u266a\0\u26ac\0\u0210\0\u0210"+
+ "\0\u26ee\0\u2730\0\u2772\0\u27b4\0\u0210\0\u27f6\0\u0210\0\u2838"+
+ "\0\u287a\0\u0210\0\u28bc\0\u28fe\0\u2940\0\u0210\0\u0210\0\u0210";
private static int [] zzUnpackRowMap() {
- int [] result = new int[233];
+ int [] result = new int[240];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -249,8 +230,8 @@ class _JetLexer implements FlexLexer {
"\1\14\1\15\1\16\1\17\1\20\3\11\1\21\2\11"+
"\1\22\1\11\1\23\1\7\1\11\1\24\1\25\1\26"+
"\1\11\1\27\1\30\1\31\1\32\1\11\1\33\1\34"+
- "\1\35\1\11\1\36\1\37\1\40\2\11\1\41\1\42"+
- "\1\11\1\43\1\44\1\45\1\46\1\47\1\50\1\51"+
+ "\1\35\1\11\1\36\1\37\1\40\1\41\1\42\2\11"+
+ "\1\43\1\11\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\1\61"+
"\1\62\1\63\1\64\1\65\1\66\1\67\7\70\1\71"+
"\1\72\15\70\1\73\1\70\1\74\60\70\1\75\1\72"+
@@ -262,12 +243,12 @@ class _JetLexer implements FlexLexer {
"\1\15\1\16\1\17\1\20\3\11\1\21\2\11\1\22"+
"\1\11\1\23\1\7\1\11\1\24\1\105\1\26\1\11"+
"\1\27\1\30\1\106\1\32\1\11\1\33\1\34\1\35"+
- "\1\11\1\36\1\37\1\40\2\11\1\41\1\42\1\11"+
- "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+
+ "\1\11\1\36\1\37\1\40\1\41\1\42\2\11\1\43"+
+ "\1\11\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\1\61\1\62"+
"\1\63\1\64\1\65\1\66\1\67\103\0\1\10\12\0"+
"\1\10\2\0\1\107\1\110\1\111\1\112\17\0\1\112"+
- "\1\0\1\107\11\0\1\111\24\0\2\11\1\0\2\11"+
+ "\1\0\1\107\2\0\1\111\33\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\22\11\23\0\1\12\3\0\1\12"+
"\72\0\6\113\2\0\72\113\2\0\1\114\1\0\1\114"+
@@ -276,15 +257,15 @@ class _JetLexer implements FlexLexer {
"\25\0\1\117\22\0\1\120\32\0\1\121\122\0\1\122"+
"\25\0\1\123\20\0\1\124\12\0\1\124\1\125\1\126"+
"\1\107\1\110\1\111\1\112\17\0\1\112\1\0\1\107"+
- "\6\0\1\126\2\0\1\111\24\0\1\127\12\0\1\127"+
+ "\2\0\1\111\4\0\1\126\26\0\1\127\12\0\1\127"+
"\3\0\1\130\104\0\1\131\36\0\1\132\3\0\1\133"+
"\13\0\7\23\1\0\15\23\1\134\1\135\53\23\30\0"+
"\1\136\52\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\1\11\1\137"+
- "\2\11\2\0\1\140\11\11\1\141\7\11\21\0\2\11"+
+ "\2\11\2\0\1\140\5\11\1\141\13\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\3\11\1\142\2\0\7\11\1\143"+
- "\6\11\1\144\3\11\21\0\2\11\1\0\2\11\6\0"+
+ "\2\0\1\11\2\0\3\11\1\142\2\0\5\11\1\143"+
+ "\1\11\1\144\12\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\145\2\0"+
"\4\11\2\0\22\11\102\0\1\146\20\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
@@ -294,28 +275,28 @@ class _JetLexer implements FlexLexer {
"\15\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\3\11\1\151"+
"\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\152\2\0\4\11"+
+ "\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
- "\2\0\4\11\1\152\1\11\1\153\13\11\21\0\2\11"+
- "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\4\11\2\0\13\11\1\154\6\11"+
+ "\2\0\2\11\1\153\17\11\21\0\2\11\1\0\2\11"+
+ "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\154"+
+ "\2\0\4\11\2\0\3\11\1\155\5\11\1\156\10\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\155\2\0\4\11\2\0\22\11"+
- "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
- "\1\156\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
- "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
- "\2\0\12\11\1\157\7\11\21\0\2\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\4\11"+
+ "\1\157\4\11\1\160\10\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\1\11\1\160\2\11\2\0\22\11\21\0\2\11"+
+ "\2\0\4\11\2\0\14\11\1\161\5\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\161\2\0\4\11\2\0\3\11\1\162\2\11"+
- "\1\163\13\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\2\0\1\11\2\0\4\11\2\0\6\11\1\162\13\11"+
+ "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\1\11\1\163\2\11"+
+ "\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\1\11"+
"\1\164\2\11\2\0\22\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
"\2\0\4\11\2\0\3\11\1\165\16\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\4\11\2\0\6\11\1\166\13\11"+
+ "\2\0\1\11\2\0\4\11\2\0\11\11\1\166\10\11"+
"\102\0\1\167\3\0\1\170\75\0\1\171\1\0\1\172"+
"\77\0\1\173\101\0\1\174\106\0\1\175\102\0\1\176"+
"\73\0\1\177\111\0\1\200\7\0\7\70\2\0\15\70"+
@@ -330,186 +311,200 @@ class _JetLexer implements FlexLexer {
"\1\77\1\210\2\77\2\0\22\77\57\0\1\211\53\0"+
"\1\212\110\0\1\213\62\0\1\127\12\0\1\127\3\0"+
"\1\214\62\0\1\215\12\0\1\215\4\0\1\111\1\0"+
- "\1\215\32\0\1\111\5\0\1\215\15\0\6\113\1\216"+
+ "\1\215\23\0\1\111\14\0\1\215\15\0\6\113\1\216"+
"\1\0\72\113\1\0\2\114\1\0\2\114\6\0\4\114"+
"\1\0\2\114\1\0\1\114\2\0\1\114\2\0\4\114"+
"\2\0\22\114\20\0\6\217\2\0\72\217\7\116\1\0"+
"\72\116\37\0\1\220\42\0\7\121\1\0\72\121\35\0"+
- "\1\221\11\0\1\222\114\0\1\223\20\0\1\124\12\0"+
- "\1\124\3\0\1\224\1\111\1\112\17\0\1\112\13\0"+
- "\1\111\24\0\2\125\11\0\1\125\1\0\1\125\1\225"+
+ "\1\221\7\0\1\222\116\0\1\223\20\0\1\124\12\0"+
+ "\1\124\3\0\1\224\1\111\1\112\17\0\1\112\4\0"+
+ "\1\111\33\0\2\125\11\0\1\125\1\0\1\125\1\225"+
"\1\226\2\125\1\0\1\227\14\0\1\227\2\125\1\225"+
- "\1\125\5\0\1\125\2\0\1\125\2\0\1\125\21\0"+
- "\1\126\12\0\1\126\2\0\1\107\1\213\23\0\1\107"+
- "\36\0\1\127\12\0\1\127\4\0\1\111\1\112\17\0"+
- "\1\112\13\0\1\111\23\0\7\23\1\0\72\23\30\0"+
- "\1\230\52\0\2\11\1\0\2\11\6\0\4\11\1\0"+
- "\2\11\1\0\1\11\2\0\1\11\2\0\2\11\1\231"+
- "\1\11\2\0\12\11\1\232\7\11\21\0\2\11\1\0"+
- "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
- "\1\11\2\0\4\11\2\0\1\11\1\233\20\11\21\0"+
- "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
- "\1\11\2\0\1\234\2\0\4\11\2\0\1\235\2\11"+
- "\1\236\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+
- "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
- "\2\0\1\11\1\237\20\11\21\0\2\11\1\0\2\11"+
+ "\2\0\2\125\3\0\1\125\4\0\1\125\21\0\1\126"+
+ "\12\0\1\126\2\0\1\107\1\213\23\0\1\107\36\0"+
+ "\1\127\12\0\1\127\4\0\1\111\1\112\17\0\1\112"+
+ "\4\0\1\111\32\0\7\23\1\0\72\23\30\0\1\230"+
+ "\52\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\2\11\1\231\1\11"+
+ "\2\0\6\11\1\232\13\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\4\11\2\0\5\11\1\240\14\11\21\0\2\11"+
+ "\2\0\4\11\2\0\1\11\1\233\20\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\3\11\1\241\2\0\22\11\21\0"+
- "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
- "\1\11\2\0\1\11\2\0\4\11\2\0\22\11\1\0"+
- "\1\242\17\0\2\11\1\0\2\11\6\0\4\11\1\0"+
- "\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
- "\3\11\1\243\16\11\21\0\2\11\1\0\2\11\6\0"+
- "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
- "\4\11\2\0\7\11\1\244\12\11\21\0\2\11\1\0"+
- "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
- "\1\11\2\0\4\11\2\0\14\11\1\245\5\11\21\0"+
- "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
- "\1\11\2\0\1\11\2\0\4\11\2\0\4\11\1\246"+
- "\15\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
- "\2\11\1\0\1\11\2\0\1\11\2\0\1\247\3\11"+
+ "\2\0\1\234\2\0\4\11\2\0\1\235\2\11\1\236"+
+ "\16\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
+ "\2\11\1\0\1\11\2\0\1\11\2\0\1\237\3\11"+
"\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
- "\2\0\2\11\1\250\17\11\21\0\2\11\1\0\2\11"+
+ "\2\0\1\11\1\240\20\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\2\11\1\251\1\11\2\0\2\11\1\252\17\11"+
- "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\7\11"+
- "\1\253\12\11\21\0\2\11\1\0\2\11\6\0\4\11"+
- "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
- "\2\0\4\11\1\254\15\11\21\0\2\11\1\0\2\11"+
- "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\4\11\2\0\12\11\1\255\7\11\21\0\2\11"+
+ "\2\0\4\11\2\0\10\11\1\241\11\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\2\11\1\256\1\11\2\0\22\11"+
+ "\2\0\1\11\2\0\3\11\1\242\2\0\22\11\21\0"+
+ "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
+ "\1\11\2\0\1\11\2\0\4\11\2\0\22\11\1\0"+
+ "\1\243\17\0\2\11\1\0\2\11\6\0\4\11\1\0"+
+ "\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
+ "\4\11\1\244\15\11\21\0\2\11\1\0\2\11\6\0"+
+ "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
+ "\1\245\3\11\2\0\22\11\21\0\2\11\1\0\2\11"+
+ "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
+ "\2\0\4\11\2\0\5\11\1\246\14\11\21\0\2\11"+
+ "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
+ "\2\0\1\11\2\0\4\11\2\0\4\11\1\247\15\11"+
+ "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\6\11"+
+ "\1\250\13\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
+ "\2\0\3\11\1\251\16\11\21\0\2\11\1\0\2\11"+
+ "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
+ "\2\0\4\11\2\0\5\11\1\252\14\11\21\0\2\11"+
+ "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
+ "\2\0\1\11\2\0\4\11\2\0\15\11\1\253\4\11"+
+ "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
+ "\1\254\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\2\11"+
+ "\1\255\1\11\2\0\2\11\1\256\17\11\21\0\2\11"+
+ "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
+ "\2\0\1\11\2\0\2\11\1\257\1\11\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\4\11"+
- "\1\257\5\11\1\260\7\11\102\0\1\261\20\0\2\201"+
+ "\1\260\1\11\1\261\13\11\102\0\1\262\20\0\2\201"+
"\1\0\2\201\6\0\4\201\1\0\2\201\1\0\1\201"+
- "\2\0\1\201\2\0\4\201\2\0\22\201\20\0\6\262"+
- "\2\0\72\262\1\0\2\263\11\0\1\263\1\0\1\263"+
- "\2\0\2\263\17\0\2\263\1\0\1\263\5\0\1\263"+
- "\2\0\1\263\2\0\1\263\50\0\1\264\51\0\6\207"+
- "\1\265\1\0\72\207\1\0\2\77\1\0\2\77\6\0"+
- "\4\77\1\0\2\77\1\0\1\77\2\0\1\77\2\0"+
- "\2\77\1\266\1\77\2\0\22\77\40\0\1\214\62\0"+
- "\1\215\12\0\1\215\4\0\1\111\34\0\1\111\23\0"+
- "\6\217\1\267\1\0\72\217\11\0\1\270\71\0\2\271"+
- "\1\0\2\271\6\0\4\271\1\0\2\271\1\0\1\271"+
- "\2\0\1\271\2\0\4\271\2\0\22\271\21\0\1\127"+
- "\12\0\1\127\105\0\1\213\3\0\1\227\14\0\1\227"+
- "\41\0\2\272\11\0\1\272\1\0\1\272\1\0\1\214"+
- "\2\272\17\0\2\272\1\0\1\272\5\0\1\272\2\0"+
- "\1\272\2\0\1\272\21\0\1\273\12\0\1\273\6\0"+
- "\1\274\40\0\1\274\16\0\2\11\1\0\2\11\6\0"+
- "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
- "\3\11\1\275\2\0\22\11\21\0\2\11\1\0\2\11"+
- "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\4\11\2\0\6\11\1\276\13\11\21\0\2\11"+
- "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\4\11\2\0\2\11\1\277\17\11"+
+ "\2\0\1\201\2\0\4\201\2\0\22\201\20\0\6\263"+
+ "\2\0\72\263\1\0\2\264\11\0\1\264\1\0\1\264"+
+ "\2\0\2\264\17\0\2\264\3\0\2\264\3\0\1\264"+
+ "\4\0\1\264\50\0\1\265\51\0\6\207\1\266\1\0"+
+ "\72\207\1\0\2\77\1\0\2\77\6\0\4\77\1\0"+
+ "\2\77\1\0\1\77\2\0\1\77\2\0\2\77\1\267"+
+ "\1\77\2\0\22\77\40\0\1\214\62\0\1\215\12\0"+
+ "\1\215\4\0\1\111\25\0\1\111\32\0\6\217\1\270"+
+ "\1\0\72\217\11\0\1\271\71\0\2\272\1\0\2\272"+
+ "\6\0\4\272\1\0\2\272\1\0\1\272\2\0\1\272"+
+ "\2\0\4\272\2\0\22\272\21\0\1\127\12\0\1\127"+
+ "\105\0\1\213\3\0\1\227\14\0\1\227\41\0\2\273"+
+ "\11\0\1\273\1\0\1\273\1\0\1\214\2\273\17\0"+
+ "\2\273\3\0\2\273\3\0\1\273\4\0\1\273\21\0"+
+ "\1\274\12\0\1\274\6\0\1\275\40\0\1\275\16\0"+
+ "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
+ "\1\11\2\0\1\11\2\0\3\11\1\276\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
- "\1\300\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
- "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\2\11"+
- "\1\301\1\11\2\0\22\11\21\0\2\11\1\0\2\11"+
- "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\4\11\2\0\2\11\1\302\17\11\21\0\2\11"+
- "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\4\11\2\0\10\11\1\303\11\11"+
- "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
- "\1\304\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
- "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\3\11"+
- "\1\305\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
- "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
- "\1\306\3\11\2\0\22\11\21\0\2\11\1\0\2\11"+
- "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\4\11\2\0\2\11\1\307\17\11\21\0\2\11"+
- "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\4\11\2\0\4\11\1\310\15\11"+
- "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\311\2\0\4\11\2\0\22\11"+
- "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\3\11"+
- "\1\312\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\11\11"+
+ "\1\277\10\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
- "\2\0\4\11\1\313\15\11\21\0\2\11\1\0\2\11"+
+ "\2\0\2\11\1\300\17\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\4\11\2\0\7\11\1\314\12\11\21\0\2\11"+
+ "\2\0\4\11\2\0\2\11\1\301\17\11\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\3\11\1\315\2\0\22\11\21\0"+
- "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
- "\1\11\2\0\1\11\2\0\3\11\1\316\2\0\22\11"+
- "\20\0\6\262\1\317\1\0\72\262\1\0\2\320\11\0"+
- "\1\320\1\0\1\320\2\0\2\320\17\0\2\320\1\0"+
- "\1\320\5\0\1\320\2\0\1\320\2\0\1\320\21\0"+
- "\2\77\1\0\2\77\6\0\4\77\1\0\2\77\1\0"+
- "\1\77\2\0\1\77\2\0\3\77\1\321\2\0\22\77"+
- "\21\0\2\272\11\0\1\272\1\0\1\272\2\0\2\272"+
- "\1\0\1\227\14\0\1\227\2\272\1\0\1\272\5\0"+
- "\1\272\2\0\1\272\2\0\1\272\21\0\1\273\12\0"+
- "\1\273\66\0\2\11\1\0\2\11\6\0\4\11\1\0"+
- "\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
- "\15\11\1\322\4\11\21\0\2\11\1\0\2\11\6\0"+
- "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
- "\4\11\2\0\3\11\1\323\16\11\21\0\2\11\1\0"+
- "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
- "\1\11\2\0\1\324\3\11\2\0\22\11\21\0\2\11"+
- "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\4\11\2\0\12\11\1\325\7\11"+
+ "\2\0\1\11\2\0\2\11\1\302\1\11\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\3\11"+
- "\1\326\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
+ "\1\303\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
+ "\2\0\2\11\1\304\17\11\21\0\2\11\1\0\2\11"+
+ "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
+ "\2\0\4\11\2\0\12\11\1\305\7\11\21\0\2\11"+
+ "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
+ "\2\0\1\11\2\0\4\11\2\0\2\11\1\306\17\11"+
+ "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\4\11"+
+ "\1\307\15\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\310\2\0\4\11"+
+ "\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\3\11"+
- "\1\327\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
+ "\1\311\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
- "\2\11\1\330\1\11\2\0\22\11\21\0\2\11\1\0"+
+ "\3\11\1\312\2\0\22\11\21\0\2\11\1\0\2\11"+
+ "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
+ "\2\0\1\313\3\11\2\0\22\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
- "\1\11\2\0\4\11\2\0\5\11\1\331\14\11\21\0"+
+ "\1\11\2\0\4\11\2\0\2\11\1\314\17\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
- "\1\11\2\0\1\11\2\0\4\11\2\0\12\11\1\332"+
+ "\1\11\2\0\1\11\2\0\4\11\2\0\3\11\1\315"+
+ "\16\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
+ "\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
+ "\4\11\1\316\15\11\21\0\2\11\1\0\2\11\6\0"+
+ "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
+ "\4\11\2\0\5\11\1\317\14\11\21\0\2\11\1\0"+
+ "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
+ "\1\11\2\0\3\11\1\320\2\0\22\11\20\0\6\263"+
+ "\1\321\1\0\72\263\1\0\2\322\11\0\1\322\1\0"+
+ "\1\322\2\0\2\322\17\0\2\322\3\0\2\322\3\0"+
+ "\1\322\4\0\1\322\21\0\2\77\1\0\2\77\6\0"+
+ "\4\77\1\0\2\77\1\0\1\77\2\0\1\77\2\0"+
+ "\3\77\1\323\2\0\22\77\21\0\2\273\11\0\1\273"+
+ "\1\0\1\273\2\0\2\273\1\0\1\227\14\0\1\227"+
+ "\2\273\3\0\2\273\3\0\1\273\4\0\1\273\21\0"+
+ "\1\274\12\0\1\274\66\0\2\11\1\0\2\11\6\0"+
+ "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
+ "\4\11\2\0\16\11\1\324\3\11\21\0\2\11\1\0"+
+ "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
+ "\1\11\2\0\4\11\2\0\3\11\1\325\16\11\21\0"+
+ "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
+ "\1\11\2\0\1\11\2\0\1\326\3\11\2\0\22\11"+
+ "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\6\11"+
+ "\1\327\13\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
+ "\2\0\6\11\1\330\13\11\21\0\2\11\1\0\2\11"+
+ "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
+ "\2\0\4\11\2\0\3\11\1\331\16\11\21\0\2\11"+
+ "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
+ "\2\0\1\11\2\0\4\11\2\0\6\11\1\332\13\11"+
+ "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
+ "\1\333\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\3\11"+
+ "\1\334\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
+ "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
+ "\2\11\1\335\1\11\2\0\22\11\21\0\2\11\1\0"+
+ "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
+ "\1\11\2\0\4\11\2\0\10\11\1\336\11\11\21\0"+
+ "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
+ "\1\11\2\0\1\11\2\0\4\11\2\0\12\11\1\337"+
"\7\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
"\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
- "\10\11\1\333\11\11\21\0\2\11\1\0\2\11\6\0"+
+ "\2\11\1\340\17\11\21\0\2\341\11\0\1\341\1\0"+
+ "\1\341\2\0\2\341\17\0\2\341\3\0\2\341\3\0"+
+ "\1\341\4\0\1\341\21\0\2\11\1\0\2\11\6\0"+
"\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
- "\4\11\2\0\2\11\1\334\17\11\21\0\2\11\1\0"+
+ "\4\11\2\0\4\11\1\342\15\11\21\0\2\11\1\0"+
"\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
- "\1\11\2\0\4\11\2\0\2\11\1\335\17\11\21\0"+
- "\2\336\11\0\1\336\1\0\1\336\2\0\2\336\17\0"+
- "\2\336\1\0\1\336\5\0\1\336\2\0\1\336\2\0"+
- "\1\336\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
- "\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
- "\4\11\1\337\15\11\21\0\2\11\1\0\2\11\6\0"+
- "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
- "\4\11\2\0\11\11\1\340\10\11\21\0\2\11\1\0"+
- "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
- "\1\11\2\0\4\11\2\0\7\11\1\341\12\11\21\0"+
+ "\1\11\2\0\4\11\2\0\7\11\1\343\12\11\21\0"+
"\2\11\1\0\2\11\6\0\4\11\1\0\2\11\1\0"+
- "\1\11\2\0\1\11\2\0\1\342\3\11\2\0\22\11"+
- "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\7\11"+
- "\1\343\12\11\21\0\2\204\11\0\1\204\1\0\1\204"+
- "\2\0\2\204\17\0\2\204\1\0\1\204\5\0\1\204"+
- "\2\0\1\204\2\0\1\204\21\0\2\11\1\0\2\11"+
- "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\2\11\1\344\1\11\2\0\22\11\21\0\2\11"+
+ "\1\11\2\0\1\11\2\0\4\11\2\0\13\11\1\344"+
+ "\6\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+
+ "\2\11\1\0\1\11\2\0\1\11\2\0\4\11\2\0"+
+ "\5\11\1\345\14\11\21\0\2\11\1\0\2\11\6\0"+
+ "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
+ "\4\11\2\0\5\11\1\346\14\11\21\0\2\11\1\0"+
+ "\2\11\6\0\4\11\1\0\2\11\1\0\1\11\2\0"+
+ "\1\11\2\0\1\347\3\11\2\0\22\11\21\0\2\204"+
+ "\11\0\1\204\1\0\1\204\2\0\2\204\17\0\2\204"+
+ "\3\0\2\204\3\0\1\204\4\0\1\204\21\0\2\11"+
"\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
- "\2\0\1\11\2\0\4\11\2\0\2\11\1\345\17\11"+
- "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
- "\1\0\1\11\2\0\1\346\2\0\4\11\2\0\22\11"+
+ "\2\0\1\11\2\0\2\11\1\350\1\11\2\0\22\11"+
"\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
"\1\0\1\11\2\0\1\11\2\0\4\11\2\0\3\11"+
- "\1\347\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\351\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+
"\1\0\2\11\1\0\1\11\2\0\1\11\2\0\4\11"+
- "\2\0\2\11\1\350\17\11\21\0\2\11\1\0\2\11"+
+ "\2\0\2\11\1\352\17\11\21\0\2\11\1\0\2\11"+
+ "\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\353"+
+ "\2\0\4\11\2\0\22\11\21\0\2\11\1\0\2\11"+
"\6\0\4\11\1\0\2\11\1\0\1\11\2\0\1\11"+
- "\2\0\3\11\1\351\2\0\22\11\20\0";
+ "\2\0\4\11\2\0\3\11\1\354\16\11\21\0\2\11"+
+ "\1\0\2\11\6\0\4\11\1\0\2\11\1\0\1\11"+
+ "\2\0\1\11\2\0\4\11\2\0\10\11\1\355\11\11"+
+ "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+
+ "\1\0\1\11\2\0\1\11\2\0\4\11\2\0\2\11"+
+ "\1\356\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+
+ "\1\0\2\11\1\0\1\11\2\0\1\11\2\0\3\11"+
+ "\1\357\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+
+ "\4\11\1\0\2\11\1\0\1\11\2\0\1\11\2\0"+
+ "\4\11\2\0\2\11\1\360\17\11\20\0";
private static int [] zzUnpackTrans() {
- int [] result = new int[10164];
+ int [] result = new int[10626];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -557,12 +552,12 @@ class _JetLexer implements FlexLexer {
"\5\11\1\1\1\0\7\1\1\11\21\1\11\11\1\1"+
"\1\0\2\11\1\1\2\0\1\1\2\11\1\0\1\11"+
"\1\1\1\11\1\0\3\1\1\11\1\0\1\1\2\0"+
- "\1\11\11\1\1\11\16\1\1\11\2\0\1\1\1\11"+
- "\1\1\3\11\2\1\1\0\22\1\1\11\1\0\15\1"+
- "\1\0\13\1";
+ "\1\11\12\1\1\11\16\1\1\11\2\0\1\1\1\11"+
+ "\1\1\3\11\2\1\1\0\23\1\1\11\1\0\16\1"+
+ "\1\0\17\1";
private static int [] zzUnpackAttribute() {
- int [] result = new int[233];
+ int [] result = new int[240];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -686,7 +681,7 @@ class _JetLexer implements FlexLexer {
char [] map = new char[0x10000];
int i = 0; /* index in packed string */
int j = 0; /* index in unpacked array */
- while (i < 1712) {
+ while (i < 1330) {
int count = packed.charAt(i++);
char value = packed.charAt(i++);
do map[j++] = value; while (--count > 0);
@@ -912,27 +907,31 @@ class _JetLexer implements FlexLexer {
case 102:
{ return JetTokens.TYPE_ALIAS_KEYWORD ;
}
- case 103: break;
+ case 104: break;
case 3:
{ return JetTokens.IDENTIFIER;
}
- case 104: break;
+ case 105: break;
case 11:
{ pushState(STRING); return JetTokens.OPEN_QUOTE;
}
- case 105: break;
+ case 106: break;
case 77:
{ return JetTokens.FOR_KEYWORD ;
}
- case 106: break;
- case 99:
+ case 107: break;
+ case 98:
{ return JetTokens.RETURN_KEYWORD ;
}
- case 107: break;
+ case 108: break;
+ case 103:
+ { return JetTokens.INTERFACE_KEYWORD ;
+ }
+ case 109: break;
case 87:
{ return JetTokens.NULL_KEYWORD ;
}
- case 108: break;
+ case 110: break;
case 35:
{ if (lBraceCount == 0) {
popState();
@@ -941,155 +940,155 @@ class _JetLexer implements FlexLexer {
lBraceCount--;
return JetTokens.RBRACE;
}
- case 109: break;
+ case 111: break;
case 18:
{ return JetTokens.LT ;
}
- case 110: break;
+ case 112: break;
case 52:
{ return JetTokens.DO_KEYWORD ;
}
- case 111: break;
+ case 113: break;
case 17:
{ return JetTokens.PLUS ;
}
- case 112: break;
+ case 114: break;
case 55:
{ return JetTokens.PLUSEQ ;
}
- case 113: break;
+ case 115: break;
case 90:
{ popState(); return JetTokens.THIS_KEYWORD;
}
- case 114: break;
+ case 116: break;
case 27:
{ return JetTokens.COMMA ;
}
- case 115: break;
+ case 117: break;
case 19:
{ return JetTokens.GT ;
}
- case 116: break;
+ case 118: break;
case 4:
{ return JetTokens.WHITE_SPACE;
}
- case 117: break;
+ case 119: break;
case 25:
{ return JetTokens.RPAR ;
}
- case 118: break;
+ case 120: break;
case 54:
{ return JetTokens.DOUBLE_ARROW;
}
- case 119: break;
+ case 121: break;
case 85:
{ return JetTokens.TRUE_KEYWORD ;
}
- case 120: break;
+ case 122: break;
case 37:
{ return JetTokens.FIELD_IDENTIFIER;
}
- case 121: break;
+ case 123: break;
case 59:
{ return JetTokens.ANDAND ;
}
- case 122: break;
+ case 124: break;
case 64:
{ pushState(LONG_TEMPLATE_ENTRY); return JetTokens.LONG_TEMPLATE_ENTRY_START;
}
- case 123: break;
+ case 125: break;
case 36:
{ return JetTokens.FLOAT_LITERAL;
}
- case 124: break;
+ case 126: break;
case 38:
{ return JetTokens.EOL_COMMENT;
}
- case 125: break;
+ case 127: break;
case 88:
{ return JetTokens.WHEN_KEYWORD ;
}
- case 126: break;
+ case 128: break;
case 73:
{ pushState(RAW_STRING); return JetTokens.OPEN_QUOTE;
}
- case 127: break;
+ case 129: break;
case 21:
{ return JetTokens.COLON ;
}
- case 128: break;
+ case 130: break;
case 57:
{ return JetTokens.LTEQ ;
}
- case 129: break;
+ case 131: break;
case 46:
{ return JetTokens.ARROW ;
}
- case 130: break;
+ case 132: break;
case 32:
{ popState(); return JetTokens.IDENTIFIER;
}
- case 131: break;
+ case 133: break;
case 22:
{ return JetTokens.LBRACKET ;
}
- case 132: break;
+ case 134: break;
case 68:
{ yypushback(2); return JetTokens.INTEGER_LITERAL;
}
- case 133: break;
+ case 135: break;
case 10:
{ return JetTokens.CHARACTER_LITERAL;
}
- case 134: break;
+ case 136: break;
case 79:
{ return JetTokens.VAR_KEYWORD ;
}
- case 135: break;
+ case 137: break;
case 58:
{ return JetTokens.GTEQ ;
}
- case 136: break;
+ case 138: break;
case 2:
{ return JetTokens.INTEGER_LITERAL;
}
- case 137: break;
+ case 139: break;
case 13:
{ return JetTokens.RBRACE ;
}
- case 138: break;
- case 94:
+ case 140: break;
+ case 95:
{ return JetTokens.CLASS_KEYWORD ;
}
- case 139: break;
+ case 141: break;
case 74:
{ return JetTokens.TRY_KEYWORD ;
}
- case 140: break;
+ case 142: break;
case 7:
{ return JetTokens.EXCL ;
}
- case 141: break;
+ case 143: break;
case 42:
{ return JetTokens.EXCLEQ ;
}
- case 142: break;
+ case 144: break;
case 45:
{ return JetTokens.MINUSEQ ;
}
- case 143: break;
+ case 145: break;
case 100:
{ return JetTokens.PACKAGE_KEYWORD ;
}
- case 144: break;
+ case 146: break;
case 91:
{ return JetTokens.THROW_KEYWORD ;
}
- case 145: break;
+ case 147: break;
case 93:
{ return JetTokens.SUPER_KEYWORD ;
}
- case 146: break;
+ case 148: break;
case 67:
{ if (commentDepth > 0) {
commentDepth--;
@@ -1101,27 +1100,27 @@ class _JetLexer implements FlexLexer {
return commentStateToTokenType(state);
}
}
- case 147: break;
- case 96:
+ case 149: break;
+ case 97:
{ return JetTokens.WHILE_KEYWORD ;
}
- case 148: break;
+ case 150: break;
case 44:
{ return JetTokens.MINUSMINUS;
}
- case 149: break;
+ case 151: break;
case 101:
{ return JetTokens.CONTINUE_KEYWORD ;
}
- case 150: break;
+ case 152: break;
case 71:
{ return JetTokens.NOT_IN;
}
- case 151: break;
+ case 153: break;
case 5:
{ return JetTokens.DIV ;
}
- case 152: break;
+ case 154: break;
case 81:
{ int length = yytext().length();
if (length <= 3) { // closing """
@@ -1133,181 +1132,181 @@ class _JetLexer implements FlexLexer {
return JetTokens.REGULAR_STRING_PART;
}
}
- case 153: break;
+ case 155: break;
case 29:
{ return JetTokens.REGULAR_STRING_PART;
}
- case 154: break;
+ case 156: break;
case 16:
{ return JetTokens.QUEST ;
}
- case 155: break;
+ case 157: break;
case 69:
{ pushState(DOC_COMMENT);
commentDepth = 0;
commentStart = getTokenStart();
}
- case 156: break;
+ case 158: break;
case 60:
{ return JetTokens.OROR ;
}
- case 157: break;
+ case 159: break;
case 20:
{ return JetTokens.PERC ;
}
- case 158: break;
+ case 160: break;
case 72:
{ return JetTokens.EXCLEQEQEQ;
}
- case 159: break;
+ case 161: break;
case 61:
{ return JetTokens.PERCEQ ;
}
- case 160: break;
+ case 162: break;
case 43:
{ return JetTokens.RANGE ;
}
- case 161: break;
+ case 163: break;
case 1:
{ return TokenType.BAD_CHARACTER;
}
- case 162: break;
+ case 164: break;
case 63:
{ pushState(SHORT_TEMPLATE_ENTRY);
yypushback(yylength() - 1);
return JetTokens.SHORT_TEMPLATE_ENTRY_START;
}
- case 163: break;
+ case 165: break;
case 70:
{ return JetTokens.NOT_IS;
}
- case 164: break;
+ case 166: break;
case 14:
{ return JetTokens.MUL ;
}
- case 165: break;
+ case 167: break;
case 23:
{ return JetTokens.RBRACKET ;
}
- case 166: break;
+ case 168: break;
case 56:
{ return JetTokens.PLUSPLUS ;
}
- case 167: break;
+ case 169: break;
case 39:
{ pushState(BLOCK_COMMENT);
commentDepth = 0;
commentStart = getTokenStart();
}
- case 168: break;
+ case 170: break;
case 84:
{ return JetTokens.THIS_KEYWORD ;
}
- case 169: break;
+ case 171: break;
case 8:
{ return JetTokens.DOT ;
}
- case 170: break;
+ case 172: break;
case 26:
{ return JetTokens.SEMICOLON ;
}
- case 171: break;
+ case 173: break;
case 49:
{ return JetTokens.IF_KEYWORD ;
}
- case 172: break;
+ case 174: break;
case 65:
{ return JetTokens.ESCAPE_SEQUENCE;
}
- case 173: break;
+ case 175: break;
case 31:
{ popState(); return JetTokens.CLOSING_QUOTE;
}
- case 174: break;
+ case 176: break;
case 15:
{ return JetTokens.EQ ;
}
- case 175: break;
+ case 177: break;
case 28:
{ return JetTokens.AT ;
}
- case 176: break;
+ case 178: break;
case 75:
{ return JetTokens.AS_SAFE;
}
- case 177: break;
+ case 179: break;
case 24:
{ return JetTokens.LPAR ;
}
- case 178: break;
+ case 180: break;
case 9:
{ return JetTokens.MINUS ;
}
- case 179: break;
- case 97:
+ case 181: break;
+ case 94:
{ return JetTokens.FALSE_KEYWORD ;
}
- case 180: break;
+ case 182: break;
case 66:
{ commentDepth++;
}
- case 181: break;
+ case 183: break;
case 76:
{ return JetTokens.FUN_KEYWORD ;
}
- case 182: break;
+ case 184: break;
case 47:
{ return JetTokens.IS_KEYWORD ;
}
- case 183: break;
+ case 185: break;
case 30:
{ popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE;
}
- case 184: break;
+ case 186: break;
case 34:
{ lBraceCount++; return JetTokens.LBRACE;
}
- case 185: break;
+ case 187: break;
case 83:
{ yypushback(3); return JetTokens.EXCL;
}
- case 186: break;
+ case 188: break;
case 40:
{ return JetTokens.DIVEQ ;
}
- case 187: break;
+ case 189: break;
case 86:
{ return JetTokens.ELSE_KEYWORD ;
}
- case 188: break;
+ case 190: break;
case 51:
{ return JetTokens.AS_KEYWORD ;
}
- case 189: break;
+ case 191: break;
case 48:
{ return JetTokens.IN_KEYWORD ;
}
- case 190: break;
+ case 192: break;
case 53:
{ return JetTokens.EQEQ ;
}
- case 191: break;
+ case 193: break;
case 80:
{ return JetTokens.EQEQEQ ;
}
- case 192: break;
+ case 194: break;
case 78:
{ return JetTokens.VAL_KEYWORD ;
}
- case 193: break;
+ case 195: break;
case 89:
{ return JetTokens.CAPITALIZED_THIS_KEYWORD ;
}
- case 194: break;
+ case 196: break;
case 50:
{ return JetTokens.MULTEQ ;
}
- case 195: break;
+ case 197: break;
case 41:
{ if (zzCurrentPos == 0) {
return JetTokens.SHEBANG_COMMENT;
@@ -1317,39 +1316,39 @@ class _JetLexer implements FlexLexer {
return JetTokens.HASH;
}
}
- case 196: break;
+ case 198: break;
case 12:
{ return JetTokens.LBRACE ;
}
- case 197: break;
- case 98:
+ case 199: break;
+ case 99:
{ return JetTokens.OBJECT_KEYWORD ;
}
- case 198: break;
- case 95:
+ case 200: break;
+ case 96:
{ return JetTokens.BREAK_KEYWORD ;
}
- case 199: break;
+ case 201: break;
case 82:
{ return JetTokens.BLOCK_COMMENT;
}
- case 200: break;
+ case 202: break;
case 92:
{ return JetTokens.TRAIT_KEYWORD ;
}
- case 201: break;
+ case 203: break;
case 62:
{ return JetTokens.COLONCOLON;
}
- case 202: break;
+ case 204: break;
case 33:
{
}
- case 203: break;
+ case 205: break;
case 6:
{ return JetTokens.HASH ;
}
- case 204: break;
+ case 206: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
@@ -1361,14 +1360,14 @@ class _JetLexer implements FlexLexer {
zzStartRead = commentStart;
return commentStateToTokenType(state);
}
- case 234: break;
+ case 241: break;
case DOC_COMMENT: {
int state = yystate();
popState();
zzStartRead = commentStart;
return commentStateToTokenType(state);
}
- case 235: break;
+ case 242: break;
default:
return null;
}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetExpressionParsing.java b/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetExpressionParsing.java
index 0f034e0ac38..2dfd6e1c101 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetExpressionParsing.java
+++ b/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetExpressionParsing.java
@@ -53,7 +53,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private static final TokenSet TYPE_ARGUMENT_LIST_STOPPERS = TokenSet.create(
INTEGER_LITERAL, FLOAT_LITERAL, CHARACTER_LITERAL, OPEN_QUOTE,
- PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD,
+ PACKAGE_KEYWORD, AS_KEYWORD, TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD, CLASS_KEYWORD, THIS_KEYWORD, VAL_KEYWORD, VAR_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,
@@ -124,6 +124,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
FUN_KEYWORD,
VAL_KEYWORD, VAR_KEYWORD,
TRAIT_KEYWORD,
+ INTERFACE_KEYWORD,
CLASS_KEYWORD,
TYPE_ALIAS_KEYWORD
),
@@ -1336,7 +1337,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private IElementType parseLocalDeclarationRest(boolean isEnum) {
IElementType keywordToken = tt();
IElementType declType = null;
- if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
+ if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
declType = myJetParsing.parseClass(isEnum);
}
else if (keywordToken == FUN_KEYWORD) {
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java b/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java
index fdafcc84f3b..8f1668cb66f 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java
+++ b/compiler/frontend/src/org/jetbrains/kotlin/parsing/JetParsing.java
@@ -44,9 +44,9 @@ public class JetParsing extends AbstractJetParsing {
}
}
- private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD,
+ private static final TokenSet TOPLEVEL_OBJECT_FIRST = TokenSet.create(TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD, CLASS_KEYWORD,
FUN_KEYWORD, VAL_KEYWORD, PACKAGE_KEYWORD);
- private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, CLASS_KEYWORD,
+ private static final TokenSet ENUM_MEMBER_FIRST = TokenSet.create(TYPE_ALIAS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD, CLASS_KEYWORD,
FUN_KEYWORD, VAL_KEYWORD, LBRACE, IDENTIFIER, OBJECT_KEYWORD);
private static final TokenSet CLASS_NAME_RECOVERY_SET = TokenSet.orSet(TokenSet.create(LT, LPAR, COLON, LBRACE), TOPLEVEL_OBJECT_FIRST);
@@ -380,7 +380,7 @@ public class JetParsing extends AbstractJetParsing {
// declType = parsePackageBlock();
// }
// else
- if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD) {
+ if (keywordToken == CLASS_KEYWORD || keywordToken == TRAIT_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
declType = parseClass(detector.isEnumDetected());
}
else if (keywordToken == FUN_KEYWORD) {
@@ -577,7 +577,7 @@ public class JetParsing extends AbstractJetParsing {
/*
* class
- * : modifiers ("class" | "trait") SimpleName
+ * : modifiers ("class" | "interface") SimpleName
* typeParameters?
* modifiers ("(" primaryConstructorParameter{","} ")")?
* (":" annotations delegationSpecifier{","})?
@@ -594,7 +594,7 @@ public class JetParsing extends AbstractJetParsing {
assert _at(OBJECT_KEYWORD);
}
else {
- assert _atSet(CLASS_KEYWORD, TRAIT_KEYWORD);
+ assert _atSet(CLASS_KEYWORD, TRAIT_KEYWORD, INTERFACE_KEYWORD);
}
advance(); // CLASS_KEYWORD, TRAIT_KEYWORD or OBJECT_KEYWORD
@@ -823,7 +823,7 @@ public class JetParsing extends AbstractJetParsing {
if (keywordToken == CLASS_KEYWORD) {
declType = parseClass(isEnum);
}
- else if (keywordToken == TRAIT_KEYWORD) {
+ else if (keywordToken == TRAIT_KEYWORD || keywordToken == INTERFACE_KEYWORD) {
declType = parseClass(isEnum);
}
else if (keywordToken == FUN_KEYWORD) {
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java
index 7fd55c8eca3..d804e330851 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java
+++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetClass.java
@@ -27,10 +27,8 @@ import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.JetNodeTypes;
-import org.jetbrains.kotlin.lexer.JetModifierKeywordToken;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.name.FqName;
-import org.jetbrains.kotlin.psi.addRemoveModifier.AddRemoveModifierPackage;
import org.jetbrains.kotlin.psi.stubs.KotlinClassStub;
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes;
@@ -140,7 +138,8 @@ public class JetClass extends JetTypeParameterListOwnerStub imp
return stub.isTrait();
}
- return findChildByType(JetTokens.TRAIT_KEYWORD) != null;
+ return findChildByType(JetTokens.TRAIT_KEYWORD) != null ||
+ findChildByType(JetTokens.INTERFACE_KEYWORD) != null;
}
public boolean isEnum() {
diff --git a/compiler/testData/psi/Interface.kt b/compiler/testData/psi/Interface.kt
new file mode 100644
index 00000000000..06ba08dd116
--- /dev/null
+++ b/compiler/testData/psi/Interface.kt
@@ -0,0 +1,4 @@
+interface Foo {
+ fun f()
+ val a
+}
diff --git a/compiler/testData/psi/Interface.txt b/compiler/testData/psi/Interface.txt
new file mode 100644
index 00000000000..72154cc7565
--- /dev/null
+++ b/compiler/testData/psi/Interface.txt
@@ -0,0 +1,25 @@
+JetFile: Interface.kt
+ PACKAGE_DIRECTIVE
+
+ CLASS
+ PsiElement(interface)('interface')
+ PsiWhiteSpace(' ')
+ PsiElement(IDENTIFIER)('Foo')
+ PsiWhiteSpace(' ')
+ CLASS_BODY
+ PsiElement(LBRACE)('{')
+ PsiWhiteSpace('\n ')
+ FUN
+ PsiElement(fun)('fun')
+ PsiWhiteSpace(' ')
+ PsiElement(IDENTIFIER)('f')
+ VALUE_PARAMETER_LIST
+ PsiElement(LPAR)('(')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace('\n ')
+ PROPERTY
+ PsiElement(val)('val')
+ PsiWhiteSpace(' ')
+ PsiElement(IDENTIFIER)('a')
+ PsiWhiteSpace('\n')
+ PsiElement(RBRACE)('}')
\ No newline at end of file
diff --git a/compiler/tests/org/jetbrains/kotlin/parsing/JetParsingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/parsing/JetParsingTestGenerated.java
index 71835506927..d3b5d50e577 100644
--- a/compiler/tests/org/jetbrains/kotlin/parsing/JetParsingTestGenerated.java
+++ b/compiler/tests/org/jetbrains/kotlin/parsing/JetParsingTestGenerated.java
@@ -355,6 +355,12 @@ public class JetParsingTestGenerated extends AbstractJetParsingTest {
doParsingTest(fileName);
}
+ @TestMetadata("Interface.kt")
+ public void testInterface() throws Exception {
+ String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/Interface.kt");
+ doParsingTest(fileName);
+ }
+
@TestMetadata("Labels.kt")
public void testLabels() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/psi/Labels.kt");