diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f21c85..4500f8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@
## [Unreleased]
+### Added
+
+- Enhanced string handling
+
## [0.3.0] - 2024-05-03
### Added
diff --git a/gradle.properties b/gradle.properties
index 76599d0..5e75e82 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,7 +4,7 @@ pluginGroup = io.kadena.pact
pluginName = Pact
pluginRepositoryUrl = https://github.com/lukeribchester/pact-intellij
# SemVer format -> https://semver.org
-pluginVersion = 0.3.0
+pluginVersion = 0.3.1
# Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html
pluginSinceBuild = 232
diff --git a/src/main/gen/io/kadena/pact/language/PactLexer.java b/src/main/gen/io/kadena/pact/language/PactLexer.java
index aca38ff..b9fd4de 100644
--- a/src/main/gen/io/kadena/pact/language/PactLexer.java
+++ b/src/main/gen/io/kadena/pact/language/PactLexer.java
@@ -67,24 +67,24 @@ public static int ZZ_CMAP(int ch) {
private static final String ZZ_ACTION_PACKED_0 =
"\2\0\1\1\1\2\1\3\11\4\1\5\6\4\1\6"+
- "\2\4\2\1\1\7\1\10\1\11\1\1\1\12\1\13"+
- "\1\14\1\15\1\16\1\17\1\20\1\1\1\21\1\22"+
- "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\2\32"+
- "\1\3\14\4\1\0\1\4\1\33\10\4\4\0\1\34"+
- "\1\0\1\35\1\36\1\37\1\40\1\41\1\42\1\43"+
- "\1\4\1\44\10\4\1\45\7\4\1\46\2\4\1\47"+
- "\1\4\4\0\1\34\1\0\1\4\1\44\1\50\3\4"+
- "\1\51\1\4\1\52\10\4\1\53\1\54\6\4\3\0"+
- "\1\55\1\0\1\35\1\56\2\4\1\57\2\4\1\60"+
- "\6\4\1\61\6\4\1\62\1\4\3\0\1\63\7\4"+
- "\1\64\3\4\1\65\4\4\1\66\1\67\1\0\1\70"+
- "\1\4\1\71\10\4\1\72\2\4\1\0\6\4\1\73"+
- "\1\4\1\74\1\4\1\75\1\4\1\76\3\4\1\77"+
- "\1\100\1\4\1\101\5\4\1\102\2\4\1\103\2\4"+
- "\1\104\14\4\1\105\3\4\1\106\1\107";
+ "\2\4\1\1\1\7\1\10\1\11\1\12\1\1\1\13"+
+ "\1\14\1\15\1\16\1\17\1\20\1\21\1\1\1\22"+
+ "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+
+ "\2\33\1\3\14\4\1\0\1\4\1\34\10\4\3\0"+
+ "\1\7\1\0\1\35\1\36\1\37\1\40\1\41\1\42"+
+ "\1\43\1\4\1\44\10\4\1\45\7\4\1\46\2\4"+
+ "\1\47\1\4\5\0\1\4\1\44\1\50\3\4\1\51"+
+ "\1\4\1\52\10\4\1\53\1\54\6\4\3\0\1\55"+
+ "\1\0\1\35\1\56\2\4\1\57\2\4\1\60\6\4"+
+ "\1\61\6\4\1\62\1\4\3\0\1\63\7\4\1\64"+
+ "\3\4\1\65\4\4\1\66\1\67\1\0\1\70\1\4"+
+ "\1\71\10\4\1\72\2\4\1\0\6\4\1\73\1\4"+
+ "\1\74\1\4\1\75\1\4\1\76\3\4\1\77\1\100"+
+ "\1\4\1\101\5\4\1\102\2\4\1\103\2\4\1\104"+
+ "\14\4\1\105\3\4\1\106\1\107";
private static int [] zzUnpackAction() {
- int [] result = new int[256];
+ int [] result = new int[254];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -118,32 +118,32 @@ private static int zzUnpackAction(String packed, int offset, int [] result) {
"\0\u0740\0\u077a\0\u07b4\0\u07ee\0\u0828\0\u0862\0\u089c\0\u08d6"+
"\0\u0910\0\u094a\0\u0984\0\u09be\0\u09f8\0\u0a32\0\u05e4\0\u0a6c"+
"\0\u02b8\0\u0aa6\0\u0ae0\0\u0b1a\0\u0b54\0\u0b8e\0\u0bc8\0\u0c02"+
- "\0\u0c3c\0\u0c76\0\u0cb0\0\u0cea\0\u0570\0\164\0\u0d24\0\u0d5e"+
- "\0\u0d98\0\164\0\164\0\164\0\164\0\164\0\u0dd2\0\u0e0c"+
- "\0\u0e46\0\u0e80\0\u0eba\0\u0ef4\0\u0f2e\0\u0f68\0\u0fa2\0\u0fdc"+
- "\0\164\0\u1016\0\u1050\0\u108a\0\u10c4\0\u10fe\0\u1138\0\u1172"+
- "\0\u02b8\0\u11ac\0\u11e6\0\u02b8\0\u1220\0\u125a\0\u1294\0\u12ce"+
- "\0\u1308\0\u0570\0\u1342\0\u137c\0\164\0\u02b8\0\u13b6\0\u13f0"+
- "\0\u142a\0\u1464\0\u149e\0\164\0\u14d8\0\u1512\0\u154c\0\u1586"+
- "\0\u15c0\0\u15fa\0\u1634\0\u166e\0\u02b8\0\164\0\u16a8\0\u16e2"+
- "\0\u171c\0\u1756\0\u1790\0\u17ca\0\u1804\0\u183e\0\u1878\0\164"+
- "\0\u18b2\0\u18b2\0\u02b8\0\u18ec\0\u1926\0\u02b8\0\u1960\0\u199a"+
- "\0\u02b8\0\u19d4\0\u1a0e\0\u1a48\0\u1a82\0\u1abc\0\u1af6\0\u02b8"+
- "\0\u1b30\0\u1b6a\0\u1ba4\0\u1bde\0\u1c18\0\u1c52\0\u02b8\0\u1c8c"+
- "\0\u1cc6\0\u1d00\0\u1d3a\0\u02b8\0\u1d74\0\u1dae\0\u1de8\0\u1e22"+
- "\0\u1e5c\0\u1e96\0\u1ed0\0\u02b8\0\u1f0a\0\u1f44\0\u1f7e\0\u02b8"+
- "\0\u1fb8\0\u1ff2\0\u202c\0\u2066\0\164\0\164\0\u20a0\0\u20da"+
- "\0\u2114\0\u02b8\0\u214e\0\u2188\0\u21c2\0\u21fc\0\u2236\0\u2270"+
- "\0\u22aa\0\u22e4\0\u02b8\0\u231e\0\u2358\0\u2392\0\u23cc\0\u2406"+
- "\0\u2440\0\u247a\0\u24b4\0\u24ee\0\u02b8\0\u2528\0\u02b8\0\u2562"+
- "\0\u02b8\0\u259c\0\164\0\u25d6\0\u2610\0\u264a\0\u02b8\0\u02b8"+
- "\0\u2684\0\u02b8\0\u26be\0\u26f8\0\u2732\0\u276c\0\u27a6\0\u02b8"+
- "\0\u27e0\0\u281a\0\u02b8\0\u2854\0\u288e\0\u02b8\0\u28c8\0\u2902"+
- "\0\u293c\0\u2976\0\u29b0\0\u29ea\0\u2a24\0\u2a5e\0\u2a98\0\u2ad2"+
- "\0\u2b0c\0\u2b46\0\u02b8\0\u2b80\0\u2bba\0\u2bf4\0\u02b8\0\u02b8";
+ "\0\u0c3c\0\u0c76\0\u0cb0\0\u0cea\0\164\0\u0d24\0\u0d5e\0\u0d98"+
+ "\0\164\0\164\0\164\0\164\0\164\0\u0dd2\0\u0e0c\0\u0e46"+
+ "\0\u0e80\0\u0eba\0\u0ef4\0\u0f2e\0\u0f68\0\u0fa2\0\u0fdc\0\164"+
+ "\0\u1016\0\u1050\0\u108a\0\u10c4\0\u10fe\0\u1138\0\u1172\0\u02b8"+
+ "\0\u11ac\0\u11e6\0\u02b8\0\u1220\0\u125a\0\u1294\0\u12ce\0\u1308"+
+ "\0\u1342\0\u137c\0\164\0\u02b8\0\u13b6\0\u13f0\0\u142a\0\u1464"+
+ "\0\u149e\0\164\0\u14d8\0\u1512\0\u154c\0\u1586\0\u15c0\0\u15fa"+
+ "\0\u1634\0\u166e\0\u02b8\0\164\0\u16a8\0\u16e2\0\u171c\0\u1756"+
+ "\0\u1790\0\u17ca\0\u1804\0\u183e\0\u1878\0\164\0\u18b2\0\u18b2"+
+ "\0\u02b8\0\u18ec\0\u1926\0\u02b8\0\u1960\0\u199a\0\u02b8\0\u19d4"+
+ "\0\u1a0e\0\u1a48\0\u1a82\0\u1abc\0\u1af6\0\u02b8\0\u1b30\0\u1b6a"+
+ "\0\u1ba4\0\u1bde\0\u1c18\0\u1c52\0\u02b8\0\u1c8c\0\u1cc6\0\u1d00"+
+ "\0\u1d3a\0\u02b8\0\u1d74\0\u1dae\0\u1de8\0\u1e22\0\u1e5c\0\u1e96"+
+ "\0\u1ed0\0\u02b8\0\u1f0a\0\u1f44\0\u1f7e\0\u02b8\0\u1fb8\0\u1ff2"+
+ "\0\u202c\0\u2066\0\164\0\164\0\u20a0\0\u20da\0\u2114\0\u02b8"+
+ "\0\u214e\0\u2188\0\u21c2\0\u21fc\0\u2236\0\u2270\0\u22aa\0\u22e4"+
+ "\0\u02b8\0\u231e\0\u2358\0\u2392\0\u23cc\0\u2406\0\u2440\0\u247a"+
+ "\0\u24b4\0\u24ee\0\u02b8\0\u2528\0\u02b8\0\u2562\0\u02b8\0\u259c"+
+ "\0\164\0\u25d6\0\u2610\0\u264a\0\u02b8\0\u02b8\0\u2684\0\u02b8"+
+ "\0\u26be\0\u26f8\0\u2732\0\u276c\0\u27a6\0\u02b8\0\u27e0\0\u281a"+
+ "\0\u02b8\0\u2854\0\u288e\0\u02b8\0\u28c8\0\u2902\0\u293c\0\u2976"+
+ "\0\u29b0\0\u29ea\0\u2a24\0\u2a5e\0\u2a98\0\u2ad2\0\u2b0c\0\u2b46"+
+ "\0\u02b8\0\u2b80\0\u2bba\0\u2bf4\0\u02b8\0\u02b8";
private static int [] zzUnpackRowMap() {
- int [] result = new int[256];
+ int [] result = new int[254];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -202,230 +202,230 @@ private static int zzUnpackRowMap(String packed, int offset, int [] result) {
"\4\0\1\15\1\0\1\15\1\0\2\15\30\0\12\15"+
"\1\111\6\15\1\0\6\15\4\0\1\15\1\0\1\15"+
"\1\0\2\15\32\0\1\112\10\0\1\113\4\0\1\114"+
- "\43\0\37\115\1\116\1\117\31\115\42\0\1\34\1\120"+
- "\70\0\1\120\35\0\11\121\1\0\7\121\1\0\6\121"+
- "\6\0\1\121\1\0\1\121\75\0\1\122\1\123\71\0"+
- "\1\124\71\0\1\125\71\0\1\126\17\0\1\4\3\61"+
- "\67\0\1\62\75\0\2\15\1\127\16\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\15\15"+
- "\1\130\3\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\16\15\1\131\2\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\13\15"+
- "\1\132\5\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\5\15\1\133\13\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\7\15"+
- "\1\134\11\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\2\15\1\135\16\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\3\15"+
- "\1\136\15\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\15\15\1\137\3\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\1\15"+
- "\1\140\17\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\21\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\7\0\1\141\20\0\2\15"+
- "\1\142\16\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\15\15\1\143\1\15\1\144\1\15"+
+ "\43\0\2\32\1\0\34\32\1\115\1\116\31\32\42\0"+
+ "\1\34\1\117\70\0\1\117\35\0\11\120\1\0\7\120"+
+ "\1\0\6\120\6\0\1\120\1\0\1\120\75\0\1\121"+
+ "\1\122\71\0\1\123\71\0\1\124\71\0\1\125\17\0"+
+ "\1\4\3\61\67\0\1\62\75\0\2\15\1\126\16\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\14\15\1\145\4\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\20\15\1\146\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\6\15\1\147\12\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\21\15\1\0\1\150\1\15"+
- "\1\151\3\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\20\15\1\152\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\5\15\1\153\13\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\2\15\1\154\16\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\15\15\1\155\3\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\47\0"+
- "\1\156\60\0\1\157\7\0\1\160\61\0\1\161\55\0"+
- "\37\115\1\162\1\117\31\115\10\0\1\163\31\0\1\120"+
- "\1\0\1\163\33\0\21\121\1\0\6\121\4\0\1\121"+
- "\1\0\1\121\1\0\2\121\30\0\3\15\1\164\15\15"+
+ "\30\0\15\15\1\127\3\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\16\15\1\130\2\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\21\15\1\165\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\20\15\1\166\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\1\167\20\15"+
+ "\30\0\13\15\1\131\5\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\5\15\1\132\13\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\6\15\1\170\12\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\6\15\1\171\12\15"+
+ "\30\0\7\15\1\133\11\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\2\15\1\134\16\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\14\15\1\172\4\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\14\15\1\173\4\15"+
+ "\30\0\3\15\1\135\15\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\15\15\1\136\3\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\21\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\7\0\1\174\20\0\3\15\1\175\15\15"+
- "\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\16\15\1\176\2\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\2\15\1\177\16\15"+
- "\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\16\15\1\200\2\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\1\15\1\201\17\15"+
- "\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\21\15\1\0\1\202\5\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\14\15\1\203\4\15\1\0"+
- "\1\15\1\204\4\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\2\15\1\205\16\15\1\0\6\15\4\0"+
+ "\30\0\1\15\1\137\17\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\21\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\7\0\1\140"+
+ "\20\0\2\15\1\141\16\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\15\15\1\142\1\15"+
+ "\1\143\1\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\14\15\1\144\4\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\20\15"+
+ "\1\145\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\6\15\1\146\12\15\1\0\6\15\4\0"+
"\1\15\1\0\1\15\1\0\2\15\30\0\21\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\7\0"+
- "\1\206\20\0\3\15\1\207\4\15\1\210\3\15\1\211"+
- "\1\212\3\15\1\0\1\213\5\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\21\15\1\0\4\15\1\214"+
- "\1\15\4\0\1\15\1\0\1\15\1\0\2\15\32\0"+
- "\1\215\107\0\1\216\55\0\1\217\75\0\1\220\72\0"+
- "\1\221\21\0\1\221\1\222\35\0\3\15\1\223\15\15"+
+ "\1\147\1\15\1\150\3\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\20\15\1\151\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\5\15\1\152"+
+ "\13\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\2\15\1\153\16\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\15\15\1\154"+
+ "\3\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\47\0\1\155\60\0\1\156\7\0\1\157\61\0"+
+ "\1\160\55\0\1\32\1\0\2\32\1\0\65\32\10\0"+
+ "\1\161\31\0\1\117\1\0\1\161\33\0\21\120\1\0"+
+ "\6\120\4\0\1\120\1\0\1\120\1\0\2\120\30\0"+
+ "\3\15\1\162\15\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\21\15\1\163\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\20\15\1\164"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\20\15\1\224\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\7\15\1\225\11\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\7\15\1\226\11\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\11\15\1\227\7\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\2\15\1\230\16\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\2\15\1\231\16\15\1\0"+
+ "\30\0\1\165\20\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\6\15\1\166\12\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\15\15\1\232\3\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\7\15\1\233\11\15\1\0"+
+ "\6\15\1\167\12\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\14\15\1\170\4\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\7\15\1\234\11\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\2\15\1\235\16\15\1\0"+
+ "\14\15\1\171\4\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\21\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\7\0\1\172\20\0"+
+ "\3\15\1\173\15\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\16\15\1\174\2\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\1\15\1\236\17\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\2\15\1\237\16\15\1\0"+
+ "\2\15\1\175\16\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\16\15\1\176\2\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\4\15\1\240\14\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\10\15\1\241\10\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\6\15\1\242\7\15\1\243\2\15\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\7\15\1\244"+
- "\6\15\1\245\2\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\16\15\1\246\2\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\4\15\1\247\14\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\11\15\1\250\7\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\34\0"+
- "\1\251\67\0\1\252\105\0\1\253\107\0\1\222\35\0"+
- "\16\15\1\254\2\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\10\15\1\255\10\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\21\15\1\0\3\15\1\256\2\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\4\15\1\257\14\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\2\15\1\260\16\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\5\15\1\261\13\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\12\15\1\262\6\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\13\15\1\263\5\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\2\15\1\264\16\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\7\15\1\265\11\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\21\15\1\0\4\15\1\266\1\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\4\15\1\267\14\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\14\15\1\270\4\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\6\15\1\271\12\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\10\15\1\272\10\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\1\273\20\15\1\0\6\15"+
+ "\1\15\1\177\17\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\21\15\1\0\1\200\5\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\14\15"+
+ "\1\201\4\15\1\0\1\15\1\202\4\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\2\15\1\203\16\15"+
+ "\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
+ "\30\0\21\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\7\0\1\204\20\0\3\15\1\205\4\15"+
+ "\1\206\3\15\1\207\1\210\3\15\1\0\1\211\5\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\21\15"+
+ "\1\0\4\15\1\212\1\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\32\0\1\213\107\0\1\214\55\0\1\215"+
+ "\75\0\1\216\72\0\1\217\21\0\1\217\1\220\35\0"+
+ "\3\15\1\221\15\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\20\15\1\222\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\7\15"+
+ "\1\223\11\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\7\15\1\224\11\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\11\15"+
+ "\1\225\7\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\2\15\1\226\16\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\2\15"+
+ "\1\227\16\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\15\15\1\230\3\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\7\15"+
+ "\1\231\11\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\7\15\1\232\11\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\2\15"+
+ "\1\233\16\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\1\15\1\234\17\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\2\15"+
+ "\1\235\16\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\4\15\1\236\14\15\1\0\6\15"+
"\4\0\1\15\1\0\1\15\1\0\2\15\30\0\10\15"+
- "\1\274\10\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\45\0\1\275\55\0\1\276\113\0\1\277"+
- "\46\0\2\15\1\300\16\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\12\15\1\301\6\15"+
+ "\1\237\10\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\6\15\1\240\7\15\1\241\2\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\20\15\1\302\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\11\15\1\303\7\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\16\15\1\304\2\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\16\15\1\305\2\15\1\0"+
+ "\30\0\7\15\1\242\6\15\1\243\2\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\16\15"+
+ "\1\244\2\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\4\15\1\245\14\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\11\15"+
+ "\1\246\7\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\34\0\1\247\67\0\1\250\105\0\1\251"+
+ "\107\0\1\220\35\0\16\15\1\252\2\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\10\15"+
+ "\1\253\10\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\21\15\1\0\3\15\1\254\2\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\4\15"+
+ "\1\255\14\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\2\15\1\256\16\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\5\15"+
+ "\1\257\13\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\12\15\1\260\6\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\13\15"+
+ "\1\261\5\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\2\15\1\262\16\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\7\15"+
+ "\1\263\11\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\21\15\1\0\4\15\1\264\1\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\4\15"+
+ "\1\265\14\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\14\15\1\266\4\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\6\15"+
+ "\1\267\12\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\10\15\1\270\10\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\1\271"+
+ "\20\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\10\15\1\272\10\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\45\0\1\273\55\0"+
+ "\1\274\113\0\1\275\46\0\2\15\1\276\16\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\2\15\1\306\16\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\15\15\1\307\3\15\1\0"+
+ "\12\15\1\277\6\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\20\15\1\300\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\11\15"+
+ "\1\301\7\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\16\15\1\302\2\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\16\15"+
+ "\1\303\2\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\2\15\1\304\16\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\15\15"+
+ "\1\305\3\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\2\15\1\306\16\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\3\15"+
+ "\1\307\15\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\14\15\1\310\4\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\15\15"+
+ "\1\311\3\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\1\15\1\312\17\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\16\15"+
+ "\1\313\2\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\32\0\1\314\67\0\11\15\1\315\7\15"+
+ "\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
+ "\30\0\15\15\1\316\3\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\21\15\1\0\1\317"+
+ "\5\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
+ "\10\15\1\320\10\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\4\15\1\321\14\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\2\15\1\310\16\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\3\15\1\311\15\15\1\0"+
+ "\4\15\1\322\14\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\21\15\1\0\2\15\1\323"+
+ "\3\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
+ "\13\15\1\324\5\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\15\15\1\325\3\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\14\15\1\312\4\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\15\15\1\313\3\15\1\0"+
+ "\2\15\1\326\16\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\2\15\1\327\16\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\1\15\1\314\17\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\16\15\1\315\2\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\32\0"+
- "\1\316\67\0\11\15\1\317\7\15\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\15\15\1\320"+
+ "\14\15\1\330\4\15\1\0\6\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\50\0\1\331\51\0\6\15\1\332"+
+ "\12\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\21\15\1\0\4\15\1\333\1\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\3\15\1\334"+
+ "\15\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\2\15\1\335\16\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\15\15\1\336"+
"\3\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\21\15\1\0\1\321\5\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\10\15\1\322\10\15"+
+ "\2\15\30\0\15\15\1\337\3\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\16\15\1\340"+
+ "\2\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\7\15\1\341\11\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\16\15\1\342"+
+ "\2\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\4\15\1\343\14\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\11\15\1\344"+
+ "\7\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\2\15\1\345\16\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\3\15\1\346"+
+ "\15\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\15\15\1\347\3\15\1\0\6\15\4\0"+
+ "\1\15\1\0\1\15\1\0\2\15\30\0\1\350\20\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\4\15\1\323\14\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\4\15\1\324\14\15"+
+ "\30\0\2\15\1\351\16\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\7\15\1\352\11\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\21\15\1\0\2\15\1\325\3\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\13\15\1\326\5\15"+
+ "\30\0\7\15\1\353\11\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\21\15\1\0\2\15"+
+ "\1\354\3\15\4\0\1\15\1\0\1\15\1\0\2\15"+
+ "\30\0\12\15\1\355\6\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\6\15\1\356\12\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\15\15\1\327\3\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\2\15\1\330\16\15"+
+ "\30\0\11\15\1\357\7\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\1\15\1\360\17\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\2\15\1\331\16\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\14\15\1\332\4\15"+
+ "\30\0\1\15\1\361\17\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\21\15\1\0\1\15"+
+ "\1\362\4\15\4\0\1\15\1\0\1\15\1\0\2\15"+
+ "\30\0\12\15\1\363\6\15\1\0\6\15\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\30\0\1\15\1\364\17\15"+
"\1\0\6\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\50\0\1\333\51\0\6\15\1\334\12\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\21\15"+
- "\1\0\4\15\1\335\1\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\3\15\1\336\15\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\2\15"+
- "\1\337\16\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\15\15\1\340\3\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\15\15"+
- "\1\341\3\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\16\15\1\342\2\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\7\15"+
- "\1\343\11\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\16\15\1\344\2\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\4\15"+
- "\1\345\14\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\11\15\1\346\7\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\2\15"+
- "\1\347\16\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\3\15\1\350\15\15\1\0\6\15"+
- "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\15\15"+
- "\1\351\3\15\1\0\6\15\4\0\1\15\1\0\1\15"+
- "\1\0\2\15\30\0\1\352\20\15\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\2\15\1\353"+
- "\16\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\7\15\1\354\11\15\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\7\15\1\355"+
- "\11\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\21\15\1\0\2\15\1\356\3\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\12\15\1\357"+
- "\6\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\6\15\1\360\12\15\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\11\15\1\361"+
- "\7\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\1\15\1\362\17\15\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\1\15\1\363"+
- "\17\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\21\15\1\0\1\15\1\364\4\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\12\15\1\365"+
- "\6\15\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\30\0\1\15\1\366\17\15\1\0\6\15\4\0"+
- "\1\15\1\0\1\15\1\0\2\15\30\0\21\15\1\0"+
- "\1\367\5\15\4\0\1\15\1\0\1\15\1\0\2\15"+
- "\30\0\15\15\1\370\3\15\1\0\6\15\4\0\1\15"+
- "\1\0\1\15\1\0\2\15\30\0\1\371\20\15\1\0"+
+ "\30\0\21\15\1\0\1\365\5\15\4\0\1\15\1\0"+
+ "\1\15\1\0\2\15\30\0\15\15\1\366\3\15\1\0"+
"\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\16\15\1\372\2\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\21\15\1\0\2\15\1\373"+
- "\3\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\16\15\1\374\2\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\7\15\1\375\11\15\1\0"+
- "\6\15\4\0\1\15\1\0\1\15\1\0\2\15\30\0"+
- "\10\15\1\376\10\15\1\0\6\15\4\0\1\15\1\0"+
- "\1\15\1\0\2\15\30\0\20\15\1\377\1\0\6\15"+
+ "\1\367\20\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\16\15\1\370\2\15\1\0\6\15"+
"\4\0\1\15\1\0\1\15\1\0\2\15\30\0\21\15"+
- "\1\0\5\15\1\u0100\4\0\1\15\1\0\1\15\1\0"+
- "\2\15\22\0";
+ "\1\0\2\15\1\371\3\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\16\15\1\372\2\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\7\15"+
+ "\1\373\11\15\1\0\6\15\4\0\1\15\1\0\1\15"+
+ "\1\0\2\15\30\0\10\15\1\374\10\15\1\0\6\15"+
+ "\4\0\1\15\1\0\1\15\1\0\2\15\30\0\20\15"+
+ "\1\375\1\0\6\15\4\0\1\15\1\0\1\15\1\0"+
+ "\2\15\30\0\21\15\1\0\5\15\1\376\4\0\1\15"+
+ "\1\0\1\15\1\0\2\15\22\0";
private static int [] zzUnpackTrans() {
int [] result = new int[11310];
@@ -467,14 +467,14 @@ private static int zzUnpackTrans(String packed, int offset, int [] result) {
private static final String ZZ_ATTRIBUTE_PACKED_0 =
"\2\0\1\11\22\1\1\11\10\1\2\11\1\1\4\11"+
- "\3\1\7\11\17\1\1\0\12\1\4\0\1\11\1\0"+
- "\2\1\5\11\12\1\1\11\14\1\4\0\1\1\1\0"+
- "\1\1\1\11\6\1\1\11\11\1\1\11\6\1\3\0"+
- "\1\11\1\0\27\1\3\0\21\1\2\11\1\0\16\1"+
- "\1\0\14\1\1\11\45\1";
+ "\3\1\7\11\17\1\1\0\12\1\3\0\1\11\1\0"+
+ "\2\1\5\11\12\1\1\11\14\1\5\0\1\1\1\11"+
+ "\6\1\1\11\11\1\1\11\6\1\3\0\1\11\1\0"+
+ "\27\1\3\0\21\1\2\11\1\0\16\1\1\0\14\1"+
+ "\1\11\45\1";
private static int [] zzUnpackAttribute() {
- int [] result = new int[256];
+ int [] result = new int[254];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -818,112 +818,112 @@ else if (zzAtEOF) {
// fall through
case 77: break;
case 7:
- { yybegin(YYINITIAL); return PactTypes.PLUS;
+ { yybegin(YYINITIAL); return PactTypes.STR;
}
// fall through
case 78: break;
case 8:
- { yybegin(YYINITIAL); return PactTypes.INTEGER;
+ { yybegin(YYINITIAL); return PactTypes.PLUS;
}
// fall through
case 79: break;
case 9:
- { yybegin(YYINITIAL); return PactTypes.DOT;
+ { yybegin(YYINITIAL); return PactTypes.INTEGER;
}
// fall through
case 80: break;
case 10:
- { yybegin(YYINITIAL); return PactTypes.DIVIDE;
+ { yybegin(YYINITIAL); return PactTypes.DOT;
}
// fall through
case 81: break;
case 11:
- { yybegin(YYINITIAL); return PactTypes.POW;
+ { yybegin(YYINITIAL); return PactTypes.DIVIDE;
}
// fall through
case 82: break;
case 12:
- { yybegin(YYINITIAL); return PactTypes.COLON;
+ { yybegin(YYINITIAL); return PactTypes.POW;
}
// fall through
case 83: break;
case 13:
- { yybegin(YYINITIAL); return PactTypes.EQUAL;
+ { yybegin(YYINITIAL); return PactTypes.COLON;
}
// fall through
case 84: break;
case 14:
- { yybegin(YYINITIAL); return PactTypes.BITWISE_AND;
+ { yybegin(YYINITIAL); return PactTypes.EQUAL;
}
// fall through
case 85: break;
case 15:
- { yybegin(YYINITIAL); return PactTypes.BITWISE_OR;
+ { yybegin(YYINITIAL); return PactTypes.BITWISE_AND;
}
// fall through
case 86: break;
case 16:
- { yybegin(YYINITIAL); return PactTypes.BITWISE_REVERSE;
+ { yybegin(YYINITIAL); return PactTypes.BITWISE_OR;
}
// fall through
case 87: break;
case 17:
- { yybegin(YYINITIAL); return PactTypes.LESS_THAN;
+ { yybegin(YYINITIAL); return PactTypes.BITWISE_REVERSE;
}
// fall through
case 88: break;
case 18:
- { yybegin(YYINITIAL); return PactTypes.GREATER_THAN;
+ { yybegin(YYINITIAL); return PactTypes.LESS_THAN;
}
// fall through
case 89: break;
case 19:
- { yybegin(YYINITIAL); return PactTypes.PAREN_OPEN;
+ { yybegin(YYINITIAL); return PactTypes.GREATER_THAN;
}
// fall through
case 90: break;
case 20:
- { yybegin(YYINITIAL); return PactTypes.PAREN_CLOSE;
+ { yybegin(YYINITIAL); return PactTypes.PAREN_OPEN;
}
// fall through
case 91: break;
case 21:
- { yybegin(YYINITIAL); return PactTypes.BRACE_OPEN;
+ { yybegin(YYINITIAL); return PactTypes.PAREN_CLOSE;
}
// fall through
case 92: break;
case 22:
- { yybegin(YYINITIAL); return PactTypes.BRACE_CLOSE;
+ { yybegin(YYINITIAL); return PactTypes.BRACE_OPEN;
}
// fall through
case 93: break;
case 23:
- { yybegin(YYINITIAL); return PactTypes.BRACKET_OPEN;
+ { yybegin(YYINITIAL); return PactTypes.BRACE_CLOSE;
}
// fall through
case 94: break;
case 24:
- { yybegin(YYINITIAL); return PactTypes.BRACKET_CLOSE;
+ { yybegin(YYINITIAL); return PactTypes.BRACKET_OPEN;
}
// fall through
case 95: break;
case 25:
- { yybegin(YYINITIAL); return PactTypes.COMMA;
+ { yybegin(YYINITIAL); return PactTypes.BRACKET_CLOSE;
}
// fall through
case 96: break;
case 26:
- { yybegin(WAITING_VALUE); return TokenType.WHITE_SPACE;
+ { yybegin(YYINITIAL); return PactTypes.COMMA;
}
// fall through
case 97: break;
case 27:
- { yybegin(YYINITIAL); return PactTypes.KEYWORD_IF;
+ { yybegin(WAITING_VALUE); return TokenType.WHITE_SPACE;
}
// fall through
case 98: break;
case 28:
- { yybegin(YYINITIAL); return PactTypes.STR;
+ { yybegin(YYINITIAL); return PactTypes.KEYWORD_IF;
}
// fall through
case 99: break;
diff --git a/src/main/kotlin/io/kadena/pact/ide/editor/PactQuoteHandler.kt b/src/main/kotlin/io/kadena/pact/ide/editor/PactQuoteHandler.kt
new file mode 100644
index 0000000..191fc57
--- /dev/null
+++ b/src/main/kotlin/io/kadena/pact/ide/editor/PactQuoteHandler.kt
@@ -0,0 +1,8 @@
+package io.kadena.pact.ide.editor
+
+import com.intellij.codeInsight.editorActions.SimpleTokenSetQuoteHandler
+import io.kadena.pact.language.psi.PactTokenSets
+
+
+class PactQuoteHandler : SimpleTokenSetQuoteHandler(PactTokenSets.STRINGS) {
+}
diff --git a/src/main/kotlin/io/kadena/pact/language/Pact.bnf b/src/main/kotlin/io/kadena/pact/language/Pact.bnf
index fcd1ea2..e7c99ac 100644
--- a/src/main/kotlin/io/kadena/pact/language/Pact.bnf
+++ b/src/main/kotlin/io/kadena/pact/language/Pact.bnf
@@ -63,7 +63,7 @@
KEYWORD_MODEL_ANNOTATION="@model"
/* Literals */
- STR="regexp:(\"([^\"\\]|\\\"|\\)*\")"
+ STR="regexp:(\"([^\"\\\n]|\\.|\\\n)*\"?)"
INTEGER="regexp:([+-]?[0-9]+)"
FLOATING_POINT="regexp:([+-]?([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?)"
TRUE="true"
diff --git a/src/main/kotlin/io/kadena/pact/language/Pact.flex b/src/main/kotlin/io/kadena/pact/language/Pact.flex
index e6211ba..5d680ea 100644
--- a/src/main/kotlin/io/kadena/pact/language/Pact.flex
+++ b/src/main/kotlin/io/kadena/pact/language/Pact.flex
@@ -65,7 +65,7 @@ KEYWORD_MANAGED_ANNOTATION="@managed"
KEYWORD_MODEL_ANNOTATION="@model"
/* Literals */
-STR=(\"([^\"\\]|\\\"|\\)*\")
+STR=(\"([^\"\\\n]|\\.|\\\n)*\"?)
INTEGER=([+-]?[0-9]+)
FLOATING_POINT=([+-]?([0-9]+\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?)
TRUE="true"
diff --git a/src/main/kotlin/io/kadena/pact/language/psi/PactTokenSets.kt b/src/main/kotlin/io/kadena/pact/language/psi/PactTokenSets.kt
index 3f04905..f3b59c5 100644
--- a/src/main/kotlin/io/kadena/pact/language/psi/PactTokenSets.kt
+++ b/src/main/kotlin/io/kadena/pact/language/psi/PactTokenSets.kt
@@ -5,6 +5,10 @@ import com.intellij.psi.tree.TokenSet
interface PactTokenSets {
companion object {
+ /* Comments */
val COMMENTS: TokenSet = TokenSet.create(PactTypes.COMMENT)
+
+ /* Literals */
+ val STRINGS: TokenSet = TokenSet.create(PactTypes.STR)
}
}
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index 5738e48..32ee5ab 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -43,5 +43,10 @@
+
+
+