From aca355acdc7e25351c3c97d48ac3d6b216169cb2 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 27 Nov 2015 15:17:04 +0300 Subject: [PATCH] '...' reserved as a token KT-9708 Ambiguous syntax for Double ranges: `.1...2` (triple dot) #KT-9708 Fixed --- .../kotlin/kdoc/lexer/_KDocLexer.java | 139 +- .../org/jetbrains/kotlin/lexer/Kotlin.flex | 1 + .../org/jetbrains/kotlin/lexer/KtTokens.java | 2 + .../org/jetbrains/kotlin/lexer/_JetLexer.java | 1152 +++++++++-------- compiler/testData/psi/Imports_ERR.kt | 4 +- compiler/testData/psi/Imports_ERR.txt | 2 + compiler/testData/psi/TripleDot.kt | 11 + compiler/testData/psi/TripleDot.txt | 75 ++ .../psi/kdoc/MarkdownLinkWithError.txt | 3 +- .../kotlin/parsing/ParsingTestGenerated.java | 6 + 10 files changed, 768 insertions(+), 627 deletions(-) create mode 100644 compiler/testData/psi/TripleDot.kt create mode 100644 compiler/testData/psi/TripleDot.txt diff --git a/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java b/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java index 27f277b3471..340d2f2aa7c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 10/9/15 5:11 PM */ +/* The following code was generated by JFlex 1.4.3 on 11/27/15 4:10 PM */ package org.jetbrains.kotlin.kdoc.lexer; @@ -7,15 +7,14 @@ 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.4.3 - * on 10/9/15 5:11 PM from the specification file - * /Users/yole/jetbrains/kotlin/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex + * on 11/27/15 4:10 PM from the specification file + * /Users/abreslav/work/kotlin/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex */ class _KDocLexer implements FlexLexer { /** initial size of the lookahead buffer */ @@ -47,63 +46,81 @@ class _KDocLexer implements FlexLexer { "\1\14\1\15\1\10\3\0\1\4\1\7\12\2\6\0\1\11\32\3"+ "\1\5\1\13\1\6\1\0\1\3\1\0\32\3\47\0\4\3\4\0"+ "\1\3\12\0\1\3\4\0\1\3\5\0\27\3\1\0\37\3\1\0"+ - "\u013f\3\31\0\162\3\4\0\14\3\16\0\5\3\11\0\1\3\213\0"+ - "\1\3\13\0\1\3\1\0\3\3\1\0\1\3\1\0\24\3\1\0"+ - "\54\3\1\0\46\3\1\0\5\3\4\0\202\3\10\0\105\3\1\0"+ - "\46\3\2\0\2\3\6\0\20\3\41\0\46\3\2\0\1\3\7\0"+ - "\47\3\110\0\33\3\5\0\3\3\56\0\32\3\5\0\13\3\43\0"+ - "\2\3\1\0\143\3\1\0\1\3\17\0\2\3\7\0\2\3\12\0"+ - "\3\3\2\0\1\3\20\0\1\3\1\0\36\3\35\0\3\3\60\0"+ - "\46\3\13\0\1\3\u0152\0\66\3\3\0\1\3\22\0\1\3\7\0"+ - "\12\3\43\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0"+ - "\1\3\3\0\4\3\3\0\1\3\36\0\2\3\1\0\3\3\16\0"+ - "\4\3\21\0\6\3\4\0\2\3\2\0\26\3\1\0\7\3\1\0"+ - "\2\3\1\0\2\3\1\0\2\3\37\0\4\3\1\0\1\3\23\0"+ - "\3\3\20\0\11\3\1\0\3\3\1\0\26\3\1\0\7\3\1\0"+ - "\2\3\1\0\5\3\3\0\1\3\22\0\1\3\17\0\2\3\17\0"+ - "\1\3\23\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0"+ - "\2\3\1\0\5\3\3\0\1\3\36\0\2\3\1\0\3\3\17\0"+ - "\1\3\21\0\1\3\1\0\6\3\3\0\3\3\1\0\4\3\3\0"+ - "\2\3\1\0\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0"+ - "\10\3\1\0\3\3\77\0\1\3\13\0\10\3\1\0\3\3\1\0"+ - "\27\3\1\0\12\3\1\0\5\3\46\0\2\3\43\0\10\3\1\0"+ + "\u01ca\3\4\0\14\3\16\0\5\3\7\0\1\3\1\0\1\3\201\0"+ + "\5\3\1\0\2\3\2\0\4\3\10\0\1\3\1\0\3\3\1\0"+ + "\1\3\1\0\24\3\1\0\123\3\1\0\213\3\10\0\236\3\11\0"+ + "\46\3\2\0\1\3\7\0\47\3\110\0\33\3\5\0\3\3\30\0"+ + "\1\3\24\0\53\3\43\0\2\3\1\0\143\3\1\0\1\3\17\0"+ + "\2\3\7\0\2\3\12\0\3\3\2\0\1\3\20\0\1\3\1\0"+ + "\36\3\35\0\131\3\13\0\1\3\30\0\41\3\11\0\2\3\4\0"+ + "\1\3\5\0\26\3\4\0\1\3\11\0\1\3\3\0\1\3\27\0"+ + "\31\3\253\0\66\3\3\0\1\3\22\0\1\3\7\0\12\3\17\0"+ + "\7\3\1\0\7\3\5\0\10\3\2\0\2\3\2\0\26\3\1\0"+ + "\7\3\1\0\1\3\3\0\4\3\3\0\1\3\20\0\1\3\15\0"+ + "\2\3\1\0\3\3\16\0\4\3\7\0\1\3\11\0\6\3\4\0"+ + "\2\3\2\0\26\3\1\0\7\3\1\0\2\3\1\0\2\3\1\0"+ + "\2\3\37\0\4\3\1\0\1\3\23\0\3\3\20\0\11\3\1\0"+ + "\3\3\1\0\26\3\1\0\7\3\1\0\2\3\1\0\5\3\3\0"+ + "\1\3\22\0\1\3\17\0\2\3\17\0\1\3\23\0\10\3\2\0"+ + "\2\3\2\0\26\3\1\0\7\3\1\0\2\3\1\0\5\3\3\0"+ + "\1\3\36\0\2\3\1\0\3\3\17\0\1\3\21\0\1\3\1\0"+ + "\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1\0\1\3\1\0"+ + "\2\3\3\0\2\3\3\0\3\3\3\0\14\3\26\0\1\3\50\0"+ + "\1\3\13\0\10\3\1\0\3\3\1\0\27\3\1\0\12\3\1\0"+ + "\5\3\3\0\1\3\32\0\2\3\6\0\2\3\43\0\10\3\1\0"+ "\3\3\1\0\27\3\1\0\12\3\1\0\5\3\3\0\1\3\40\0"+ - "\1\3\1\0\2\3\43\0\10\3\1\0\3\3\1\0\27\3\1\0"+ - "\20\3\46\0\2\3\43\0\22\3\3\0\30\3\1\0\11\3\1\0"+ - "\1\3\2\0\7\3\72\0\60\3\1\0\2\3\13\0\10\3\72\0"+ - "\2\3\1\0\1\3\2\0\2\3\1\0\1\3\2\0\1\3\6\0"+ - "\4\3\1\0\7\3\1\0\3\3\1\0\1\3\1\0\1\3\2\0"+ - "\2\3\1\0\4\3\1\0\2\3\11\0\1\3\2\0\5\3\1\0"+ - "\1\3\25\0\2\3\42\0\1\3\77\0\10\3\1\0\42\3\35\0"+ - "\4\3\164\0\42\3\1\0\5\3\1\0\2\3\45\0\6\3\112\0"+ - "\46\3\12\0\51\3\7\0\132\3\5\0\104\3\5\0\122\3\6\0"+ - "\7\3\1\0\77\3\1\0\1\3\1\0\4\3\2\0\7\3\1\0"+ - "\1\3\1\0\4\3\2\0\47\3\1\0\1\3\1\0\4\3\2\0"+ - "\37\3\1\0\1\3\1\0\4\3\2\0\7\3\1\0\1\3\1\0"+ - "\4\3\2\0\7\3\1\0\7\3\1\0\27\3\1\0\37\3\1\0"+ - "\1\3\1\0\4\3\2\0\7\3\1\0\47\3\1\0\23\3\105\0"+ - "\125\3\14\0\u026c\3\2\0\10\3\12\0\32\3\5\0\113\3\3\0"+ - "\3\3\17\0\15\3\1\0\4\3\16\0\22\3\16\0\22\3\16\0"+ - "\15\3\1\0\3\3\17\0\64\3\43\0\1\3\3\0\2\3\103\0"+ - "\130\3\10\0\51\3\127\0\35\3\63\0\36\3\2\0\5\3\u038b\0"+ - "\154\3\224\0\234\3\4\0\132\3\6\0\26\3\2\0\6\3\2\0"+ - "\46\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0\1\3\1\0"+ - "\1\3\1\0\37\3\2\0\65\3\1\0\7\3\1\0\1\3\3\0"+ - "\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0\15\3\5\0"+ - "\3\3\1\0\7\3\102\0\2\3\23\0\1\3\34\0\1\3\15\0"+ - "\1\3\40\0\22\3\120\0\1\3\4\0\1\3\2\0\12\3\1\0"+ - "\1\3\3\0\5\3\6\0\1\3\1\0\1\3\1\0\1\3\1\0"+ - "\4\3\1\0\3\3\1\0\7\3\3\0\3\3\5\0\5\3\26\0"+ - "\44\3\u0e81\0\3\3\31\0\11\3\7\0\5\3\2\0\5\3\4\0"+ - "\126\3\6\0\3\3\1\0\137\3\5\0\50\3\4\0\136\3\21\0"+ - "\30\3\70\0\20\3\u0200\0\u19b6\3\112\0\u51a6\3\132\0\u048d\3\u0773\0"+ - "\u2ba4\3\u215c\0\u012e\3\2\0\73\3\225\0\7\3\14\0\5\3\5\0"+ - "\1\3\1\0\12\3\1\0\15\3\1\0\5\3\1\0\1\3\1\0"+ - "\2\3\1\0\2\3\1\0\154\3\41\0\u016b\3\22\0\100\3\2\0"+ - "\66\3\50\0\15\3\66\0\2\3\30\0\3\3\31\0\1\3\6\0"+ - "\5\3\1\0\207\3\7\0\1\3\34\0\32\3\4\0\1\3\1\0"+ - "\32\3\12\0\132\3\3\0\6\3\2\0\6\3\2\0\6\3\2\0"+ - "\3\3\3\0\2\3\3\0\2\3\31\0"; + "\1\3\1\0\2\3\17\0\2\3\22\0\10\3\1\0\3\3\1\0"+ + "\51\3\2\0\1\3\20\0\1\3\21\0\2\3\30\0\6\3\5\0"+ + "\22\3\3\0\30\3\1\0\11\3\1\0\1\3\2\0\7\3\72\0"+ + "\60\3\1\0\2\3\13\0\10\3\72\0\2\3\1\0\1\3\2\0"+ + "\2\3\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3\1\0"+ + "\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\4\3\1\0"+ + "\2\3\11\0\1\3\2\0\5\3\1\0\1\3\25\0\2\3\42\0"+ + "\1\3\77\0\10\3\1\0\44\3\33\0\5\3\163\0\53\3\24\0"+ + "\1\3\20\0\6\3\4\0\4\3\3\0\1\3\3\0\2\3\7\0"+ + "\3\3\4\0\15\3\14\0\1\3\21\0\46\3\12\0\53\3\1\0"+ + "\1\3\3\0\u0149\3\1\0\4\3\2\0\7\3\1\0\1\3\1\0"+ + "\4\3\2\0\51\3\1\0\4\3\2\0\41\3\1\0\4\3\2\0"+ + "\7\3\1\0\1\3\1\0\4\3\2\0\17\3\1\0\71\3\1\0"+ + "\4\3\2\0\103\3\45\0\20\3\20\0\125\3\14\0\u026c\3\2\0"+ + "\21\3\1\0\32\3\5\0\113\3\3\0\3\3\17\0\15\3\1\0"+ + "\4\3\16\0\22\3\16\0\22\3\16\0\15\3\1\0\3\3\17\0"+ + "\64\3\43\0\1\3\3\0\2\3\103\0\130\3\10\0\51\3\1\0"+ + "\1\3\5\0\106\3\12\0\35\3\63\0\36\3\2\0\5\3\13\0"+ + "\54\3\25\0\7\3\70\0\27\3\11\0\65\3\122\0\1\3\135\0"+ + "\57\3\21\0\7\3\67\0\36\3\15\0\2\3\20\0\46\3\32\0"+ + "\44\3\51\0\3\3\12\0\44\3\153\0\4\3\1\0\4\3\16\0"+ + "\300\3\100\0\u0116\3\2\0\6\3\2\0\46\3\2\0\6\3\2\0"+ + "\10\3\1\0\1\3\1\0\1\3\1\0\1\3\1\0\37\3\2\0"+ + "\65\3\1\0\7\3\1\0\1\3\3\0\3\3\1\0\7\3\3\0"+ + "\4\3\2\0\6\3\4\0\15\3\5\0\3\3\1\0\7\3\102\0"+ + "\2\3\23\0\1\3\34\0\1\3\15\0\1\3\20\0\15\3\3\0"+ + "\32\3\110\0\1\3\4\0\1\3\2\0\12\3\1\0\1\3\3\0"+ + "\5\3\6\0\1\3\1\0\1\3\1\0\1\3\1\0\4\3\1\0"+ + "\13\3\2\0\4\3\5\0\5\3\4\0\1\3\21\0\51\3\u0a77\0"+ + "\57\3\1\0\57\3\1\0\205\3\6\0\4\3\21\0\46\3\12\0"+ + "\66\3\11\0\1\3\20\0\27\3\11\0\7\3\1\0\7\3\1\0"+ + "\7\3\1\0\7\3\1\0\7\3\1\0\7\3\1\0\7\3\1\0"+ + "\7\3\120\0\1\3\u01d5\0\3\3\31\0\11\3\7\0\5\3\2\0"+ + "\5\3\4\0\126\3\6\0\3\3\1\0\132\3\1\0\4\3\5\0"+ + "\51\3\3\0\136\3\21\0\33\3\65\0\20\3\u0200\0\u19b6\3\112\0"+ + "\u51cc\3\64\0\u048d\3\103\0\56\3\2\0\u010d\3\3\0\20\3\12\0"+ + "\2\3\24\0\57\3\20\0\31\3\10\0\120\3\47\0\11\3\2\0"+ + "\147\3\2\0\4\3\1\0\2\3\16\0\12\3\120\0\10\3\1\0"+ + "\3\3\1\0\4\3\1\0\27\3\25\0\1\3\7\0\64\3\16\0"+ + "\62\3\76\0\6\3\3\0\1\3\16\0\34\3\12\0\27\3\31\0"+ + "\35\3\7\0\57\3\34\0\1\3\60\0\51\3\27\0\3\3\1\0"+ + "\10\3\24\0\27\3\3\0\1\3\5\0\60\3\1\0\1\3\3\0"+ + "\2\3\2\0\5\3\2\0\1\3\1\0\1\3\30\0\3\3\43\0"+ + "\6\3\2\0\6\3\2\0\6\3\11\0\7\3\1\0\7\3\221\0"+ + "\43\3\35\0\u2ba4\3\14\0\27\3\4\0\61\3\u2104\0\u012e\3\2\0"+ + "\76\3\2\0\152\3\46\0\7\3\14\0\5\3\5\0\1\3\1\0"+ + "\12\3\1\0\15\3\1\0\5\3\1\0\1\3\1\0\2\3\1\0"+ + "\2\3\1\0\154\3\41\0\u016b\3\22\0\100\3\2\0\66\3\50\0"+ + "\15\3\66\0\2\3\30\0\3\3\31\0\1\3\6\0\5\3\1\0"+ + "\207\3\7\0\1\3\34\0\32\3\4\0\1\3\1\0\32\3\13\0"+ + "\131\3\3\0\6\3\2\0\6\3\2\0\6\3\2\0\3\3\3\0"+ + "\2\3\3\0\2\3\31\0"; /** * Translates characters to character classes @@ -341,7 +358,7 @@ class _KDocLexer implements FlexLexer { char [] map = new char[0x10000]; int i = 0; /* index in packed string */ int j = 0; /* index in unpacked array */ - while (i < 1212) { + while (i < 1568) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex b/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex index 6e7d2a92713..623586cd746 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex +++ b/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex @@ -268,6 +268,7 @@ LONG_TEMPLATE_ENTRY_START=\$\{ \!in{IDENTIFIER_PART} { yypushback(3); return KtTokens.EXCL; } \!is{IDENTIFIER_PART} { yypushback(3); return KtTokens.EXCL; } +"..." { return KtTokens.RESERVED ; } "===" { return KtTokens.EQEQEQ ; } "!==" { return KtTokens.EXCLEQEQEQ; } "!in" { return KtTokens.NOT_IN; } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java b/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java index ddccced03b6..e44f1bba7ce 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/lexer/KtTokens.java @@ -25,6 +25,8 @@ import org.jetbrains.kotlin.psi.KtPsiUtil; public interface KtTokens { KtToken EOF = new KtToken("EOF"); + KtToken RESERVED = new KtToken("RESERVED"); + KtToken BLOCK_COMMENT = new KtToken("BLOCK_COMMENT"); KtToken EOL_COMMENT = new KtToken("EOL_COMMENT"); KtToken SHEBANG_COMMENT = new KtToken("SHEBANG_COMMENT"); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java b/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java index d94ec97c3fe..c2203f9db6e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/lexer/_JetLexer.java @@ -1,18 +1,21 @@ -/* The following code was generated by JFlex 1.4.3 on 10/9/15 5:11 PM */ +/* The following code was generated by JFlex 1.4.3 on 11/27/15 4:10 PM */ 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.4.3 - * on 10/9/15 5:11 PM from the specification file - * /Users/yole/jetbrains/kotlin/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex + * on 11/27/15 4:10 PM from the specification file + * /Users/abreslav/work/kotlin/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex */ class _JetLexer implements FlexLexer { /** initial size of the lookahead buffer */ @@ -49,65 +52,84 @@ class _JetLexer implements FlexLexer { "\1\53\1\47\1\60\1\41\1\46\1\52\1\32\1\33\1\54\1\51"+ "\1\43\1\4\1\44\1\50\1\40\1\4\1\45\1\34\1\31\1\26"+ "\1\57\1\55\1\15\1\37\1\4\1\30\1\67\1\35\54\0\1\4"+ - "\12\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\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"; + "\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"; /** * Translates characters to character classes @@ -133,16 +155,16 @@ class _JetLexer implements FlexLexer { "\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77"+ "\1\100\1\0\1\101\2\102\2\0\1\40\1\103\1\104"+ "\1\0\1\105\1\44\1\3\1\0\1\106\1\107\1\110"+ - "\1\111\1\0\1\112\4\3\1\113\4\3\1\114\2\3"+ - "\1\115\1\3\1\116\7\3\1\117\1\120\1\121\2\0"+ - "\1\122\2\40\1\45\1\123\1\124\1\125\2\3\1\126"+ - "\3\3\1\127\1\130\7\3\1\131\1\132\1\100\1\0"+ - "\1\133\1\134\2\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"; + "\1\111\1\0\1\112\1\113\4\3\1\114\4\3\1\115"+ + "\2\3\1\116\1\3\1\117\7\3\1\120\1\121\1\122"+ + "\2\0\1\123\2\40\1\45\1\124\1\125\1\126\2\3"+ + "\1\127\3\3\1\130\1\131\7\3\1\132\1\133\1\100"+ + "\1\0\1\134\1\135\2\3\1\136\2\3\1\137\1\140"+ + "\2\3\1\141\1\142\1\0\3\3\1\143\1\3\1\144"+ + "\2\3\1\145\3\3\1\146\1\147\1\150"; private static int [] zzUnpackAction() { - int [] result = new int[232]; + int [] result = new int[233]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -177,28 +199,29 @@ class _JetLexer implements FlexLexer { "\0\u0186\0\u0bef\0\u0c30\0\u0186\0\u0186\0\u0c71\0\u0cb2\0\u0cf3"+ "\0\u0d34\0\u0186\0\u0d75\0\u0db6\0\u0186\0\u0186\0\u0df7\0\u0e38"+ "\0\u0186\0\u0e79\0\u0eba\0\u0efb\0\u0f3c\0\u0f7d\0\u0fbe\0\u0186"+ - "\0\u0fff\0\u1040\0\u1081\0\u10c2\0\u1103\0\u1144\0\u1185\0\u0186"+ - "\0\u0186\0\u0186\0\u0186\0\u0186\0\u11c6\0\u1207\0\u1248\0\u1289"+ - "\0\u12ca\0\u0208\0\u130b\0\u0208\0\u134c\0\u0186\0\u138d\0\u13ce"+ - "\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595\0\u15d6"+ - "\0\u1617\0\u1658\0\u1699\0\u16da\0\u171b\0\u0208\0\u175c\0\u0186"+ + "\0\u0fff\0\u1040\0\u1081\0\u10c2\0\u1103\0\u1144\0\u1185\0\u11c6"+ + "\0\u0186\0\u0186\0\u0186\0\u0186\0\u1207\0\u1248\0\u1289\0\u12ca"+ + "\0\u130b\0\u0208\0\u134c\0\u0208\0\u138d\0\u0186\0\u13ce\0\u140f"+ + "\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554\0\u1595\0\u15d6\0\u1617"+ + "\0\u1658\0\u1699\0\u16da\0\u171b\0\u175c\0\u0208\0\u179d\0\u0186"+ "\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186\0\u0186"+ - "\0\u0186\0\u179d\0\u17de\0\u0186\0\u0186\0\u181f\0\u1860\0\u18a1"+ - "\0\u18e2\0\u0186\0\u0186\0\u1923\0\u0186\0\u1964\0\u0186\0\u19a5"+ - "\0\u19e6\0\u1a27\0\u1a27\0\u0186\0\u1a68\0\u0186\0\u1aa9\0\u1aea"+ - "\0\u1b2b\0\u1b6c\0\u0208\0\u1bad\0\u1bee\0\u1c2f\0\u1c70\0\u0186"+ - "\0\u1cb1\0\u1cf2\0\u0208\0\u1d33\0\u0208\0\u1d74\0\u1db5\0\u1df6"+ - "\0\u1e37\0\u1e78\0\u1eb9\0\u1efa\0\u0208\0\u0208\0\u0186\0\u1f3b"+ - "\0\u1f7c\0\u1860\0\u0186\0\u1fbd\0\u0186\0\u0186\0\u0186\0\u0208"+ - "\0\u1ffe\0\u203f\0\u0208\0\u2080\0\u20c1\0\u2102\0\u0208\0\u0208"+ - "\0\u2143\0\u2184\0\u21c5\0\u2206\0\u2247\0\u2288\0\u22c9\0\u0208"+ - "\0\u0208\0\u0186\0\u230a\0\u0cb2\0\u0208\0\u234b\0\u238c\0\u0208"+ - "\0\u23cd\0\u240e\0\u0208\0\u0208\0\u244f\0\u2490\0\u0208\0\u0208"+ - "\0\u24d1\0\u2512\0\u2553\0\u2594\0\u0208\0\u25d5\0\u0208\0\u2616"+ - "\0\u2657\0\u0208\0\u2698\0\u26d9\0\u271a\0\u0208\0\u0208\0\u0208"; + "\0\u0186\0\u17de\0\u181f\0\u0186\0\u0186\0\u1860\0\u18a1\0\u18e2"+ + "\0\u1923\0\u0186\0\u0186\0\u1964\0\u0186\0\u19a5\0\u0186\0\u19e6"+ + "\0\u1a27\0\u1a68\0\u1a68\0\u0186\0\u1aa9\0\u0186\0\u0186\0\u1aea"+ + "\0\u1b2b\0\u1b6c\0\u1bad\0\u0208\0\u1bee\0\u1c2f\0\u1c70\0\u1cb1"+ + "\0\u0186\0\u1cf2\0\u1d33\0\u0208\0\u1d74\0\u0208\0\u1db5\0\u1df6"+ + "\0\u1e37\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\u0208\0\u0208\0\u0186"+ + "\0\u1f7c\0\u1fbd\0\u18a1\0\u0186\0\u1ffe\0\u0186\0\u0186\0\u0186"+ + "\0\u0208\0\u203f\0\u2080\0\u0208\0\u20c1\0\u2102\0\u2143\0\u0208"+ + "\0\u0208\0\u2184\0\u21c5\0\u2206\0\u2247\0\u2288\0\u22c9\0\u230a"+ + "\0\u0208\0\u0208\0\u0186\0\u234b\0\u0cb2\0\u0208\0\u238c\0\u23cd"+ + "\0\u0208\0\u240e\0\u244f\0\u0208\0\u0208\0\u2490\0\u24d1\0\u0208"+ + "\0\u0208\0\u2512\0\u2553\0\u2594\0\u25d5\0\u0208\0\u2616\0\u0208"+ + "\0\u2657\0\u2698\0\u0208\0\u26d9\0\u271a\0\u275b\0\u0208\0\u0208"+ + "\0\u0208"; private static int [] zzUnpackRowMap() { - int [] result = new int[232]; + int [] result = new int[233]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -312,159 +335,160 @@ class _JetLexer implements FlexLexer { "\2\125\3\0\1\125\4\0\1\125\21\0\1\126\12\0"+ "\1\126\2\0\1\107\1\214\22\0\1\107\36\0\1\127"+ "\12\0\1\127\4\0\1\111\1\112\16\0\1\112\4\0"+ - "\1\111\32\0\7\23\1\0\71\23\27\0\1\226\52\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\2\11\1\227\1\11\2\0\6\11\1\230"+ - "\13\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\11\2\0\4\11\2\0\1\11\1\231"+ - "\20\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\232\2\0\4\11\2\0\1\233\21\11"+ - "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\1\234\3\11\2\0\22\11\21\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\4\11\2\0\1\11\1\235\20\11\21\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\4\11\2\0\10\11\1\236\11\11\21\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\3\11\1\237\2\0\22\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\22\11\1\0\1\240\17\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\4\11\1\241\15\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\1\242\3\11\2\0\22\11\21\0\2\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\2\0\5\11\1\243\14\11\21\0\2\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\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\3\0\1\11\2\0"+ - "\4\11\2\0\6\11\1\245\13\11\21\0\2\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\2\0\3\11\1\246\16\11\21\0\2\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\2\0\5\11\1\247\14\11\21\0\2\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\2\0\15\11\1\250\4\11\21\0\2\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\2\0\2\11\1\251\17\11\21\0\2\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\2\11\1\252\1\11\2\0\2\11\1\253\17\11\21\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\2\11\1\254\1\11\2\0\22\11\21\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\4\11\2\0\4\11\1\255\1\11\1\256"+ - "\13\11\101\0\1\257\20\0\2\202\1\0\2\202\6\0"+ - "\4\202\1\0\2\202\3\0\1\202\2\0\4\202\2\0"+ - "\22\202\20\0\6\260\2\0\71\260\1\0\2\261\11\0"+ - "\1\261\1\0\1\261\2\0\2\261\16\0\2\261\3\0"+ - "\2\261\3\0\1\261\4\0\1\261\47\0\1\262\51\0"+ - "\6\210\1\263\1\0\71\210\1\0\2\77\1\0\2\77"+ - "\6\0\4\77\1\0\2\77\3\0\1\77\2\0\2\77"+ - "\1\264\1\77\2\0\22\77\40\0\1\215\61\0\1\216"+ - "\12\0\1\216\4\0\1\111\24\0\1\111\32\0\6\220"+ - "\1\265\1\0\71\220\11\0\1\266\70\0\2\267\1\0"+ - "\2\267\6\0\4\267\1\0\2\267\3\0\1\267\2\0"+ - "\4\267\2\0\22\267\21\0\1\127\12\0\1\127\65\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\3\11\1\270\2\0\22\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\11\11\1\271\10\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\2\11\1\272\17\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\2\11\1\273\17\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\2\11\1\274\17\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\2\11\1\275\17\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\12\11\1\276\7\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\2\11\1\277\17\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\2\0\4\11\1\300\15\11\21\0\2\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\301"+ - "\2\0\4\11\2\0\22\11\21\0\2\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\3\11"+ - "\1\302\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\3\11\1\303"+ - "\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\1\304\3\11\2\0"+ + "\1\111\52\0\1\226\60\0\7\23\1\0\71\23\27\0"+ + "\1\227\52\0\2\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\2\11\1\230\1\11\2\0"+ + "\6\11\1\231\13\11\21\0\2\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ + "\1\11\1\232\20\11\21\0\2\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\233\2\0\4\11\2\0"+ + "\1\234\21\11\21\0\2\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\1\235\3\11\2\0"+ "\22\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\11\2\0\4\11\2\0\2\11\1\305"+ + "\2\11\3\0\1\11\2\0\4\11\2\0\1\11\1\236"+ + "\20\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\2\0\10\11\1\237"+ + "\11\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\3\11\1\240\2\0\22\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\22\11\1\0\1\241"+ + "\17\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\4\11\1\242\15\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\1\243\3\11\2\0\22\11\21\0"+ + "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\2\0\5\11\1\244\14\11\21\0"+ + "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\2\0\4\11\1\245\15\11\21\0"+ + "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\2\0\6\11\1\246\13\11\21\0"+ + "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\2\0\3\11\1\247\16\11\21\0"+ + "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\2\0\5\11\1\250\14\11\21\0"+ + "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\11\2\0\15\11\1\251\4\11\21\0"+ + "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ + "\1\11\2\0\4\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\3\0"+ + "\1\11\2\0\2\11\1\253\1\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\3\0\1\11\2\0\4\11\2\0\3\11\1\306"+ - "\16\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\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\3\0\1\11\2\0\4\11\2\0\5\11\1\310"+ - "\14\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\11\2\0\3\11\1\311\2\0\22\11"+ - "\20\0\6\260\1\312\1\0\71\260\1\0\2\313\11\0"+ - "\1\313\1\0\1\313\2\0\2\313\16\0\2\313\3\0"+ - "\2\313\3\0\1\313\4\0\1\313\21\0\2\77\1\0"+ - "\2\77\6\0\4\77\1\0\2\77\3\0\1\77\2\0"+ - "\3\77\1\314\2\0\22\77\21\0\2\11\1\0\2\11"+ + "\2\11\3\0\1\11\2\0\2\11\1\255\1\11\2\0"+ + "\22\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\2\0\4\11\1\256"+ + "\1\11\1\257\13\11\101\0\1\260\20\0\2\202\1\0"+ + "\2\202\6\0\4\202\1\0\2\202\3\0\1\202\2\0"+ + "\4\202\2\0\22\202\20\0\6\261\2\0\71\261\1\0"+ + "\2\262\11\0\1\262\1\0\1\262\2\0\2\262\16\0"+ + "\2\262\3\0\2\262\3\0\1\262\4\0\1\262\47\0"+ + "\1\263\51\0\6\210\1\264\1\0\71\210\1\0\2\77"+ + "\1\0\2\77\6\0\4\77\1\0\2\77\3\0\1\77"+ + "\2\0\2\77\1\265\1\77\2\0\22\77\40\0\1\215"+ + "\61\0\1\216\12\0\1\216\4\0\1\111\24\0\1\111"+ + "\32\0\6\220\1\266\1\0\71\220\11\0\1\267\70\0"+ + "\2\270\1\0\2\270\6\0\4\270\1\0\2\270\3\0"+ + "\1\270\2\0\4\270\2\0\22\270\21\0\1\127\12\0"+ + "\1\127\65\0\2\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\3\11\1\271\2\0\22\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\11\11\1\272\10\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\2\11\1\273\17\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\2\11\1\274\17\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\2\11\1\275\17\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\2\11\1\276\17\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\11\2\0\4\11\2\0\12\11\1\277\7\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\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"+ + "\3\0\1\11\2\0\4\11\2\0\4\11\1\301\15\11"+ + "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ + "\3\0\1\302\2\0\4\11\2\0\22\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\3\11\1\303\2\0\22\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\3\11\1\304\2\0\22\11\21\0\2\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\1\305"+ + "\3\11\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\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\3\0\1\11\2\0\4\11\2\0"+ + "\3\11\1\307\16\11\21\0\2\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\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\3\0\1\11\2\0\4\11\2\0"+ + "\5\11\1\311\14\11\21\0\2\11\1\0\2\11\6\0"+ + "\4\11\1\0\2\11\3\0\1\11\2\0\3\11\1\312"+ + "\2\0\22\11\20\0\6\261\1\313\1\0\71\261\1\0"+ + "\2\314\11\0\1\314\1\0\1\314\2\0\2\314\16\0"+ + "\2\314\3\0\2\314\3\0\1\314\4\0\1\314\21\0"+ + "\2\77\1\0\2\77\6\0\4\77\1\0\2\77\3\0"+ + "\1\77\2\0\3\77\1\315\2\0\22\77\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\2\0\16\11\1\316\3\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\2\0\3\11\1\317\16\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\2\0\6\11\1\320\13\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\2\0\6\11\1\321\13\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\2\0\3\11\1\322\16\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\2\0\6\11\1\323\13\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\4\11\2\0\2\11\1\324\17\11\21\0\2\11"+ + "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ + "\2\0\3\11\1\325\2\0\22\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\2\11\1\326\1\11\2\0\22\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\10\11\1\327\11\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\12\11\1\330\7\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\2\11\1\331\17\11\21\0\2\332\11\0"+ + "\1\332\1\0\1\332\2\0\2\332\16\0\2\332\3\0"+ + "\2\332\3\0\1\332\4\0\1\332\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\4\11\1\333\15\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\7\11\1\334\12\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\13\11\1\335\6\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\5\11\1\336\14\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\4\11\2\0\5\11\1\337\14\11\21\0\2\11\1\0"+ + "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ + "\1\340\3\11\2\0\22\11\21\0\2\205\11\0\1\205"+ + "\1\0\1\205\2\0\2\205\16\0\2\205\3\0\2\205"+ + "\3\0\1\205\4\0\1\205\21\0\2\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\2\11"+ + "\1\341\1\11\2\0\22\11\21\0\2\11\1\0\2\11"+ "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\2\0\16\11\1\315\3\11\21\0\2\11\1\0\2\11"+ + "\2\0\3\11\1\342\16\11\21\0\2\11\1\0\2\11"+ "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\2\0\3\11\1\316\16\11\21\0\2\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\2\0\6\11\1\317\13\11\21\0\2\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\2\0\6\11\1\320\13\11\21\0\2\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\2\0\3\11\1\321\16\11\21\0\2\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\2\0\6\11\1\322\13\11\21\0\2\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\2\0\2\11\1\323\17\11\21\0\2\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\3\11"+ - "\1\324\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\2\11\1\325"+ - "\1\11\2\0\22\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\10\11\1\326\11\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\12\11\1\327\7\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\2\11\1\330\17\11\21\0\2\331\11\0\1\331\1\0"+ - "\1\331\2\0\2\331\16\0\2\331\3\0\2\331\3\0"+ - "\1\331\4\0\1\331\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\4\11\1\332\15\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\7\11\1\333\12\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\13\11\1\334\6\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\5\11\1\335\14\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\2\0"+ - "\5\11\1\336\14\11\21\0\2\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\1\337\3\11"+ - "\2\0\22\11\21\0\2\205\11\0\1\205\1\0\1\205"+ - "\2\0\2\205\16\0\2\205\3\0\2\205\3\0\1\205"+ - "\4\0\1\205\21\0\2\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\2\11\1\340\1\11"+ + "\2\0\2\11\1\343\17\11\21\0\2\11\1\0\2\11"+ + "\6\0\4\11\1\0\2\11\3\0\1\344\2\0\4\11"+ "\2\0\22\11\21\0\2\11\1\0\2\11\6\0\4\11"+ "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\3\11"+ - "\1\341\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+ + "\1\345\16\11\21\0\2\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\10\11"+ + "\1\346\11\11\21\0\2\11\1\0\2\11\6\0\4\11"+ "\1\0\2\11\3\0\1\11\2\0\4\11\2\0\2\11"+ - "\1\342\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\343\2\0\4\11\2\0\22\11"+ - "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\2\0\3\11\1\344\16\11"+ - "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\2\0\10\11\1\345\11\11"+ - "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\2\0\2\11\1\346\17\11"+ - "\21\0\2\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\3\11\1\347\2\0\22\11\21\0"+ - "\2\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\4\11\2\0\2\11\1\350\17\11\20\0"; + "\1\347\17\11\21\0\2\11\1\0\2\11\6\0\4\11"+ + "\1\0\2\11\3\0\1\11\2\0\3\11\1\350\2\0"+ + "\22\11\21\0\2\11\1\0\2\11\6\0\4\11\1\0"+ + "\2\11\3\0\1\11\2\0\4\11\2\0\2\11\1\351"+ + "\17\11\20\0"; private static int [] zzUnpackTrans() { - int [] result = new int[10075]; + int [] result = new int[10140]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -509,14 +533,14 @@ class _JetLexer implements FlexLexer { "\7\1\4\11\1\1\2\11\1\1\1\11\2\1\2\11"+ "\4\1\1\11\2\1\2\11\1\1\1\0\1\11\1\1"+ "\1\0\1\1\1\0\2\1\1\11\1\1\1\0\1\1"+ - "\1\0\3\1\5\11\1\1\1\0\7\1\1\11\21\1"+ + "\1\0\4\1\4\11\1\1\1\0\7\1\1\11\21\1"+ "\12\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\11\11\1\1\11\16\1\1\11\2\0\1\1\1\11"+ + "\2\11\11\1\1\11\16\1\1\11\2\0\1\1\1\11"+ "\1\1\3\11\22\1\1\11\1\0\15\1\1\0\17\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[232]; + int [] result = new int[233]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -640,7 +664,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 < 1326) { + while (i < 1708) { int count = packed.charAt(i++); char value = packed.charAt(i++); do map[j++] = value; while (--count > 0); @@ -863,191 +887,170 @@ class _JetLexer implements FlexLexer { zzMarkedPos = zzMarkedPosL; switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 102: - { return KtTokens.TYPE_ALIAS_KEYWORD ; - } - case 104: break; - case 3: - { return KtTokens.IDENTIFIER; - } - case 105: break; - case 11: - { pushState(STRING); return KtTokens.OPEN_QUOTE; - } - case 106: break; - case 78: - { return KtTokens.FOR_KEYWORD ; - } - case 107: break; - case 98: - { return KtTokens.RETURN_KEYWORD ; - } - case 108: break; - case 103: - { return KtTokens.INTERFACE_KEYWORD ; - } - case 109: break; - case 88: - { return KtTokens.NULL_KEYWORD ; - } - case 110: break; - case 35: - { if (lBraceCount == 0) { - popState(); - return KtTokens.LONG_TEMPLATE_ENTRY_END; - } - lBraceCount--; - return KtTokens.RBRACE; - } - case 111: break; - case 18: - { return KtTokens.LT ; - } - case 112: break; - case 52: - { return KtTokens.DO_KEYWORD ; - } - case 113: break; - case 17: - { return KtTokens.PLUS ; - } - case 114: break; - case 55: - { return KtTokens.PLUSEQ ; - } - case 115: break; - case 91: - { popState(); return KtTokens.THIS_KEYWORD; - } - case 116: break; - case 27: - { return KtTokens.COMMA ; - } - case 117: break; - case 19: - { return KtTokens.GT ; - } - case 118: break; - case 4: - { return KtTokens.WHITE_SPACE; - } - case 119: break; - case 25: - { return KtTokens.RPAR ; - } - case 120: break; - case 54: - { return KtTokens.DOUBLE_ARROW; - } - case 121: break; - case 86: - { return KtTokens.TRUE_KEYWORD ; - } - case 122: break; - case 37: - { return KtTokens.FIELD_IDENTIFIER; - } - case 123: break; - case 59: - { return KtTokens.ANDAND ; - } - case 124: break; - case 65: - { pushState(LONG_TEMPLATE_ENTRY); return KtTokens.LONG_TEMPLATE_ENTRY_START; - } - case 125: break; - case 36: - { return KtTokens.FLOAT_LITERAL; - } - case 126: break; - case 38: - { return KtTokens.EOL_COMMENT; - } - case 127: break; - case 89: - { return KtTokens.WHEN_KEYWORD ; - } - case 128: break; - case 74: - { pushState(RAW_STRING); return KtTokens.OPEN_QUOTE; - } - case 129: break; - case 21: - { return KtTokens.COLON ; - } - case 130: break; - case 57: - { return KtTokens.LTEQ ; - } - case 131: break; - case 46: - { return KtTokens.ARROW ; - } - case 132: break; - case 32: - { popState(); return KtTokens.IDENTIFIER; - } - case 133: break; case 22: { return KtTokens.LBRACKET ; } - case 134: break; - case 69: - { yypushback(2); return KtTokens.INTEGER_LITERAL; + case 105: break; + case 78: + { return KtTokens.FUN_KEYWORD ; } - case 135: break; - case 10: - { return KtTokens.CHARACTER_LITERAL; + case 106: break; + case 48: + { return KtTokens.IN_KEYWORD ; } - case 136: break; - case 80: - { return KtTokens.VAR_KEYWORD ; - } - case 137: break; + case 107: break; case 58: { return KtTokens.GTEQ ; } - case 138: break; - case 2: - { return KtTokens.INTEGER_LITERAL; + case 108: break; + case 87: + { return KtTokens.TRUE_KEYWORD ; } - case 139: break; + case 109: break; case 13: { return KtTokens.RBRACE ; } - case 140: break; - case 95: - { return KtTokens.CLASS_KEYWORD ; + case 110: break; + case 10: + { return KtTokens.CHARACTER_LITERAL; } - case 141: break; - case 75: - { return KtTokens.TRY_KEYWORD ; - } - case 142: break; + case 111: break; case 7: { return KtTokens.EXCL ; } - case 143: break; + case 112: break; + case 80: + { return KtTokens.VAL_KEYWORD ; + } + case 113: break; case 42: { return KtTokens.EXCLEQ ; } - case 144: break; + case 114: break; case 45: { return KtTokens.MINUSEQ ; } - case 145: break; + case 115: break; + case 36: + { return KtTokens.FLOAT_LITERAL; + } + case 116: break; + case 51: + { return KtTokens.AS_KEYWORD ; + } + case 117: break; + case 90: + { return KtTokens.WHEN_KEYWORD ; + } + case 118: break; + case 16: + { return KtTokens.QUEST ; + } + case 119: break; + case 95: + { return KtTokens.FALSE_KEYWORD ; + } + case 120: break; + case 34: + { lBraceCount++; return KtTokens.LBRACE; + } + case 121: break; + case 44: + { return KtTokens.MINUSMINUS; + } + case 122: break; + case 66: + { return KtTokens.ESCAPE_SEQUENCE; + } + case 123: break; + case 5: + { return KtTokens.DIV ; + } + case 124: break; + case 79: + { return KtTokens.FOR_KEYWORD ; + } + case 125: break; + case 30: + { popState(); yypushback(1); return KtTokens.DANGLING_NEWLINE; + } + case 126: break; + case 52: + { return KtTokens.DO_KEYWORD ; + } + case 127: break; + case 102: + { return KtTokens.CONTINUE_KEYWORD ; + } + case 128: break; + case 104: + { return KtTokens.INTERFACE_KEYWORD ; + } + case 129: break; + case 75: + { pushState(RAW_STRING); return KtTokens.OPEN_QUOTE; + } + case 130: break; + case 4: + { return KtTokens.WHITE_SPACE; + } + case 131: break; + case 97: + { return KtTokens.BREAK_KEYWORD ; + } + case 132: break; + case 85: + { yypushback(3); return KtTokens.EXCL; + } + case 133: break; + case 60: + { return KtTokens.OROR ; + } + case 134: break; + case 20: + { return KtTokens.PERC ; + } + case 135: break; + case 73: + { return KtTokens.EXCLEQEQEQ; + } + case 136: break; + case 61: + { return KtTokens.PERCEQ ; + } + case 137: break; + case 43: + { return KtTokens.RANGE ; + } + case 138: break; + case 54: + { return KtTokens.DOUBLE_ARROW; + } + case 139: break; + case 38: + { return KtTokens.EOL_COMMENT; + } + case 140: break; + case 31: + { popState(); return KtTokens.CLOSING_QUOTE; + } + case 141: break; + case 14: + { return KtTokens.MUL ; + } + case 142: break; + case 23: + { return KtTokens.RBRACKET ; + } + case 143: break; + case 56: + { return KtTokens.PLUSPLUS ; + } + case 144: break; case 100: - { return KtTokens.PACKAGE_KEYWORD ; + { return KtTokens.OBJECT_KEYWORD ; } - case 146: break; - case 92: - { return KtTokens.THROW_KEYWORD ; - } - case 147: break; - case 93: - { return KtTokens.SUPER_KEYWORD ; - } - case 148: break; + case 145: break; case 68: { if (commentDepth > 0) { commentDepth--; @@ -1059,32 +1062,94 @@ class _JetLexer implements FlexLexer { return commentStateToTokenType(state); } } + case 146: break; + case 8: + { return KtTokens.DOT ; + } + case 147: break; + case 26: + { return KtTokens.SEMICOLON ; + } + case 148: break; + case 69: + { yypushback(2); return KtTokens.INTEGER_LITERAL; + } case 149: break; - case 97: - { return KtTokens.WHILE_KEYWORD ; + case 32: + { popState(); return KtTokens.IDENTIFIER; } case 150: break; - case 44: - { return KtTokens.MINUSMINUS; + case 81: + { return KtTokens.VAR_KEYWORD ; } case 151: break; - case 101: - { return KtTokens.CONTINUE_KEYWORD ; + case 103: + { return KtTokens.TYPE_ALIAS_KEYWORD ; } case 152: break; - case 72: - { return KtTokens.NOT_IN; + case 99: + { return KtTokens.RETURN_KEYWORD ; } case 153: break; - case 63: - { return KtTokens.DOUBLE_SEMICOLON; + case 37: + { return KtTokens.FIELD_IDENTIFIER; } case 154: break; - case 5: - { return KtTokens.DIV ; + case 15: + { return KtTokens.EQ ; } case 155: break; + case 28: + { return KtTokens.AT ; + } + case 156: break; + case 76: + { return KtTokens.TRY_KEYWORD ; + } + case 157: break; + case 24: + { return KtTokens.LPAR ; + } + case 158: break; + case 9: + { return KtTokens.MINUS ; + } + case 159: break; + case 70: + { pushState(DOC_COMMENT); + commentDepth = 0; + commentStart = getTokenStart(); + } + case 160: break; + case 86: + { return KtTokens.THIS_KEYWORD ; + } + case 161: break; + case 1: + { return TokenType.BAD_CHARACTER; + } + case 162: break; + case 98: + { return KtTokens.WHILE_KEYWORD ; + } + case 163: break; + case 40: + { return KtTokens.DIVEQ ; + } + case 164: break; + case 96: + { return KtTokens.CLASS_KEYWORD ; + } + case 165: break; + case 53: + { return KtTokens.EQEQ ; + } + case 166: break; case 82: + { return KtTokens.EQEQEQ ; + } + case 167: break; + case 83: { int length = yytext().length(); if (length <= 3) { // closing """ popState(); @@ -1095,181 +1160,138 @@ class _JetLexer implements FlexLexer { return KtTokens.REGULAR_STRING_PART; } } - case 156: break; - case 29: - { return KtTokens.REGULAR_STRING_PART; - } - case 157: break; - case 16: - { return KtTokens.QUEST ; - } - case 158: break; - case 70: - { pushState(DOC_COMMENT); - commentDepth = 0; - commentStart = getTokenStart(); - } - case 159: break; - case 60: - { return KtTokens.OROR ; - } - case 160: break; - case 20: - { return KtTokens.PERC ; - } - case 161: break; - case 73: - { return KtTokens.EXCLEQEQEQ; - } - case 162: break; - case 61: - { return KtTokens.PERCEQ ; - } - case 163: break; - case 43: - { return KtTokens.RANGE ; - } - case 164: break; - case 1: - { return TokenType.BAD_CHARACTER; - } - case 165: break; - case 64: - { pushState(SHORT_TEMPLATE_ENTRY); - yypushback(yylength() - 1); - return KtTokens.SHORT_TEMPLATE_ENTRY_START; - } - case 166: break; - case 71: - { return KtTokens.NOT_IS; - } - case 167: break; - case 14: - { return KtTokens.MUL ; - } case 168: break; - case 23: - { return KtTokens.RBRACKET ; + case 50: + { return KtTokens.MULTEQ ; } case 169: break; - case 56: - { return KtTokens.PLUSPLUS ; + case 65: + { pushState(LONG_TEMPLATE_ENTRY); return KtTokens.LONG_TEMPLATE_ENTRY_START; } case 170: break; + case 12: + { return KtTokens.LBRACE ; + } + case 171: break; case 39: { pushState(BLOCK_COMMENT); commentDepth = 0; commentStart = getTokenStart(); } - case 171: break; - case 85: - { return KtTokens.THIS_KEYWORD ; - } case 172: break; - case 8: - { return KtTokens.DOT ; + case 93: + { return KtTokens.THROW_KEYWORD ; } case 173: break; - case 26: - { return KtTokens.SEMICOLON ; + case 94: + { return KtTokens.SUPER_KEYWORD ; } case 174: break; + case 62: + { return KtTokens.COLONCOLON; + } + case 175: break; + case 72: + { return KtTokens.NOT_IN; + } + case 176: break; + case 63: + { return KtTokens.DOUBLE_SEMICOLON; + } + case 177: break; + case 6: + { return KtTokens.HASH ; + } + case 178: break; + case 3: + { return KtTokens.IDENTIFIER; + } + case 179: break; + case 2: + { return KtTokens.INTEGER_LITERAL; + } + case 180: break; + case 88: + { return KtTokens.ELSE_KEYWORD ; + } + case 181: break; + case 11: + { pushState(STRING); return KtTokens.OPEN_QUOTE; + } + case 182: break; + case 101: + { return KtTokens.PACKAGE_KEYWORD ; + } + case 183: break; case 49: { return KtTokens.IF_KEYWORD ; } - case 175: break; - case 66: - { return KtTokens.ESCAPE_SEQUENCE; + case 184: break; + case 18: + { return KtTokens.LT ; } - case 176: break; - case 31: - { popState(); return KtTokens.CLOSING_QUOTE; + case 185: break; + case 91: + { return KtTokens.CAPITALIZED_THIS_KEYWORD ; } - case 177: break; - case 15: - { return KtTokens.EQ ; + case 186: break; + case 17: + { return KtTokens.PLUS ; } - case 178: break; - case 28: - { return KtTokens.AT ; + case 187: break; + case 55: + { return KtTokens.PLUSEQ ; } - case 179: break; - case 76: - { return KtTokens.AS_SAFE; + case 188: break; + case 74: + { return KtTokens.RESERVED ; } - case 180: break; - case 24: - { return KtTokens.LPAR ; - } - case 181: break; - case 9: - { return KtTokens.MINUS ; - } - case 182: break; - case 94: - { return KtTokens.FALSE_KEYWORD ; - } - case 183: break; + case 189: break; case 67: { commentDepth++; } - case 184: break; - case 77: - { return KtTokens.FUN_KEYWORD ; - } - case 185: break; - case 47: - { return KtTokens.IS_KEYWORD ; - } - case 186: break; - case 30: - { popState(); yypushback(1); return KtTokens.DANGLING_NEWLINE; - } - case 187: break; - case 34: - { lBraceCount++; return KtTokens.LBRACE; - } - case 188: break; - case 84: - { yypushback(3); return KtTokens.EXCL; - } - case 189: break; - case 40: - { return KtTokens.DIVEQ ; - } case 190: break; - case 87: - { return KtTokens.ELSE_KEYWORD ; + case 27: + { return KtTokens.COMMA ; } case 191: break; - case 51: - { return KtTokens.AS_KEYWORD ; + case 19: + { return KtTokens.GT ; } case 192: break; - case 48: - { return KtTokens.IN_KEYWORD ; + case 77: + { return KtTokens.AS_SAFE; } case 193: break; - case 53: - { return KtTokens.EQEQ ; + case 25: + { return KtTokens.RPAR ; } case 194: break; - case 81: - { return KtTokens.EQEQEQ ; + case 71: + { return KtTokens.NOT_IS; } case 195: break; - case 79: - { return KtTokens.VAL_KEYWORD ; + case 89: + { return KtTokens.NULL_KEYWORD ; } case 196: break; - case 90: - { return KtTokens.CAPITALIZED_THIS_KEYWORD ; + case 59: + { return KtTokens.ANDAND ; } case 197: break; - case 50: - { return KtTokens.MULTEQ ; + case 35: + { if (lBraceCount == 0) { + popState(); + return KtTokens.LONG_TEMPLATE_ENTRY_END; + } + lBraceCount--; + return KtTokens.RBRACE; } case 198: break; + case 84: + { return KtTokens.BLOCK_COMMENT; + } + case 199: break; case 41: { if (zzCurrentPos == 0) { return KtTokens.SHEBANG_COMMENT; @@ -1279,35 +1301,41 @@ class _JetLexer implements FlexLexer { return KtTokens.HASH; } } - case 199: break; - case 12: - { return KtTokens.LBRACE ; - } case 200: break; - case 99: - { return KtTokens.OBJECT_KEYWORD ; + case 29: + { return KtTokens.REGULAR_STRING_PART; } case 201: break; - case 96: - { return KtTokens.BREAK_KEYWORD ; + case 47: + { return KtTokens.IS_KEYWORD ; } case 202: break; - case 83: - { return KtTokens.BLOCK_COMMENT; + case 92: + { popState(); return KtTokens.THIS_KEYWORD; } case 203: break; - case 62: - { return KtTokens.COLONCOLON; + case 21: + { return KtTokens.COLON ; } case 204: break; + case 57: + { return KtTokens.LTEQ ; + } + case 205: break; case 33: { } - case 205: break; - case 6: - { return KtTokens.HASH ; - } case 206: break; + case 64: + { pushState(SHORT_TEMPLATE_ENTRY); + yypushback(yylength() - 1); + return KtTokens.SHORT_TEMPLATE_ENTRY_START; + } + case 207: break; + case 46: + { return KtTokens.ARROW ; + } + case 208: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; @@ -1319,14 +1347,14 @@ class _JetLexer implements FlexLexer { zzStartRead = commentStart; return commentStateToTokenType(state); } - case 233: break; + case 234: break; case DOC_COMMENT: { int state = yystate(); popState(); zzStartRead = commentStart; return commentStateToTokenType(state); } - case 234: break; + case 235: break; default: return null; } diff --git a/compiler/testData/psi/Imports_ERR.kt b/compiler/testData/psi/Imports_ERR.kt index a4d6fe37a97..1acab3c6781 100644 --- a/compiler/testData/psi/Imports_ERR.kt +++ b/compiler/testData/psi/Imports_ERR.kt @@ -33,8 +33,8 @@ import - import ^_^ import . import ---; import +++ -import ..{... -import ..}... +import ..{.. . +import ..}.. . import foo fun foo() { diff --git a/compiler/testData/psi/Imports_ERR.txt b/compiler/testData/psi/Imports_ERR.txt index 79c90aa1274..e1c9eb53bf9 100644 --- a/compiler/testData/psi/Imports_ERR.txt +++ b/compiler/testData/psi/Imports_ERR.txt @@ -366,6 +366,7 @@ JetFile: Imports_ERR.kt PsiElement(RANGE)('..') PsiElement(LBRACE)('{') PsiElement(RANGE)('..') + PsiWhiteSpace(' ') PsiElement(DOT)('.') PsiWhiteSpace('\n') IMPORT_DIRECTIVE @@ -375,6 +376,7 @@ JetFile: Imports_ERR.kt PsiElement(RANGE)('..') PsiElement(RBRACE)('}') PsiElement(RANGE)('..') + PsiWhiteSpace(' ') PsiElement(DOT)('.') PsiWhiteSpace('\n') IMPORT_DIRECTIVE diff --git a/compiler/testData/psi/TripleDot.kt b/compiler/testData/psi/TripleDot.kt new file mode 100644 index 00000000000..1a7964a77c2 --- /dev/null +++ b/compiler/testData/psi/TripleDot.kt @@ -0,0 +1,11 @@ +... + +fun foo() { + for (i in 1...2) { + + } + + for (i in 1.. .2) { + + } +} \ No newline at end of file diff --git a/compiler/testData/psi/TripleDot.txt b/compiler/testData/psi/TripleDot.txt new file mode 100644 index 00000000000..24480f955f5 --- /dev/null +++ b/compiler/testData/psi/TripleDot.txt @@ -0,0 +1,75 @@ +JetFile: TripleDot.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PsiErrorElement:Expecting a top level declaration + PsiElement(RESERVED)('...') + PsiWhiteSpace('\n\n') + FUN + PsiElement(fun)('fun') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('foo') + 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 + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1') + PsiErrorElement:Expecting ')' + + BODY + + PsiErrorElement:Unexpected tokens (use ';' to separate expressions on the same line) + PsiElement(RESERVED)('...') + PsiElement(INTEGER_LITERAL)('2') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + FUNCTION_LITERAL_EXPRESSION + FUNCTION_LITERAL + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n\n ') + BLOCK + + PsiElement(RBRACE)('}') + PsiWhiteSpace('\n\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)('1') + OPERATION_REFERENCE + PsiElement(RANGE)('..') + PsiWhiteSpace(' ') + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('.2') + 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/testData/psi/kdoc/MarkdownLinkWithError.txt b/compiler/testData/psi/kdoc/MarkdownLinkWithError.txt index b3c08b051fa..a0ef8790bb7 100644 --- a/compiler/testData/psi/kdoc/MarkdownLinkWithError.txt +++ b/compiler/testData/psi/kdoc/MarkdownLinkWithError.txt @@ -21,8 +21,7 @@ JetFile: MarkdownLinkWithError.kt PsiElement(IDENTIFIER)('C') PsiErrorElement:Closing bracket expected - PsiElement(RANGE)('..') - PsiElement(DOT)('.') + PsiElement(RESERVED)('...') PsiElement(RBRACKET)(']') PsiWhiteSpace('\n ') PsiElement(KDOC_LEADING_ASTERISK)('*') diff --git a/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java index a81b70fb756..2b4ebf5ff8b 100644 --- a/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java @@ -715,6 +715,12 @@ public class ParsingTestGenerated extends AbstractParsingTest { doParsingTest(fileName); } + @TestMetadata("TripleDot.kt") + public void testTripleDot() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/TripleDot.kt"); + doParsingTest(fileName); + } + @TestMetadata("TryRecovery.kt") public void testTryRecovery() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/psi/TryRecovery.kt");