From 5e2feb381613b4abbf6f2e4477ddc5e6ea6049ff Mon Sep 17 00:00:00 2001 From: Naoki Ikeguchi Date: Sun, 17 Nov 2024 02:55:27 +0900 Subject: [PATCH] fix(lang): Allow more character in identifiers --- .idea/gradle.xml | 3 +- .idea/modules.xml | 8 - .../typespec/lang/parser/_TypeSpecLexer.java | 647 +++++++++++++----- grammars/TypeSpec.bnf | 2 +- grammars/_TypeSpecLexer.flex | 2 +- 5 files changed, 462 insertions(+), 200 deletions(-) delete mode 100644 .idea/modules.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 97da7e7..ce1c62c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ + - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index b04e44c..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/gen/jp/s6n/idea/typespec/lang/parser/_TypeSpecLexer.java b/gen/jp/s6n/idea/typespec/lang/parser/_TypeSpecLexer.java index a8b373b..5fdccad 100644 --- a/gen/jp/s6n/idea/typespec/lang/parser/_TypeSpecLexer.java +++ b/gen/jp/s6n/idea/typespec/lang/parser/_TypeSpecLexer.java @@ -38,7 +38,29 @@ public class _TypeSpecLexer implements FlexLexer { private static final int [] ZZ_CMAP_TOP = zzUnpackcmap_top(); private static final String ZZ_CMAP_TOP_PACKED_0 = - "\1\0\37\u0100\1\u0200\267\u0100\10\u0300\u1020\u0100"; + "\1\0\1\u0100\1\u0200\1\u0300\1\u0400\1\u0500\1\u0600\1\u0700"+ + "\1\u0800\1\u0900\1\u0a00\1\u0b00\1\u0c00\1\u0d00\1\u0e00\1\u0f00"+ + "\1\u1000\1\u0100\1\u1100\1\u1200\1\u1300\1\u0100\1\u1400\1\u1500"+ + "\1\u1600\1\u1700\1\u1800\1\u1900\1\u1a00\1\u1b00\1\u0100\1\u1c00"+ + "\1\u1d00\1\u1e00\1\u1f00\1\u2000\1\u2100\1\u2200\1\u2300\1\u2400"+ + "\1\u1f00\1\u2500\1\u1f00\1\u2600\1\u2700\1\u2800\2\u1f00\1\u2900"+ + "\1\u2a00\1\u2b00\1\u1f00\31\u0100\1\u2c00\121\u0100\1\u2d00\4\u0100"+ + "\1\u2e00\1\u0100\1\u2f00\1\u3000\1\u3100\1\u3200\1\u3300\1\u3400"+ + "\53\u0100\1\u3500\10\u3600\31\u1f00\1\u0100\1\u3700\1\u3800\1\u0100"+ + "\1\u3900\1\u3a00\1\u3b00\1\u3c00\1\u3d00\1\u3e00\1\u3f00\1\u4000"+ + "\1\u4100\1\u0100\1\u4200\1\u4300\1\u4400\1\u4500\1\u4600\1\u4700"+ + "\1\u4800\1\u1f00\1\u4900\1\u4a00\1\u4b00\1\u4c00\1\u4d00\1\u4e00"+ + "\1\u4f00\1\u5000\1\u5100\1\u5200\1\u5300\1\u5400\1\u1f00\1\u5500"+ + "\1\u5600\1\u5700\1\u1f00\3\u0100\1\u5800\1\u5900\1\u5a00\12\u1f00"+ + "\4\u0100\1\u5b00\17\u1f00\2\u0100\1\u5c00\41\u1f00\2\u0100\1\u5d00"+ + "\1\u5e00\2\u1f00\1\u5f00\1\u6000\27\u0100\1\u6100\2\u0100\1\u6200"+ + "\45\u1f00\1\u0100\1\u6300\1\u6400\11\u1f00\1\u6500\24\u1f00\1\u6600"+ + "\1\u6700\1\u1f00\1\u6800\1\u6900\1\u6a00\1\u6b00\2\u1f00\1\u6c00"+ + "\5\u1f00\1\u6d00\1\u6e00\1\u6f00\5\u1f00\1\u7000\1\u7100\4\u1f00"+ + "\1\u7200\1\u1f00\1\u7300\1\u7400\1\u7500\1\u7600\1\u7700\1\u7800"+ + "\1\u7900\1\u7a00\1\u1f00\1\u7b00\1\u7c00\5\u1f00\246\u0100\1\u7d00"+ + "\20\u0100\1\u7e00\1\u7f00\25\u0100\1\u8000\34\u0100\1\u8100\14\u1f00"+ + "\2\u0100\1\u8200\u0b06\u1f00\1\u8300\u02fe\u1f00"; private static int [] zzUnpackcmap_top() { int [] result = new int[4352]; @@ -67,17 +89,260 @@ private static int zzUnpackcmap_top(String packed, int offset, int [] result) { private static final String ZZ_CMAP_BLOCKS_PACKED_0 = "\11\0\1\1\1\2\2\3\1\2\22\0\1\1\1\0"+ - "\1\4\1\5\2\0\1\6\1\0\1\7\1\10\1\11"+ - "\1\0\1\12\1\13\1\14\1\15\12\16\1\17\1\20"+ - "\1\21\1\22\1\23\1\24\1\25\32\26\1\27\1\30"+ - "\1\31\1\0\1\32\1\33\1\34\1\26\1\35\1\36"+ - "\1\37\1\40\1\41\1\26\1\42\2\26\1\43\1\44"+ - "\1\45\1\46\1\47\1\26\1\50\1\51\1\52\1\53"+ - "\1\54\1\26\1\55\1\56\1\26\1\57\1\60\1\61"+ - "\7\0\1\62\u01a2\0\2\62\326\0\u0100\62"; + "\1\4\1\5\1\6\1\0\1\7\1\0\1\10\1\11"+ + "\1\12\1\0\1\13\1\14\1\15\1\16\12\17\1\20"+ + "\1\21\1\22\1\23\1\24\1\25\1\26\32\6\1\27"+ + "\1\30\1\31\1\0\1\6\1\32\1\33\1\6\1\34"+ + "\1\35\1\36\1\37\1\40\1\6\1\41\2\6\1\42"+ + "\1\43\1\44\1\45\1\46\1\6\1\47\1\50\1\51"+ + "\1\52\1\53\1\6\1\54\1\55\1\6\1\56\1\57"+ + "\1\60\7\0\1\61\43\0\2\6\3\0\1\6\6\0"+ + "\1\6\1\0\1\62\2\0\1\6\5\0\27\6\1\0"+ + "\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6\7\0"+ + "\1\6\1\0\1\6\21\0\160\62\5\6\1\0\2\6"+ + "\2\0\4\6\1\0\1\6\6\0\1\6\1\62\3\6"+ + "\1\0\1\6\1\0\24\6\1\0\123\6\1\0\213\6"+ + "\1\0\5\62\2\0\246\6\1\0\46\6\2\0\1\6"+ + "\6\0\51\6\10\0\55\62\1\0\1\62\1\0\2\62"+ + "\1\0\2\62\1\0\1\62\10\0\33\6\4\0\4\6"+ + "\35\0\13\62\5\0\53\6\37\62\4\0\2\6\1\62"+ + "\143\6\1\0\1\6\7\62\2\0\6\62\2\6\2\62"+ + "\1\0\4\62\2\6\12\62\3\6\2\0\1\6\20\0"+ + "\1\6\1\62\36\6\33\62\2\0\131\6\13\62\1\6"+ + "\16\0\12\62\41\6\11\62\2\6\4\0\1\6\2\0"+ + "\1\62\2\0\26\6\4\62\1\6\11\62\1\6\3\62"+ + "\1\6\5\62\22\0\31\6\3\62\4\0\13\6\65\0"+ + "\25\6\1\0\10\6\25\0\17\62\1\0\41\62\66\6"+ + "\3\62\1\6\22\62\1\6\7\62\12\6\2\62\2\0"+ + "\12\62\1\0\20\6\3\62\1\0\10\6\2\0\2\6"+ + "\2\0\26\6\1\0\7\6\1\0\1\6\3\0\4\6"+ + "\2\0\1\62\1\6\7\62\2\0\2\62\2\0\3\62"+ + "\1\6\10\0\1\62\4\0\2\6\1\0\3\6\2\62"+ + "\2\0\12\62\2\6\12\0\1\6\1\0\1\62\2\0"+ + "\3\62\1\0\6\6\4\0\2\6\2\0\26\6\1\0"+ + "\7\6\1\0\2\6\1\0\2\6\1\0\2\6\2\0"+ + "\1\62\1\0\5\62\4\0\2\62\2\0\3\62\3\0"+ + "\1\62\7\0\4\6\1\0\1\6\7\0\14\62\3\6"+ + "\1\62\13\0\3\62\1\0\11\6\1\0\3\6\1\0"+ + "\26\6\1\0\7\6\1\0\2\6\1\0\5\6\2\0"+ + "\1\62\1\6\10\62\1\0\3\62\1\0\3\62\2\0"+ + "\1\6\17\0\2\6\2\62\2\0\12\62\11\0\1\6"+ + "\6\62\1\0\3\62\1\0\10\6\2\0\2\6\2\0"+ + "\26\6\1\0\7\6\1\0\2\6\1\0\5\6\2\0"+ + "\1\62\1\6\7\62\2\0\2\62\2\0\3\62\10\0"+ + "\2\62\4\0\2\6\1\0\3\6\2\62\2\0\12\62"+ + "\1\0\1\6\20\0\1\62\1\6\1\0\6\6\3\0"+ + "\3\6\1\0\4\6\3\0\2\6\1\0\1\6\1\0"+ + "\2\6\3\0\2\6\3\0\3\6\3\0\14\6\4\0"+ + "\5\62\3\0\3\62\1\0\4\62\2\0\1\6\6\0"+ + "\1\62\16\0\12\62\20\0\5\62\10\6\1\0\3\6"+ + "\1\0\27\6\1\0\20\6\3\0\1\6\7\62\1\0"+ + "\3\62\1\0\4\62\7\0\2\62\1\0\3\6\5\0"+ + "\2\6\2\62\2\0\12\62\20\0\1\6\3\62\1\0"+ + "\10\6\1\0\3\6\1\0\27\6\1\0\12\6\1\0"+ + "\5\6\2\0\1\62\1\6\7\62\1\0\3\62\1\0"+ + "\4\62\7\0\2\62\7\0\1\6\1\0\2\6\2\62"+ + "\2\0\12\62\1\0\2\6\15\0\4\62\1\0\10\6"+ + "\1\0\3\6\1\0\51\6\2\62\1\6\7\62\1\0"+ + "\3\62\1\0\4\62\1\6\5\0\3\6\1\62\7\0"+ + "\3\6\2\62\2\0\12\62\12\0\6\6\2\0\2\62"+ + "\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6"+ + "\2\0\7\6\3\0\1\62\4\0\6\62\1\0\1\62"+ + "\1\0\10\62\6\0\12\62\2\0\2\62\15\0\60\6"+ + "\1\62\2\6\7\62\5\0\7\6\10\62\1\0\12\62"+ + "\47\0\2\6\1\0\1\6\1\0\5\6\1\0\30\6"+ + "\1\0\1\6\1\0\12\6\1\62\2\6\11\62\1\6"+ + "\2\0\5\6\1\0\1\6\1\0\6\62\2\0\12\62"+ + "\2\0\4\6\40\0\1\6\27\0\2\62\6\0\12\62"+ + "\13\0\1\62\1\0\1\62\1\0\1\62\4\0\2\62"+ + "\10\6\1\0\44\6\4\0\24\62\1\0\2\62\5\6"+ + "\13\62\1\0\44\62\11\0\1\62\71\0\53\6\24\62"+ + "\1\6\12\62\6\0\6\6\4\62\4\6\3\62\1\6"+ + "\3\62\2\6\7\62\3\6\4\62\15\6\14\62\1\6"+ + "\17\62\2\0\46\6\1\0\1\6\5\0\1\6\2\0"+ + "\53\6\1\0\115\6\1\0\4\6\2\0\7\6\1\0"+ + "\1\6\1\0\4\6\2\0\51\6\1\0\4\6\2\0"+ + "\41\6\1\0\4\6\2\0\7\6\1\0\1\6\1\0"+ + "\4\6\2\0\17\6\1\0\71\6\1\0\4\6\2\0"+ + "\103\6\2\0\3\62\11\0\11\62\16\0\20\6\20\0"+ + "\126\6\2\0\6\6\3\0\u016c\6\2\0\21\6\1\0"+ + "\32\6\5\0\113\6\3\0\13\6\7\0\15\6\1\0"+ + "\4\6\3\62\13\0\22\6\3\62\13\0\22\6\2\62"+ + "\14\0\15\6\1\0\3\6\1\0\2\62\14\0\64\6"+ + "\40\62\3\0\1\6\4\0\1\6\1\62\2\0\12\62"+ + "\41\0\3\62\2\0\12\62\6\0\131\6\7\0\51\6"+ + "\1\62\1\6\5\0\106\6\12\0\37\6\1\0\14\62"+ + "\4\0\14\62\12\0\12\62\36\6\2\0\5\6\13\0"+ + "\54\6\4\0\32\6\6\0\13\62\45\0\27\6\5\62"+ + "\4\0\65\6\12\62\1\0\35\62\2\0\13\62\6\0"+ + "\12\62\15\0\1\6\10\0\16\62\102\0\5\62\57\6"+ + "\21\62\7\6\4\0\12\62\21\0\11\62\14\0\3\62"+ + "\36\6\15\62\2\6\12\62\54\6\16\62\14\0\44\6"+ + "\24\62\10\0\12\62\3\0\3\6\12\62\44\6\2\0"+ + "\11\6\7\0\53\6\2\0\3\6\20\0\3\62\1\0"+ + "\25\62\4\6\1\62\6\6\1\62\2\6\3\62\1\6"+ + "\5\0\300\6\72\62\1\0\5\62\26\6\2\0\6\6"+ + "\2\0\46\6\2\0\6\6\2\0\10\6\1\0\1\6"+ + "\1\0\1\6\1\0\1\6\1\0\37\6\2\0\65\6"+ + "\1\0\7\6\1\0\1\6\3\0\3\6\1\0\7\6"+ + "\3\0\4\6\2\0\6\6\4\0\15\6\5\0\3\6"+ + "\1\0\7\6\53\0\2\61\22\0\1\6\2\0\2\62"+ + "\10\0\1\6\12\0\1\62\34\0\1\6\15\0\1\6"+ + "\20\0\15\6\63\0\15\62\4\0\1\62\3\0\14\62"+ + "\21\0\1\6\4\0\1\6\2\0\12\6\1\0\1\6"+ + "\2\0\6\6\4\0\1\6\1\0\1\6\1\0\1\6"+ + "\1\0\1\6\1\0\20\6\2\0\4\6\5\0\5\6"+ + "\4\0\1\6\21\0\51\6\13\0\6\6\17\0\2\6"+ + "\u016f\0\2\6\14\0\1\6\246\0\1\6\31\0\13\6"+ + "\4\0\3\6\307\0\1\6\347\0\2\6\12\0\1\6"+ + "\11\0\1\6\72\0\4\6\1\0\5\6\11\0\1\6"+ + "\2\0\1\6\2\0\2\6\2\0\1\6\4\0\1\6"+ + "\2\0\1\6\1\0\2\6\2\0\1\6\3\0\1\6"+ + "\3\0\2\6\10\0\3\6\5\0\1\6\1\0\1\6"+ + "\5\0\14\6\13\0\2\6\2\0\1\6\1\0\2\6"+ + "\1\0\1\6\22\0\1\6\2\0\2\6\22\0\6\6"+ + "\1\0\1\6\1\0\2\6\3\0\2\6\10\0\2\6"+ + "\4\0\2\6\13\0\2\6\5\0\2\6\2\0\1\6"+ + "\5\0\2\6\1\0\1\6\1\0\2\6\24\0\2\6"+ + "\5\0\6\6\1\0\4\6\2\0\1\6\4\0\1\6"+ + "\2\0\1\6\2\0\6\6\1\0\1\6\2\0\1\6"+ + "\1\0\1\6\1\0\1\6\6\0\1\6\3\0\1\6"+ + "\6\0\1\6\12\0\2\6\17\0\1\6\2\0\1\6"+ + "\4\0\1\6\1\0\1\6\4\0\3\6\1\0\1\6"+ + "\13\0\2\6\60\0\3\6\11\0\1\6\16\0\1\6"+ + "\16\0\1\6\164\0\2\6\317\0\3\6\23\0\2\6"+ + "\63\0\1\6\4\0\1\6\252\0\57\6\1\0\57\6"+ + "\1\0\205\6\6\0\4\6\3\62\2\6\14\0\46\6"+ + "\1\0\1\6\5\0\1\6\2\0\70\6\7\0\1\6"+ + "\17\0\1\62\27\6\11\0\7\6\1\0\7\6\1\0"+ + "\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0"+ + "\7\6\1\0\7\6\1\0\40\62\5\0\3\6\31\0"+ + "\11\6\6\62\6\6\2\0\6\6\3\0\126\6\2\0"+ + "\2\62\5\6\1\0\132\6\1\0\4\6\5\0\53\6"+ + "\1\0\136\6\21\0\33\6\65\0\20\6\227\0\1\6"+ + "\1\0\1\6\146\0\266\6\112\0\360\6\20\0\215\6"+ + "\103\0\56\6\2\0\15\6\3\0\20\6\12\62\2\6"+ + "\24\0\57\6\1\62\4\0\12\62\1\0\37\6\2\62"+ + "\120\6\2\62\45\0\11\6\2\0\147\6\2\0\65\6"+ + "\2\0\5\6\60\0\13\6\1\62\3\6\1\62\4\6"+ + "\1\62\27\6\5\62\30\0\64\6\14\0\2\62\62\6"+ + "\22\62\12\0\12\62\6\0\22\62\6\6\3\0\1\6"+ + "\1\0\2\6\13\62\34\6\10\62\2\0\27\6\15\62"+ + "\14\0\35\6\3\0\4\62\57\6\16\62\16\0\1\6"+ + "\12\62\6\0\5\6\1\62\12\6\12\62\5\6\1\0"+ + "\51\6\16\62\11\0\3\6\1\62\10\6\2\62\2\0"+ + "\12\62\6\0\27\6\3\0\1\6\3\62\62\6\1\62"+ + "\1\6\3\62\2\6\2\62\5\6\2\62\1\6\1\62"+ + "\1\6\30\0\3\6\2\0\13\6\5\62\2\0\3\6"+ + "\2\62\12\0\6\6\2\0\6\6\2\0\6\6\11\0"+ + "\7\6\1\0\7\6\1\0\53\6\1\0\14\6\10\0"+ + "\163\6\10\62\1\0\2\62\2\0\12\62\6\0\244\6"+ + "\14\0\27\6\4\0\61\6\4\0\u0100\61\156\6\2\0"+ + "\152\6\46\0\7\6\14\0\5\6\5\0\1\6\1\62"+ + "\12\6\1\0\15\6\1\0\5\6\1\0\1\6\1\0"+ + "\2\6\1\0\2\6\1\0\154\6\41\0\153\6\22\0"+ + "\100\6\2\0\66\6\50\0\14\6\4\0\20\62\20\0"+ + "\20\62\3\0\2\62\30\0\3\62\40\0\5\6\1\0"+ + "\207\6\23\0\12\62\7\0\32\6\4\0\1\62\1\0"+ + "\32\6\13\0\131\6\3\0\6\6\2\0\6\6\2\0"+ + "\6\6\2\0\3\6\43\0\14\6\1\0\32\6\1\0"+ + "\23\6\1\0\2\6\1\0\17\6\2\0\16\6\42\0"+ + "\173\6\105\0\65\6\210\0\1\62\202\0\35\6\3\0"+ + "\61\6\17\0\1\62\37\0\40\6\15\0\36\6\5\0"+ + "\46\6\5\62\5\0\36\6\2\0\44\6\4\0\10\6"+ + "\1\0\5\6\52\0\236\6\2\0\12\62\6\0\44\6"+ + "\4\0\44\6\4\0\50\6\10\0\64\6\234\0\67\6"+ + "\11\0\26\6\12\0\10\6\230\0\6\6\2\0\1\6"+ + "\1\0\54\6\1\0\2\6\3\0\1\6\2\0\27\6"+ + "\12\0\27\6\11\0\37\6\101\0\23\6\1\0\2\6"+ + "\12\0\26\6\12\0\32\6\106\0\70\6\6\0\2\6"+ + "\100\0\1\6\3\62\1\0\2\62\5\0\4\62\4\6"+ + "\1\0\3\6\1\0\35\6\2\0\3\62\4\0\1\62"+ + "\40\0\35\6\3\0\35\6\43\0\10\6\1\0\34\6"+ + "\2\62\31\0\66\6\12\0\26\6\12\0\23\6\15\0"+ + "\22\6\156\0\111\6\67\0\63\6\15\0\63\6\15\0"+ + "\44\6\4\62\10\0\12\62\306\0\35\6\12\0\1\6"+ + "\10\0\26\6\13\62\217\0\27\6\11\0\3\62\65\6"+ + "\17\62\37\0\12\62\17\0\4\62\55\6\13\62\25\0"+ + "\31\6\7\0\12\62\6\0\3\62\44\6\16\62\1\0"+ + "\12\62\4\0\1\6\2\62\11\0\43\6\1\62\2\0"+ + "\1\6\11\0\3\62\60\6\16\62\4\6\4\0\4\62"+ + "\3\0\12\62\1\6\1\0\1\6\43\0\22\6\1\0"+ + "\31\6\14\62\6\0\1\62\101\0\7\6\1\0\1\6"+ + "\1\0\4\6\1\0\17\6\1\0\12\6\7\0\57\6"+ + "\14\62\5\0\12\62\6\0\4\62\1\0\10\6\2\0"+ + "\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0"+ + "\5\6\1\0\2\62\1\6\7\62\2\0\2\62\2\0"+ + "\3\62\2\0\1\6\6\0\1\62\5\0\5\6\2\62"+ + "\2\0\7\62\3\0\5\62\213\0\65\6\22\62\4\6"+ + "\5\0\12\62\4\0\1\62\1\6\40\0\60\6\24\62"+ + "\2\6\1\0\1\6\10\0\12\62\246\0\57\6\7\62"+ + "\2\0\11\62\27\0\4\6\2\62\42\0\60\6\21\62"+ + "\3\0\1\6\13\0\12\62\46\0\53\6\15\62\1\6"+ + "\7\0\12\62\66\0\33\6\2\0\17\62\4\0\12\62"+ + "\306\0\54\6\17\62\145\0\100\6\12\62\25\0\1\6"+ + "\240\0\10\6\2\0\47\6\7\62\2\0\7\62\1\6"+ + "\1\0\1\6\1\62\33\0\1\6\12\62\50\6\7\62"+ + "\1\6\4\62\10\0\1\62\10\0\1\6\13\62\56\6"+ + "\20\62\3\0\1\6\42\0\71\6\7\0\11\6\1\0"+ + "\45\6\10\62\1\0\10\62\1\6\17\0\12\62\30\0"+ + "\36\6\2\0\26\62\1\0\16\62\111\0\7\6\1\0"+ + "\2\6\1\0\46\6\6\62\3\0\1\62\1\0\2\62"+ + "\1\0\7\62\1\6\1\62\10\0\12\62\6\0\6\6"+ + "\1\0\2\6\1\0\40\6\5\62\1\0\2\62\1\0"+ + "\5\62\1\6\7\0\12\62\u0136\0\23\6\4\62\11\0"+ + "\232\6\146\0\157\6\21\0\304\6\274\0\57\6\321\0"+ + "\107\6\271\0\71\6\7\0\37\6\1\0\12\62\146\0"+ + "\36\6\2\0\5\62\13\0\60\6\7\62\11\0\4\6"+ + "\14\0\12\62\11\0\25\6\5\0\23\6\260\0\100\6"+ + "\200\0\113\6\4\0\1\62\1\6\67\62\7\0\4\62"+ + "\15\6\100\0\2\6\1\0\1\6\34\0\370\6\10\0"+ + "\363\6\15\0\37\6\61\0\3\6\21\0\4\6\10\0"+ + "\u018c\6\4\0\153\6\5\0\15\6\3\0\11\6\7\0"+ + "\12\6\3\0\2\62\306\0\5\62\3\0\6\62\10\0"+ + "\10\62\2\0\7\62\36\0\4\62\224\0\3\62\273\0"+ + "\125\6\1\0\107\6\1\0\2\6\2\0\1\6\2\0"+ + "\2\6\2\0\4\6\1\0\14\6\1\0\1\6\1\0"+ + "\7\6\1\0\101\6\1\0\4\6\2\0\10\6\1\0"+ + "\7\6\1\0\34\6\1\0\4\6\1\0\5\6\1\0"+ + "\1\6\3\0\7\6\1\0\u0154\6\2\0\31\6\1\0"+ + "\31\6\1\0\37\6\1\0\31\6\1\0\37\6\1\0"+ + "\31\6\1\0\37\6\1\0\31\6\1\0\37\6\1\0"+ + "\31\6\1\0\10\6\2\0\151\62\4\0\62\62\10\0"+ + "\1\62\16\0\1\62\26\0\5\62\1\0\17\62\120\0"+ + "\7\62\1\0\21\62\2\0\7\62\1\0\2\62\1\0"+ + "\5\62\325\0\55\6\3\0\7\62\7\6\2\0\12\62"+ + "\4\0\1\6\u0171\0\54\6\16\62\6\0\305\6\13\0"+ + "\7\62\51\0\104\6\7\62\1\6\4\0\12\62\246\0"+ + "\4\6\1\0\33\6\1\0\2\6\1\0\1\6\2\0"+ + "\1\6\1\0\12\6\1\0\4\6\1\0\1\6\1\0"+ + "\1\6\6\0\1\6\4\0\1\6\1\0\1\6\1\0"+ + "\1\6\1\0\3\6\1\0\2\6\1\0\1\6\2\0"+ + "\1\6\1\0\1\6\1\0\1\6\1\0\1\6\1\0"+ + "\1\6\1\0\2\6\1\0\1\6\2\0\4\6\1\0"+ + "\7\6\1\0\4\6\1\0\4\6\1\0\1\6\1\0"+ + "\12\6\1\0\21\6\5\0\3\6\1\0\5\6\1\0"+ + "\21\6\110\0\1\6\312\0\1\6\240\0\2\6\14\0"+ + "\2\6\16\0\1\6\2\0\12\6\113\0\32\6\1\0"+ + "\2\6\27\0\1\6\24\0\1\6\2\0\11\6\25\0"+ + "\2\6\256\0\42\6\2\0\160\6\2\0\2\6\1\0"+ + "\3\6\2\0\123\6\2\0\3\6\1\0\u0107\6\1\0"+ + "\77\6\13\0\6\6\1\0\30\6\7\0\2\6\2\0"+ + "\10\6\14\0\1\6\2\0\4\6\2\0\1\6\4\0"+ + "\2\6\15\0\2\6\2\0\1\6\10\0\2\6\11\0"+ + "\1\6\5\0\3\6\14\0\3\6\10\0\3\6\2\0"+ + "\1\6\1\0\1\6\4\0\1\6\6\0\1\6\3\0"+ + "\1\6\6\0\126\6\60\0\106\6\5\0\10\6\2\0"+ + "\1\6\12\0\6\6\3\0\1\6\1\0\2\6\3\0"+ + "\1\6\2\0\10\6\345\0\14\6\41\0\56\6\1\0"+ + "\12\6\1\0\53\6\1\0\4\6\3\0\51\6\2\0"+ + "\6\6\3\0\35\6\2\0\63\6\160\0\4\6\4\0"+ + "\3\6\5\0\3\6\15\0\6\6\152\0\327\6\51\0"+ + "\65\6\13\0\336\6\2\0\u0182\6\16\0\u0131\6\37\0"+ + "\36\6\342\0\360\62\20\0"; private static int [] zzUnpackcmap_blocks() { - int [] result = new int[1024]; + int [] result = new int[33792]; int offset = 0; offset = zzUnpackcmap_blocks(ZZ_CMAP_BLOCKS_PACKED_0, offset, result); return result; @@ -102,19 +367,20 @@ private static int zzUnpackcmap_blocks(String packed, int offset, int [] result) private static final String ZZ_ACTION_PACKED_0 = "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7"+ - "\1\10\1\1\1\11\1\1\1\12\1\13\1\14\1\15"+ + "\1\10\1\11\1\1\1\12\1\1\1\13\1\14\1\15"+ "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\1"+ - "\14\22\1\25\1\26\1\27\1\3\1\0\1\30\1\31"+ - "\2\0\1\32\1\0\1\33\1\34\2\0\10\22\1\35"+ - "\3\22\1\36\7\22\1\37\2\0\1\12\3\22\1\40"+ - "\1\41\20\22\3\0\1\42\1\22\1\43\3\22\1\44"+ - "\5\22\1\45\4\22\1\46\1\42\1\0\1\47\1\50"+ - "\2\22\1\51\2\22\1\52\1\22\1\53\2\22\1\54"+ - "\1\55\1\22\1\47\1\22\1\56\1\57\2\22\1\60"+ - "\1\61\1\22\1\62\2\22\1\63\2\22\1\64\1\65"; + "\14\5\1\25\1\26\1\27\1\3\1\0\1\30\1\31"+ + "\1\13\2\0\1\32\1\0\1\33\1\34\2\0\10\5"+ + "\1\35\3\5\1\36\7\5\1\37\2\0\1\13\3\5"+ + "\1\40\1\41\20\5\3\0\1\42\1\5\1\43\3\5"+ + "\1\44\5\5\1\45\4\5\1\46\1\42\1\0\1\47"+ + "\1\50\2\5\1\51\2\5\1\52\1\5\1\53\2\5"+ + "\1\54\1\55\1\5\1\47\1\5\1\56\1\57\2\5"+ + "\1\60\1\61\1\5\1\62\2\5\1\63\2\5\1\64"+ + "\1\65"; private static int [] zzUnpackAction() { - int [] result = new int[151]; + int [] result = new int[152]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -139,28 +405,28 @@ private static int zzUnpackAction(String packed, int offset, int [] result) { private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\63\0\146\0\231\0\314\0\63\0\63\0\63"+ - "\0\63\0\377\0\u0132\0\u0165\0\u0198\0\u01cb\0\63\0\63"+ - "\0\63\0\63\0\63\0\u01fe\0\u0231\0\63\0\63\0\u0264"+ + "\0\0\0\63\0\146\0\231\0\314\0\377\0\63\0\63"+ + "\0\63\0\63\0\u0132\0\u0165\0\u0198\0\u01cb\0\u01fe\0\63"+ + "\0\63\0\63\0\63\0\63\0\u0231\0\63\0\63\0\u0264"+ "\0\u0297\0\u02ca\0\u02fd\0\u0330\0\u0363\0\u0396\0\u03c9\0\u03fc"+ "\0\u042f\0\u0462\0\u0495\0\u04c8\0\63\0\63\0\63\0\63"+ - "\0\u04fb\0\63\0\63\0\u052e\0\u0561\0\u0594\0\u05c7\0\63"+ - "\0\63\0\u05fa\0\u062d\0\u0660\0\u0693\0\u06c6\0\u06f9\0\u072c"+ - "\0\u075f\0\u0792\0\u07c5\0\u0231\0\u07f8\0\u082b\0\u085e\0\u0231"+ - "\0\u0891\0\u08c4\0\u08f7\0\u092a\0\u095d\0\u0990\0\u09c3\0\63"+ - "\0\u09f6\0\u0a29\0\u05c7\0\63\0\u05fa\0\u0a5c\0\u0231\0\u0231"+ - "\0\u0a8f\0\u0ac2\0\u0af5\0\u0b28\0\u0b5b\0\u0b8e\0\u0bc1\0\u0bf4"+ + "\0\u04fb\0\63\0\63\0\u052e\0\u0561\0\u0594\0\u05c7\0\u05fa"+ + "\0\63\0\63\0\u062d\0\u0660\0\u0693\0\u06c6\0\u06f9\0\u072c"+ + "\0\u075f\0\u0792\0\u07c5\0\u07f8\0\377\0\u082b\0\u085e\0\u0891"+ + "\0\377\0\u08c4\0\u08f7\0\u092a\0\u095d\0\u0990\0\u09c3\0\u09f6"+ + "\0\63\0\u0a29\0\u0a5c\0\u05fa\0\63\0\u062d\0\u0a8f\0\377"+ + "\0\377\0\u0ac2\0\u0af5\0\u0b28\0\u0b5b\0\u0b8e\0\u0bc1\0\u0bf4"+ "\0\u0c27\0\u0c5a\0\u0c8d\0\u0cc0\0\u0cf3\0\u0d26\0\u0d59\0\u0d8c"+ - "\0\u0dbf\0\u0df2\0\u0e25\0\u0df2\0\u0e58\0\u0231\0\u0e8b\0\u0ebe"+ - "\0\u0ef1\0\u0231\0\u0f24\0\u0f57\0\u0f8a\0\u0fbd\0\u0ff0\0\u0231"+ - "\0\u1023\0\u1056\0\u1089\0\u10bc\0\u0231\0\63\0\u10ef\0\u09f6"+ - "\0\u0231\0\u1122\0\u1155\0\u0231\0\u1188\0\u11bb\0\u0231\0\u11ee"+ - "\0\u0231\0\u1221\0\u1254\0\u0231\0\u0231\0\u1287\0\63\0\u12ba"+ - "\0\u0231\0\u0231\0\u12ed\0\u1320\0\u0231\0\u0231\0\u1353\0\u0231"+ - "\0\u1386\0\u13b9\0\u0231\0\u13ec\0\u141f\0\u0231\0\u0231"; + "\0\u0dbf\0\u0df2\0\u0e25\0\u0e58\0\u0e25\0\u0e8b\0\377\0\u0ebe"+ + "\0\u0ef1\0\u0f24\0\377\0\u0f57\0\u0f8a\0\u0fbd\0\u0ff0\0\u1023"+ + "\0\377\0\u1056\0\u1089\0\u10bc\0\u10ef\0\377\0\63\0\u1122"+ + "\0\u0a29\0\377\0\u1155\0\u1188\0\377\0\u11bb\0\u11ee\0\377"+ + "\0\u1221\0\377\0\u1254\0\u1287\0\377\0\377\0\u12ba\0\63"+ + "\0\u12ed\0\377\0\377\0\u1320\0\u1353\0\377\0\377\0\u1386"+ + "\0\377\0\u13b9\0\u13ec\0\377\0\u141f\0\u1452\0\377\0\377"; private static int [] zzUnpackRowMap() { - int [] result = new int[151]; + int [] result = new int[152]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -183,142 +449,145 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) { private static final int [] ZZ_TRANS = zzUnpacktrans(); private static final String ZZ_TRANS_PACKED_0 = - "\1\2\3\3\1\4\1\5\1\6\1\7\1\10\1\2"+ - "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+ + "\1\2\3\3\1\4\1\5\1\6\1\7\1\10\1\11"+ + "\1\6\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+ "\1\21\1\22\1\23\1\24\1\25\1\26\1\2\1\27"+ - "\1\2\1\30\1\31\1\25\1\32\1\33\1\34\1\25"+ - "\1\35\1\25\1\36\1\37\1\40\2\25\1\41\1\42"+ - "\1\43\1\44\2\25\1\45\1\46\1\47\1\2\64\0"+ - "\3\3\57\0\2\4\1\0\1\4\1\50\23\4\1\51"+ - "\32\4\27\0\1\52\27\0\1\53\21\0\1\15\60\0"+ - "\1\54\57\0\1\55\3\0\1\56\61\0\1\57\1\0"+ - "\1\15\63\0\1\60\70\0\1\61\50\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\23\25\4\0"+ - "\30\62\1\63\2\62\1\0\27\62\13\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\7\25\1\64"+ - "\1\25\1\65\11\25\17\0\1\25\2\0\1\25\7\0"+ - "\1\25\3\0\1\25\1\0\3\25\1\66\17\25\17\0"+ - "\1\25\2\0\1\25\7\0\1\25\3\0\1\25\1\0"+ - "\11\25\1\67\7\25\1\70\1\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\1\71\22\25"+ - "\17\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\10\25\1\72\1\73\3\25\1\74\5\25\17\0"+ - "\1\25\2\0\1\25\7\0\1\25\3\0\1\25\1\0"+ - "\12\25\1\75\10\25\17\0\1\25\2\0\1\25\7\0"+ - "\1\25\3\0\1\25\1\0\1\76\2\25\1\77\17\25"+ - "\17\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\13\25\1\100\7\25\17\0\1\25\2\0\1\25"+ - "\7\0\1\25\3\0\1\25\1\0\1\25\1\101\21\25"+ - "\17\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\14\25\1\102\5\25\1\103\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\11\25\1\104"+ - "\3\25\1\105\5\25\17\0\1\25\2\0\1\25\7\0"+ - "\1\25\3\0\1\25\1\0\1\106\11\25\1\107\10\25"+ - "\4\0\2\4\1\0\60\4\14\0\1\110\46\0\11\111"+ - "\1\112\51\111\2\56\2\0\56\56\17\0\1\113\44\0"+ - "\30\62\1\63\2\62\1\114\57\62\1\63\2\62\1\115"+ - "\27\62\13\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\6\25\1\116\14\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\22\25\1\117"+ - "\17\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\1\25\1\120\21\25\17\0\1\25\2\0\1\25"+ - "\7\0\1\25\3\0\1\25\1\0\17\25\1\121\3\25"+ - "\17\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\16\25\1\122\4\25\17\0\1\25\2\0\1\25"+ - "\7\0\1\25\3\0\1\25\1\0\7\25\1\123\13\25"+ - "\17\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\13\25\1\124\7\25\17\0\1\25\2\0\1\25"+ - "\7\0\1\25\3\0\1\25\1\0\6\25\1\125\7\25"+ - "\1\126\4\25\17\0\1\25\2\0\1\25\7\0\1\25"+ - "\3\0\1\25\1\0\2\25\1\127\20\25\17\0\1\25"+ - "\2\0\1\25\7\0\1\25\3\0\1\25\1\0\10\25"+ - "\1\130\12\25\17\0\1\25\2\0\1\25\7\0\1\25"+ - "\3\0\1\25\1\0\20\25\1\131\2\25\17\0\1\25"+ - "\2\0\1\25\7\0\1\25\3\0\1\25\1\0\1\132"+ - "\22\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\17\25\1\133\3\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\13\25\1\134"+ - "\7\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\6\25\1\135\14\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\6\25\1\136"+ - "\14\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\7\25\1\137\13\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\6\25\1\140"+ - "\14\25\4\0\11\111\1\141\51\111\11\142\1\143\3\142"+ - "\1\144\45\142\13\0\1\25\2\0\1\25\7\0\1\25"+ - "\3\0\1\25\1\0\1\145\22\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\10\25\1\146"+ - "\12\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\3\25\1\147\17\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\15\25\1\150"+ - "\5\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\12\25\1\151\10\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\16\25\1\152"+ - "\4\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\3\25\1\153\17\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\3\25\1\154"+ - "\17\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\3\25\1\155\17\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\3\25\1\156"+ - "\17\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\7\25\1\157\13\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\3\25\1\160"+ - "\17\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\3\25\1\161\17\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\12\25\1\162"+ - "\10\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\11\25\1\163\11\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\17\25\1\164"+ - "\3\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\2\25\1\165\20\25\4\0\15\111\1\166"+ - "\45\111\11\142\1\167\62\142\1\112\3\142\1\170\45\142"+ - "\13\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\15\25\1\171\5\25\17\0\1\25\2\0\1\25"+ - "\7\0\1\25\3\0\1\25\1\0\11\25\1\172\2\25"+ - "\1\173\6\25\17\0\1\25\2\0\1\25\7\0\1\25"+ - "\3\0\1\25\1\0\3\25\1\174\17\25\17\0\1\25"+ - "\2\0\1\25\7\0\1\25\3\0\1\25\1\0\14\25"+ - "\1\175\6\25\17\0\1\25\2\0\1\25\7\0\1\25"+ - "\3\0\1\25\1\0\14\25\1\176\6\25\17\0\1\25"+ - "\2\0\1\25\7\0\1\25\3\0\1\25\1\0\7\25"+ - "\1\177\13\25\17\0\1\25\2\0\1\25\7\0\1\25"+ - "\3\0\1\25\1\0\15\25\1\200\5\25\17\0\1\25"+ - "\2\0\1\25\7\0\1\25\3\0\1\25\1\0\14\25"+ - "\1\201\6\25\17\0\1\25\2\0\1\25\7\0\1\25"+ - "\3\0\1\25\1\0\1\202\22\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\12\25\1\203"+ - "\10\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\11\25\1\204\11\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\5\25\1\205"+ - "\15\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\3\25\1\206\17\25\4\0\15\142\1\207"+ - "\45\142\13\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\2\25\1\210\20\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\11\25\1\211"+ - "\11\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\16\25\1\212\4\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\4\25\1\213"+ - "\16\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\13\25\1\214\7\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\14\25\1\215"+ - "\6\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\4\25\1\216\16\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\12\25\1\217"+ - "\10\25\17\0\1\25\2\0\1\25\7\0\1\25\3\0"+ - "\1\25\1\0\15\25\1\220\5\25\17\0\1\25\2\0"+ - "\1\25\7\0\1\25\3\0\1\25\1\0\1\221\22\25"+ - "\17\0\1\25\2\0\1\25\7\0\1\25\3\0\1\25"+ - "\1\0\1\222\22\25\17\0\1\25\2\0\1\25\7\0"+ - "\1\25\3\0\1\25\1\0\4\25\1\223\16\25\17\0"+ - "\1\25\2\0\1\25\7\0\1\25\3\0\1\25\1\0"+ - "\1\25\1\224\21\25\17\0\1\25\2\0\1\25\7\0"+ - "\1\25\3\0\1\25\1\0\1\25\1\225\21\25\17\0"+ - "\1\25\2\0\1\25\7\0\1\25\3\0\1\25\1\0"+ - "\3\25\1\226\17\25\17\0\1\25\2\0\1\25\7\0"+ - "\1\25\3\0\1\25\1\0\3\25\1\227\17\25\4\0"; + "\1\30\1\31\1\6\1\32\1\33\1\34\1\6\1\35"+ + "\1\6\1\36\1\37\1\40\2\6\1\41\1\42\1\43"+ + "\1\44\2\6\1\45\1\46\1\47\2\2\64\0\3\3"+ + "\57\0\2\4\1\0\1\4\1\50\23\4\1\51\32\4"+ + "\5\0\2\6\3\0\1\6\4\0\1\6\7\0\1\52"+ + "\3\0\23\6\1\53\3\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\23\6\4\0\1\6\17\0"+ + "\1\54\60\0\1\55\57\0\1\56\3\0\1\57\51\0"+ + "\2\6\3\0\1\6\2\0\1\60\1\0\1\16\13\0"+ + "\23\6\4\0\1\6\20\0\1\61\70\0\1\62\34\0"+ + "\30\63\1\64\1\63\1\0\30\63\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\7\6\1\65\1\6\1\66"+ + "\11\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\3\6\1\67\17\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\11\6\1\70"+ + "\7\6\1\71\1\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\1\72\22\6\4\0\1\6"+ + "\5\0\2\6\3\0\1\6\4\0\1\6\13\0\10\6"+ + "\1\73\1\74\3\6\1\75\5\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\12\6\1\76"+ + "\10\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\1\77\2\6\1\100\17\6\4\0\1\6"+ + "\5\0\2\6\3\0\1\6\4\0\1\6\13\0\13\6"+ + "\1\101\7\6\4\0\1\6\5\0\2\6\3\0\1\6"+ + "\4\0\1\6\13\0\1\6\1\102\21\6\4\0\1\6"+ + "\5\0\2\6\3\0\1\6\4\0\1\6\13\0\14\6"+ + "\1\103\5\6\1\104\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\11\6\1\105\3\6\1\106"+ + "\5\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\1\107\11\6\1\110\10\6\4\0\1\6"+ + "\2\4\1\0\60\4\15\0\1\60\1\0\1\54\60\0"+ + "\1\111\45\0\12\112\1\113\50\112\2\57\2\0\55\57"+ + "\1\0\1\57\17\0\1\114\43\0\30\63\1\64\1\63"+ + "\1\115\60\63\1\64\1\63\1\116\30\63\5\0\2\6"+ + "\3\0\1\6\4\0\1\6\13\0\6\6\1\117\14\6"+ + "\4\0\1\6\5\0\2\6\3\0\1\6\4\0\1\6"+ + "\13\0\22\6\1\120\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\1\6\1\121\21\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\17\6\1\122\3\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\16\6\1\123\4\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\7\6\1\124\13\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\13\6\1\125\7\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\6\6\1\126\7\6\1\127\4\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\2\6\1\130"+ + "\20\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\10\6\1\131\12\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\20\6\1\132"+ + "\2\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\1\133\22\6\4\0\1\6\5\0\2\6"+ + "\3\0\1\6\4\0\1\6\13\0\17\6\1\134\3\6"+ + "\4\0\1\6\5\0\2\6\3\0\1\6\4\0\1\6"+ + "\13\0\13\6\1\135\7\6\4\0\1\6\5\0\2\6"+ + "\3\0\1\6\4\0\1\6\13\0\6\6\1\136\14\6"+ + "\4\0\1\6\5\0\2\6\3\0\1\6\4\0\1\6"+ + "\13\0\6\6\1\137\14\6\4\0\1\6\5\0\2\6"+ + "\3\0\1\6\4\0\1\6\13\0\7\6\1\140\13\6"+ + "\4\0\1\6\5\0\2\6\3\0\1\6\4\0\1\6"+ + "\13\0\6\6\1\141\14\6\4\0\1\6\12\112\1\142"+ + "\50\112\12\143\1\144\3\143\1\145\44\143\5\0\2\6"+ + "\3\0\1\6\4\0\1\6\13\0\1\146\22\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\10\6\1\147\12\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\3\6\1\150\17\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\15\6\1\151\5\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\12\6\1\152\10\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\16\6\1\153\4\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\3\6\1\154\17\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\3\6\1\155\17\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\3\6\1\156\17\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\3\6\1\157\17\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\7\6\1\160\13\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\3\6\1\161\17\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\3\6\1\162\17\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\12\6\1\163\10\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\11\6\1\164\11\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\17\6\1\165\3\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\2\6\1\166\20\6\4\0"+ + "\1\6\16\112\1\167\44\112\12\143\1\170\62\143\1\113"+ + "\3\143\1\171\44\143\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\15\6\1\172\5\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\11\6\1\173"+ + "\2\6\1\174\6\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\3\6\1\175\17\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\14\6\1\176\6\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\14\6\1\177\6\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\7\6\1\200\13\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\15\6\1\201\5\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\14\6\1\202\6\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\1\203\22\6\4\0\1\6"+ + "\5\0\2\6\3\0\1\6\4\0\1\6\13\0\12\6"+ + "\1\204\10\6\4\0\1\6\5\0\2\6\3\0\1\6"+ + "\4\0\1\6\13\0\11\6\1\205\11\6\4\0\1\6"+ + "\5\0\2\6\3\0\1\6\4\0\1\6\13\0\5\6"+ + "\1\206\15\6\4\0\1\6\5\0\2\6\3\0\1\6"+ + "\4\0\1\6\13\0\3\6\1\207\17\6\4\0\1\6"+ + "\16\143\1\210\44\143\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\2\6\1\211\20\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\11\6\1\212"+ + "\11\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\16\6\1\213\4\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\4\6\1\214"+ + "\16\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\13\6\1\215\7\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\14\6\1\216"+ + "\6\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\4\6\1\217\16\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\12\6\1\220"+ + "\10\6\4\0\1\6\5\0\2\6\3\0\1\6\4\0"+ + "\1\6\13\0\15\6\1\221\5\6\4\0\1\6\5\0"+ + "\2\6\3\0\1\6\4\0\1\6\13\0\1\222\22\6"+ + "\4\0\1\6\5\0\2\6\3\0\1\6\4\0\1\6"+ + "\13\0\1\223\22\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\4\6\1\224\16\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\1\6\1\225\21\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\1\6\1\226\21\6\4\0"+ + "\1\6\5\0\2\6\3\0\1\6\4\0\1\6\13\0"+ + "\3\6\1\227\17\6\4\0\1\6\5\0\2\6\3\0"+ + "\1\6\4\0\1\6\13\0\3\6\1\230\17\6\4\0"+ + "\1\6"; private static int [] zzUnpacktrans() { - int [] result = new int[5202]; + int [] result = new int[5253]; int offset = 0; offset = zzUnpacktrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -356,13 +625,13 @@ private static int zzUnpacktrans(String packed, int offset, int [] result) { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\1\0\1\11\3\1\4\11\5\1\5\11\2\1\2\11"+ - "\15\1\4\11\1\0\2\11\2\0\1\1\1\0\2\11"+ - "\2\0\24\1\1\11\2\0\1\1\1\11\24\1\3\0"+ - "\22\1\1\11\1\0\17\1\1\11\20\1"; + "\1\0\1\11\4\1\4\11\5\1\5\11\1\1\2\11"+ + "\15\1\4\11\1\0\2\11\1\1\2\0\1\1\1\0"+ + "\2\11\2\0\24\1\1\11\2\0\1\1\1\11\24\1"+ + "\3\0\22\1\1\11\1\0\17\1\1\11\20\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[151]; + int [] result = new int[152]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -697,72 +966,72 @@ else if (zzAtEOF) { // fall through case 57: break; case 5: - { return AMP; + { return IDENT; } // fall through case 58: break; case 6: - { return LPAREN; + { return AMP; } // fall through case 59: break; case 7: - { return RPAREN; + { return LPAREN; } // fall through case 60: break; case 8: - { return COMMA; + { return RPAREN; } // fall through case 61: break; case 9: - { return DOT; + { return COMMA; } // fall through case 62: break; case 10: - { return NUMERIC_LITERAL; + { return DOT; } // fall through case 63: break; case 11: - { return COLON; + { return NUMERIC_LITERAL; } // fall through case 64: break; case 12: - { return SEMICOLON; + { return COLON; } // fall through case 65: break; case 13: - { return LT; + { return SEMICOLON; } // fall through case 66: break; case 14: - { return EQ; + { return LT; } // fall through case 67: break; case 15: - { return GT; + { return EQ; } // fall through case 68: break; case 16: - { return QUEST; + { return GT; } // fall through case 69: break; case 17: - { return AT; + { return QUEST; } // fall through case 70: break; case 18: - { return IDENT; + { return AT; } // fall through case 71: break; diff --git a/grammars/TypeSpec.bnf b/grammars/TypeSpec.bnf index f8309a3..5a6ef26 100644 --- a/grammars/TypeSpec.bnf +++ b/grammars/TypeSpec.bnf @@ -65,7 +65,7 @@ STRING_LITERAL = 'regexp:"([^\\"\r\n]|\\[^\r\n])*"?' NUMERIC_LITERAL = 'regexp:-?\d+(\.\d+)?' - IDENT = 'regexp:[a-zA-Z][a-zA-Z0-9\-_]*|`(\\`|[^`])+`' + IDENT = 'regexp:[$_\p{ID_Start}\p{Emoji}][$\p{ID_Continue}\p{Emoji}]*|`(\\`|[^`])+`' WHITE_SPACE = 'regexp:\s+' DOC_COMMENT = 'regexp:/\*\*([^*]|\*[^/])*\*/' diff --git a/grammars/_TypeSpecLexer.flex b/grammars/_TypeSpecLexer.flex index afd6249..dfed09c 100644 --- a/grammars/_TypeSpecLexer.flex +++ b/grammars/_TypeSpecLexer.flex @@ -27,7 +27,7 @@ WHITE_SPACE=\s+ STRING_LITERAL=\"([^\\\"\r\n]|\\[^\r\n])*\"? NUMERIC_LITERAL=-?[0-9]+(\.[0-9]+)? -IDENT=[a-zA-Z][a-zA-Z0-9\-_]*|`(\\`|[^`])+` +IDENT=[$_\p{ID_Start}\p{Emoji}][$\p{ID_Continue}\p{Emoji}]*|`(\\`|[^`])+` WHITE_SPACE=[ \t\n\x0B\f\r]+ DOC_COMMENT="/"\*\*([^*]|\*[^/])*\*"/" BLOCK_COMMENT="/"\*([^*]|\*[^/])*\*"/"