diff --git a/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java b/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java index 2fcc6c22e913..0042b519d518 100644 --- a/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java +++ b/plugins/groovy/groovy-psi/gen/org/jetbrains/plugins/groovy/lang/lexer/_GroovyLexer.java @@ -215,31 +215,31 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { "\1\0\1\153\3\52\1\137\3\52\1\140\1\141\32\52"+ "\1\145\3\52\1\146\5\52\1\133\1\154\1\62\2\134"+ "\1\136\1\0\3\7\1\155\6\7\1\156\1\7\1\157"+ - "\2\0\2\7\1\160\3\0\1\14\7\0\7\7\1\161"+ + "\2\0\2\7\1\160\3\0\2\14\6\0\7\7\1\161"+ "\2\7\1\162\10\7\1\163\1\164\3\7\1\165\1\7"+ "\1\166\1\7\1\167\3\52\1\155\6\52\1\156\1\52"+ "\1\157\2\52\1\160\7\52\1\161\2\52\1\162\10\52"+ "\1\163\1\164\3\52\1\165\1\52\1\166\1\52\1\133"+ "\2\154\1\62\1\0\1\134\1\170\1\171\1\172\7\7"+ - "\1\173\1\7\1\14\1\0\1\14\5\0\6\7\1\174"+ + "\1\173\1\7\1\14\1\0\1\14\4\0\6\7\1\174"+ "\1\175\3\7\1\176\1\7\1\177\1\7\1\200\1\7"+ "\1\201\3\7\1\202\1\170\1\171\1\172\7\52\1\173"+ "\7\52\1\174\1\175\3\52\1\176\1\52\1\177\1\52"+ "\1\200\1\52\1\201\3\52\1\202\1\133\1\0\1\154"+ - "\1\0\2\7\1\203\3\7\1\204\2\7\2\0\3\7"+ + "\1\0\2\7\1\203\3\7\1\204\2\7\1\0\3\7"+ "\1\205\1\7\1\206\1\7\1\207\2\7\1\210\1\7"+ "\1\211\1\212\1\213\1\7\2\52\1\203\3\52\1\204"+ "\5\52\1\205\1\52\1\206\1\52\1\207\2\52\1\210"+ "\1\52\1\211\1\212\1\213\1\52\1\0\1\214\3\7"+ - "\1\215\1\216\1\217\1\14\1\220\1\221\7\7\1\214"+ - "\3\52\1\215\1\216\1\217\1\220\1\221\7\52\4\7"+ - "\1\222\1\223\1\224\2\7\1\225\4\52\1\222\1\223"+ - "\1\224\2\52\1\225\2\7\1\226\1\227\1\7\1\230"+ - "\2\52\1\226\1\227\1\52\1\230\1\231\1\232\1\7"+ - "\1\231\1\232\1\52\1\7\1\52\2\233"; + "\1\215\1\216\1\217\1\220\1\221\7\7\1\214\3\52"+ + "\1\215\1\216\1\217\1\220\1\221\7\52\4\7\1\222"+ + "\1\223\1\224\2\7\1\225\4\52\1\222\1\223\1\224"+ + "\2\52\1\225\2\7\1\226\1\227\1\7\1\230\2\52"+ + "\1\226\1\227\1\52\1\230\1\231\1\232\1\7\1\231"+ + "\1\232\1\52\1\7\1\52\2\233"; private static int [] zzUnpackAction() { - int [] result = new int[684]; + int [] result = new int[681]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -326,33 +326,33 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { "\0\u0378\0\u0378\0\u5262\0\u6b3e\0\u057e\0\u6b88\0\u057e\0\u6bd2"+ "\0\u6c1c\0\u6c66\0\u6cb0\0\u6cfa\0\u6d44\0\u6d8e\0\u057e\0\u6dd8"+ "\0\u6e22\0\u6e6c\0\u6eb6\0\u6f00\0\u6f4a\0\u6f94\0\u6fde\0\u7028"+ - "\0\u7072\0\u70bc\0\u7106\0\u7150\0\u719a\0\u71e4\0\u057e\0\u057e"+ - "\0\u722e\0\u7278\0\u72c2\0\u057e\0\u730c\0\u057e\0\u7356\0\u057e"+ - "\0\u73a0\0\u73ea\0\u7434\0\u747e\0\u74c8\0\u057e\0\u1236\0\u7512"+ - "\0\u1236\0\u755c\0\u75a6\0\u75f0\0\u763a\0\u7684\0\u76ce\0\u7718"+ - "\0\u1236\0\u7762\0\u77ac\0\u77f6\0\u7840\0\u788a\0\u78d4\0\u791e"+ - "\0\u1236\0\u1236\0\u7968\0\u79b2\0\u79fc\0\u1236\0\u7a46\0\u1236"+ - "\0\u7a90\0\u1236\0\u7ada\0\u7b24\0\u7b6e\0\u7bb8\0\u7c02\0\u1236"+ - "\0\u0378\0\u6aaa\0\u7c4c\0\u6b3e\0\u7c96\0\u7ce0\0\u057e\0\u7d2a"+ - "\0\u7d74\0\u7dbe\0\u057e\0\u7e08\0\u7e52\0\u7e9c\0\u7ee6\0\u7f30"+ - "\0\u7f7a\0\u7fc4\0\u057e\0\u800e\0\u057e\0\u8058\0\u057e\0\u80a2"+ - "\0\u80ec\0\u057e\0\u8136\0\u057e\0\u057e\0\u057e\0\u8180\0\u81ca"+ - "\0\u8214\0\u1236\0\u825e\0\u82a8\0\u82f2\0\u1236\0\u833c\0\u8386"+ - "\0\u83d0\0\u841a\0\u8464\0\u1236\0\u84ae\0\u1236\0\u84f8\0\u1236"+ - "\0\u8542\0\u858c\0\u1236\0\u85d6\0\u1236\0\u1236\0\u1236\0\u8620"+ - "\0\u7c4c\0\u057e\0\u866a\0\u86b4\0\u86fe\0\u057e\0\u057e\0\u057e"+ - "\0\u6f00\0\u057e\0\u057e\0\u8748\0\u8792\0\u87dc\0\u8826\0\u8870"+ - "\0\u88ba\0\u8904\0\u1236\0\u894e\0\u8998\0\u89e2\0\u1236\0\u1236"+ - "\0\u1236\0\u1236\0\u1236\0\u8a2c\0\u8a76\0\u8ac0\0\u8b0a\0\u8b54"+ - "\0\u8b9e\0\u8be8\0\u8c32\0\u8c7c\0\u8cc6\0\u8d10\0\u057e\0\u057e"+ - "\0\u057e\0\u8d5a\0\u8da4\0\u057e\0\u8dee\0\u8e38\0\u8e82\0\u8ecc"+ - "\0\u1236\0\u1236\0\u1236\0\u8f16\0\u8f60\0\u1236\0\u8faa\0\u8ff4"+ - "\0\u057e\0\u057e\0\u903e\0\u057e\0\u9088\0\u90d2\0\u1236\0\u1236"+ - "\0\u911c\0\u1236\0\u057e\0\u057e\0\u9166\0\u1236\0\u1236\0\u91b0"+ - "\0\u91fa\0\u9244\0\u057e\0\u1236"; + "\0\u7072\0\u70bc\0\u7106\0\u7150\0\u719a\0\u057e\0\u057e\0\u71e4"+ + "\0\u722e\0\u7278\0\u057e\0\u72c2\0\u057e\0\u730c\0\u057e\0\u7356"+ + "\0\u73a0\0\u73ea\0\u7434\0\u747e\0\u057e\0\u1236\0\u74c8\0\u1236"+ + "\0\u7512\0\u755c\0\u75a6\0\u75f0\0\u763a\0\u7684\0\u76ce\0\u1236"+ + "\0\u7718\0\u7762\0\u77ac\0\u77f6\0\u7840\0\u788a\0\u78d4\0\u1236"+ + "\0\u1236\0\u791e\0\u7968\0\u79b2\0\u1236\0\u79fc\0\u1236\0\u7a46"+ + "\0\u1236\0\u7a90\0\u7ada\0\u7b24\0\u7b6e\0\u7bb8\0\u1236\0\u0378"+ + "\0\u6aaa\0\u7c02\0\u6b3e\0\u7c4c\0\u7c96\0\u057e\0\u7ce0\0\u7d2a"+ + "\0\u7d74\0\u057e\0\u7dbe\0\u7e08\0\u7e52\0\u7e9c\0\u7ee6\0\u7f30"+ + "\0\u057e\0\u7f7a\0\u057e\0\u7fc4\0\u057e\0\u800e\0\u8058\0\u057e"+ + "\0\u80a2\0\u057e\0\u057e\0\u057e\0\u80ec\0\u8136\0\u8180\0\u1236"+ + "\0\u81ca\0\u8214\0\u825e\0\u1236\0\u82a8\0\u82f2\0\u833c\0\u8386"+ + "\0\u83d0\0\u1236\0\u841a\0\u1236\0\u8464\0\u1236\0\u84ae\0\u84f8"+ + "\0\u1236\0\u8542\0\u1236\0\u1236\0\u1236\0\u858c\0\u7c02\0\u057e"+ + "\0\u85d6\0\u8620\0\u866a\0\u057e\0\u057e\0\u057e\0\u057e\0\u057e"+ + "\0\u86b4\0\u86fe\0\u8748\0\u8792\0\u87dc\0\u8826\0\u8870\0\u1236"+ + "\0\u88ba\0\u8904\0\u894e\0\u1236\0\u1236\0\u1236\0\u1236\0\u1236"+ + "\0\u8998\0\u89e2\0\u8a2c\0\u8a76\0\u8ac0\0\u8b0a\0\u8b54\0\u8b9e"+ + "\0\u8be8\0\u8c32\0\u8c7c\0\u057e\0\u057e\0\u057e\0\u8cc6\0\u8d10"+ + "\0\u057e\0\u8d5a\0\u8da4\0\u8dee\0\u8e38\0\u1236\0\u1236\0\u1236"+ + "\0\u8e82\0\u8ecc\0\u1236\0\u8f16\0\u8f60\0\u057e\0\u057e\0\u8faa"+ + "\0\u057e\0\u8ff4\0\u903e\0\u1236\0\u1236\0\u9088\0\u1236\0\u057e"+ + "\0\u057e\0\u90d2\0\u1236\0\u1236\0\u911c\0\u9166\0\u91b0\0\u057e"+ + "\0\u1236"; private static int [] zzUnpackRowMap() { - int [] result = new int[684]; + int [] result = new int[681]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -735,249 +735,247 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { "\35\0\14\26\1\u01e8\1\26\2\0\7\26\1\0\2\26"+ "\3\0\20\26\22\0\1\232\2\u0112\1\u01e9\2\u0112\1\u0113"+ "\103\232\2\0\2\232\2\u0184\1\u01ea\105\0\1\u0112\1\232"+ - "\2\u0184\1\u01ea\103\0\6\u0114\1\u0186\36\u0114\1\u01eb\111\u0114"+ - "\1\u01ec\44\u0114\1\235\2\u0116\1\u01ed\2\u0116\1\u0117\103\235"+ - "\2\0\2\235\2\u0189\1\u01ee\105\0\1\u0116\1\235\2\u0189"+ - "\1\u01ee\103\0\6\u018b\1\u018c\35\u018b\1\0\1\u018b\1\u01ef"+ - "\163\u018b\1\0\35\u018b\1\0\1\u018b\1\u01f0\43\u018b\13\0"+ - "\16\26\2\0\7\26\1\0\2\26\3\0\1\26\1\u01f1"+ - "\16\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ - "\1\26\1\u01f2\16\26\35\0\14\26\1\u01f3\1\26\2\0"+ - "\7\26\1\0\2\26\3\0\20\26\35\0\10\26\1\u01f4"+ - "\5\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ - "\16\26\2\0\7\26\1\0\2\26\3\0\6\26\1\u01f5"+ - "\11\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ - "\6\26\1\u01f6\11\26\35\0\16\26\2\0\7\26\1\0"+ - "\2\26\3\0\4\26\1\u01f7\13\26\35\0\16\26\2\0"+ - "\7\26\1\0\2\26\3\0\15\26\1\u01f8\2\26\35\0"+ - "\10\26\1\u01f9\5\26\2\0\7\26\1\0\2\26\3\0"+ - "\20\26\35\0\10\26\1\u01fa\5\26\2\0\7\26\1\0"+ + "\2\u0184\1\u01ea\103\0\157\u0114\1\u01eb\44\u0114\1\235\2\u0116"+ + "\1\u01ec\2\u0116\1\u0117\103\235\2\0\2\235\2\u0189\1\u01ed"+ + "\105\0\1\u0116\1\235\2\u0189\1\u01ed\103\0\6\u018b\1\u018c"+ + "\35\u018b\1\0\1\u018b\1\u01ee\163\u018b\1\0\35\u018b\1\0"+ + "\1\u018b\1\u01ef\43\u018b\13\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\1\26\1\u01f0\16\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\1\26\1\u01f1\16\26\35\0"+ + "\14\26\1\u01f2\1\26\2\0\7\26\1\0\2\26\3\0"+ + "\20\26\35\0\10\26\1\u01f3\5\26\2\0\7\26\1\0"+ "\2\26\3\0\20\26\35\0\16\26\2\0\7\26\1\0"+ - "\2\26\3\0\2\26\1\u01fb\15\26\35\0\16\26\2\0"+ - "\7\26\1\0\2\26\3\0\6\26\1\u01fc\11\26\35\0"+ - "\16\26\2\0\7\26\1\0\2\26\3\0\15\26\1\u01fd"+ - "\2\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ - "\5\26\1\u01fe\12\26\35\0\16\26\2\0\7\26\1\0"+ - "\2\26\3\0\2\26\1\u01ff\15\26\35\0\16\26\2\0"+ - "\7\26\1\0\2\26\3\0\5\26\1\u0200\12\26\35\0"+ - "\16\26\2\0\7\26\1\0\2\26\3\0\4\26\1\u0201"+ + "\2\26\3\0\6\26\1\u01f4\11\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\6\26\1\u01f5\11\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\4\26\1\u01f6"+ "\13\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ - "\17\26\1\u0202\35\0\16\26\2\0\7\26\1\0\2\26"+ - "\3\0\6\26\1\u0203\11\26\35\0\16\26\2\0\7\26"+ - "\1\0\2\26\3\0\13\26\1\u0204\4\26\35\0\16\26"+ - "\2\0\7\26\1\0\2\26\3\0\5\26\1\u0205\12\26"+ - "\35\0\14\26\1\u0206\1\26\2\0\7\26\1\0\2\26"+ - "\3\0\20\26\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\5\122\1\u0207\12\122\35\0\6\122\1\u0208\7\122"+ - "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\14\122"+ - "\1\u0209\1\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\35\0\14\122\1\u020a\1\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\6\122\1\u020b\11\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\1\122\1\u020c\16\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\6\122\1\u020d\11\122"+ - "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\12\122"+ - "\1\u020e\5\122\35\0\6\122\1\u020f\7\122\2\0\7\122"+ - "\1\0\1\122\4\0\20\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\11\122\1\u0210\6\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\3\122\1\u0211\14\122"+ - "\35\0\14\122\1\u0212\1\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\1\122\1\u0213\16\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\1\122\1\u0214\16\122\35\0\14\122"+ - "\1\u0215\1\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\35\0\10\122\1\u0216\5\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\6\122\1\u0217\11\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\6\122\1\u0218\11\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\4\122\1\u0219\13\122"+ - "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\15\122"+ - "\1\u021a\2\122\35\0\10\122\1\u021b\5\122\2\0\7\122"+ - "\1\0\1\122\4\0\20\122\35\0\10\122\1\u021c\5\122"+ + "\15\26\1\u01f7\2\26\35\0\10\26\1\u01f8\5\26\2\0"+ + "\7\26\1\0\2\26\3\0\20\26\35\0\10\26\1\u01f9"+ + "\5\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\2\26\1\u01fa"+ + "\15\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ + "\6\26\1\u01fb\11\26\35\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\15\26\1\u01fc\2\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\5\26\1\u01fd\12\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\2\26\1\u01fe"+ + "\15\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ + "\5\26\1\u01ff\12\26\35\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\4\26\1\u0200\13\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\17\26\1\u0201\35\0\16\26"+ + "\2\0\7\26\1\0\2\26\3\0\6\26\1\u0202\11\26"+ + "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\13\26"+ + "\1\u0203\4\26\35\0\16\26\2\0\7\26\1\0\2\26"+ + "\3\0\5\26\1\u0204\12\26\35\0\14\26\1\u0205\1\26"+ + "\2\0\7\26\1\0\2\26\3\0\20\26\35\0\16\122"+ + "\2\0\7\122\1\0\1\122\4\0\5\122\1\u0206\12\122"+ + "\35\0\6\122\1\u0207\7\122\2\0\7\122\1\0\1\122"+ + "\4\0\20\122\35\0\14\122\1\u0208\1\122\2\0\7\122"+ + "\1\0\1\122\4\0\20\122\35\0\14\122\1\u0209\1\122"+ "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\2\122\1\u021d\15\122"+ + "\2\0\7\122\1\0\1\122\4\0\6\122\1\u020a\11\122"+ + "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\1\122"+ + "\1\u020b\16\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\6\122\1\u020c\11\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\12\122\1\u020d\5\122\35\0\6\122"+ + "\1\u020e\7\122\2\0\7\122\1\0\1\122\4\0\20\122"+ + "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\11\122"+ + "\1\u020f\6\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\3\122\1\u0210\14\122\35\0\14\122\1\u0211\1\122"+ + "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\16\122"+ + "\2\0\7\122\1\0\1\122\4\0\1\122\1\u0212\16\122"+ + "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\1\122"+ + "\1\u0213\16\122\35\0\14\122\1\u0214\1\122\2\0\7\122"+ + "\1\0\1\122\4\0\20\122\35\0\10\122\1\u0215\5\122"+ + "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\16\122"+ + "\2\0\7\122\1\0\1\122\4\0\6\122\1\u0216\11\122"+ "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\6\122"+ - "\1\u021e\11\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\15\122\1\u021f\2\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\5\122\1\u0220\12\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\2\122\1\u0221\15\122"+ + "\1\u0217\11\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\4\122\1\u0218\13\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\15\122\1\u0219\2\122\35\0\10\122"+ + "\1\u021a\5\122\2\0\7\122\1\0\1\122\4\0\20\122"+ + "\35\0\10\122\1\u021b\5\122\2\0\7\122\1\0\1\122"+ + "\4\0\20\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\2\122\1\u021c\15\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\6\122\1\u021d\11\122\35\0\16\122"+ + "\2\0\7\122\1\0\1\122\4\0\15\122\1\u021e\2\122"+ "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\5\122"+ - "\1\u0222\12\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\4\122\1\u0223\13\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\17\122\1\u0224\35\0\16\122\2\0"+ - "\7\122\1\0\1\122\4\0\6\122\1\u0225\11\122\35\0"+ - "\16\122\2\0\7\122\1\0\1\122\4\0\13\122\1\u0226"+ - "\4\122\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ - "\5\122\1\u0227\12\122\35\0\14\122\1\u0228\1\122\2\0"+ - "\7\122\1\0\1\122\4\0\20\122\22\0\7\u016a\1\u0229"+ - "\1\u022a\101\u016a\10\u01d8\1\u022b\101\u01d8\7\u016d\1\u016e\1\u022c"+ - "\101\u016d\13\0\6\26\1\u022d\7\26\2\0\7\26\1\0"+ - "\2\26\3\0\20\26\35\0\16\26\2\0\7\26\1\0"+ - "\2\26\3\0\7\26\1\u022e\10\26\35\0\16\26\2\0"+ - "\7\26\1\0\2\26\3\0\5\26\1\u022f\12\26\35\0"+ - "\16\26\2\0\7\26\1\0\2\26\3\0\11\26\1\u0230"+ - "\6\26\35\0\4\26\1\u0231\11\26\2\0\7\26\1\0"+ - "\2\26\3\0\20\26\35\0\6\26\1\u0232\7\26\2\0"+ - "\7\26\1\0\2\26\3\0\20\26\35\0\14\26\1\u0233"+ - "\1\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ - "\12\26\1\u0234\3\26\2\0\7\26\1\0\2\26\3\0"+ - "\20\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ - "\1\26\1\u0235\16\26\22\0\2\232\1\u0112\1\232\2\u0112"+ - "\1\u0183\36\232\1\u0111\44\232\1\0\2\u0184\1\u0185\1\0"+ - "\1\u0184\104\0\6\u0114\1\u0186\36\u0114\1\u0236\111\u0114\1\u0111"+ + "\1\u021f\12\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\2\122\1\u0220\15\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\5\122\1\u0221\12\122\35\0\16\122"+ + "\2\0\7\122\1\0\1\122\4\0\4\122\1\u0222\13\122"+ + "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\17\122"+ + "\1\u0223\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ + "\6\122\1\u0224\11\122\35\0\16\122\2\0\7\122\1\0"+ + "\1\122\4\0\13\122\1\u0225\4\122\35\0\16\122\2\0"+ + "\7\122\1\0\1\122\4\0\5\122\1\u0226\12\122\35\0"+ + "\14\122\1\u0227\1\122\2\0\7\122\1\0\1\122\4\0"+ + "\20\122\22\0\7\u016a\1\u0228\1\u0229\101\u016a\10\u01d8\1\u022a"+ + "\101\u01d8\7\u016d\1\u016e\1\u022b\101\u016d\13\0\6\26\1\u022c"+ + "\7\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\7\26\1\u022d"+ + "\10\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ + "\5\26\1\u022e\12\26\35\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\11\26\1\u022f\6\26\35\0\4\26\1\u0230"+ + "\11\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ + "\6\26\1\u0231\7\26\2\0\7\26\1\0\2\26\3\0"+ + "\20\26\35\0\14\26\1\u0232\1\26\2\0\7\26\1\0"+ + "\2\26\3\0\20\26\35\0\12\26\1\u0233\3\26\2\0"+ + "\7\26\1\0\2\26\3\0\20\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\1\26\1\u0234\16\26\22\0"+ + "\2\232\1\u0112\1\232\2\u0112\1\u0183\36\232\1\u0111\44\232"+ + "\1\0\2\u0184\1\u0185\1\0\1\u0184\104\0\45\u0114\1\u0111"+ "\44\u0114\2\235\1\u0116\1\235\2\u0116\1\u0188\35\235\1\0"+ "\1\235\1\u0115\43\235\1\0\2\u0189\1\u018a\1\0\1\u0189"+ - "\104\0\6\u018b\1\0\35\u018b\1\0\1\u018b\1\u0237\51\u018b"+ + "\104\0\6\u018b\1\0\35\u018b\1\0\1\u018b\1\u0235\51\u018b"+ "\1\0\35\u018b\1\0\1\u018b\1\0\43\u018b\13\0\2\26"+ - "\1\u0238\13\26\2\0\7\26\1\0\2\26\3\0\20\26"+ + "\1\u0236\13\26\2\0\7\26\1\0\2\26\3\0\20\26"+ "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\5\26"+ - "\1\u0239\12\26\35\0\16\26\2\0\7\26\1\0\2\26"+ - "\3\0\2\26\1\u023a\15\26\35\0\16\26\2\0\7\26"+ - "\1\0\2\26\3\0\2\26\1\u023b\15\26\35\0\16\26"+ - "\2\0\7\26\1\0\2\26\3\0\1\26\1\u023c\16\26"+ + "\1\u0237\12\26\35\0\16\26\2\0\7\26\1\0\2\26"+ + "\3\0\2\26\1\u0238\15\26\35\0\16\26\2\0\7\26"+ + "\1\0\2\26\3\0\2\26\1\u0239\15\26\35\0\16\26"+ + "\2\0\7\26\1\0\2\26\3\0\1\26\1\u023a\16\26"+ "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\5\26"+ - "\1\u023d\12\26\35\0\16\26\2\0\7\26\1\0\2\26"+ - "\3\0\11\26\1\u023e\6\26\35\0\16\26\2\0\7\26"+ - "\1\0\2\26\3\0\2\26\1\u023f\15\26\35\0\16\26"+ - "\2\0\7\26\1\0\2\26\3\0\5\26\1\u0240\12\26"+ + "\1\u023b\12\26\35\0\16\26\2\0\7\26\1\0\2\26"+ + "\3\0\11\26\1\u023c\6\26\35\0\16\26\2\0\7\26"+ + "\1\0\2\26\3\0\2\26\1\u023d\15\26\35\0\16\26"+ + "\2\0\7\26\1\0\2\26\3\0\5\26\1\u023e\12\26"+ "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\6\26"+ - "\1\u0241\11\26\35\0\16\26\2\0\7\26\1\0\2\26"+ - "\3\0\15\26\1\u0242\2\26\35\0\10\26\1\u0243\5\26"+ + "\1\u023f\11\26\35\0\16\26\2\0\7\26\1\0\2\26"+ + "\3\0\15\26\1\u0240\2\26\35\0\10\26\1\u0241\5\26"+ "\2\0\7\26\1\0\2\26\3\0\20\26\35\0\16\26"+ - "\2\0\7\26\1\0\2\26\3\0\4\26\1\u0244\13\26"+ + "\2\0\7\26\1\0\2\26\3\0\4\26\1\u0242\13\26"+ "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\11\26"+ - "\1\u0245\6\26\35\0\14\26\1\u0246\1\26\2\0\7\26"+ - "\1\0\2\26\3\0\20\26\35\0\10\26\1\u0247\5\26"+ + "\1\u0243\6\26\35\0\14\26\1\u0244\1\26\2\0\7\26"+ + "\1\0\2\26\3\0\20\26\35\0\10\26\1\u0245\5\26"+ "\2\0\7\26\1\0\2\26\3\0\20\26\35\0\6\122"+ - "\1\u0248\7\122\2\0\7\122\1\0\1\122\4\0\20\122"+ + "\1\u0246\7\122\2\0\7\122\1\0\1\122\4\0\20\122"+ "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\7\122"+ - "\1\u0249\10\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\5\122\1\u024a\12\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\11\122\1\u024b\6\122\35\0\4\122"+ - "\1\u024c\11\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\35\0\6\122\1\u024d\7\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\35\0\14\122\1\u024e\1\122\2\0\7\122"+ - "\1\0\1\122\4\0\20\122\35\0\12\122\1\u024f\3\122"+ + "\1\u0247\10\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\5\122\1\u0248\12\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\11\122\1\u0249\6\122\35\0\4\122"+ + "\1\u024a\11\122\2\0\7\122\1\0\1\122\4\0\20\122"+ + "\35\0\6\122\1\u024b\7\122\2\0\7\122\1\0\1\122"+ + "\4\0\20\122\35\0\14\122\1\u024c\1\122\2\0\7\122"+ + "\1\0\1\122\4\0\20\122\35\0\12\122\1\u024d\3\122"+ "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\1\122\1\u0250\16\122"+ - "\35\0\2\122\1\u0251\13\122\2\0\7\122\1\0\1\122"+ + "\2\0\7\122\1\0\1\122\4\0\1\122\1\u024e\16\122"+ + "\35\0\2\122\1\u024f\13\122\2\0\7\122\1\0\1\122"+ "\4\0\20\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\5\122\1\u0252\12\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\2\122\1\u0253\15\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\2\122\1\u0254\15\122"+ + "\4\0\5\122\1\u0250\12\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\2\122\1\u0251\15\122\35\0\16\122"+ + "\2\0\7\122\1\0\1\122\4\0\2\122\1\u0252\15\122"+ "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\1\122"+ - "\1\u0255\16\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\5\122\1\u0256\12\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\11\122\1\u0257\6\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\2\122\1\u0258\15\122"+ + "\1\u0253\16\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\5\122\1\u0254\12\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\11\122\1\u0255\6\122\35\0\16\122"+ + "\2\0\7\122\1\0\1\122\4\0\2\122\1\u0256\15\122"+ "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\5\122"+ - "\1\u0259\12\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\6\122\1\u025a\11\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\15\122\1\u025b\2\122\35\0\10\122"+ - "\1\u025c\5\122\2\0\7\122\1\0\1\122\4\0\20\122"+ + "\1\u0257\12\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\6\122\1\u0258\11\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\15\122\1\u0259\2\122\35\0\10\122"+ + "\1\u025a\5\122\2\0\7\122\1\0\1\122\4\0\20\122"+ "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\4\122"+ - "\1\u025d\13\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\11\122\1\u025e\6\122\35\0\14\122\1\u025f\1\122"+ + "\1\u025b\13\122\35\0\16\122\2\0\7\122\1\0\1\122"+ + "\4\0\11\122\1\u025c\6\122\35\0\14\122\1\u025d\1\122"+ "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\10\122"+ - "\1\u0260\5\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\22\0\7\u01d8\1\u01d9\1\u0261\101\u01d8\13\0\16\26\2\0"+ - "\7\26\1\0\2\26\3\0\14\26\1\u0262\3\26\35\0"+ - "\14\26\1\u0263\1\26\2\0\7\26\1\0\2\26\3\0"+ + "\1\u025e\5\122\2\0\7\122\1\0\1\122\4\0\20\122"+ + "\22\0\7\u01d8\1\u01d9\1\u025f\101\u01d8\13\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\14\26\1\u0260\3\26\35\0"+ + "\14\26\1\u0261\1\26\2\0\7\26\1\0\2\26\3\0"+ "\20\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ - "\2\26\1\u0264\15\26\35\0\16\26\2\0\7\26\1\0"+ - "\2\26\3\0\1\26\1\u0265\16\26\35\0\16\26\2\0"+ - "\7\26\1\0\2\26\3\0\5\26\1\u0266\12\26\35\0"+ - "\16\26\2\0\7\26\1\0\2\26\3\0\4\26\1\u0267"+ + "\2\26\1\u0262\15\26\35\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\1\26\1\u0263\16\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\5\26\1\u0264\12\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\4\26\1\u0265"+ "\13\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ - "\11\26\1\u0268\6\26\22\0\45\u0114\1\u0269\44\u0114\6\u018b"+ - "\1\0\35\u018b\1\0\1\u018b\1\u0115\43\u018b\13\0\14\26"+ - "\1\u026a\1\26\2\0\7\26\1\0\2\26\3\0\20\26"+ - "\35\0\14\26\1\u026b\1\26\2\0\7\26\1\0\2\26"+ - "\3\0\20\26\35\0\16\26\2\0\7\26\1\0\2\26"+ - "\3\0\5\26\1\u026c\12\26\35\0\16\26\2\0\7\26"+ - "\1\0\2\26\3\0\2\26\1\u026d\15\26\35\0\16\26"+ - "\2\0\7\26\1\0\2\26\3\0\12\26\1\u026e\5\26"+ - "\35\0\4\26\1\u026f\11\26\2\0\7\26\1\0\2\26"+ - "\3\0\20\26\35\0\16\26\2\0\7\26\1\0\2\26"+ - "\3\0\10\26\1\u0270\7\26\35\0\14\26\1\u0271\1\26"+ - "\2\0\7\26\1\0\2\26\3\0\20\26\35\0\6\26"+ - "\1\u0272\7\26\2\0\7\26\1\0\2\26\3\0\20\26"+ - "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\14\122"+ - "\1\u0273\3\122\35\0\14\122\1\u0274\1\122\2\0\7\122"+ - "\1\0\1\122\4\0\20\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\2\122\1\u0275\15\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\1\122\1\u0276\16\122"+ - "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\5\122"+ - "\1\u0277\12\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\4\122\1\u0278\13\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\11\122\1\u0279\6\122\35\0\14\122"+ - "\1\u027a\1\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\35\0\14\122\1\u027b\1\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\5\122\1\u027c\12\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\2\122\1\u027d\15\122\35\0\16\122"+ - "\2\0\7\122\1\0\1\122\4\0\12\122\1\u027e\5\122"+ - "\35\0\4\122\1\u027f\11\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\10\122\1\u0280\7\122\35\0\14\122\1\u0281\1\122"+ - "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\6\122"+ - "\1\u0282\7\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\11\26"+ - "\1\u0283\6\26\35\0\14\26\1\u0284\1\26\2\0\7\26"+ - "\1\0\2\26\3\0\20\26\35\0\16\26\2\0\7\26"+ - "\1\0\2\26\3\0\2\26\1\u0285\15\26\35\0\14\26"+ - "\1\u0286\1\26\2\0\7\26\1\0\2\26\3\0\20\26"+ - "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\5\26"+ - "\1\u0287\12\26\35\0\14\26\1\u0288\1\26\2\0\7\26"+ - "\1\0\2\26\3\0\20\26\35\0\16\26\2\0\7\26"+ - "\1\0\2\26\3\0\1\u0289\17\26\35\0\16\26\2\0"+ - "\7\26\1\0\2\26\3\0\11\26\1\u028a\6\26\35\0"+ - "\16\26\2\0\7\26\1\0\2\26\3\0\11\26\1\u028b"+ - "\6\26\35\0\14\26\1\u028c\1\26\2\0\7\26\1\0"+ - "\2\26\3\0\20\26\35\0\16\122\2\0\7\122\1\0"+ - "\1\122\4\0\11\122\1\u028d\6\122\35\0\14\122\1\u028e"+ + "\11\26\1\u0266\6\26\22\0\6\u018b\1\0\35\u018b\1\0"+ + "\1\u018b\1\u0115\43\u018b\13\0\14\26\1\u0267\1\26\2\0"+ + "\7\26\1\0\2\26\3\0\20\26\35\0\14\26\1\u0268"+ + "\1\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\5\26\1\u0269"+ + "\12\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ + "\2\26\1\u026a\15\26\35\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\12\26\1\u026b\5\26\35\0\4\26\1\u026c"+ + "\11\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\10\26\1\u026d"+ + "\7\26\35\0\14\26\1\u026e\1\26\2\0\7\26\1\0"+ + "\2\26\3\0\20\26\35\0\6\26\1\u026f\7\26\2\0"+ + "\7\26\1\0\2\26\3\0\20\26\35\0\16\122\2\0"+ + "\7\122\1\0\1\122\4\0\14\122\1\u0270\3\122\35\0"+ + "\14\122\1\u0271\1\122\2\0\7\122\1\0\1\122\4\0"+ + "\20\122\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ + "\2\122\1\u0272\15\122\35\0\16\122\2\0\7\122\1\0"+ + "\1\122\4\0\1\122\1\u0273\16\122\35\0\16\122\2\0"+ + "\7\122\1\0\1\122\4\0\5\122\1\u0274\12\122\35\0"+ + "\16\122\2\0\7\122\1\0\1\122\4\0\4\122\1\u0275"+ + "\13\122\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ + "\11\122\1\u0276\6\122\35\0\14\122\1\u0277\1\122\2\0"+ + "\7\122\1\0\1\122\4\0\20\122\35\0\14\122\1\u0278"+ "\1\122\2\0\7\122\1\0\1\122\4\0\20\122\35\0"+ - "\16\122\2\0\7\122\1\0\1\122\4\0\2\122\1\u028f"+ - "\15\122\35\0\14\122\1\u0290\1\122\2\0\7\122\1\0"+ - "\1\122\4\0\20\122\35\0\16\122\2\0\7\122\1\0"+ - "\1\122\4\0\5\122\1\u0291\12\122\35\0\14\122\1\u0292"+ - "\1\122\2\0\7\122\1\0\1\122\4\0\20\122\35\0"+ - "\16\122\2\0\7\122\1\0\1\122\4\0\1\u0293\17\122"+ + "\16\122\2\0\7\122\1\0\1\122\4\0\5\122\1\u0279"+ + "\12\122\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ + "\2\122\1\u027a\15\122\35\0\16\122\2\0\7\122\1\0"+ + "\1\122\4\0\12\122\1\u027b\5\122\35\0\4\122\1\u027c"+ + "\11\122\2\0\7\122\1\0\1\122\4\0\20\122\35\0"+ + "\16\122\2\0\7\122\1\0\1\122\4\0\10\122\1\u027d"+ + "\7\122\35\0\14\122\1\u027e\1\122\2\0\7\122\1\0"+ + "\1\122\4\0\20\122\35\0\6\122\1\u027f\7\122\2\0"+ + "\7\122\1\0\1\122\4\0\20\122\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\11\26\1\u0280\6\26\35\0"+ + "\14\26\1\u0281\1\26\2\0\7\26\1\0\2\26\3\0"+ + "\20\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ + "\2\26\1\u0282\15\26\35\0\14\26\1\u0283\1\26\2\0"+ + "\7\26\1\0\2\26\3\0\20\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\5\26\1\u0284\12\26\35\0"+ + "\14\26\1\u0285\1\26\2\0\7\26\1\0\2\26\3\0"+ + "\20\26\35\0\16\26\2\0\7\26\1\0\2\26\3\0"+ + "\1\u0286\17\26\35\0\16\26\2\0\7\26\1\0\2\26"+ + "\3\0\11\26\1\u0287\6\26\35\0\16\26\2\0\7\26"+ + "\1\0\2\26\3\0\11\26\1\u0288\6\26\35\0\14\26"+ + "\1\u0289\1\26\2\0\7\26\1\0\2\26\3\0\20\26"+ "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\11\122"+ - "\1\u0294\6\122\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\11\122\1\u0295\6\122\35\0\14\122\1\u0296\1\122"+ - "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\16\26"+ - "\2\0\7\26\1\0\2\26\3\0\5\26\1\u0297\12\26"+ - "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\10\26"+ - "\1\u0298\7\26\35\0\14\26\1\u0299\1\26\2\0\7\26"+ - "\1\0\2\26\3\0\20\26\35\0\12\26\1\u029a\3\26"+ - "\2\0\7\26\1\0\2\26\3\0\20\26\35\0\10\26"+ - "\1\u029b\5\26\2\0\7\26\1\0\2\26\3\0\20\26"+ - "\35\0\16\26\2\0\7\26\1\0\2\26\3\0\5\26"+ - "\1\u029c\12\26\35\0\16\122\2\0\7\122\1\0\1\122"+ - "\4\0\5\122\1\u029d\12\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\10\122\1\u029e\7\122\35\0\14\122"+ - "\1\u029f\1\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\35\0\12\122\1\u02a0\3\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\35\0\10\122\1\u02a1\5\122\2\0\7\122"+ + "\1\u028a\6\122\35\0\14\122\1\u028b\1\122\2\0\7\122"+ "\1\0\1\122\4\0\20\122\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\5\122\1\u02a2\12\122\35\0\16\26"+ - "\2\0\7\26\1\0\2\26\3\0\4\26\1\u02a3\13\26"+ - "\35\0\4\26\1\u02a4\11\26\2\0\7\26\1\0\2\26"+ - "\3\0\20\26\35\0\16\26\2\0\7\26\1\0\2\26"+ - "\3\0\16\26\1\u02a5\1\26\35\0\16\122\2\0\7\122"+ - "\1\0\1\122\4\0\4\122\1\u02a6\13\122\35\0\4\122"+ - "\1\u02a7\11\122\2\0\7\122\1\0\1\122\4\0\20\122"+ - "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\16\122"+ - "\1\u02a8\1\122\35\0\14\26\1\u02a9\1\26\2\0\7\26"+ - "\1\0\2\26\3\0\20\26\35\0\14\122\1\u02aa\1\122"+ - "\2\0\7\122\1\0\1\122\4\0\20\122\35\0\12\26"+ - "\1\u02ab\3\26\2\0\7\26\1\0\2\26\3\0\20\26"+ - "\35\0\12\122\1\u02ac\3\122\2\0\7\122\1\0\1\122"+ - "\4\0\20\122\22\0"; + "\1\0\1\122\4\0\2\122\1\u028c\15\122\35\0\14\122"+ + "\1\u028d\1\122\2\0\7\122\1\0\1\122\4\0\20\122"+ + "\35\0\16\122\2\0\7\122\1\0\1\122\4\0\5\122"+ + "\1\u028e\12\122\35\0\14\122\1\u028f\1\122\2\0\7\122"+ + "\1\0\1\122\4\0\20\122\35\0\16\122\2\0\7\122"+ + "\1\0\1\122\4\0\1\u0290\17\122\35\0\16\122\2\0"+ + "\7\122\1\0\1\122\4\0\11\122\1\u0291\6\122\35\0"+ + "\16\122\2\0\7\122\1\0\1\122\4\0\11\122\1\u0292"+ + "\6\122\35\0\14\122\1\u0293\1\122\2\0\7\122\1\0"+ + "\1\122\4\0\20\122\35\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\5\26\1\u0294\12\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\10\26\1\u0295\7\26\35\0"+ + "\14\26\1\u0296\1\26\2\0\7\26\1\0\2\26\3\0"+ + "\20\26\35\0\12\26\1\u0297\3\26\2\0\7\26\1\0"+ + "\2\26\3\0\20\26\35\0\10\26\1\u0298\5\26\2\0"+ + "\7\26\1\0\2\26\3\0\20\26\35\0\16\26\2\0"+ + "\7\26\1\0\2\26\3\0\5\26\1\u0299\12\26\35\0"+ + "\16\122\2\0\7\122\1\0\1\122\4\0\5\122\1\u029a"+ + "\12\122\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ + "\10\122\1\u029b\7\122\35\0\14\122\1\u029c\1\122\2\0"+ + "\7\122\1\0\1\122\4\0\20\122\35\0\12\122\1\u029d"+ + "\3\122\2\0\7\122\1\0\1\122\4\0\20\122\35\0"+ + "\10\122\1\u029e\5\122\2\0\7\122\1\0\1\122\4\0"+ + "\20\122\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ + "\5\122\1\u029f\12\122\35\0\16\26\2\0\7\26\1\0"+ + "\2\26\3\0\4\26\1\u02a0\13\26\35\0\4\26\1\u02a1"+ + "\11\26\2\0\7\26\1\0\2\26\3\0\20\26\35\0"+ + "\16\26\2\0\7\26\1\0\2\26\3\0\16\26\1\u02a2"+ + "\1\26\35\0\16\122\2\0\7\122\1\0\1\122\4\0"+ + "\4\122\1\u02a3\13\122\35\0\4\122\1\u02a4\11\122\2\0"+ + "\7\122\1\0\1\122\4\0\20\122\35\0\16\122\2\0"+ + "\7\122\1\0\1\122\4\0\16\122\1\u02a5\1\122\35\0"+ + "\14\26\1\u02a6\1\26\2\0\7\26\1\0\2\26\3\0"+ + "\20\26\35\0\14\122\1\u02a7\1\122\2\0\7\122\1\0"+ + "\1\122\4\0\20\122\35\0\12\26\1\u02a8\3\26\2\0"+ + "\7\26\1\0\2\26\3\0\20\26\35\0\12\122\1\u02a9"+ + "\3\122\2\0\7\122\1\0\1\122\4\0\20\122\22\0"; private static int [] zzUnpackTrans() { - int [] result = new int[37518]; + int [] result = new int[37370]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -1025,12 +1023,12 @@ public class _GroovyLexer extends GroovyLexerBase implements FlexLexer { "\1\11\1\1\5\11\47\1\1\0\4\1\2\11\1\1"+ "\1\0\23\1\3\11\3\1\1\11\2\0\36\1\5\11"+ "\1\0\1\11\61\1\2\11\1\0\15\1\2\0\3\1"+ - "\3\0\1\1\7\0\34\1\1\11\56\1\2\11\1\0"+ - "\16\1\1\0\1\1\5\0\70\1\1\11\1\0\1\1"+ - "\1\0\11\1\2\0\51\1\1\0\113\1"; + "\3\0\2\1\6\0\34\1\1\11\56\1\2\11\1\0"+ + "\16\1\1\0\1\1\4\0\70\1\1\11\1\0\1\1"+ + "\1\0\11\1\1\0\51\1\1\0\112\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[684]; + int [] result = new int[681]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/lexer/groovy.flex b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/lexer/groovy.flex index c7e39afbd0f6..9f798852a033 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/lexer/groovy.flex +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/lexer/groovy.flex @@ -128,12 +128,10 @@ mSINGLE_QUOTED_STRING_BEGIN = "\'" ( {mSTRING_ESC} | [^\\\'\r\n] | "$")* mSINGLE_QUOTED_STRING = {mSINGLE_QUOTED_STRING_BEGIN} \' -mTRIPLE_QUOTED_STRING = "\'\'\'" ({mSTRING_ESC} - | \" - | "$" - | [^\'] +mTRIPLE_QUOTED_STRING = \'\'\' ({mSTRING_ESC} + | [^\\'] | {mSTRING_NL} - | \'(\')?[^\'] )* (\'\'\' | \\)? + | \'(\')?[^'] )* (\'{1,3} | \\)? mSTRING_LITERAL = {mTRIPLE_QUOTED_STRING} | {mSINGLE_QUOTED_STRING} diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy index 734bfb1ae542..7879e95ac01b 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/parser/ExpressionsParsingTest.groovy @@ -124,6 +124,30 @@ class ExpressionsParsingTest extends GroovyParsingTestCase { void testgstring$str9() throws Throwable { doTest() } + void teststring$singleQuoted() { doTest() } + + void teststring$tripleSingleQuoted$ok() { doTest() } + + void teststring$tripleSingleQuoted$err0() { doTest() } + + void teststring$tripleSingleQuoted$err1() { doTest() } + + void teststring$tripleSingleQuoted$err2() { doTest() } + + void teststring$tripleSingleQuoted$err3() { doTest() } + + void teststring$tripleSingleQuoted$err4() { doTest() } + + void teststring$tripleSingleQuoted$err5() { doTest() } + + void teststring$tripleSingleQuoted$unfinished0() { doTest() } + + void teststring$tripleSingleQuoted$unfinished1() { doTest() } + + void teststring$tripleSingleQuoted$unfinished2() { doTest() } + + void teststring$tripleSingleQuoted$unfinished3() { doTest() } + void testgstring$str_error1() throws Throwable { doTest() } void testgstring$str_error2() throws Throwable { doTest() } diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/singleQuoted.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/singleQuoted.test new file mode 100644 index 000000000000..13533a9d5744 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/singleQuoted.test @@ -0,0 +1,37 @@ +' +'' +'\' +'\'' +'\\' +'foo +'foo' +'\t\n' +'\j\i' +----- +Groovy script + Literal + PsiElement(string)(''') + PsiElement(new line)('\n') + Literal + PsiElement(string)('''') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''\'') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''\''') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''\\'') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''foo') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''foo'') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''\t\n'') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''\j\i'') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err0.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err0.test new file mode 100644 index 000000000000..11f4493d2c5f --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err0.test @@ -0,0 +1,5 @@ +''' +----- +Groovy script + Literal + PsiElement(string)(''''') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err1.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err1.test new file mode 100644 index 000000000000..77304b7c36da --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err1.test @@ -0,0 +1,5 @@ +'''' +----- +Groovy script + Literal + PsiElement(string)('''''') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err2.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err2.test new file mode 100644 index 000000000000..a0b7b93feb3c --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err2.test @@ -0,0 +1,5 @@ +''''' +----- +Groovy script + Literal + PsiElement(string)(''''''') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err3.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err3.test new file mode 100644 index 000000000000..251451d6e3c1 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err3.test @@ -0,0 +1,5 @@ +'''\' +----- +Groovy script + Literal + PsiElement(string)(''''\'') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err4.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err4.test new file mode 100644 index 000000000000..6325ebad784a --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err4.test @@ -0,0 +1,5 @@ +'''\'' +----- +Groovy script + Literal + PsiElement(string)(''''\''') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err5.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err5.test new file mode 100644 index 000000000000..77a58d751cb9 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/err5.test @@ -0,0 +1,5 @@ +'''\''' +----- +Groovy script + Literal + PsiElement(string)(''''\'''') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/ok.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/ok.test new file mode 100644 index 000000000000..27fefff63246 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/ok.test @@ -0,0 +1,58 @@ +'''''' +'''\\''' + +'''\ +''' + +'''\ + + +''' + +'''\\ +''' + +'''\''' +''' + +''' + + +''' + +'''foo''' +'''\r\n''' +'''\j\i''' + +----- +Groovy script + Literal + PsiElement(string)('''''''') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''''\\'''') + PsiElement(new line)('\n\n') + Literal + PsiElement(string)(''''\\n'''') + PsiElement(new line)('\n\n') + Literal + PsiElement(string)(''''\\n\n\n'''') + PsiElement(new line)('\n\n') + Literal + PsiElement(string)(''''\\\n'''') + PsiElement(new line)('\n\n') + Literal + PsiElement(string)(''''\'''\n'''') + PsiElement(new line)('\n\n') + Literal + PsiElement(string)(''''\n\n\n'''') + PsiElement(new line)('\n\n') + Literal + PsiElement(string)(''''foo'''') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''''\r\n'''') + PsiElement(new line)('\n') + Literal + PsiElement(string)(''''\j\i'''') + PsiElement(new line)('\n') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished0.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished0.test new file mode 100644 index 000000000000..cf516478750b --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished0.test @@ -0,0 +1,5 @@ +'''foo +----- +Groovy script + Literal + PsiElement(string)(''''foo') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished1.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished1.test new file mode 100644 index 000000000000..e630d1654e70 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished1.test @@ -0,0 +1,5 @@ +'''foo' +----- +Groovy script + Literal + PsiElement(string)(''''foo'') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished2.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished2.test new file mode 100644 index 000000000000..4c441e819e61 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished2.test @@ -0,0 +1,5 @@ +'''foo'' +----- +Groovy script + Literal + PsiElement(string)(''''foo''') \ No newline at end of file diff --git a/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished3.test b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished3.test new file mode 100644 index 000000000000..1af348e00f93 --- /dev/null +++ b/plugins/groovy/testdata/parsing/groovy/expressions/string/tripleSingleQuoted/unfinished3.test @@ -0,0 +1,6 @@ +'''foo'' +bar +----- +Groovy script + Literal + PsiElement(string)(''''foo''\nbar') \ No newline at end of file