From bf5f710f390c112887a1815cbef42f0aa803a741 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Thu, 24 May 2018 14:28:29 +0300 Subject: [PATCH] Parse integers with unsigned ('u') suffix --- .../kotlin/kdoc/lexer/_KDocLexer.java | 212 ++-- .../org/jetbrains/kotlin/lexer/Kotlin.flex | 7 +- .../org/jetbrains/kotlin/lexer/_JetLexer.java | 970 ++++++++++-------- compiler/testData/psi/UnsignedLiteral.kt | 13 + compiler/testData/psi/UnsignedLiteral.txt | 109 ++ .../kotlin/parsing/ParsingTestGenerated.java | 5 + 6 files changed, 776 insertions(+), 540 deletions(-) create mode 100644 compiler/testData/psi/UnsignedLiteral.kt create mode 100644 compiler/testData/psi/UnsignedLiteral.txt 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 84fab0a9e69..da317afc068 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java +++ b/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/_KDocLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */ +/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ package org.jetbrains.kotlin.kdoc.lexer; @@ -12,8 +12,8 @@ import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag; /** * This class is a scanner generated by - * JFlex 1.7.0-SNAPSHOT - * from the specification file /home/user/Workspace/Kotlin/kotlin/compiler/frontend/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex + * JFlex 1.7.0 + * from the specification file /Users/jetbrains/projects/dup_kotlin/kotlin/compiler/psi/src/org/jetbrains/kotlin/kdoc/lexer/KDoc.flex */ class _KDocLexer implements FlexLexer { @@ -48,80 +48,96 @@ class _KDocLexer implements FlexLexer { /** * Translates characters to character classes - * Chosen bits are [11, 6, 4] - * Total runtime size is 9472 bytes + * Chosen bits are [12, 6, 3] + * Total runtime size is 12752 bytes */ public static int ZZ_CMAP(int ch) { - return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; + return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)]; } - /* The ZZ_CMAP_Z table has 1088 entries */ + /* The ZZ_CMAP_Z table has 2176 entries */ static final char ZZ_CMAP_Z[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\3\11\1\12\6\13\1\14\23\13\1\15\1\13"+ - "\1\16\1\11\12\13\1\17\10\11\1\20\1\21\1\22\1\23\1\24\62\11\1\25\12\11\51\13"+ - "\1\26\24\11\1\27\u0381\11"); + "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1"+ + "\20\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+ + "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\21\1\44\1\45\1\46\1"+ + "\21\1\47\2\21\1\50\4\21\1\25\1\51\1\52\5\21\2\25\1\53\31\21\1\25\1\54\1\21"+ + "\1\55\40\21\1\56\21\21\1\57\1\60\13\21\1\61\10\21\123\25\1\62\7\25\1\63\1"+ + "\64\37\21\1\25\1\64\u0702\21"); - /* The ZZ_CMAP_Y table has 1536 entries */ + /* The ZZ_CMAP_Y table has 3392 entries */ static final char ZZ_CMAP_Y[] = zzUnpackCMap( - "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\23"+ - "\13\1\15\1\1\7\13\1\16\1\17\1\20\10\1\1\21\1\22\1\13\1\23\1\13\1\24\2\13\1"+ - "\25\10\13\1\26\3\13\1\24\2\13\1\27\1\13\2\1\1\30\1\13\1\31\1\30\1\13\1\32"+ - "\4\1\1\13\1\33\1\34\2\1\1\30\2\33\1\1\1\35\1\30\5\13\1\36\1\37\1\40\1\1\1"+ - "\41\1\13\1\1\1\42\3\1\2\13\1\43\1\44\24\1\1\45\2\13\1\46\1\1\1\47\1\17\1\1"+ - "\1\50\1\51\1\52\1\53\1\1\1\54\1\17\1\55\1\56\1\51\1\52\1\57\1\1\1\60\1\1\1"+ - "\61\1\62\1\23\1\52\1\63\1\1\1\64\1\17\1\44\1\50\1\51\1\52\1\63\1\1\1\54\1"+ - "\17\1\44\1\65\1\66\1\67\1\70\3\1\1\71\1\72\1\41\1\52\1\73\2\1\1\17\1\1\1\72"+ - "\1\41\1\52\1\74\1\1\1\75\1\17\1\1\1\72\1\41\1\52\1\76\2\1\1\17\1\1\1\77\1"+ - "\100\1\13\1\101\1\15\3\1\1\30\2\13\1\102\1\15\3\1\1\103\1\104\1\105\1\106"+ - "\1\107\1\110\2\1\1\64\3\1\1\111\1\13\1\33\1\1\1\112\7\1\2\13\1\113\2\1\1\43"+ - "\4\1\2\13\1\43\2\13\1\114\5\13\1\115\4\13\1\116\4\13\1\76\1\14\3\13\2\117"+ - "\2\13\1\117\1\13\1\24\2\120\1\14\1\24\1\13\1\24\1\120\2\13\1\14\1\33\4\1\5"+ - "\13\1\121\1\30\45\13\1\122\1\15\1\30\1\33\4\13\1\123\1\64\1\124\1\17\1\13"+ - "\1\17\1\13\1\17\1\124\1\64\3\13\1\55\1\1\1\125\4\1\5\13\1\32\2\13\1\114\5"+ - "\1\1\13\1\126\3\1\1\13\1\127\1\121\70\1\6\13\1\130\11\1\11\13\1\130\5\13\1"+ - "\76\1\13\1\131\2\13\1\131\1\132\1\13\1\127\3\13\1\133\1\134\1\135\1\126\1"+ - "\134\2\1\1\136\1\137\1\64\1\140\1\1\1\141\2\1\1\13\1\17\4\1\1\142\1\143\1"+ - "\144\1\145\1\146\1\1\2\13\1\55\147\1\1\147\1\1\1\150\1\151\1\30\4\13\1\152"+ - "\1\30\5\13\1\77\1\13\1\126\1\30\4\13\1\24\1\1\1\13\1\32\3\1\1\13\40\1\133"+ - "\13\1\43\4\1\132\13\1\43\5\1\10\13\1\126\67\1\72\13\1\55\25\1\22\13\1\127"+ - "\3\13\1\33\11\1\1\15\1\153\1\52\1\154\1\155\6\13\1\17\1\1\1\156\25\13\1\127"+ - "\1\1\4\13\1\157\2\13\1\32\2\1\1\126\3\1\1\160\1\42\1\1\1\71\1\161\7\13\1\126"+ - "\1\140\1\1\1\30\1\162\1\30\1\33\1\77\4\13\1\24\1\163\1\164\1\165\1\1\1\166"+ - "\1\13\1\14\1\167\2\127\2\1\7\13\1\33\40\1\1\13\1\24\1\1\1\13\1\33\3\1\1\13"+ - "\1\127\6\1\11\13\1\127\66\1\1\170\2\13\1\171\74\1\5\13\1\161\3\13\1\124\1"+ - "\172\1\173\1\174\3\13\1\175\1\176\1\13\1\177\1\200\1\41\24\13\1\201\1\13\1"+ - "\41\1\202\1\13\1\202\1\13\1\161\1\13\1\161\1\24\1\13\1\24\1\13\1\52\1\13\1"+ - "\52\1\13\1\203\3\1\55\13\1\15\22\1\41\13\1\127\36\1"); + "\1\0\1\1\2\0\1\2\1\3\1\4\1\5\1\6\2\7\1\10\1\11\2\7\1\12\1\13\3\0\1\14\1\15"+ + "\1\16\1\15\2\7\1\17\3\7\1\17\71\7\1\20\1\7\1\21\1\0\1\22\1\23\20\0\1\24\1"+ + "\14\1\25\1\26\2\7\1\27\11\7\1\30\21\7\1\21\1\31\23\7\1\0\1\32\3\7\1\17\1\33"+ + "\1\32\4\7\1\34\10\0\3\7\2\35\2\0\1\36\2\0\5\7\1\35\3\0\1\37\1\32\13\7\1\40"+ + "\1\0\1\41\1\37\1\0\1\42\2\0\1\43\3\7\3\0\1\44\12\7\1\45\1\0\1\33\2\0\1\31"+ + "\3\7\1\35\1\46\1\15\2\7\1\45\1\15\1\47\1\50\2\0\3\7\1\50\10\0\1\43\1\22\12"+ + "\0\1\51\6\7\1\52\2\0\1\50\1\7\1\21\1\0\2\32\1\44\1\53\1\54\2\7\1\43\1\55\1"+ + "\52\1\0\1\25\1\0\1\56\1\21\1\0\1\57\1\36\1\44\1\60\1\54\2\7\1\43\1\61\1\21"+ + "\3\0\1\62\2\0\1\63\1\0\1\44\1\30\1\27\2\7\1\43\1\64\1\52\2\0\1\50\1\0\1\21"+ + "\1\0\1\33\1\0\1\44\1\53\1\54\2\7\1\43\1\64\1\52\3\0\1\56\1\21\1\0\1\33\1\0"+ + "\1\65\1\66\1\67\1\70\1\71\1\66\1\7\1\21\2\0\1\50\4\0\1\33\1\44\1\24\1\43\2"+ + "\7\1\43\1\72\1\52\3\0\2\21\3\0\1\44\1\24\1\43\2\7\1\43\1\72\1\52\3\0\1\25"+ + "\1\21\1\0\1\73\1\0\1\44\1\24\1\43\4\7\1\74\1\0\1\25\2\0\1\21\2\0\1\31\1\44"+ + "\1\7\1\17\1\31\2\7\1\27\1\40\1\17\7\0\1\32\5\7\1\75\1\34\1\17\7\0\1\76\1\77"+ + "\1\51\1\32\1\100\1\101\1\75\1\16\1\102\2\0\1\51\4\0\1\50\7\0\1\7\1\32\3\7"+ + "\1\22\3\0\1\22\16\0\5\7\1\35\1\0\1\34\2\0\1\45\1\14\1\103\1\37\1\104\1\7\1"+ + "\21\1\25\2\0\4\7\1\30\1\16\5\7\1\105\51\7\1\67\1\17\1\67\5\7\1\67\4\7\1\67"+ + "\1\17\1\67\1\7\1\17\7\7\1\67\10\7\1\35\4\0\2\7\2\0\12\7\1\22\1\0\1\32\114"+ + "\7\1\53\2\7\1\32\2\7\1\35\11\7\1\66\1\50\1\0\1\7\1\24\1\21\1\0\2\7\1\21\1"+ + "\0\2\7\1\21\1\0\1\7\1\24\1\50\1\0\6\7\1\57\3\0\1\34\1\71\10\0\13\7\1\0\5\7"+ + "\1\106\10\7\1\45\1\0\3\7\1\22\6\0\3\7\1\45\1\22\1\0\5\7\1\57\2\0\1\32\7\0"+ + "\2\7\1\17\1\0\6\7\1\22\11\0\1\34\13\0\1\44\5\7\1\57\1\0\1\44\1\57\6\0\1\107"+ + "\3\7\1\50\1\37\1\0\1\31\4\7\1\45\3\0\4\7\1\57\4\0\1\44\1\0\1\31\3\7\1\45\15"+ + "\0\1\110\1\111\1\0\30\7\10\0\42\7\2\45\4\7\2\45\1\7\1\112\3\7\1\45\6\7\1\24"+ + "\1\102\1\113\1\22\1\114\1\57\1\7\1\22\1\113\1\22\5\0\1\115\1\0\1\34\1\50\1"+ + "\0\1\47\3\0\1\33\1\34\2\0\1\7\1\22\3\7\1\35\10\0\1\116\1\31\1\40\1\117\1\23"+ + "\1\120\1\7\1\121\1\44\1\122\2\0\5\7\1\50\116\0\5\7\1\17\5\7\1\17\20\7\1\22"+ + "\1\123\1\124\1\0\4\7\1\30\1\16\7\7\1\34\2\0\2\7\1\17\1\0\10\17\11\0\1\34\72"+ + "\0\1\44\3\0\1\32\1\21\1\117\1\22\1\32\11\7\1\17\1\44\1\32\12\7\1\105\1\44"+ + "\4\7\1\45\1\32\12\7\1\17\2\0\3\7\1\35\6\0\170\7\1\45\11\0\71\7\1\22\6\0\21"+ + "\7\1\22\10\0\5\7\1\45\41\7\1\22\2\7\1\0\1\124\2\0\5\7\1\17\1\0\1\34\3\7\1"+ + "\0\12\7\4\0\1\34\1\7\1\31\14\7\1\125\1\57\1\0\1\7\1\35\11\0\1\7\1\126\1\105"+ + "\2\7\1\35\2\0\1\50\6\7\1\57\1\0\1\31\5\7\1\57\7\0\1\31\1\36\1\0\1\31\2\7\1"+ + "\45\1\0\2\7\1\17\3\0\3\7\1\22\1\51\5\7\1\35\2\0\1\34\6\0\5\7\1\50\2\0\1\105"+ + "\1\57\2\0\2\7\1\17\1\15\6\7\1\103\1\117\1\106\2\0\1\127\1\7\1\35\1\63\1\0"+ + "\3\130\1\0\2\17\22\0\4\7\1\35\3\0\64\7\1\57\1\0\2\7\1\17\1\107\5\7\1\57\40"+ + "\0\55\7\1\45\15\7\1\21\4\0\1\17\1\0\1\107\1\131\1\7\1\43\1\17\1\102\1\132"+ + "\15\7\1\21\3\0\1\107\54\7\1\45\2\0\10\7\1\31\6\7\5\0\1\7\1\22\6\0\1\71\2\0"+ + "\1\44\3\0\1\33\1\24\20\7\1\22\1\47\3\0\1\32\2\7\1\60\1\32\2\7\1\35\1\37\12"+ + "\7\1\17\3\31\1\63\1\111\3\0\1\7\1\72\2\7\1\17\2\7\1\133\1\7\1\45\1\7\1\45"+ + "\4\0\17\7\1\35\10\0\6\7\1\22\41\0\3\7\1\22\6\7\1\50\5\0\3\7\1\17\2\0\3\7\1"+ + "\35\6\0\3\7\1\45\4\7\1\57\1\7\1\117\5\0\23\7\1\45\54\0\1\45\1\43\4\7\1\30"+ + "\1\134\2\7\1\45\25\0\2\7\1\45\1\0\3\7\1\21\10\0\7\7\1\37\10\0\1\50\1\0\1\72"+ + "\1\32\2\7\1\57\5\0\3\7\1\22\20\0\6\7\1\45\1\0\2\7\1\45\1\0\2\7\1\35\21\0\11"+ + "\7\1\50\66\0\1\107\6\7\11\0\1\107\5\7\4\0\3\7\1\50\2\0\1\107\3\7\1\17\13\0"+ + "\1\107\5\7\1\35\1\0\1\135\27\0\5\7\1\35\52\0\55\7\1\17\22\0\14\7\1\35\63\0"+ + "\5\7\1\17\72\0\7\7\1\50\130\0\10\7\1\22\1\0\1\50\7\0\1\107\1\7\14\0\1\21\77"+ + "\0\12\7\1\24\10\7\1\24\1\136\1\110\1\7\1\137\1\72\7\7\1\30\1\140\2\24\3\7"+ + "\1\141\1\102\1\31\1\43\51\7\1\45\3\7\1\43\2\7\1\105\3\7\1\105\2\7\1\24\3\7"+ + "\1\24\2\7\1\17\3\7\1\17\3\7\1\43\3\7\1\43\2\7\1\105\1\57\6\0\1\72\3\7\1\76"+ + "\1\32\1\105\1\142\1\116\1\143\1\76\1\112\1\76\2\105\1\62\1\7\1\27\1\7\1\57"+ + "\1\144\1\27\1\7\1\57\50\0\32\7\1\17\5\0\106\7\1\22\1\0\33\7\1\45\74\0"); - /* The ZZ_CMAP_A table has 2112 entries */ + /* The ZZ_CMAP_A table has 808 entries */ static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\1\1\11\1\12\1\13\1\12\22\0\1\17\3\0\1\3\3\0\1\21\1\22\1\15\3\0\1\4"+ - "\1\14\12\2\6\0\1\16\32\3\1\5\1\20\1\6\1\0\1\3\1\7\32\3\3\0\1\10\6\0\1\12\14"+ - "\0\4\3\4\0\1\3\12\0\1\3\4\0\1\3\5\0\27\3\1\0\17\3\11\0\2\3\4\0\14\3\16\0\5"+ - "\3\11\0\1\3\13\0\1\3\13\0\1\3\1\0\3\3\1\0\1\3\1\0\4\3\1\0\34\3\1\0\6\3\1\0"+ - "\5\3\4\0\2\3\10\0\14\3\2\0\2\3\7\0\26\3\2\0\1\3\6\0\10\3\10\0\13\3\5\0\3\3"+ - "\33\0\6\3\1\0\1\3\17\0\2\3\7\0\2\3\12\0\3\3\2\0\2\3\1\0\16\3\15\0\11\3\13"+ - "\0\1\3\22\0\26\3\3\0\1\3\2\0\1\3\7\0\10\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\16\0\2\3\1\0\5\3\21\0\6\3\4\0\2\3\1\0\2\3\1\0\2"+ - "\3\1\0\2\3\17\0\4\3\1\0\1\3\3\0\3\3\20\0\11\3\1\0\2\3\1\0\2\3\1\0\5\3\3\0"+ - "\1\3\2\0\1\3\22\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\17\0\1\3\13\0\10\3\1\0\6\3\1\0\5\3\6\0\4\3\1"+ - "\0\5\3\3\0\1\3\20\0\1\3\1\0\12\3\13\0\22\3\3\0\10\3\1\0\11\3\1\0\1\3\2\0\1"+ - "\3\1\0\2\3\13\0\1\3\1\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\2\0\10\3\1\0\7\3\10\0\4\3\4\0\2\3\1\0\5\3\1\0\2\3\5\0\11\3\7\0"+ - "\12\3\5\0\4\3\5\0\17\3\1\0\1\3\1\0\4\3\2\0\1\3\1\0\4\3\2\0\7\3\1\0\5\3\13"+ - "\0\15\3\2\0\14\3\3\0\17\3\1\0\2\3\7\0\1\3\3\0\2\3\3\0\15\3\3\0\16\3\2\0\14"+ - "\3\4\0\6\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0\1\3\1\0\1\3\1\0\6\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\14\0\2\12\25\0\1\3\4\0\1\3\14\0\1\3\15"+ - "\0\1\3\2\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\13\0\3\3\11\0\11\3\7\0\5\3\2\0\5\3"+ - "\3\0\7\3\6\0\3\3\3\0\5\3\5\0\1\3\1\0\10\3\1\0\5\3\1\0\1\3\1\0\2\3\1\0\2\3"+ - "\1\0\12\3\3\0\15\3\2\0\16\3\3\0\2\3\13\0\5\3\1\0\25\3\4\0\1\3\2\0\6\3\2\0"+ - "\6\3\2\0\6\3\2\0\3\3\3\0\2\3\3\0\2\3\11\0\14\3\1\0\16\3\1\0\2\3\1\0\7\3\2"+ - "\0\1\3\1\0\14\3\1\0\2\3\3\0\1\3\2\0\1\3\2\0\1\3\2\0\2\3\2\0\4\3\1\0\14\3\1"+ - "\0\1\3\1\0\7\3\1\0\21\3\1\0\4\3\2\0\10\3\1\0\7\3\1\0\14\3\1\0\4\3\1\0\5\3"+ - "\1\0\1\3\3\0\12\3\4\0\23\3\1\0\7\3\1\0\6\3\6\0"); + "\11\0\1\1\1\11\1\12\1\13\1\12\2\0\1\17\3\0\1\3\3\0\1\21\1\22\1\15\3\0\1\4"+ + "\1\14\12\2\6\0\1\16\22\3\1\5\1\20\1\6\1\0\1\3\1\7\12\3\3\0\1\10\6\0\1\12\4"+ + "\0\4\3\4\0\1\3\12\0\1\3\2\0\7\3\1\0\2\3\4\0\4\3\6\0\5\3\7\0\1\3\1\0\1\3\1"+ + "\0\5\3\1\0\2\3\6\0\1\3\1\0\3\3\1\0\1\3\1\0\4\3\1\0\13\3\1\0\1\3\2\0\6\3\1"+ + "\0\7\3\1\0\1\3\15\0\4\3\10\0\1\3\12\0\6\3\1\0\1\3\7\0\2\3\3\0\3\3\2\0\2\3"+ + "\1\0\6\3\5\0\11\3\6\0\2\3\6\0\1\3\3\0\1\3\13\0\6\3\3\0\1\3\2\0\5\3\2\0\2\3"+ + "\2\0\6\3\1\0\1\3\3\0\2\3\4\0\2\3\1\0\5\3\4\0\3\3\4\0\2\3\1\0\2\3\1\0\2\3\2"+ + "\0\4\3\1\0\1\3\3\0\3\3\3\0\1\3\1\0\2\3\1\0\3\3\3\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\4\3\1\0\3\3\1\0\2\3\5\0\3\3\2\0\1"+ + "\3\2\0\1\3\1\0\2\3\5\0\2\3\1\0\1\3\2\0\2\3\1\0\1\3\2\0\1\3\3\0\3\3\1\0\1\3"+ + "\1\0\1\3\2\0\2\3\1\0\10\3\1\0\1\3\2\0\1\3\3\0\2\3\1\0\1\3\4\0\6\3\1\0\5\3"+ + "\1\0\1\3\10\0\5\3\1\0\4\3\1\0\4\3\3\0\2\3\2\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+ + "\2\0\3\3\1\0\6\3\2\0\2\3\2\12\10\0\1\3\4\0\1\3\1\0\5\3\2\0\1\3\1\0\4\3\1\0"+ + "\3\3\2\0\6\3\4\0\1\3\4\0\4\3\3\0\2\3\4\0\1\3\2\0\4\3\1\0\2\3\1\0\3\3\1\0\1"+ + "\3\3\0\3\3\3\0\6\3\6\0\1\3\1\0\3\3\1\0\2\3\1\0\5\3\1\0\2\3\1\0\2\3\3\0\1\3"+ + "\2\0\1\3\1\0\4\3\5\0\1\3\2\0\2\3\1\0\2\3\1\0\1\3\1\0\6\3\2\0\5\3\1\0\4\3\2"+ + "\0\1\3\1\0\1\3\5\0\1\3\1\0\1\3\1\0\3\3\1\0\3\3\1\0\3\3"); /** * Translates DFA states to action switch labels. @@ -610,19 +626,22 @@ class _KDocLexer implements FlexLexer { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: { return TokenType.BAD_CHARACTER; - } + } + // fall through case 21: break; case 2: { yybegin(CONTENTS); return KDocTokens.TEXT; - } + } + // fall through case 22: break; case 3: { if(yystate() == CONTENTS_BEGINNING) { yybegin(INDENTED_CODE_BLOCK); return KDocTokens.CODE_BLOCK_TEXT; } - } + } + // fall through case 23: break; case 4: { if (yytextContainLineBreaks()) { @@ -632,29 +651,34 @@ class _KDocLexer implements FlexLexer { yybegin(yystate() == CONTENTS_BEGINNING ? CONTENTS_BEGINNING : CONTENTS); return KDocTokens.TEXT; // internal white space } - } + } + // fall through case 24: break; case 5: { yybegin(CONTENTS_BEGINNING); return KDocTokens.LEADING_ASTERISK; - } + } + // fall through case 25: break; case 6: { if (yytextContainLineBreaks()) { yybegin(LINE_BEGINNING); } return TokenType.WHITE_SPACE; - } + } + // fall through case 26: break; case 7: { yybegin(TAG_TEXT_BEGINNING); return KDocTokens.MARKDOWN_LINK; - } + } + // fall through case 27: break; case 8: { yybegin(yystate() == INDENTED_CODE_BLOCK ? INDENTED_CODE_BLOCK : CODE_BLOCK); return KDocTokens.CODE_BLOCK_TEXT; - } + } + // fall through case 28: break; case 9: { if (yytextContainLineBreaks()) { @@ -662,48 +686,57 @@ class _KDocLexer implements FlexLexer { return TokenType.WHITE_SPACE; } return KDocTokens.CODE_BLOCK_TEXT; - } + } + // fall through case 29: break; case 10: { yybegin(CODE_BLOCK_CONTENTS_BEGINNING); return KDocTokens.LEADING_ASTERISK; - } + } + // fall through case 30: break; case 11: { if (isLastToken()) return KDocTokens.END; else return KDocTokens.TEXT; - } + } + // fall through case 31: break; case 12: { yybegin(CONTENTS); return KDocTokens.MARKDOWN_ESCAPED_CHAR; - } + } + // fall through case 32: break; case 13: { KDocKnownTag tag = KDocKnownTag.Companion.findByTagName(zzBuffer.subSequence(zzStartRead, zzMarkedPos)); yybegin(tag != null && tag.isReferenceRequired() ? TAG_BEGINNING : TAG_TEXT_BEGINNING); return KDocTokens.TAG_NAME; - } + } + // fall through case 33: break; case 14: { yybegin(CONTENTS_BEGINNING); return KDocTokens.START; - } + } + // fall through case 34: break; case 15: { yybegin(CODE_BLOCK_LINE_BEGINNING); return KDocTokens.TEXT; - } + } + // fall through case 35: break; case 16: { yybegin(TAG_TEXT_BEGINNING); return KDocTokens.MARKDOWN_LINK; - } + } + // fall through case 36: break; case 17: { yybegin(CONTENTS); return KDocTokens.MARKDOWN_LINK; - } + } + // fall through case 37: break; case 18: // lookahead expression with fixed lookahead length @@ -711,12 +744,14 @@ class _KDocLexer implements FlexLexer { (zzBufferL/*, zzStartRead, zzEndRead - zzStartRead*/, zzMarkedPos, -1); { yybegin(CONTENTS); return KDocTokens.MARKDOWN_LINK; - } + } + // fall through case 38: break; case 19: { yybegin(CONTENTS); return KDocTokens.MARKDOWN_INLINE_LINK; - } + } + // fall through case 39: break; case 20: // lookahead expression with fixed base length @@ -725,7 +760,8 @@ class _KDocLexer implements FlexLexer { { // Code fence end yybegin(CONTENTS); return KDocTokens.TEXT; - } + } + // fall through case 40: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex b/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex index b394b459477..13b6d13a86f 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex +++ b/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex @@ -92,10 +92,11 @@ EOL_COMMENT="/""/"[^\n]* SHEBANG_COMMENT="#!"[^\n]* INTEGER_LITERAL={DECIMAL_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}|{BIN_INTEGER_LITERAL} -DECIMAL_INTEGER_LITERAL=(0|([1-9]({DIGIT_OR_UNDERSCORE})*))({LONG_SUFFIX})? -HEX_INTEGER_LITERAL=0[Xx]({HEX_DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX})? -BIN_INTEGER_LITERAL=0[Bb]({DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX})? +DECIMAL_INTEGER_LITERAL=(0|([1-9]({DIGIT_OR_UNDERSCORE})*))({LONG_SUFFIX}|{UNSIGNED_SUFFIX})? +HEX_INTEGER_LITERAL=0[Xx]({HEX_DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX}|{UNSIGNED_SUFFIX})? +BIN_INTEGER_LITERAL=0[Bb]({DIGIT_OR_UNDERSCORE})*({LONG_SUFFIX}|{UNSIGNED_SUFFIX})? LONG_SUFFIX=[Ll] +UNSIGNED_SUFFIX=[u] //FLOAT_LITERAL=(({FLOATING_POINT_LITERAL1})[Ff])|(({FLOATING_POINT_LITERAL2})[Ff])|(({FLOATING_POINT_LITERAL3})[Ff])|(({FLOATING_POINT_LITERAL4})[Ff]) //DOUBLE_LITERAL=(({FLOATING_POINT_LITERAL1})[Dd]?)|(({FLOATING_POINT_LITERAL2})[Dd]?)|(({FLOATING_POINT_LITERAL3})[Dd]?)|(({FLOATING_POINT_LITERAL4})[Dd]) diff --git a/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java b/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java index 2b08500cbab..c2196394def 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java +++ b/compiler/psi/src/org/jetbrains/kotlin/lexer/_JetLexer.java @@ -1,33 +1,20 @@ -/* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* The following code was generated by JFlex 1.7.0-SNAPSHOT tweaked for IntelliJ platform */ +/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ 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-SNAPSHOT - * from the specification file /Users/yole/jetbrains/kotlin/compiler/frontend/src/org/jetbrains/kotlin/lexer/Kotlin.flex + * JFlex 1.7.0 + * from the specification file /Users/jetbrains/projects/dup_kotlin/kotlin/compiler/psi/src/org/jetbrains/kotlin/lexer/Kotlin.flex */ class _JetLexer implements FlexLexer { @@ -60,7 +47,7 @@ class _JetLexer implements FlexLexer { /** * Translates characters to character classes * Chosen bits are [11, 6, 4] - * Total runtime size is 13792 bytes + * Total runtime size is 14336 bytes */ public static int ZZ_CMAP(int ch) { return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>10]<<6)|((ch>>4)&0x3f)]<<4)|(ch&0xf)]; @@ -70,11 +57,11 @@ class _JetLexer implements FlexLexer { static final char ZZ_CMAP_Z[] = zzUnpackCMap( "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\2\11\1\12\1\13\6\14\1\15\23\14\1\16"+ "\1\14\1\17\1\20\12\14\1\21\10\11\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1"+ - "\32\1\11\1\33\1\34\2\11\1\14\1\35\3\11\1\36\10\11\1\37\1\40\20\11\1\41\2\11"+ - "\1\42\5\11\1\43\4\11\1\44\1\45\4\11\51\14\1\46\3\14\1\47\1\50\4\14\1\51\12"+ - "\11\1\52\u0381\11"); + "\32\1\33\1\34\1\35\2\11\1\14\1\36\3\11\1\37\10\11\1\40\1\41\5\14\1\42\1\43"+ + "\11\11\1\44\2\11\1\45\5\11\1\46\4\11\1\47\1\50\4\11\51\14\1\51\3\14\1\52\1"+ + "\53\4\14\1\54\12\11\1\55\u0381\11"); - /* The ZZ_CMAP_Y table has 2752 entries */ + /* The ZZ_CMAP_Y table has 2944 entries */ static final char ZZ_CMAP_Y[] = zzUnpackCMap( "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\1\1\11\1\12\1\13\1\14\1\13\1\14\34"+ "\13\1\15\1\16\1\17\10\1\1\20\1\21\1\13\1\22\4\13\1\23\10\13\1\24\12\13\1\25"+ @@ -84,99 +71,102 @@ class _JetLexer implements FlexLexer { "\1\53\1\25\1\54\1\55\1\56\1\57\1\60\1\61\1\53\1\16\1\62\1\55\1\56\1\63\1\1"+ "\1\64\1\65\1\66\1\67\1\22\1\56\1\70\1\1\1\71\1\53\1\72\1\73\1\55\1\56\1\70"+ "\1\1\1\61\1\53\1\41\1\74\1\75\1\76\1\77\1\1\1\71\1\65\1\1\1\100\1\36\1\56"+ - "\1\51\1\1\1\101\1\53\1\1\1\100\1\36\1\56\1\102\1\1\1\60\1\53\1\103\1\100\1"+ - "\36\1\13\1\104\1\60\1\105\1\53\1\106\1\107\1\110\1\13\1\111\1\112\1\1\1\65"+ - "\1\1\1\25\2\13\1\113\1\112\1\114\2\1\1\115\1\116\1\117\1\120\1\121\1\122\2"+ - "\1\1\71\1\1\1\114\1\1\1\123\1\13\1\124\1\1\1\125\7\1\2\13\1\30\1\105\1\114"+ - "\1\126\1\127\1\130\1\131\1\114\2\13\1\132\2\13\1\133\24\13\1\134\1\135\2\13"+ - "\1\134\2\13\1\136\1\137\1\14\3\13\1\137\3\13\1\30\2\1\1\13\1\1\5\13\1\140"+ - "\1\25\45\13\1\141\1\13\1\25\1\30\4\13\1\30\1\142\1\143\1\16\1\13\1\16\1\13"+ - "\1\16\1\143\1\71\3\13\1\144\1\1\1\145\1\114\2\1\1\114\5\13\1\27\2\13\1\146"+ - "\4\13\1\40\1\13\1\147\2\1\1\65\1\13\1\150\1\47\2\13\1\151\1\13\1\77\1\114"+ - "\2\1\1\13\1\112\3\13\1\47\2\1\2\114\1\152\5\1\1\107\2\13\1\144\1\153\1\114"+ - "\2\1\1\154\1\13\1\155\1\42\2\13\1\40\1\1\2\13\1\144\1\1\1\156\1\42\1\13\1"+ - "\150\6\1\1\157\1\160\14\13\4\1\21\13\1\140\2\13\1\140\1\161\1\13\1\150\3\13"+ - "\1\162\1\163\1\164\1\124\1\163\2\1\1\165\4\1\1\166\1\1\1\124\6\1\1\167\1\170"+ - "\1\171\1\172\1\173\3\1\1\174\147\1\2\13\1\147\2\13\1\147\10\13\1\175\1\176"+ - "\2\13\1\132\3\13\1\177\1\1\1\13\1\112\4\200\4\1\1\105\35\1\1\201\2\1\1\202"+ - "\1\25\4\13\1\203\1\25\4\13\1\133\1\107\1\13\1\150\1\25\4\13\1\147\1\1\1\13"+ - "\1\30\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1\40\2\1\10\13\1\124\4\1\2\13\1"+ - "\150\20\13\1\124\1\13\1\204\1\1\2\13\1\147\1\105\1\13\1\150\4\13\1\40\2\1"+ - "\1\205\1\206\5\13\1\207\1\13\1\150\1\27\3\1\1\205\1\210\1\13\1\31\1\1\3\13"+ - "\1\144\1\206\2\13\1\144\1\1\1\114\1\1\1\211\1\42\1\13\1\40\1\13\1\112\1\1"+ - "\1\13\1\124\1\50\2\13\1\31\1\105\1\114\1\212\1\213\2\13\1\46\1\1\1\214\1\114"+ - "\1\13\1\215\3\13\1\216\1\217\1\220\1\30\1\66\1\221\1\222\1\200\2\13\1\133"+ - "\1\40\7\13\1\31\1\114\72\13\1\144\1\13\1\223\2\13\1\151\20\1\26\13\1\150\6"+ - "\13\1\77\2\1\1\112\1\224\1\56\1\225\1\226\6\13\1\16\1\1\1\154\25\13\1\150"+ - "\1\1\4\13\1\206\2\13\1\27\2\1\1\151\7\1\1\212\7\13\1\124\1\1\1\114\1\25\1"+ - "\30\1\25\1\30\1\227\4\13\1\147\1\230\1\231\2\1\1\232\1\13\1\14\1\233\2\150"+ - "\2\1\7\13\1\30\30\1\1\13\1\124\3\13\1\71\2\1\2\13\1\1\1\13\1\234\2\13\1\40"+ - "\1\13\1\150\2\13\1\235\3\1\11\13\1\150\1\114\5\1\2\13\1\27\3\13\1\144\11\1"+ - "\23\13\1\112\1\13\1\40\1\27\11\1\1\236\2\13\1\237\1\13\1\40\1\13\1\112\1\13"+ - "\1\147\4\1\1\13\1\240\1\13\1\40\1\13\1\77\4\1\3\13\1\241\4\1\1\71\1\242\1"+ - "\13\1\144\2\1\1\13\1\124\1\13\1\124\2\1\1\123\1\13\1\47\1\1\3\13\1\40\1\13"+ - "\1\40\1\13\1\31\1\13\1\16\6\1\4\13\1\46\3\1\3\13\1\31\3\13\1\31\60\1\1\154"+ - "\2\13\1\27\2\1\1\65\1\1\1\154\2\13\2\1\1\13\1\46\1\114\1\154\1\13\1\112\1"+ - "\65\1\1\2\13\1\243\1\154\2\13\1\31\1\244\1\245\2\1\1\13\1\22\1\151\5\1\1\246"+ - "\1\247\1\46\2\13\1\147\1\1\1\114\1\73\1\55\1\56\1\70\1\1\1\250\1\16\21\1\3"+ - "\13\1\1\1\251\1\114\12\1\2\13\1\147\2\1\1\252\2\1\3\13\1\1\1\253\1\114\2\1"+ - "\2\13\1\30\1\1\1\114\3\1\1\13\1\77\1\1\1\114\26\1\4\13\1\114\1\105\34\1\3"+ - "\13\1\46\20\1\71\13\1\77\16\1\14\13\1\144\53\1\2\13\1\147\75\1\44\13\1\112"+ - "\33\1\43\13\1\46\1\13\1\147\1\114\6\1\1\13\1\150\1\1\3\13\1\1\1\144\1\114"+ - "\1\154\1\254\1\13\67\1\4\13\1\47\1\71\3\1\1\154\6\1\1\16\77\1\6\13\1\30\1"+ - "\124\1\46\1\77\66\1\5\13\1\212\3\13\1\143\1\255\1\256\1\257\3\13\1\260\1\261"+ - "\1\13\1\262\1\263\1\36\24\13\1\264\1\13\1\36\1\133\1\13\1\133\1\13\1\212\1"+ - "\13\1\212\1\147\1\13\1\147\1\13\1\56\1\13\1\56\1\13\1\265\3\266\14\13\1\47"+ - "\123\1\1\257\1\13\1\267\1\270\1\271\1\272\1\273\1\274\1\275\1\151\1\276\1"+ - "\151\24\1\55\13\1\112\2\1\103\13\1\47\15\13\1\150\150\13\1\16\25\1\41\13\1"+ - "\150\36\1"); + "\1\51\1\1\1\101\1\53\1\1\1\102\1\36\1\56\1\103\1\1\1\60\1\53\1\104\1\100\1"+ + "\36\1\13\1\105\1\60\1\106\1\53\1\107\1\110\1\111\1\13\1\112\1\113\1\1\1\65"+ + "\1\1\1\25\2\13\1\114\1\113\1\115\2\1\1\116\1\117\1\120\1\121\1\122\1\123\2"+ + "\1\1\71\1\1\1\115\1\1\1\124\1\13\1\125\1\1\1\126\7\1\2\13\1\30\1\127\1\115"+ + "\1\130\1\131\1\132\1\133\1\115\2\13\1\134\2\13\1\135\24\13\1\136\1\137\2\13"+ + "\1\136\2\13\1\140\1\141\1\14\3\13\1\141\3\13\1\30\2\1\1\13\1\1\5\13\1\142"+ + "\1\25\45\13\1\143\1\13\1\25\1\30\4\13\1\30\1\144\1\145\1\16\1\13\1\16\1\13"+ + "\1\16\1\145\1\71\3\13\1\146\1\1\1\147\1\115\2\1\1\115\5\13\1\27\1\150\1\13"+ + "\1\151\4\13\1\40\1\13\1\152\2\1\1\65\1\13\1\153\1\154\2\13\1\155\1\13\1\77"+ + "\1\115\2\1\1\13\1\113\3\13\1\154\2\1\2\115\1\156\5\1\1\110\2\13\1\146\1\157"+ + "\1\115\2\1\1\160\1\13\1\161\1\42\2\13\1\40\1\1\2\13\1\146\1\1\1\162\1\42\1"+ + "\13\1\153\1\46\5\1\1\163\1\164\14\13\4\1\21\13\1\142\2\13\1\142\1\165\1\13"+ + "\1\153\3\13\1\166\1\167\1\170\1\125\1\167\2\1\1\171\4\1\1\172\1\1\1\125\6"+ + "\1\1\173\1\174\1\175\1\176\1\177\3\1\1\200\147\1\2\13\1\152\2\13\1\152\10"+ + "\13\1\201\1\202\2\13\1\134\3\13\1\203\1\1\1\13\1\113\4\204\4\1\1\127\35\1"+ + "\1\205\2\1\1\206\1\25\4\13\1\207\1\25\4\13\1\135\1\110\1\13\1\153\1\25\4\13"+ + "\1\152\1\1\1\13\1\30\3\1\1\13\40\1\133\13\1\40\4\1\135\13\1\40\2\1\10\13\1"+ + "\125\4\1\2\13\1\153\20\13\1\125\1\13\1\210\1\1\2\13\1\152\1\127\1\13\1\153"+ + "\4\13\1\40\2\1\1\211\1\212\5\13\1\213\1\13\1\152\1\27\3\1\1\211\1\214\1\13"+ + "\1\31\1\1\3\13\1\146\1\212\2\13\1\146\1\1\1\115\1\1\1\215\1\42\1\13\1\40\1"+ + "\13\1\113\1\1\1\13\1\125\1\50\2\13\1\31\1\127\1\115\1\216\1\217\2\13\1\46"+ + "\1\1\1\220\1\115\1\13\1\221\3\13\1\222\1\223\1\224\1\30\1\66\1\225\1\226\1"+ + "\204\2\13\1\135\1\40\7\13\1\31\1\115\72\13\1\146\1\13\1\227\2\13\1\155\20"+ + "\1\26\13\1\153\6\13\1\77\2\1\1\113\1\230\1\56\1\231\1\232\6\13\1\16\1\1\1"+ + "\160\25\13\1\153\1\1\4\13\1\212\2\13\1\27\2\1\1\155\7\1\1\216\7\13\1\125\1"+ + "\1\1\115\1\25\1\30\1\25\1\30\1\233\4\13\1\152\1\234\1\235\2\1\1\236\1\13\1"+ + "\14\1\237\2\153\2\1\7\13\1\30\30\1\1\13\1\125\3\13\1\71\2\1\2\13\1\1\1\13"+ + "\1\240\2\13\1\40\1\13\1\153\2\13\1\241\3\1\11\13\1\153\1\115\2\13\1\241\1"+ + "\13\1\155\2\13\1\27\3\13\1\146\11\1\23\13\1\113\1\13\1\40\1\27\11\1\1\242"+ + "\2\13\1\243\1\13\1\40\1\13\1\113\1\13\1\152\4\1\1\13\1\244\1\13\1\40\1\13"+ + "\1\77\4\1\3\13\1\245\4\1\1\71\1\246\1\13\1\146\2\1\1\13\1\125\1\13\1\125\2"+ + "\1\1\124\1\13\1\154\1\1\3\13\1\40\1\13\1\40\1\13\1\31\1\13\1\16\6\1\4\13\1"+ + "\46\3\1\3\13\1\31\3\13\1\31\60\1\1\160\2\13\1\27\2\1\1\65\1\1\1\160\2\13\2"+ + "\1\1\13\1\46\1\115\1\160\1\13\1\113\1\65\1\1\2\13\1\247\1\160\2\13\1\31\1"+ + "\250\1\251\2\1\1\13\1\22\1\155\5\1\1\252\1\253\1\46\2\13\1\152\1\1\1\115\1"+ + "\73\1\55\1\56\1\70\1\1\1\254\1\16\11\1\3\13\1\154\1\255\1\115\2\1\3\13\1\1"+ + "\1\256\1\115\12\1\2\13\1\152\2\1\1\257\2\1\3\13\1\1\1\260\1\115\2\1\2\13\1"+ + "\30\1\1\1\115\3\1\1\13\1\77\1\1\1\115\26\1\4\13\1\115\1\127\34\1\3\13\1\46"+ + "\20\1\1\56\1\13\1\152\1\1\1\71\1\115\1\1\1\212\1\13\67\1\71\13\1\77\16\1\14"+ + "\13\1\146\53\1\2\13\1\152\75\1\44\13\1\113\33\1\43\13\1\46\1\13\1\152\1\115"+ + "\6\1\1\13\1\153\1\1\3\13\1\1\1\146\1\115\1\160\1\261\1\13\67\1\4\13\1\154"+ + "\1\71\3\1\1\160\4\1\1\71\1\1\76\13\1\125\1\1\57\13\1\31\20\1\1\16\77\1\6\13"+ + "\1\30\1\125\1\46\1\77\66\1\5\13\1\216\3\13\1\145\1\262\1\263\1\264\3\13\1"+ + "\265\1\266\1\13\1\267\1\270\1\36\24\13\1\271\1\13\1\36\1\135\1\13\1\135\1"+ + "\13\1\216\1\13\1\216\1\152\1\13\1\152\1\13\1\56\1\13\1\56\1\13\1\272\3\273"+ + "\14\13\1\154\3\1\4\13\1\146\1\115\112\1\1\264\1\13\1\274\1\275\1\276\1\277"+ + "\1\300\1\301\1\302\1\155\1\303\1\155\24\1\55\13\1\113\2\1\103\13\1\154\15"+ + "\13\1\153\150\13\1\16\25\1\41\13\1\153\36\1"); - /* The ZZ_CMAP_A table has 3056 entries */ + /* The ZZ_CMAP_A table has 3136 entries */ static final char ZZ_CMAP_A[] = zzUnpackCMap( - "\11\0\1\4\1\10\1\40\1\41\1\40\22\0\1\4\1\14\1\30\1\13\1\11\1\72\1\70\1\25"+ - "\1\76\1\77\1\37\1\65\1\101\1\24\1\21\1\12\1\15\11\1\1\73\1\100\1\66\1\63\1"+ - "\67\1\64\1\102\1\3\1\17\2\3\1\23\1\22\5\5\1\20\13\5\1\16\2\5\1\74\1\26\1\75"+ + "\11\0\1\4\1\10\1\40\1\41\1\40\22\0\1\4\1\14\1\30\1\13\1\11\1\72\1\70\1\26"+ + "\1\76\1\77\1\37\1\65\1\101\1\25\1\22\1\12\1\15\11\1\1\73\1\100\1\66\1\63\1"+ + "\67\1\64\1\102\1\3\1\17\2\3\1\24\1\23\5\5\1\20\13\5\1\16\2\5\1\74\1\27\1\75"+ "\1\0\1\2\1\7\1\45\1\56\1\52\1\62\1\44\1\51\1\55\1\33\1\34\1\57\1\54\1\46\1"+ - "\5\1\47\1\53\1\43\1\5\1\50\1\35\1\32\1\27\1\61\1\60\1\16\1\42\1\5\1\31\1\71"+ + "\5\1\47\1\53\1\43\1\5\1\50\1\35\1\32\1\21\1\61\1\60\1\16\1\42\1\5\1\31\1\71"+ "\1\36\7\0\1\40\24\0\1\5\12\0\1\5\4\0\1\5\5\0\27\5\1\0\12\5\4\0\14\5\16\0\5"+ "\5\7\0\1\5\1\0\1\5\1\0\5\5\1\0\2\5\2\0\4\5\1\0\1\5\6\0\1\5\1\0\3\5\1\0\1\5"+ "\1\0\4\5\1\0\23\5\1\0\13\5\10\0\6\5\1\0\26\5\2\0\1\5\6\0\10\5\10\0\13\5\5"+ "\0\3\5\15\0\12\6\4\0\6\5\1\0\1\5\17\0\2\5\7\0\2\5\12\6\3\5\2\0\2\5\1\0\16"+ "\5\15\0\11\5\13\0\1\5\16\0\12\6\6\5\4\0\2\5\4\0\1\5\5\0\6\5\4\0\1\5\11\0\1"+ - "\5\3\0\1\5\7\0\11\5\7\0\5\5\17\0\26\5\3\0\1\5\2\0\1\5\7\0\12\5\4\0\12\6\1"+ - "\5\4\0\10\5\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5\3\0\4\5\3\0\1\5\20\0\1\5\15\0"+ - "\2\5\1\0\1\5\5\0\6\5\4\0\2\5\1\0\2\5\1\0\2\5\1\0\2\5\17\0\4\5\1\0\1\5\7\0"+ - "\12\6\2\0\3\5\20\0\11\5\1\0\2\5\1\0\2\5\1\0\5\5\3\0\1\5\2\0\1\5\30\0\1\5\13"+ - "\0\10\5\2\0\1\5\3\0\1\5\1\0\6\5\3\0\3\5\1\0\4\5\3\0\2\5\1\0\1\5\1\0\2\5\3"+ - "\0\2\5\3\0\3\5\3\0\14\5\13\0\10\5\1\0\2\5\10\0\3\5\5\0\4\5\1\0\5\5\3\0\1\5"+ - "\3\0\2\5\15\0\13\5\2\0\1\5\21\0\1\5\12\0\6\5\5\0\22\5\3\0\10\5\1\0\11\5\1"+ - "\0\1\5\2\0\7\5\11\0\1\5\1\0\2\5\14\0\12\6\7\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5"+ - "\2\0\1\5\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5\1\0\1\5\2\0\2\5\1\0\4\5\1\0\2\5\11"+ - "\0\1\5\2\0\5\5\1\0\1\5\11\0\12\6\2\0\14\5\1\0\24\5\13\0\5\5\3\0\6\5\4\0\4"+ - "\5\3\0\1\5\3\0\2\5\7\0\3\5\4\0\15\5\14\0\1\5\1\0\6\5\1\0\1\5\5\0\1\5\2\0\13"+ - "\5\1\0\15\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0\1\5\1\0\4\5\2\0\7\5\1\0\1"+ - "\5\1\0\4\5\2\0\16\5\2\0\6\5\2\0\15\5\2\0\1\5\1\0\10\5\7\0\15\5\1\0\6\5\23"+ - "\0\1\5\4\0\1\5\3\0\11\5\1\0\1\5\5\0\17\5\1\0\16\5\2\0\14\5\13\0\1\5\15\0\7"+ - "\5\7\0\16\5\15\0\2\5\12\6\3\0\3\5\11\0\4\5\1\0\4\5\3\0\2\5\11\0\10\5\1\0\1"+ - "\5\1\0\1\5\1\0\1\5\1\0\6\5\1\0\7\5\1\0\1\5\3\0\3\5\1\0\7\5\3\0\4\5\2\0\6\5"+ - "\14\0\2\40\7\0\1\5\15\0\1\5\2\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5\6\0\1"+ - "\5\1\0\1\5\1\0\1\5\1\0\4\5\1\0\13\5\2\0\4\5\5\0\5\5\4\0\1\5\4\0\2\5\13\0\5"+ - "\5\6\0\4\5\3\0\2\5\14\0\10\5\7\0\10\5\1\0\7\5\6\0\2\5\12\0\5\5\5\0\2\5\3\0"+ - "\7\5\6\0\3\5\12\6\2\5\13\0\11\5\2\0\27\5\2\0\7\5\1\0\3\5\1\0\4\5\1\0\4\5\2"+ - "\0\6\5\3\0\1\5\1\0\1\5\2\0\5\5\1\0\12\5\12\6\5\5\1\0\3\5\1\0\10\5\4\0\7\5"+ - "\3\0\1\5\3\0\2\5\1\0\1\5\3\0\2\5\2\0\5\5\2\0\1\5\1\0\1\5\30\0\3\5\3\0\6\5"+ - "\2\0\6\5\2\0\6\5\11\0\7\5\4\0\5\5\3\0\5\5\5\0\1\5\1\0\10\5\1\0\5\5\1\0\1\5"+ - "\1\0\2\5\1\0\2\5\1\0\12\5\6\0\12\5\2\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5\3\0\14"+ - "\5\1\0\16\5\1\0\2\5\1\0\2\5\1\0\10\5\6\0\4\5\4\0\16\5\2\0\1\5\1\0\14\5\1\0"+ - "\2\5\3\0\1\5\2\0\4\5\1\0\2\5\12\0\10\5\6\0\6\5\1\0\3\5\1\0\12\5\3\0\1\5\12"+ - "\0\4\5\13\0\12\6\1\5\1\0\1\5\3\0\7\5\1\0\1\5\1\0\4\5\1\0\17\5\1\0\2\5\14\0"+ - "\3\5\4\0\2\5\1\0\1\5\20\0\4\5\10\0\1\5\13\0\10\5\5\0\3\5\2\0\1\5\2\0\2\5\2"+ - "\0\4\5\1\0\14\5\1\0\1\5\1\0\7\5\1\0\21\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0\14\5"+ - "\1\0\4\5\1\0\5\5\1\0\1\5\3\0\14\5\2\0\13\5\1\0\10\5\2\0\22\6\1\0\2\5\1\0\1"+ - "\5\2\0\1\5\1\0\12\5\1\0\4\5\1\0\1\5\1\0\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0\1"+ - "\5\1\0\3\5\1\0\2\5\1\0\1\5\2\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\2\5"+ - "\1\0\1\5\2\0\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0\1\5\1\0\12\5\1\0\5\5\1\0\3\5"+ - "\1\0\5\5\1\0\5\5"); + "\5\3\0\1\5\7\0\11\5\7\0\5\5\1\0\10\5\6\0\26\5\3\0\1\5\2\0\1\5\7\0\12\5\4\0"+ + "\12\6\1\5\4\0\10\5\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5\3\0\4\5\3\0\1\5\20\0\1"+ + "\5\15\0\2\5\1\0\1\5\5\0\6\5\4\0\2\5\1\0\2\5\1\0\2\5\1\0\2\5\17\0\4\5\1\0\1"+ + "\5\7\0\12\6\2\0\3\5\20\0\11\5\1\0\2\5\1\0\2\5\1\0\5\5\3\0\1\5\2\0\1\5\30\0"+ + "\1\5\13\0\10\5\2\0\1\5\3\0\1\5\1\0\6\5\3\0\3\5\1\0\4\5\3\0\2\5\1\0\1\5\1\0"+ + "\2\5\3\0\2\5\3\0\3\5\3\0\14\5\13\0\10\5\1\0\2\5\10\0\3\5\5\0\1\5\4\0\10\5"+ + "\1\0\6\5\1\0\5\5\3\0\1\5\3\0\2\5\15\0\13\5\2\0\1\5\6\0\3\5\10\0\1\5\12\0\6"+ + "\5\5\0\22\5\3\0\10\5\1\0\11\5\1\0\1\5\2\0\7\5\11\0\1\5\1\0\2\5\14\0\12\6\7"+ + "\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5\2\0\1\5\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5\1\0"+ + "\1\5\2\0\2\5\1\0\4\5\1\0\2\5\11\0\1\5\2\0\5\5\1\0\1\5\11\0\12\6\2\0\14\5\1"+ + "\0\24\5\13\0\5\5\22\0\7\5\4\0\4\5\3\0\1\5\3\0\2\5\7\0\3\5\4\0\15\5\14\0\1"+ + "\5\1\0\6\5\1\0\1\5\5\0\1\5\2\0\13\5\1\0\15\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4"+ + "\5\2\0\1\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0\16\5\2\0\6\5\2\0\15\5\2\0\1"+ + "\5\1\0\10\5\7\0\15\5\1\0\6\5\23\0\1\5\4\0\1\5\3\0\5\5\2\0\22\5\1\0\1\5\5\0"+ + "\17\5\1\0\16\5\2\0\5\5\13\0\14\5\13\0\1\5\15\0\7\5\7\0\16\5\15\0\2\5\12\6"+ + "\3\0\3\5\11\0\4\5\1\0\4\5\3\0\2\5\11\0\10\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\6"+ + "\5\1\0\7\5\1\0\1\5\3\0\3\5\1\0\7\5\3\0\4\5\2\0\6\5\14\0\2\40\7\0\1\5\15\0"+ + "\1\5\2\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5\6\0\1\5\1\0\1\5\1\0\1\5\1\0"+ + "\4\5\1\0\13\5\2\0\4\5\5\0\5\5\4\0\1\5\4\0\2\5\13\0\5\5\6\0\4\5\3\0\2\5\14"+ + "\0\10\5\7\0\10\5\1\0\7\5\6\0\2\5\12\0\5\5\5\0\2\5\3\0\7\5\6\0\3\5\12\6\2\5"+ + "\13\0\11\5\2\0\27\5\2\0\7\5\1\0\3\5\1\0\4\5\1\0\4\5\2\0\6\5\3\0\1\5\1\0\1"+ + "\5\2\0\5\5\1\0\12\5\12\6\5\5\1\0\3\5\1\0\10\5\4\0\7\5\3\0\1\5\3\0\2\5\1\0"+ + "\1\5\3\0\2\5\2\0\5\5\2\0\1\5\1\0\1\5\30\0\3\5\3\0\6\5\2\0\6\5\2\0\6\5\11\0"+ + "\7\5\4\0\5\5\3\0\5\5\5\0\1\5\1\0\10\5\1\0\5\5\1\0\1\5\1\0\2\5\1\0\2\5\1\0"+ + "\12\5\6\0\12\5\2\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5\3\0\14\5\1\0\16\5\1\0\2\5\1"+ + "\0\2\5\1\0\10\5\6\0\4\5\4\0\16\5\2\0\1\5\1\0\14\5\1\0\2\5\3\0\1\5\2\0\4\5"+ + "\1\0\2\5\12\0\10\5\6\0\6\5\1\0\3\5\1\0\12\5\3\0\1\5\12\0\4\5\13\0\12\6\1\5"+ + "\1\0\1\5\3\0\7\5\1\0\1\5\1\0\4\5\1\0\17\5\1\0\2\5\14\0\3\5\7\0\4\5\11\0\2"+ + "\5\1\0\1\5\20\0\4\5\10\0\1\5\13\0\10\5\5\0\3\5\2\0\1\5\2\0\2\5\2\0\4\5\1\0"+ + "\14\5\1\0\1\5\1\0\7\5\1\0\21\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0\14\5\1\0\4\5\1"+ + "\0\5\5\1\0\1\5\3\0\14\5\2\0\13\5\1\0\10\5\2\0\22\6\1\0\2\5\1\0\1\5\2\0\1\5"+ + "\1\0\12\5\1\0\4\5\1\0\1\5\1\0\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0\1\5\1\0\3\5"+ + "\1\0\2\5\1\0\1\5\2\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\1\5\1\0\2\5\1\0\1\5\2"+ + "\0\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0\1\5\1\0\12\5\1\0\5\5\1\0\3\5\1\0\5\5\1"+ + "\0\5\5"); /** * Translates DFA states to action switch labels. @@ -286,245 +276,222 @@ class _JetLexer implements FlexLexer { private static final String ZZ_TRANS_PACKED_0 = "\1\7\1\10\2\11\1\12\1\11\1\7\1\13\1\12"+ - "\1\14\1\15\1\16\1\17\1\20\3\11\1\21\2\11"+ - "\1\22\1\23\1\7\1\11\1\24\1\25\1\26\1\11"+ - "\1\27\1\30\1\31\1\32\1\0\1\12\1\11\1\33"+ - "\1\34\1\35\1\11\1\36\1\37\1\40\1\41\1\42"+ - "\2\11\1\43\1\11\1\44\1\45\1\46\1\47\1\50"+ - "\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60"+ - "\1\61\1\62\1\63\1\64\1\65\1\66\10\67\1\70"+ - "\1\71\14\67\1\72\1\67\1\73\62\67\1\74\1\71"+ - "\14\67\1\74\1\67\1\75\52\67\2\7\2\76\1\7"+ - "\1\76\1\7\1\77\1\0\5\7\3\76\1\7\2\76"+ - "\3\7\1\76\2\7\1\100\3\76\2\7\2\0\21\76"+ - "\20\7\12\101\1\102\24\101\1\103\1\0\42\101\1\7"+ - "\1\10\2\11\1\12\1\11\1\7\1\13\1\12\1\14"+ - "\1\15\1\16\1\17\1\20\3\11\1\21\2\11\1\22"+ - "\1\23\1\7\1\11\1\24\1\104\1\26\1\11\1\27"+ - "\1\30\1\105\1\32\1\0\1\12\1\11\1\33\1\34"+ + "\1\14\1\15\1\16\1\17\1\20\4\11\1\21\2\11"+ + "\1\22\1\23\1\7\1\24\1\25\1\26\1\11\1\27"+ + "\1\30\1\31\1\32\1\0\1\12\1\11\1\33\1\34"+ "\1\35\1\11\1\36\1\37\1\40\1\41\1\42\2\11"+ "\1\43\1\11\1\44\1\45\1\46\1\47\1\50\1\51"+ "\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61"+ - "\1\62\1\63\1\64\1\65\1\66\104\0\2\10\12\0"+ - "\1\10\2\0\1\106\1\107\1\110\1\111\20\0\1\111"+ - "\1\0\1\106\2\0\1\110\32\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ + "\1\62\1\63\1\64\1\65\1\66\10\67\1\70\1\71"+ + "\15\67\1\72\1\73\62\67\1\74\1\71\15\67\1\74"+ + "\1\75\52\67\2\7\2\76\1\7\1\76\1\7\1\77"+ + "\1\0\5\7\4\76\1\7\2\76\5\7\1\100\3\76"+ + "\2\7\2\0\21\76\20\7\12\101\1\102\24\101\1\103"+ + "\1\0\42\101\1\7\1\10\2\11\1\12\1\11\1\7"+ + "\1\13\1\12\1\14\1\15\1\16\1\17\1\20\4\11"+ + "\1\21\2\11\1\22\1\23\1\7\1\24\1\104\1\26"+ + "\1\11\1\27\1\30\1\105\1\32\1\0\1\12\1\11"+ + "\1\33\1\34\1\35\1\11\1\36\1\37\1\40\1\41"+ + "\1\42\2\11\1\43\1\11\1\44\1\45\1\46\1\47"+ + "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+ + "\1\60\1\61\1\62\1\63\1\64\1\65\1\66\104\0"+ + "\2\10\12\0\1\10\2\0\2\106\1\107\1\110\1\111"+ + "\17\0\1\111\1\0\1\106\2\0\1\110\32\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ "\4\0\21\11\24\0\1\12\3\0\1\12\30\0\1\12"+ "\41\0\7\112\2\0\72\112\2\0\2\113\1\0\1\113"+ - "\1\0\1\114\6\0\3\113\1\0\2\113\3\0\1\113"+ - "\2\0\4\113\4\0\21\113\32\0\1\115\24\0\1\116"+ - "\23\0\1\117\33\0\1\120\122\0\1\121\26\0\1\122"+ - "\20\0\2\123\12\0\1\123\1\124\1\125\1\106\1\107"+ - "\1\110\1\111\20\0\1\111\1\0\1\106\2\0\1\110"+ - "\4\0\1\125\25\0\1\126\13\0\1\126\3\0\1\127"+ - "\105\0\1\130\36\0\1\131\3\0\1\132\13\0\10\23"+ - "\1\0\14\23\1\133\1\134\54\23\30\0\1\135\53\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\1\11\1\136\2\11\4\0\1\137\5\11"+ - "\1\140\12\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\3\11\1\141\4\0"+ - "\5\11\1\142\1\11\1\143\11\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\144\2\0"+ - "\4\11\4\0\21\11\103\0\1\145\20\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\3\11\1\146\15\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\4\11\1\147\14\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\3\11\1\150\4\0\21\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\151\2\0\4\11"+ - "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\2\11"+ + "\1\0\1\114\6\0\4\113\1\0\2\113\5\0\4\113"+ + "\4\0\21\113\32\0\1\115\24\0\1\116\23\0\1\117"+ + "\33\0\1\120\122\0\1\121\26\0\1\122\20\0\2\123"+ + "\12\0\1\123\1\124\1\125\2\106\1\107\1\110\1\111"+ + "\17\0\1\111\1\0\1\106\2\0\1\110\4\0\1\125"+ + "\25\0\1\126\13\0\1\126\4\0\1\127\105\0\1\130"+ + "\35\0\1\131\3\0\1\132\13\0\10\23\1\0\15\23"+ + "\1\133\1\134\53\23\30\0\1\135\53\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\1\11\1\136"+ + "\2\11\4\0\1\137\5\11\1\140\12\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\3\11"+ + "\1\141\4\0\5\11\1\142\1\11\1\143\11\11\21\0"+ + "\3\11\1\0\2\11\6\0\4\11\1\144\1\0\2\11"+ + "\5\0\4\11\4\0\21\11\103\0\1\145\20\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ + "\4\0\3\11\1\146\15\11\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\4\11"+ + "\1\147\14\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\3\11\1\150\4\0\21\11\21\0"+ + "\3\11\1\0\2\11\6\0\4\11\1\151\1\0\2\11"+ + "\5\0\4\11\4\0\21\11\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\2\11"+ "\1\152\16\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\153\2\0\4\11\4\0\3\11"+ - "\1\154\5\11\1\155\7\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\4\0\4\11\1\156\4\11\1\157\7\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\4\0\14\11\1\160\4\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\4\0\6\11\1\161\12\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\1\11\1\162\2\11\4\0\21\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\4\0\3\11\1\163\15\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\4\0\11\11\1\164\7\11\103\0\1\165"+ - "\3\0\1\166\76\0\1\167\1\0\1\170\100\0\1\171"+ - "\102\0\1\172\107\0\1\173\103\0\1\174\74\0\1\175"+ - "\112\0\1\176\107\0\1\177\2\0\10\67\2\0\14\67"+ - "\1\0\1\67\1\0\52\67\2\0\2\200\1\0\1\200"+ - "\1\0\1\201\6\0\3\200\1\0\2\200\3\0\1\200"+ - "\1\0\1\202\4\200\4\0\21\200\20\0\10\203\1\0"+ - "\16\203\1\204\53\203\30\0\1\205\53\0\3\76\1\0"+ - "\2\76\6\0\4\76\1\0\2\76\3\0\1\76\2\0"+ - "\4\76\4\0\21\76\20\0\7\206\2\0\72\206\1\0"+ - "\3\76\1\0\2\76\6\0\4\76\1\0\2\76\3\0"+ - "\1\76\2\0\1\76\1\207\2\76\4\0\21\76\57\0"+ - "\1\210\55\0\1\211\111\0\1\212\62\0\1\126\13\0"+ - "\1\126\3\0\1\213\62\0\2\214\12\0\1\214\4\0"+ - "\1\110\1\0\1\214\24\0\1\110\13\0\1\214\15\0"+ - "\7\112\1\215\1\0\72\112\1\0\3\113\1\0\2\113"+ - "\6\0\4\113\1\0\2\113\3\0\1\113\2\0\4\113"+ - "\4\0\21\113\20\0\7\216\2\0\72\216\10\115\1\0"+ - "\72\115\37\0\1\217\43\0\10\120\1\0\72\120\35\0"+ - "\1\220\11\0\1\221\116\0\1\222\20\0\2\123\12\0"+ - "\1\123\3\0\1\223\1\110\1\111\20\0\1\111\4\0"+ - "\1\110\32\0\3\124\11\0\1\124\1\0\1\124\1\106"+ - "\1\212\2\124\20\0\2\124\1\106\2\0\2\124\3\0"+ - "\1\124\3\0\1\124\21\0\2\125\12\0\1\125\2\0"+ - "\1\106\1\212\24\0\1\106\35\0\2\126\12\0\1\126"+ - "\4\0\1\110\1\111\20\0\1\111\4\0\1\110\52\0"+ - "\1\224\61\0\10\23\1\0\72\23\30\0\1\225\53\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\2\11\1\226\1\11\4\0\6\11\1\227"+ - "\12\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\11\2\0\4\11\4\0\1\11\1\230"+ - "\17\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\231\2\0\4\11\4\0\1\232\20\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\1\233\3\11\4\0\21\11\21\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\4\11\4\0\1\11\1\234\17\11\21\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\4\11\4\0\10\11\1\235\10\11\21\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\3\11\1\236\4\0\21\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\4\0\21\11\1\0\1\237\17\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\4\11\4\0\4\11\1\240\14\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\1\241\3\11\4\0\21\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\5\11\1\242\13\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\4\11\1\243\14\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\6\11\1\244\12\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\3\11\1\245\15\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\5\11\1\246\13\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\15\11\1\247\3\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\2\11\1\250\16\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\2\11\1\251\1\11\4\0\2\11\1\252\16\11\21\0"+ - "\3\11\1\0\2\11\6\0\4\11\1\0\2\11\3\0"+ - "\1\11\2\0\4\11\4\0\4\11\1\253\1\11\1\254"+ - "\12\11\103\0\1\255\20\0\3\200\1\0\2\200\6\0"+ - "\4\200\1\0\2\200\3\0\1\200\2\0\4\200\4\0"+ - "\21\200\20\0\7\256\2\0\72\256\1\0\1\257\1\0"+ - "\1\257\11\0\1\257\1\0\1\257\2\0\2\257\20\0"+ - "\2\257\3\0\2\257\3\0\1\257\3\0\1\257\50\0"+ - "\1\260\52\0\7\206\1\261\1\0\72\206\1\0\3\76"+ - "\1\0\2\76\6\0\4\76\1\0\2\76\3\0\1\76"+ - "\2\0\2\76\1\262\1\76\4\0\21\76\41\0\1\213"+ - "\62\0\2\214\12\0\1\214\4\0\1\110\26\0\1\110"+ - "\31\0\7\216\1\263\1\0\72\216\12\0\1\264\71\0"+ - "\3\265\1\0\2\265\6\0\4\265\1\0\2\265\3\0"+ - "\1\265\2\0\4\265\4\0\21\265\21\0\1\126\13\0"+ - "\1\126\66\0\3\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\11\2\0\3\11\1\266\4\0\21\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\11\11\1\267\7\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\2\11\1\270\16\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\2\11\1\271\16\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\2\11\1\272\16\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\2\11\1\273\16\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\12\11\1\274\6\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\2\11\1\275\16\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\11\2\0\4\11\4\0\4\11\1\276\14\11"+ - "\21\0\3\11\1\0\2\11\6\0\4\11\1\0\2\11"+ - "\3\0\1\277\2\0\4\11\4\0\21\11\21\0\3\11"+ - "\1\0\2\11\6\0\4\11\1\0\2\11\3\0\1\11"+ - "\2\0\3\11\1\300\4\0\21\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\3\11\1\301\4\0\21\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\1\302"+ + "\1\153\1\0\2\11\5\0\4\11\4\0\3\11\1\154"+ + "\5\11\1\155\7\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\4\11\4\0\4\11\1\156"+ + "\4\11\1\157\7\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\4\11\4\0\14\11\1\160"+ + "\4\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\4\11\4\0\6\11\1\161\12\11\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\1\11\1\162\2\11\4\0\21\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ + "\3\11\1\163\15\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\4\11\4\0\11\11\1\164"+ + "\7\11\103\0\1\165\3\0\1\166\76\0\1\167\1\0"+ + "\1\170\100\0\1\171\102\0\1\172\107\0\1\173\103\0"+ + "\1\174\74\0\1\175\112\0\1\176\107\0\1\177\2\0"+ + "\10\67\2\0\15\67\2\0\52\67\2\0\2\200\1\0"+ + "\1\200\1\0\1\201\6\0\4\200\1\0\2\200\4\0"+ + "\1\202\4\200\4\0\21\200\20\0\10\203\1\0\10\203"+ + "\1\204\61\203\30\0\1\205\53\0\3\76\1\0\2\76"+ + "\6\0\5\76\1\0\2\76\5\0\4\76\4\0\21\76"+ + "\20\0\7\206\2\0\72\206\1\0\3\76\1\0\2\76"+ + "\6\0\5\76\1\0\2\76\5\0\1\76\1\207\2\76"+ + "\4\0\21\76\57\0\1\210\55\0\1\211\112\0\1\212"+ + "\61\0\1\126\13\0\1\126\4\0\1\213\61\0\2\214"+ + "\12\0\1\214\5\0\1\110\1\0\1\214\23\0\1\110"+ + "\13\0\1\214\15\0\7\112\1\215\1\0\72\112\1\0"+ + "\3\113\1\0\2\113\6\0\5\113\1\0\2\113\5\0"+ + "\4\113\4\0\21\113\20\0\7\216\2\0\72\216\10\115"+ + "\1\0\72\115\37\0\1\217\43\0\10\120\1\0\72\120"+ + "\35\0\1\220\11\0\1\221\116\0\1\222\20\0\2\123"+ + "\12\0\1\123\4\0\1\223\1\110\1\111\17\0\1\111"+ + "\4\0\1\110\32\0\3\124\11\0\1\124\1\0\1\124"+ + "\2\106\1\212\2\124\17\0\2\124\1\106\2\0\2\124"+ + "\3\0\1\124\3\0\1\124\21\0\2\125\12\0\1\125"+ + "\2\0\2\106\1\212\23\0\1\106\35\0\2\126\12\0"+ + "\1\126\5\0\1\110\1\111\17\0\1\111\4\0\1\110"+ + "\53\0\1\224\60\0\10\23\1\0\72\23\30\0\1\225"+ + "\53\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\2\11\1\226\1\11\4\0\6\11\1\227\12\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\1\11\1\230\17\11\21\0\3\11"+ + "\1\0\2\11\6\0\4\11\1\231\1\0\2\11\5\0"+ + "\4\11\4\0\1\232\20\11\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\1\233\3\11\4\0"+ + "\21\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\4\11\4\0\1\11\1\234\17\11\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\4\11\4\0\10\11\1\235\10\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\3\11\1\236"+ + "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\4\11\4\0\21\11\1\0\1\237"+ + "\17\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\4\11\1\240\14\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\1\241"+ "\3\11\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\2\11\1\303\16\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\3\11\1\304\15\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\4\11\1\305\14\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\5\11\1\306\13\11\20\0\7\256\1\307\1\0\72\256"+ - "\1\0\1\310\1\0\1\310\11\0\1\310\1\0\1\310"+ - "\2\0\2\310\20\0\2\310\3\0\2\310\3\0\1\310"+ - "\3\0\1\310\21\0\3\76\1\0\2\76\6\0\4\76"+ - "\1\0\2\76\3\0\1\76\2\0\3\76\1\311\4\0"+ - "\21\76\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\11\2\0\4\11\4\0\16\11\1\312"+ - "\2\11\21\0\3\11\1\0\2\11\6\0\4\11\1\0"+ - "\2\11\3\0\1\11\2\0\4\11\4\0\3\11\1\313"+ - "\5\11\1\314\7\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\6\11\1\315\12\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\6\11\1\316\12\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\3\11\1\317\15\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\6\11\1\320\12\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\2\11\1\321\16\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\3\11\1\322"+ - "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\2\11\1\323\1\11"+ - "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\10\11"+ - "\1\324\10\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\12\11"+ - "\1\325\6\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\2\11"+ - "\1\326\16\11\21\0\1\327\1\0\1\327\11\0\1\327"+ - "\1\0\1\327\2\0\2\327\20\0\2\327\3\0\2\327"+ - "\3\0\1\327\3\0\1\327\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\4\0\4\11\1\330\14\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\4\0\7\11\1\331\11\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\4\0\7\11\1\332\11\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\4\0\13\11\1\333\5\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\4\0\5\11\1\334\13\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\4\11"+ - "\4\0\5\11\1\335\13\11\21\0\3\11\1\0\2\11"+ - "\6\0\4\11\1\0\2\11\3\0\1\11\2\0\1\336"+ - "\3\11\4\0\21\11\21\0\1\203\1\0\1\203\11\0"+ - "\1\203\1\0\1\203\2\0\2\203\20\0\2\203\3\0"+ - "\2\203\3\0\1\203\3\0\1\203\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\2\11\1\337\1\11\4\0\21\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\3\11\1\340\15\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\11\2\0"+ - "\4\11\4\0\2\11\1\341\16\11\21\0\3\11\1\0"+ - "\2\11\6\0\4\11\1\0\2\11\3\0\1\342\2\0"+ - "\4\11\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\3\11\1\343\15\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ - "\10\11\1\344\10\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\4\11\4\0"+ + "\5\11\1\0\2\11\5\0\4\11\4\0\5\11\1\242"+ + "\13\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\4\11\4\0\4\11\1\243\14\11\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\4\11\4\0\6\11\1\244\12\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ + "\3\11\1\245\15\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\4\11\4\0\5\11\1\246"+ + "\13\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\4\11\4\0\15\11\1\247\3\11\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\4\11\4\0\2\11\1\250\16\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\2\11\1\251"+ + "\1\11\4\0\2\11\1\252\16\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ + "\4\11\1\253\1\11\1\254\12\11\103\0\1\255\20\0"+ + "\3\200\1\0\2\200\6\0\5\200\1\0\2\200\5\0"+ + "\4\200\4\0\21\200\20\0\7\256\2\0\72\256\1\0"+ + "\1\257\1\0\1\257\11\0\1\257\1\0\1\257\3\0"+ + "\2\257\17\0\2\257\3\0\2\257\3\0\1\257\3\0"+ + "\1\257\50\0\1\260\52\0\7\206\1\261\1\0\72\206"+ + "\1\0\3\76\1\0\2\76\6\0\5\76\1\0\2\76"+ + "\5\0\2\76\1\262\1\76\4\0\21\76\42\0\1\213"+ + "\61\0\2\214\12\0\1\214\5\0\1\110\25\0\1\110"+ + "\31\0\7\216\1\263\1\0\72\216\12\0\1\264\71\0"+ + "\3\265\1\0\2\265\6\0\5\265\1\0\2\265\5\0"+ + "\4\265\4\0\21\265\21\0\1\126\13\0\1\126\66\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\3\11\1\266\4\0\21\11\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\11\11"+ + "\1\267\7\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\4\11\4\0\2\11\1\270\16\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\2\11\1\271\16\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ + "\4\0\2\11\1\272\16\11\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\2\11"+ + "\1\273\16\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\4\11\4\0\12\11\1\274\6\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\2\11\1\275\16\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ + "\4\0\4\11\1\276\14\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\277\1\0\2\11\5\0\4\11\4\0"+ + "\21\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\3\11\1\300\4\0\21\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\3\11"+ + "\1\301\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\1\302\3\11\4\0\21\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\2\11\1\303\16\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ + "\4\0\3\11\1\304\15\11\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\4\11"+ + "\1\305\14\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\4\11\4\0\5\11\1\306\13\11"+ + "\20\0\7\256\1\307\1\0\72\256\1\0\1\310\1\0"+ + "\1\310\11\0\1\310\1\0\1\310\3\0\2\310\17\0"+ + "\2\310\3\0\2\310\3\0\1\310\3\0\1\310\21\0"+ + "\3\76\1\0\2\76\6\0\5\76\1\0\2\76\5\0"+ + "\3\76\1\311\4\0\21\76\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\16\11"+ + "\1\312\2\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\4\11\4\0\3\11\1\313\5\11"+ + "\1\314\7\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\4\11\4\0\6\11\1\315\12\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\6\11\1\316\12\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ + "\4\0\3\11\1\317\15\11\21\0\3\11\1\0\2\11"+ + "\6\0\5\11\1\0\2\11\5\0\4\11\4\0\6\11"+ + "\1\320\12\11\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\4\11\4\0\2\11\1\321\16\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\3\11\1\322\4\0\21\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\2\11\1\323"+ + "\1\11\4\0\21\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\4\11\4\0\10\11\1\324"+ + "\10\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\4\11\4\0\12\11\1\325\6\11\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\4\11\4\0\2\11\1\326\16\11\21\0\1\327\1\0"+ + "\1\327\11\0\1\327\1\0\1\327\3\0\2\327\17\0"+ + "\2\327\3\0\2\327\3\0\1\327\3\0\1\327\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\4\11\4\0\4\11\1\330\14\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ + "\7\11\1\331\11\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\4\11\4\0\7\11\1\332"+ + "\11\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\4\11\4\0\13\11\1\333\5\11\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\4\11\4\0\5\11\1\334\13\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ + "\5\11\1\335\13\11\21\0\3\11\1\0\2\11\6\0"+ + "\5\11\1\0\2\11\5\0\1\336\3\11\4\0\21\11"+ + "\21\0\1\203\1\0\1\203\11\0\1\203\1\0\1\203"+ + "\3\0\2\203\17\0\2\203\3\0\2\203\3\0\1\203"+ + "\3\0\1\203\21\0\3\11\1\0\2\11\6\0\5\11"+ + "\1\0\2\11\5\0\2\11\1\337\1\11\4\0\21\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\3\11\1\340\15\11\21\0\3\11"+ + "\1\0\2\11\6\0\5\11\1\0\2\11\5\0\4\11"+ + "\4\0\2\11\1\341\16\11\21\0\3\11\1\0\2\11"+ + "\6\0\4\11\1\342\1\0\2\11\5\0\4\11\4\0"+ + "\21\11\21\0\3\11\1\0\2\11\6\0\5\11\1\0"+ + "\2\11\5\0\4\11\4\0\3\11\1\343\15\11\21\0"+ + "\3\11\1\0\2\11\6\0\5\11\1\0\2\11\5\0"+ + "\4\11\4\0\10\11\1\344\10\11\21\0\3\11\1\0"+ + "\2\11\6\0\5\11\1\0\2\11\5\0\4\11\4\0"+ "\2\11\1\345\16\11\21\0\3\11\1\0\2\11\6\0"+ - "\4\11\1\0\2\11\3\0\1\11\2\0\3\11\1\346"+ - "\4\0\21\11\21\0\3\11\1\0\2\11\6\0\4\11"+ - "\1\0\2\11\3\0\1\11\2\0\4\11\4\0\2\11"+ - "\1\347\16\11\20\0"; + "\5\11\1\0\2\11\5\0\3\11\1\346\4\0\21\11"+ + "\21\0\3\11\1\0\2\11\6\0\5\11\1\0\2\11"+ + "\5\0\4\11\4\0\2\11\1\347\16\11\20\0"; private static int [] zzUnpackTrans() { int [] result = new int[10318]; @@ -937,14 +904,14 @@ class _JetLexer implements FlexLexer { popState(); zzStartRead = commentStart; return commentStateToTokenType(state); - } + } // fall though case 232: break; case DOC_COMMENT: { int state = yystate(); popState(); zzStartRead = commentStart; return commentStateToTokenType(state); - } + } // fall though case 233: break; default: return null; @@ -954,143 +921,178 @@ class _JetLexer implements FlexLexer { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: { return TokenType.BAD_CHARACTER; - } + } + // fall through case 106: break; case 2: { return KtTokens.INTEGER_LITERAL; - } + } + // fall through case 107: break; case 3: { return KtTokens.IDENTIFIER; - } + } + // fall through case 108: break; case 4: { return KtTokens.WHITE_SPACE; - } + } + // fall through case 109: break; case 5: { pushState(UNMATCHED_BACKTICK); return TokenType.BAD_CHARACTER; - } + } + // fall through case 110: break; case 6: { return KtTokens.DIV ; - } + } + // fall through case 111: break; case 7: { return KtTokens.HASH ; - } + } + // fall through case 112: break; case 8: { return KtTokens.EXCL ; - } + } + // fall through case 113: break; case 9: { return KtTokens.DOT ; - } + } + // fall through case 114: break; case 10: { return KtTokens.MINUS ; - } + } + // fall through case 115: break; case 11: { return KtTokens.CHARACTER_LITERAL; - } + } + // fall through case 116: break; case 12: { pushState(STRING); return KtTokens.OPEN_QUOTE; - } + } + // fall through case 117: break; case 13: { return KtTokens.LBRACE ; - } + } + // fall through case 118: break; case 14: { return KtTokens.RBRACE ; - } + } + // fall through case 119: break; case 15: { return KtTokens.MUL ; - } + } + // fall through case 120: break; case 16: { return KtTokens.EQ ; - } + } + // fall through case 121: break; case 17: { return KtTokens.QUEST ; - } + } + // fall through case 122: break; case 18: { return KtTokens.PLUS ; - } + } + // fall through case 123: break; case 19: { return KtTokens.LT ; - } + } + // fall through case 124: break; case 20: { return KtTokens.GT ; - } + } + // fall through case 125: break; case 21: { return KtTokens.PERC ; - } + } + // fall through case 126: break; case 22: { return KtTokens.COLON ; - } + } + // fall through case 127: break; case 23: { return KtTokens.LBRACKET ; - } + } + // fall through case 128: break; case 24: { return KtTokens.RBRACKET ; - } + } + // fall through case 129: break; case 25: { return KtTokens.LPAR ; - } + } + // fall through case 130: break; case 26: { return KtTokens.RPAR ; - } + } + // fall through case 131: break; case 27: { return KtTokens.SEMICOLON ; - } + } + // fall through case 132: break; case 28: { return KtTokens.COMMA ; - } + } + // fall through case 133: break; case 29: { return KtTokens.AT ; - } + } + // fall through case 134: break; case 30: { return KtTokens.REGULAR_STRING_PART; - } + } + // fall through case 135: break; case 31: { popState(); yypushback(1); return KtTokens.DANGLING_NEWLINE; - } + } + // fall through case 136: break; case 32: { popState(); return KtTokens.CLOSING_QUOTE; - } + } + // fall through case 137: break; case 33: { popState(); return KtTokens.IDENTIFIER; - } + } + // fall through case 138: break; case 34: { - } + } + // fall through case 139: break; case 35: { lBraceCount++; return KtTokens.LBRACE; - } + } + // fall through case 140: break; case 36: { if (lBraceCount == 0) { @@ -1099,29 +1101,35 @@ class _JetLexer implements FlexLexer { } lBraceCount--; return KtTokens.RBRACE; - } + } + // fall through case 141: break; case 37: { return KtTokens.FLOAT_LITERAL; - } + } + // fall through case 142: break; case 38: { return KtTokens.FIELD_IDENTIFIER; - } + } + // fall through case 143: break; case 39: { return KtTokens.EOL_COMMENT; - } + } + // fall through case 144: break; case 40: { pushState(BLOCK_COMMENT); commentDepth = 0; commentStart = getTokenStart(); - } + } + // fall through case 145: break; case 41: { return KtTokens.DIVEQ ; - } + } + // fall through case 146: break; case 42: { if (zzCurrentPos == 0) { @@ -1131,113 +1139,140 @@ class _JetLexer implements FlexLexer { yypushback(yylength() - 1); return KtTokens.HASH; } - } + } + // fall through case 147: break; case 43: { return KtTokens.EXCLEQ ; - } + } + // fall through case 148: break; case 44: { return KtTokens.RANGE ; - } + } + // fall through case 149: break; case 45: { return KtTokens.MINUSMINUS; - } + } + // fall through case 150: break; case 46: { return KtTokens.MINUSEQ ; - } + } + // fall through case 151: break; case 47: { return KtTokens.ARROW ; - } + } + // fall through case 152: break; case 48: { return KtTokens.IS_KEYWORD ; - } + } + // fall through case 153: break; case 49: { return KtTokens.IN_KEYWORD ; - } + } + // fall through case 154: break; case 50: { return KtTokens.IF_KEYWORD ; - } + } + // fall through case 155: break; case 51: { return KtTokens.MULTEQ ; - } + } + // fall through case 156: break; case 52: { return KtTokens.AS_KEYWORD ; - } + } + // fall through case 157: break; case 53: { return KtTokens.DO_KEYWORD ; - } + } + // fall through case 158: break; case 54: { return KtTokens.EQEQ ; - } + } + // fall through case 159: break; case 55: { return KtTokens.DOUBLE_ARROW; - } + } + // fall through case 160: break; case 56: { return KtTokens.PLUSEQ ; - } + } + // fall through case 161: break; case 57: { return KtTokens.PLUSPLUS ; - } + } + // fall through case 162: break; case 58: { return KtTokens.LTEQ ; - } + } + // fall through case 163: break; case 59: { return KtTokens.GTEQ ; - } + } + // fall through case 164: break; case 60: { return KtTokens.ANDAND ; - } + } + // fall through case 165: break; case 61: { return KtTokens.OROR ; - } + } + // fall through case 166: break; case 62: { return KtTokens.PERCEQ ; - } + } + // fall through case 167: break; case 63: { return KtTokens.COLONCOLON; - } + } + // fall through case 168: break; case 64: { return KtTokens.DOUBLE_SEMICOLON; - } + } + // fall through case 169: break; case 65: { pushState(SHORT_TEMPLATE_ENTRY); yypushback(yylength() - 1); return KtTokens.SHORT_TEMPLATE_ENTRY_START; - } + } + // fall through case 170: break; case 66: { pushState(LONG_TEMPLATE_ENTRY); return KtTokens.LONG_TEMPLATE_ENTRY_START; - } + } + // fall through case 171: break; case 67: { return KtTokens.ESCAPE_SEQUENCE; - } + } + // fall through case 172: break; case 68: { commentDepth++; - } + } + // fall through case 173: break; case 69: { if (commentDepth > 0) { @@ -1249,65 +1284,80 @@ class _JetLexer implements FlexLexer { zzStartRead = commentStart; return commentStateToTokenType(state); } - } + } + // fall through case 174: break; case 70: { yypushback(2); return KtTokens.INTEGER_LITERAL; - } + } + // fall through case 175: break; case 71: { pushState(DOC_COMMENT); commentDepth = 0; commentStart = getTokenStart(); - } + } + // fall through case 176: break; case 72: { return KtTokens.NOT_IS; - } + } + // fall through case 177: break; case 73: { return KtTokens.NOT_IN; - } + } + // fall through case 178: break; case 74: { return KtTokens.EXCLEQEQEQ; - } + } + // fall through case 179: 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 ; - } + } + // fall through case 182: break; case 78: { return KtTokens.AS_SAFE; - } + } + // fall through case 183: break; case 79: { return KtTokens.FUN_KEYWORD ; - } + } + // fall through case 184: break; case 80: { return KtTokens.FOR_KEYWORD ; - } + } + // fall through case 185: break; case 81: { return KtTokens.VAL_KEYWORD ; - } + } + // fall through case 186: break; case 82: { return KtTokens.VAR_KEYWORD ; - } + } + // fall through case 187: break; case 83: { return KtTokens.EQEQEQ ; - } + } + // fall through case 188: break; case 84: { int length = yytext().length(); @@ -1319,91 +1369,113 @@ class _JetLexer implements FlexLexer { yypushback(3); // return the closing quotes (""") to the stream return KtTokens.REGULAR_STRING_PART; } - } + } + // fall through case 189: break; case 85: { return KtTokens.BLOCK_COMMENT; - } + } + // fall through case 190: break; case 86: { yypushback(3); return KtTokens.EXCL; - } + } + // fall through case 191: break; case 87: { return KtTokens.THIS_KEYWORD ; - } + } + // fall through case 192: break; case 88: { return KtTokens.TRUE_KEYWORD ; - } + } + // fall through case 193: break; case 89: { return KtTokens.ELSE_KEYWORD ; - } + } + // fall through case 194: break; case 90: { return KtTokens.NULL_KEYWORD ; - } + } + // fall through case 195: break; case 91: { return KtTokens.WHEN_KEYWORD ; - } + } + // fall through case 196: break; case 92: { popState(); return KtTokens.THIS_KEYWORD; - } + } + // fall through case 197: break; case 93: { return KtTokens.THROW_KEYWORD ; - } + } + // fall through case 198: break; case 94: { return KtTokens.SUPER_KEYWORD ; - } + } + // fall through case 199: break; case 95: { return KtTokens.FALSE_KEYWORD ; - } + } + // fall through case 200: break; case 96: { return KtTokens.CLASS_KEYWORD ; - } + } + // fall through case 201: break; case 97: { return KtTokens.BREAK_KEYWORD ; - } + } + // fall through case 202: break; case 98: { return KtTokens.WHILE_KEYWORD ; - } + } + // fall through case 203: break; case 99: { return KtTokens.TYPEOF_KEYWORD ; - } + } + // fall through case 204: break; case 100: { return KtTokens.RETURN_KEYWORD ; - } + } + // fall through case 205: break; case 101: { return KtTokens.OBJECT_KEYWORD ; - } + } + // fall through case 206: break; case 102: { return KtTokens.PACKAGE_KEYWORD ; - } + } + // fall through case 207: break; case 103: { return KtTokens.CONTINUE_KEYWORD ; - } + } + // fall through case 208: break; case 104: { return KtTokens.TYPE_ALIAS_KEYWORD ; - } + } + // fall through case 209: break; case 105: { return KtTokens.INTERFACE_KEYWORD ; - } + } + // fall through case 210: break; default: zzScanError(ZZ_NO_MATCH); diff --git a/compiler/testData/psi/UnsignedLiteral.kt b/compiler/testData/psi/UnsignedLiteral.kt new file mode 100644 index 00000000000..693602af5c2 --- /dev/null +++ b/compiler/testData/psi/UnsignedLiteral.kt @@ -0,0 +1,13 @@ +val array = array( + 1u, + 0u, + 1_1u, + -2u, + 0xFFu, + 0b100u, + 3.14u, + 1e1u, + 1.0e1u, + 2_2.0fu, + 6.022_137e+2_3fu +) \ No newline at end of file diff --git a/compiler/testData/psi/UnsignedLiteral.txt b/compiler/testData/psi/UnsignedLiteral.txt new file mode 100644 index 00000000000..6b5d55a4b07 --- /dev/null +++ b/compiler/testData/psi/UnsignedLiteral.txt @@ -0,0 +1,109 @@ +KtFile: UnsignedLiteral.kt + PACKAGE_DIRECTIVE + + IMPORT_LIST + + PROPERTY + PsiElement(val)('val') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('array') + PsiWhiteSpace(' ') + PsiElement(EQ)('=') + PsiWhiteSpace(' ') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('array') + TYPE_ARGUMENT_LIST + PsiElement(LT)('<') + TYPE_PROJECTION + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Any') + PsiElement(GT)('>') + VALUE_ARGUMENT_LIST + PsiElement(LPAR)('(') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1u') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0u') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('1_1u') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + PREFIX_EXPRESSION + OPERATION_REFERENCE + PsiElement(MINUS)('-') + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('2u') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0xFFu') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + INTEGER_CONSTANT + PsiElement(INTEGER_LITERAL)('0b100u') + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('3.14') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('u') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1e1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('u') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('1.0e1') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('u') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('2_2.0f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('u') + PsiErrorElement:Expecting an element + + PsiElement(COMMA)(',') + PsiWhiteSpace('\n ') + VALUE_ARGUMENT + BINARY_EXPRESSION + FLOAT_CONSTANT + PsiElement(FLOAT_CONSTANT)('6.022_137e+2_3f') + OPERATION_REFERENCE + PsiElement(IDENTIFIER)('u') + PsiErrorElement:Expecting an element + + PsiWhiteSpace('\n') + PsiElement(RPAR)(')') \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java index ad0e2810619..60a9fe03c66 100644 --- a/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java @@ -701,6 +701,11 @@ public class ParsingTestGenerated extends AbstractParsingTest { runTest("compiler/testData/psi/TypealiasIsKeyword.kt"); } + @TestMetadata("UnsignedLiteral.kt") + public void testUnsignedLiteral() throws Exception { + runTest("compiler/testData/psi/UnsignedLiteral.kt"); + } + @TestMetadata("When.kt") public void testWhen() throws Exception { runTest("compiler/testData/psi/When.kt");