diff --git a/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java b/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java
index 8e661ec5a33..cac5ef64a3d 100644
--- a/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java
+++ b/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java
@@ -6,13 +6,14 @@ import com.intellij.lexer.FlexLexer;
import com.intellij.psi.TokenType;
import com.intellij.psi.tree.IElementType;
import com.intellij.util.text.CharArrayUtil;
+import java.lang.Character;
import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag;
/**
* This class is a scanner generated by
* JFlex 1.7.0
- * from the specification file /Users/jetbrains/projects/dup_kotlin/kotlin/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex
+ * from the specification file /Users/victor.petukhov/IdeaProjects/kotlin-jps/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex
*/
class _KDocLexer implements FlexLexer {
@@ -417,7 +418,7 @@ class _KDocLexer implements FlexLexer {
/**
* Refills the input buffer.
*
- * @return false, iff there was new input.
+ * @return {@code false}, iff there was new input.
*
* @exception java.io.IOException if any I/O-Error occurs
*/
@@ -453,7 +454,7 @@ class _KDocLexer implements FlexLexer {
/**
- * Returns the character at position pos from the
+ * Returns the character at position {@code pos} from the
* matched text.
*
* It is equivalent to yytext().charAt(pos), but faster
diff --git a/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex b/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex
index cbd9c9595a5..65a5ea9b97d 100644
--- a/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex
+++ b/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex
@@ -296,6 +296,7 @@ LONELY_BACKTICK=`
"->" { return KtTokens.ARROW ; }
"=>" { return KtTokens.DOUBLE_ARROW; }
".." { return KtTokens.RANGE ; }
+"..<" { return KtTokens.RANGE_UNTIL; }
"::" { return KtTokens.COLONCOLON; }
"[" { return KtTokens.LBRACKET ; }
"]" { return KtTokens.RBRACKET ; }
diff --git a/compiler/psi/src/org/jetbrains/kotlin/lexer/KtTokens.java b/compiler/psi/src/org/jetbrains/kotlin/lexer/KtTokens.java
index 35876a4bde0..4346d238bc7 100644
--- a/compiler/psi/src/org/jetbrains/kotlin/lexer/KtTokens.java
+++ b/compiler/psi/src/org/jetbrains/kotlin/lexer/KtTokens.java
@@ -125,6 +125,7 @@ public interface KtTokens {
KtSingleValueToken SEMICOLON = new KtSingleValueToken("SEMICOLON", ";");
KtSingleValueToken DOUBLE_SEMICOLON = new KtSingleValueToken("DOUBLE_SEMICOLON", ";;");
KtSingleValueToken RANGE = new KtSingleValueToken("RANGE", "..");
+ KtSingleValueToken RANGE_UNTIL = new KtSingleValueToken("RANGE_UNTIL", "..<");
KtSingleValueToken EQ = new KtSingleValueToken("EQ", "=");
KtSingleValueToken MULTEQ = new KtSingleValueToken("MULTEQ", "*=");
KtSingleValueToken DIVEQ = new KtSingleValueToken("DIVEQ", "/=");
@@ -264,7 +265,7 @@ public interface KtTokens {
TokenSet OPERATIONS = TokenSet.create(AS_KEYWORD, AS_SAFE, IS_KEYWORD, IN_KEYWORD, DOT, PLUSPLUS, MINUSMINUS, EXCLEXCL, MUL, PLUS,
MINUS, EXCL, DIV, PERC, LT, GT, LTEQ, GTEQ, EQEQEQ, EXCLEQEQEQ, EQEQ, EXCLEQ, ANDAND, OROR,
SAFE_ACCESS, ELVIS,
- RANGE, EQ, MULTEQ, DIVEQ, PERCEQ, PLUSEQ, MINUSEQ,
+ RANGE, RANGE_UNTIL, EQ, MULTEQ, DIVEQ, PERCEQ, PLUSEQ, MINUSEQ,
NOT_IN, NOT_IS,
IDENTIFIER);
diff --git a/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java b/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java
index 784e1ac231f..26a56713533 100644
--- a/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java
+++ b/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java
@@ -2,16 +2,19 @@
package org.jetbrains.kotlin.lexer;
-import com.intellij.lexer.FlexLexer;
-import com.intellij.psi.TokenType;
+import java.util.*;
+import com.intellij.lexer.*;
+import com.intellij.psi.*;
import com.intellij.psi.tree.IElementType;
import com.intellij.util.containers.Stack;
+import org.jetbrains.kotlin.lexer.KotlinLexerException;
+import org.jetbrains.kotlin.lexer.KtTokens;
/**
* This class is a scanner generated by
* JFlex 1.7.0
- * from the specification file /Users/jetbrains/projects/dup_kotlin/kotlin/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex
+ * from the specification file /Users/victor.petukhov/IdeaProjects/kotlin-jps/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex
*/
class _JetLexer implements FlexLexer {
@@ -184,16 +187,17 @@ class _JetLexer implements FlexLexer {
"\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77"+
"\1\100\1\101\1\0\1\102\2\103\2\0\1\42\1\104"+
"\1\105\1\0\1\106\1\46\1\3\1\0\1\107\1\110"+
- "\1\111\1\112\1\0\1\113\1\114\4\3\1\115\4\3"+
- "\1\116\2\3\1\117\1\3\1\120\6\3\1\121\1\122"+
- "\1\123\2\0\1\124\2\42\1\47\1\125\1\126\1\127"+
- "\2\3\1\130\3\3\1\131\1\132\7\3\1\133\1\101"+
- "\1\0\1\134\1\135\3\3\1\136\2\3\1\137\1\140"+
- "\2\3\1\141\1\142\1\0\1\3\1\143\2\3\1\144"+
- "\1\3\1\145\2\3\1\146\3\3\1\147\1\150\1\151";
+ "\1\111\1\112\1\0\1\113\1\114\1\115\4\3\1\116"+
+ "\4\3\1\117\2\3\1\120\1\3\1\121\6\3\1\122"+
+ "\1\123\1\124\2\0\1\125\2\42\1\47\1\126\1\127"+
+ "\1\130\2\3\1\131\3\3\1\132\1\133\7\3\1\134"+
+ "\1\101\1\0\1\135\1\136\3\3\1\137\2\3\1\140"+
+ "\1\141\2\3\1\142\1\143\1\0\1\3\1\144\2\3"+
+ "\1\145\1\3\1\146\2\3\1\147\3\3\1\150\1\151"+
+ "\1\152";
private static int [] zzUnpackAction() {
- int [] result = new int[231];
+ int [] result = new int[232];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -236,20 +240,20 @@ class _JetLexer implements FlexLexer {
"\0\u0198\0\u0198\0\u0198\0\u0198\0\u0198\0\u0198\0\u0198\0\u1870"+
"\0\u18b4\0\u0198\0\u0198\0\u18f8\0\u193c\0\u1980\0\u19c4\0\u0198"+
"\0\u0198\0\u1a08\0\u0198\0\u1a4c\0\u0198\0\u1a90\0\u1ad4\0\u1b18"+
- "\0\u1b18\0\u0198\0\u1b5c\0\u0198\0\u0198\0\u1ba0\0\u1be4\0\u1c28"+
- "\0\u1c6c\0\u0220\0\u1cb0\0\u1cf4\0\u1d38\0\u1d7c\0\u0198\0\u1dc0"+
- "\0\u1e04\0\u0220\0\u1e48\0\u0220\0\u1e8c\0\u1ed0\0\u1f14\0\u1f58"+
- "\0\u1f9c\0\u1fe0\0\u0220\0\u0220\0\u0198\0\u2024\0\u2068\0\u193c"+
- "\0\u0198\0\u20ac\0\u0198\0\u0198\0\u0198\0\u0220\0\u20f0\0\u2134"+
- "\0\u0220\0\u2178\0\u21bc\0\u2200\0\u0220\0\u0220\0\u2244\0\u2288"+
- "\0\u22cc\0\u2310\0\u2354\0\u2398\0\u23dc\0\u0220\0\u0198\0\u2420"+
- "\0\u0cc0\0\u0220\0\u2464\0\u24a8\0\u24ec\0\u0220\0\u2530\0\u2574"+
- "\0\u0220\0\u0220\0\u25b8\0\u25fc\0\u0220\0\u0220\0\u2640\0\u2684"+
- "\0\u0220\0\u26c8\0\u270c\0\u0220\0\u2750\0\u0220\0\u2794\0\u27d8"+
- "\0\u0220\0\u281c\0\u2860\0\u28a4\0\u0220\0\u0220\0\u0220";
+ "\0\u1b18\0\u0198\0\u1b5c\0\u0198\0\u0198\0\u0198\0\u1ba0\0\u1be4"+
+ "\0\u1c28\0\u1c6c\0\u0220\0\u1cb0\0\u1cf4\0\u1d38\0\u1d7c\0\u0198"+
+ "\0\u1dc0\0\u1e04\0\u0220\0\u1e48\0\u0220\0\u1e8c\0\u1ed0\0\u1f14"+
+ "\0\u1f58\0\u1f9c\0\u1fe0\0\u0220\0\u0220\0\u0198\0\u2024\0\u2068"+
+ "\0\u193c\0\u0198\0\u20ac\0\u0198\0\u0198\0\u0198\0\u0220\0\u20f0"+
+ "\0\u2134\0\u0220\0\u2178\0\u21bc\0\u2200\0\u0220\0\u0220\0\u2244"+
+ "\0\u2288\0\u22cc\0\u2310\0\u2354\0\u2398\0\u23dc\0\u0220\0\u0198"+
+ "\0\u2420\0\u0cc0\0\u0220\0\u2464\0\u24a8\0\u24ec\0\u0220\0\u2530"+
+ "\0\u2574\0\u0220\0\u0220\0\u25b8\0\u25fc\0\u0220\0\u0220\0\u2640"+
+ "\0\u2684\0\u0220\0\u26c8\0\u270c\0\u0220\0\u2750\0\u0220\0\u2794"+
+ "\0\u27d8\0\u0220\0\u281c\0\u2860\0\u28a4\0\u0220\0\u0220\0\u0220";
private static int [] zzUnpackRowMap() {
- int [] result = new int[231];
+ int [] result = new int[232];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -363,157 +367,157 @@ class _JetLexer implements FlexLexer {
"\2\0\2\125\3\0\1\125\3\0\1\125\23\0\2\126"+
"\12\0\1\126\2\0\1\106\1\107\1\212\5\0\1\107"+
"\14\0\1\106\37\0\2\127\12\0\1\127\5\0\1\111"+
- "\1\112\16\0\1\112\4\0\1\111\55\0\1\224\61\0"+
- "\10\23\1\0\73\23\31\0\1\225\53\0\3\11\1\0"+
- "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
- "\2\11\1\226\1\11\2\0\6\11\1\227\12\11\23\0"+
+ "\1\112\16\0\1\112\4\0\1\111\55\0\1\224\42\0"+
+ "\1\225\16\0\10\23\1\0\73\23\31\0\1\226\53\0"+
"\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
- "\1\11\2\0\4\11\2\0\1\11\1\230\17\11\23\0"+
+ "\1\11\2\0\2\11\1\227\1\11\2\0\6\11\1\230"+
+ "\12\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
+ "\2\11\3\0\1\11\2\0\4\11\2\0\1\11\1\231"+
+ "\17\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
+ "\2\11\3\0\1\232\2\0\4\11\2\0\1\233\20\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\1\234\3\11\2\0\21\11\23\0"+
"\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
- "\1\231\2\0\4\11\2\0\1\232\20\11\23\0\3\11"+
+ "\1\11\2\0\4\11\2\0\1\11\1\235\17\11\23\0"+
+ "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
+ "\1\11\2\0\4\11\2\0\10\11\1\236\10\11\23\0"+
+ "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
+ "\1\11\2\0\3\11\1\237\2\0\21\11\23\0\3\11"+
"\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\1\233\3\11\2\0\21\11\23\0\3\11\1\0"+
+ "\2\0\4\11\2\0\21\11\1\0\1\240\21\0\3\11"+
+ "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
+ "\2\0\4\11\2\0\4\11\1\241\14\11\23\0\3\11"+
+ "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
+ "\2\0\1\242\3\11\2\0\21\11\23\0\3\11\1\0"+
"\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
- "\4\11\2\0\1\11\1\234\17\11\23\0\3\11\1\0"+
+ "\4\11\2\0\5\11\1\243\13\11\23\0\3\11\1\0"+
"\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
- "\4\11\2\0\10\11\1\235\10\11\23\0\3\11\1\0"+
+ "\4\11\2\0\4\11\1\244\14\11\23\0\3\11\1\0"+
"\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
- "\3\11\1\236\2\0\21\11\23\0\3\11\1\0\2\11"+
- "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
- "\2\0\21\11\1\0\1\237\21\0\3\11\1\0\2\11"+
- "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
- "\2\0\4\11\1\240\14\11\23\0\3\11\1\0\2\11"+
- "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\1\241"+
+ "\4\11\2\0\6\11\1\245\12\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\4\11\2\0\3\11\1\246\15\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\4\11\2\0\5\11\1\247\13\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\4\11\2\0\15\11\1\250\3\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\4\11\2\0\2\11\1\251\16\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\2\11\1\252\1\11\2\0\2\11\1\253\16\11\23\0"+
+ "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
+ "\1\11\2\0\4\11\2\0\4\11\1\254\1\11\1\255"+
+ "\12\11\104\0\1\256\22\0\3\200\1\0\2\200\6\0"+
+ "\5\200\1\0\2\200\3\0\1\200\2\0\4\200\2\0"+
+ "\21\200\22\0\7\257\2\0\73\257\1\0\1\260\1\0"+
+ "\1\260\11\0\1\260\1\0\1\260\3\0\2\260\16\0"+
+ "\2\260\3\0\2\260\3\0\1\260\3\0\1\260\53\0"+
+ "\1\261\52\0\7\206\1\262\1\0\73\206\1\0\3\76"+
+ "\1\0\2\76\6\0\5\76\1\0\2\76\3\0\1\76"+
+ "\2\0\2\76\1\263\1\76\2\0\21\76\44\0\1\213"+
+ "\62\0\2\214\12\0\1\214\5\0\1\111\24\0\1\111"+
+ "\33\0\7\216\1\264\1\0\73\216\12\0\1\265\72\0"+
+ "\3\266\1\0\2\266\6\0\5\266\1\0\2\266\3\0"+
+ "\1\266\2\0\4\266\2\0\21\266\23\0\1\127\13\0"+
+ "\1\127\67\0\3\11\1\0\2\11\6\0\5\11\1\0"+
+ "\2\11\3\0\1\11\2\0\3\11\1\267\2\0\21\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\11\11\1\270\7\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\2\11\1\271\16\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\2\11\1\272\16\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\2\11\1\273\16\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\2\11\1\274\16\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\12\11\1\275\6\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\2\11\1\276\16\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\11\2\0\4\11\2\0\4\11\1\277\14\11"+
+ "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
+ "\3\0\1\300\2\0\4\11\2\0\21\11\23\0\3\11"+
+ "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
+ "\2\0\3\11\1\301\2\0\21\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\3\11\1\302\2\0\21\11\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\1\303"+
"\3\11\2\0\21\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\5\11\1\242\13\11\23\0\3\11\1\0\2\11\6\0"+
+ "\2\11\1\304\16\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\4\11\1\243\14\11\23\0\3\11\1\0\2\11\6\0"+
+ "\3\11\1\305\15\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\6\11\1\244\12\11\23\0\3\11\1\0\2\11\6\0"+
+ "\4\11\1\306\14\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\3\11\1\245\15\11\23\0\3\11\1\0\2\11\6\0"+
+ "\5\11\1\307\13\11\22\0\7\257\1\310\1\0\73\257"+
+ "\1\0\1\311\1\0\1\311\11\0\1\311\1\0\1\311"+
+ "\3\0\2\311\16\0\2\311\3\0\2\311\3\0\1\311"+
+ "\3\0\1\311\23\0\3\76\1\0\2\76\6\0\5\76"+
+ "\1\0\2\76\3\0\1\76\2\0\3\76\1\312\2\0"+
+ "\21\76\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
+ "\2\11\3\0\1\11\2\0\4\11\2\0\16\11\1\313"+
+ "\2\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
+ "\2\11\3\0\1\11\2\0\4\11\2\0\3\11\1\314"+
+ "\5\11\1\315\7\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\5\11\1\246\13\11\23\0\3\11\1\0\2\11\6\0"+
+ "\6\11\1\316\12\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\15\11\1\247\3\11\23\0\3\11\1\0\2\11\6\0"+
+ "\6\11\1\317\12\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\2\11\1\250\16\11\23\0\3\11\1\0\2\11\6\0"+
- "\5\11\1\0\2\11\3\0\1\11\2\0\2\11\1\251"+
- "\1\11\2\0\2\11\1\252\16\11\23\0\3\11\1\0"+
- "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
- "\4\11\2\0\4\11\1\253\1\11\1\254\12\11\104\0"+
- "\1\255\22\0\3\200\1\0\2\200\6\0\5\200\1\0"+
- "\2\200\3\0\1\200\2\0\4\200\2\0\21\200\22\0"+
- "\7\256\2\0\73\256\1\0\1\257\1\0\1\257\11\0"+
- "\1\257\1\0\1\257\3\0\2\257\16\0\2\257\3\0"+
- "\2\257\3\0\1\257\3\0\1\257\53\0\1\260\52\0"+
- "\7\206\1\261\1\0\73\206\1\0\3\76\1\0\2\76"+
- "\6\0\5\76\1\0\2\76\3\0\1\76\2\0\2\76"+
- "\1\262\1\76\2\0\21\76\44\0\1\213\62\0\2\214"+
- "\12\0\1\214\5\0\1\111\24\0\1\111\33\0\7\216"+
- "\1\263\1\0\73\216\12\0\1\264\72\0\3\265\1\0"+
- "\2\265\6\0\5\265\1\0\2\265\3\0\1\265\2\0"+
- "\4\265\2\0\21\265\23\0\1\127\13\0\1\127\67\0"+
- "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
- "\1\11\2\0\3\11\1\266\2\0\21\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\11\11\1\267\7\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\2\11\1\270\16\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\2\11\1\271\16\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\2\11\1\272\16\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\2\11\1\273\16\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\12\11\1\274\6\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\2\11\1\275\16\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\11"+
- "\2\0\4\11\2\0\4\11\1\276\14\11\23\0\3\11"+
- "\1\0\2\11\6\0\5\11\1\0\2\11\3\0\1\277"+
- "\2\0\4\11\2\0\21\11\23\0\3\11\1\0\2\11"+
- "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\3\11"+
- "\1\300\2\0\21\11\23\0\3\11\1\0\2\11\6\0"+
- "\5\11\1\0\2\11\3\0\1\11\2\0\3\11\1\301"+
+ "\3\11\1\320\15\11\23\0\3\11\1\0\2\11\6\0"+
+ "\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
+ "\6\11\1\321\12\11\23\0\3\11\1\0\2\11\6\0"+
+ "\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
+ "\2\11\1\322\16\11\23\0\3\11\1\0\2\11\6\0"+
+ "\5\11\1\0\2\11\3\0\1\11\2\0\3\11\1\323"+
"\2\0\21\11\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\1\302\3\11\2\0"+
- "\21\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\2\11\1\303"+
- "\16\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\3\11\1\304"+
- "\15\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\4\11\1\305"+
- "\14\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\5\11\1\306"+
- "\13\11\22\0\7\256\1\307\1\0\73\256\1\0\1\310"+
- "\1\0\1\310\11\0\1\310\1\0\1\310\3\0\2\310"+
- "\16\0\2\310\3\0\2\310\3\0\1\310\3\0\1\310"+
- "\23\0\3\76\1\0\2\76\6\0\5\76\1\0\2\76"+
- "\3\0\1\76\2\0\3\76\1\311\2\0\21\76\23\0"+
- "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
- "\1\11\2\0\4\11\2\0\16\11\1\312\2\11\23\0"+
- "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\3\0"+
- "\1\11\2\0\4\11\2\0\3\11\1\313\5\11\1\314"+
- "\7\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\6\11\1\315"+
- "\12\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\6\11\1\316"+
- "\12\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\3\11\1\317"+
- "\15\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\6\11\1\320"+
- "\12\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\2\11\1\321"+
- "\16\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\3\11\1\322\2\0\21\11"+
- "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
- "\3\0\1\11\2\0\2\11\1\323\1\11\2\0\21\11"+
- "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
- "\3\0\1\11\2\0\4\11\2\0\10\11\1\324\10\11"+
- "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
- "\3\0\1\11\2\0\4\11\2\0\12\11\1\325\6\11"+
- "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
- "\3\0\1\11\2\0\4\11\2\0\2\11\1\326\16\11"+
- "\23\0\1\327\1\0\1\327\11\0\1\327\1\0\1\327"+
- "\3\0\2\327\16\0\2\327\3\0\2\327\3\0\1\327"+
- "\3\0\1\327\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\4\11"+
- "\1\330\14\11\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\7\11"+
- "\1\331\11\11\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\7\11"+
- "\1\332\11\11\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\13\11"+
- "\1\333\5\11\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\5\11"+
- "\1\334\13\11\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\5\11"+
- "\1\335\13\11\23\0\3\11\1\0\2\11\6\0\5\11"+
- "\1\0\2\11\3\0\1\11\2\0\1\336\3\11\2\0"+
- "\21\11\23\0\1\203\1\0\1\203\11\0\1\203\1\0"+
- "\1\203\3\0\2\203\16\0\2\203\3\0\2\203\3\0"+
- "\1\203\3\0\1\203\23\0\3\11\1\0\2\11\6\0"+
- "\5\11\1\0\2\11\3\0\1\11\2\0\2\11\1\337"+
- "\1\11\2\0\21\11\23\0\3\11\1\0\2\11\6\0"+
+ "\1\0\2\11\3\0\1\11\2\0\2\11\1\324\1\11"+
+ "\2\0\21\11\23\0\3\11\1\0\2\11\6\0\5\11"+
+ "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\10\11"+
+ "\1\325\10\11\23\0\3\11\1\0\2\11\6\0\5\11"+
+ "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\12\11"+
+ "\1\326\6\11\23\0\3\11\1\0\2\11\6\0\5\11"+
+ "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\2\11"+
+ "\1\327\16\11\23\0\1\330\1\0\1\330\11\0\1\330"+
+ "\1\0\1\330\3\0\2\330\16\0\2\330\3\0\2\330"+
+ "\3\0\1\330\3\0\1\330\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
+ "\2\0\4\11\1\331\14\11\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
+ "\2\0\7\11\1\332\11\11\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
+ "\2\0\7\11\1\333\11\11\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
+ "\2\0\13\11\1\334\5\11\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
+ "\2\0\5\11\1\335\13\11\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\4\11"+
+ "\2\0\5\11\1\336\13\11\23\0\3\11\1\0\2\11"+
+ "\6\0\5\11\1\0\2\11\3\0\1\11\2\0\1\337"+
+ "\3\11\2\0\21\11\23\0\1\203\1\0\1\203\11\0"+
+ "\1\203\1\0\1\203\3\0\2\203\16\0\2\203\3\0"+
+ "\2\203\3\0\1\203\3\0\1\203\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\2\11\1\340\1\11\2\0\21\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\4\11\2\0\3\11\1\341\15\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\11\2\0"+
+ "\4\11\2\0\2\11\1\342\16\11\23\0\3\11\1\0"+
+ "\2\11\6\0\5\11\1\0\2\11\3\0\1\343\2\0"+
+ "\4\11\2\0\21\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\3\11\1\340\15\11\23\0\3\11\1\0\2\11\6\0"+
+ "\3\11\1\344\15\11\23\0\3\11\1\0\2\11\6\0"+
"\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
- "\2\11\1\341\16\11\23\0\3\11\1\0\2\11\6\0"+
- "\5\11\1\0\2\11\3\0\1\342\2\0\4\11\2\0"+
- "\21\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\3\11\1\343"+
- "\15\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\10\11\1\344"+
- "\10\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\4\11\2\0\2\11\1\345"+
- "\16\11\23\0\3\11\1\0\2\11\6\0\5\11\1\0"+
- "\2\11\3\0\1\11\2\0\3\11\1\346\2\0\21\11"+
- "\23\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+
- "\3\0\1\11\2\0\4\11\2\0\2\11\1\347\16\11"+
- "\22\0";
+ "\10\11\1\345\10\11\23\0\3\11\1\0\2\11\6\0"+
+ "\5\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+
+ "\2\11\1\346\16\11\23\0\3\11\1\0\2\11\6\0"+
+ "\5\11\1\0\2\11\3\0\1\11\2\0\3\11\1\347"+
+ "\2\0\21\11\23\0\3\11\1\0\2\11\6\0\5\11"+
+ "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\2\11"+
+ "\1\350\16\11\22\0";
private static int [] zzUnpackTrans() {
int [] result = new int[10472];
@@ -561,12 +565,12 @@ class _JetLexer implements FlexLexer {
"\1\0\1\1\1\0\4\1\4\11\1\1\1\0\7\1"+
"\1\11\20\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\2\11\11\1\1\11\15\1\1\11\2\0"+
+ "\1\11\1\0\3\11\11\1\1\11\15\1\1\11\2\0"+
"\1\1\1\11\1\1\3\11\21\1\1\11\1\0\16\1"+
"\1\0\20\1";
private static int [] zzUnpackAttribute() {
- int [] result = new int[231];
+ int [] result = new int[232];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -928,14 +932,14 @@ class _JetLexer implements FlexLexer {
zzStartRead = commentStart;
return commentStateToTokenType(state);
} // fall though
- case 232: break;
+ case 233: break;
case DOC_COMMENT: {
int state = yystate();
popState();
zzStartRead = commentStart;
return commentStateToTokenType(state);
} // fall though
- case 233: break;
+ case 234: break;
default:
return null;
}
@@ -946,182 +950,182 @@ class _JetLexer implements FlexLexer {
{ return TokenType.BAD_CHARACTER;
}
// fall through
- case 106: break;
+ case 107: break;
case 2:
{ return KtTokens.INTEGER_LITERAL;
}
// fall through
- case 107: break;
+ case 108: break;
case 3:
{ return KtTokens.IDENTIFIER;
}
// fall through
- case 108: break;
+ case 109: break;
case 4:
{ return KtTokens.WHITE_SPACE;
}
// fall through
- case 109: break;
+ case 110: break;
case 5:
{ pushState(UNMATCHED_BACKTICK); return TokenType.BAD_CHARACTER;
}
// fall through
- case 110: break;
+ case 111: break;
case 6:
{ return KtTokens.DIV ;
}
// fall through
- case 111: break;
+ case 112: break;
case 7:
{ return KtTokens.HASH ;
}
// fall through
- case 112: break;
+ case 113: break;
case 8:
{ return KtTokens.EXCL ;
}
// fall through
- case 113: break;
+ case 114: break;
case 9:
{ return KtTokens.DOT ;
}
// fall through
- case 114: break;
+ case 115: break;
case 10:
{ return KtTokens.MINUS ;
}
// fall through
- case 115: break;
+ case 116: break;
case 11:
{ return KtTokens.CHARACTER_LITERAL;
}
// fall through
- case 116: break;
+ case 117: break;
case 12:
{ pushState(STRING); return KtTokens.OPEN_QUOTE;
}
// fall through
- case 117: break;
+ case 118: break;
case 13:
{ return KtTokens.LBRACE ;
}
// fall through
- case 118: break;
+ case 119: break;
case 14:
{ return KtTokens.RBRACE ;
}
// fall through
- case 119: break;
+ case 120: break;
case 15:
{ return KtTokens.MUL ;
}
// fall through
- case 120: break;
+ case 121: break;
case 16:
{ return KtTokens.EQ ;
}
// fall through
- case 121: break;
+ case 122: break;
case 17:
{ return KtTokens.QUEST ;
}
// fall through
- case 122: break;
+ case 123: break;
case 18:
{ return KtTokens.PLUS ;
}
// fall through
- case 123: break;
+ case 124: break;
case 19:
{ return KtTokens.LT ;
}
// fall through
- case 124: break;
+ case 125: break;
case 20:
{ return KtTokens.AND ;
}
// fall through
- case 125: break;
+ case 126: break;
case 21:
{ return KtTokens.PERC ;
}
// fall through
- case 126: break;
+ case 127: break;
case 22:
{ return KtTokens.GT ;
}
// fall through
- case 127: break;
+ case 128: break;
case 23:
{ return KtTokens.COLON ;
}
// fall through
- case 128: break;
+ case 129: break;
case 24:
{ return KtTokens.LBRACKET ;
}
// fall through
- case 129: break;
+ case 130: break;
case 25:
{ return KtTokens.RBRACKET ;
}
// fall through
- case 130: break;
+ case 131: break;
case 26:
{ return KtTokens.LPAR ;
}
// fall through
- case 131: break;
+ case 132: break;
case 27:
{ return KtTokens.RPAR ;
}
// fall through
- case 132: break;
+ case 133: break;
case 28:
{ return KtTokens.SEMICOLON ;
}
// fall through
- case 133: break;
+ case 134: break;
case 29:
{ return KtTokens.COMMA ;
}
// fall through
- case 134: break;
+ case 135: break;
case 30:
{ return KtTokens.AT ;
}
// fall through
- case 135: break;
+ case 136: break;
case 31:
{ return KtTokens.REGULAR_STRING_PART;
}
// fall through
- case 136: break;
+ case 137: break;
case 32:
{ popState(); yypushback(1); return KtTokens.DANGLING_NEWLINE;
}
// fall through
- case 137: break;
+ case 138: break;
case 33:
{ popState(); return KtTokens.CLOSING_QUOTE;
}
// fall through
- case 138: break;
+ case 139: break;
case 34:
{ popState(); return KtTokens.IDENTIFIER;
}
// fall through
- case 139: break;
+ case 140: break;
case 35:
{
}
// fall through
- case 140: break;
+ case 141: break;
case 36:
{ lBraceCount++; return KtTokens.LBRACE;
}
// fall through
- case 141: break;
+ case 142: break;
case 37:
{ if (lBraceCount == 0) {
popState();
@@ -1131,34 +1135,34 @@ class _JetLexer implements FlexLexer {
return KtTokens.RBRACE;
}
// fall through
- case 142: break;
+ case 143: break;
case 38:
{ return KtTokens.FLOAT_LITERAL;
}
// fall through
- case 143: break;
+ case 144: break;
case 39:
{ return KtTokens.FIELD_IDENTIFIER;
}
// fall through
- case 144: break;
+ case 145: break;
case 40:
{ return KtTokens.EOL_COMMENT;
}
// fall through
- case 145: break;
+ case 146: break;
case 41:
{ pushState(BLOCK_COMMENT);
commentDepth = 0;
commentStart = getTokenStart();
}
// fall through
- case 146: break;
+ case 147: break;
case 42:
{ return KtTokens.DIVEQ ;
}
// fall through
- case 147: break;
+ case 148: break;
case 43:
{ if (zzCurrentPos == 0) {
return KtTokens.SHEBANG_COMMENT;
@@ -1169,134 +1173,134 @@ class _JetLexer implements FlexLexer {
}
}
// fall through
- case 148: break;
+ case 149: break;
case 44:
{ return KtTokens.EXCLEQ ;
}
// fall through
- case 149: break;
+ case 150: break;
case 45:
{ return KtTokens.RANGE ;
}
// fall through
- case 150: break;
+ case 151: break;
case 46:
{ return KtTokens.MINUSMINUS;
}
// fall through
- case 151: break;
+ case 152: break;
case 47:
{ return KtTokens.MINUSEQ ;
}
// fall through
- case 152: break;
+ case 153: break;
case 48:
{ return KtTokens.ARROW ;
}
// fall through
- case 153: break;
+ case 154: break;
case 49:
{ return KtTokens.IS_KEYWORD ;
}
// fall through
- case 154: break;
+ case 155: break;
case 50:
{ return KtTokens.IN_KEYWORD ;
}
// fall through
- case 155: break;
+ case 156: break;
case 51:
{ return KtTokens.IF_KEYWORD ;
}
// fall through
- case 156: break;
+ case 157: break;
case 52:
{ return KtTokens.MULTEQ ;
}
// fall through
- case 157: break;
+ case 158: break;
case 53:
{ return KtTokens.AS_KEYWORD ;
}
// fall through
- case 158: break;
+ case 159: break;
case 54:
{ return KtTokens.DO_KEYWORD ;
}
// fall through
- case 159: break;
+ case 160: break;
case 55:
{ return KtTokens.EQEQ ;
}
// fall through
- case 160: break;
+ case 161: break;
case 56:
{ return KtTokens.DOUBLE_ARROW;
}
// fall through
- case 161: break;
+ case 162: break;
case 57:
{ return KtTokens.PLUSEQ ;
}
// fall through
- case 162: break;
+ case 163: break;
case 58:
{ return KtTokens.PLUSPLUS ;
}
// fall through
- case 163: break;
+ case 164: break;
case 59:
{ return KtTokens.LTEQ ;
}
// fall through
- case 164: break;
+ case 165: break;
case 60:
{ return KtTokens.ANDAND ;
}
// fall through
- case 165: break;
+ case 166: break;
case 61:
{ return KtTokens.OROR ;
}
// fall through
- case 166: break;
+ case 167: break;
case 62:
{ return KtTokens.PERCEQ ;
}
// fall through
- case 167: break;
+ case 168: break;
case 63:
{ return KtTokens.COLONCOLON;
}
// fall through
- case 168: break;
+ case 169: break;
case 64:
{ return KtTokens.DOUBLE_SEMICOLON;
}
// fall through
- case 169: break;
+ case 170: break;
case 65:
{ pushState(SHORT_TEMPLATE_ENTRY);
yypushback(yylength() - 1);
return KtTokens.SHORT_TEMPLATE_ENTRY_START;
}
// fall through
- case 170: break;
+ case 171: break;
case 66:
{ pushState(LONG_TEMPLATE_ENTRY); return KtTokens.LONG_TEMPLATE_ENTRY_START;
}
// fall through
- case 171: break;
+ case 172: break;
case 67:
{ return KtTokens.ESCAPE_SEQUENCE;
}
// fall through
- case 172: break;
+ case 173: break;
case 68:
{ commentDepth++;
}
// fall through
- case 173: break;
+ case 174: break;
case 69:
{ if (commentDepth > 0) {
commentDepth--;
@@ -1309,80 +1313,85 @@ class _JetLexer implements FlexLexer {
}
}
// fall through
- case 174: break;
+ case 175: break;
case 70:
{ yypushback(2); return KtTokens.INTEGER_LITERAL;
}
// fall through
- case 175: break;
+ case 176: break;
case 71:
{ pushState(DOC_COMMENT);
commentDepth = 0;
commentStart = getTokenStart();
}
// fall through
- case 176: break;
+ case 177: break;
case 72:
{ return KtTokens.NOT_IS;
}
// fall through
- case 177: break;
+ case 178: break;
case 73:
{ return KtTokens.NOT_IN;
}
// fall through
- case 178: break;
+ case 179: break;
case 74:
{ return KtTokens.EXCLEQEQEQ;
}
// fall through
- case 179: break;
+ case 180: break;
case 75:
{ return KtTokens.RESERVED ;
}
// fall through
- case 180: break;
- case 76:
- { pushState(RAW_STRING); return KtTokens.OPEN_QUOTE;
- }
- // fall through
case 181: break;
- case 77:
- { return KtTokens.TRY_KEYWORD ;
+ case 76:
+ { return KtTokens.RANGE_UNTIL;
}
// fall through
case 182: break;
- case 78:
- { return KtTokens.AS_SAFE;
+ case 77:
+ { pushState(RAW_STRING); return KtTokens.OPEN_QUOTE;
}
// fall through
case 183: break;
- case 79:
- { return KtTokens.FUN_KEYWORD ;
+ case 78:
+ { return KtTokens.TRY_KEYWORD ;
}
// fall through
case 184: break;
- case 80:
- { return KtTokens.FOR_KEYWORD ;
+ case 79:
+ { return KtTokens.AS_SAFE;
}
// fall through
case 185: break;
- case 81:
- { return KtTokens.VAL_KEYWORD ;
+ case 80:
+ { return KtTokens.FUN_KEYWORD ;
}
// fall through
case 186: break;
- case 82:
- { return KtTokens.VAR_KEYWORD ;
+ case 81:
+ { return KtTokens.FOR_KEYWORD ;
}
// fall through
case 187: break;
- case 83:
- { return KtTokens.EQEQEQ ;
+ case 82:
+ { return KtTokens.VAL_KEYWORD ;
}
// fall through
case 188: break;
+ case 83:
+ { return KtTokens.VAR_KEYWORD ;
+ }
+ // fall through
+ case 189: break;
case 84:
+ { return KtTokens.EQEQEQ ;
+ }
+ // fall through
+ case 190: break;
+ case 85:
{ int length = yytext().length();
if (length <= 3) { // closing """
popState();
@@ -1394,112 +1403,112 @@ class _JetLexer implements FlexLexer {
}
}
// fall through
- case 189: break;
- case 85:
+ case 191: break;
+ case 86:
{ return KtTokens.BLOCK_COMMENT;
}
// fall through
- case 190: break;
- case 86:
+ case 192: break;
+ case 87:
{ yypushback(3); return KtTokens.EXCL;
}
// fall through
- case 191: break;
- case 87:
+ case 193: break;
+ case 88:
{ return KtTokens.THIS_KEYWORD ;
}
// fall through
- case 192: break;
- case 88:
+ case 194: break;
+ case 89:
{ return KtTokens.TRUE_KEYWORD ;
}
// fall through
- case 193: break;
- case 89:
+ case 195: break;
+ case 90:
{ return KtTokens.ELSE_KEYWORD ;
}
// fall through
- case 194: break;
- case 90:
+ case 196: break;
+ case 91:
{ return KtTokens.NULL_KEYWORD ;
}
// fall through
- case 195: break;
- case 91:
+ case 197: break;
+ case 92:
{ return KtTokens.WHEN_KEYWORD ;
}
// fall through
- case 196: break;
- case 92:
+ case 198: break;
+ case 93:
{ popState(); return KtTokens.THIS_KEYWORD;
}
// fall through
- case 197: break;
- case 93:
+ case 199: break;
+ case 94:
{ return KtTokens.THROW_KEYWORD ;
}
// fall through
- case 198: break;
- case 94:
+ case 200: break;
+ case 95:
{ return KtTokens.SUPER_KEYWORD ;
}
// fall through
- case 199: break;
- case 95:
+ case 201: break;
+ case 96:
{ return KtTokens.FALSE_KEYWORD ;
}
// fall through
- case 200: break;
- case 96:
+ case 202: break;
+ case 97:
{ return KtTokens.CLASS_KEYWORD ;
}
// fall through
- case 201: break;
- case 97:
+ case 203: break;
+ case 98:
{ return KtTokens.BREAK_KEYWORD ;
}
// fall through
- case 202: break;
- case 98:
+ case 204: break;
+ case 99:
{ return KtTokens.WHILE_KEYWORD ;
}
// fall through
- case 203: break;
- case 99:
+ case 205: break;
+ case 100:
{ return KtTokens.TYPEOF_KEYWORD ;
}
// fall through
- case 204: break;
- case 100:
+ case 206: break;
+ case 101:
{ return KtTokens.RETURN_KEYWORD ;
}
// fall through
- case 205: break;
- case 101:
+ case 207: break;
+ case 102:
{ return KtTokens.OBJECT_KEYWORD ;
}
// fall through
- case 206: break;
- case 102:
+ case 208: break;
+ case 103:
{ return KtTokens.PACKAGE_KEYWORD ;
}
// fall through
- case 207: break;
- case 103:
+ case 209: break;
+ case 104:
{ return KtTokens.CONTINUE_KEYWORD ;
}
// fall through
- case 208: break;
- case 104:
+ case 210: break;
+ case 105:
{ return KtTokens.TYPE_ALIAS_KEYWORD ;
}
// fall through
- case 209: break;
- case 105:
+ case 211: break;
+ case 106:
{ return KtTokens.INTERFACE_KEYWORD ;
}
// fall through
- case 210: break;
+ case 212: break;
default:
zzScanError(ZZ_NO_MATCH);
}
diff --git a/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java b/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java
index 0cfc190e733..5813d7b0e76 100644
--- a/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java
+++ b/compiler/psi/src/org/jetbrains/kotlin/parsing/KotlinExpressionParsing.java
@@ -70,7 +70,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
PLUS, MINUS, EXCL, DIV, PERC, LTEQ,
// TODO GTEQ, foo=x
EQEQEQ, EXCLEQEQEQ, EQEQ, EXCLEQ, ANDAND, OROR, SAFE_ACCESS, ELVIS,
- SEMICOLON, RANGE, EQ, MULTEQ, DIVEQ, PERCEQ, PLUSEQ, MINUSEQ, NOT_IN, NOT_IS,
+ SEMICOLON, RANGE, RANGE_UNTIL, EQ, MULTEQ, DIVEQ, PERCEQ, PLUSEQ, MINUSEQ, NOT_IN, NOT_IS,
COLONCOLON,
COLON
);
@@ -170,7 +170,7 @@ public class KotlinExpressionParsing extends AbstractKotlinParsing {
MULTIPLICATIVE(MUL, DIV, PERC),
ADDITIVE(PLUS, MINUS),
- RANGE(KtTokens.RANGE),
+ RANGE(KtTokens.RANGE, RANGE_UNTIL),
SIMPLE_NAME(IDENTIFIER),
ELVIS(KtTokens.ELVIS),
IN_OR_IS(IN_KEYWORD, NOT_IN, IS_KEYWORD, NOT_IS) {
diff --git a/compiler/testData/psi/operators/untilOperator.kt b/compiler/testData/psi/operators/untilOperator.kt
new file mode 100644
index 00000000000..0dc45008ce0
--- /dev/null
+++ b/compiler/testData/psi/operators/untilOperator.kt
@@ -0,0 +1,5 @@
+fun main() {
+ for (i in 0..
+ IMPORT_LIST
+
+ FUN
+ PsiElement(fun)('fun')
+ PsiWhiteSpace(' ')
+ PsiElement(IDENTIFIER)('main')
+ VALUE_PARAMETER_LIST
+ PsiElement(LPAR)('(')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace(' ')
+ BLOCK
+ PsiElement(LBRACE)('{')
+ PsiWhiteSpace('\n ')
+ FOR
+ PsiElement(for)('for')
+ PsiWhiteSpace(' ')
+ PsiElement(LPAR)('(')
+ VALUE_PARAMETER
+ PsiElement(IDENTIFIER)('i')
+ PsiWhiteSpace(' ')
+ PsiElement(in)('in')
+ PsiWhiteSpace(' ')
+ LOOP_RANGE
+ BINARY_EXPRESSION
+ INTEGER_CONSTANT
+ PsiElement(INTEGER_LITERAL)('0')
+ OPERATION_REFERENCE
+ PsiElement(RANGE_UNTIL)('..<')
+ REFERENCE_EXPRESSION
+ PsiElement(IDENTIFIER)('n')
+ PsiElement(RPAR)(')')
+ PsiWhiteSpace(' ')
+ BODY
+ BLOCK
+ PsiElement(LBRACE)('{')
+ PsiWhiteSpace('\n\n ')
+ PsiElement(RBRACE)('}')
+ PsiWhiteSpace('\n')
+ PsiElement(RBRACE)('}')
\ No newline at end of file
diff --git a/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java
index 38c4bdbe2d5..c255878695c 100644
--- a/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java
+++ b/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java
@@ -1839,6 +1839,24 @@ public class ParsingTestGenerated extends AbstractParsingTest {
}
}
+ @TestMetadata("compiler/testData/psi/operators")
+ @TestDataPath("$PROJECT_ROOT")
+ @RunWith(JUnit3RunnerWithInners.class)
+ public static class Operators extends AbstractParsingTest {
+ private void runTest(String testDataFilePath) throws Exception {
+ KotlinTestUtils.runTest(this::doParsingTest, this, testDataFilePath);
+ }
+
+ public void testAllFilesPresentInOperators() throws Exception {
+ KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/psi/operators"), Pattern.compile("^(.*)\\.kts?$"), null, true);
+ }
+
+ @TestMetadata("untilOperator.kt")
+ public void testUntilOperator() throws Exception {
+ runTest("compiler/testData/psi/operators/untilOperator.kt");
+ }
+ }
+
@TestMetadata("compiler/testData/psi/packages")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)