Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Worked in rest of unicode for identifiers as per language spec. Ready…

… for 0.0.3
  • Loading branch information...
commit d06b7a3326841dceb91a8c839d81e335724ed03a 1 parent 7837704
@alanz alanz authored
View
7 .gitignore
@@ -28,3 +28,10 @@
/unicode/uc-lu.htm
/unicode/uc-nl.htm
/unicode/list.hs~
+/unicode/combiningmark.sh~
+/unicode/connector-punctuation.sh~
+/unicode/digit.sh~
+/unicode/uc-mc.htm
+/unicode/uc-mn.htm
+/unicode/uc-nd.htm
+/unicode/uc-pc.htm
View
2  language-javascript.cabal
@@ -1,5 +1,5 @@
Name: language-javascript
-Version: 0.0.2
+Version: 0.0.3
Synopsis: Parser for JavaScript
Description: Parses Javascript into an Abstract Syntax Tree (AST). Initially intended as frontend to hjsmin.
Homepage: https://github.com/alanz/language-javascript
View
9 runtests.hs
@@ -235,8 +235,13 @@ testSuite = testGroup "Parser"
, testCase "unicode4-lt" (testProg "//comment\x2028x=1;" "Right (JSSourceElementsTop [JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]],JSLiteral \";\"])")
, testCase "unicode5-lt" (testProg "//comment\x2029x=1;" "Right (JSSourceElementsTop [JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"x\",JSOperator \"=\",JSDecimal \"1\"]],JSLiteral \";\"])")
- , testCase "unicode2" (testProg "àáâãäå = 1;" "")
- , testCase "unicode3" (testFile "./test/Unicode.js" "")
+ , testCase "unicode2" (testProg "àáâãäå = 1;" "Right (JSSourceElementsTop [JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"\\224\\225\\226\\227\\228\\229\",JSOperator \"=\",JSDecimal \"1\"]],JSLiteral \";\"])")
+
+ , testCase "unicode3" (testProg "$aà = 1;_b=2;\0065a=2" "Right (JSSourceElementsTop [JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"$a\\224\",JSOperator \"=\",JSDecimal \"1\"]],JSLiteral \";\",JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"_b\",JSOperator \"=\",JSDecimal \"2\"]],JSLiteral \";\",JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"Aa\",JSOperator \"=\",JSDecimal \"2\"]]])")
+
+ , testCase "unicode4" (testProg "x=\"àáâãäå\";y='\3012a\0068'" "Right (JSSourceElementsTop [JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"x\",JSOperator \"=\",JSStringLiteral '\"' \"\\224\\225\\226\\227\\228\\229\"]],JSLiteral \";\",JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"y\",JSOperator \"=\",JSStringLiteral '\\'' \"\\3012aD\"]]])")
+
+ , testCase "unicode5" (testFile "./test/Unicode.js" "JSSourceElementsTop [JSExpression [JSElement \"assignmentExpression\" [JSIdentifier \"\\224\\225\\226\\227\\228\\229\",JSOperator \"=\",JSDecimal \"1\"]],JSLiteral \";\"]")
]
View
38 src/Language/JavaScript/Parser/Lexer.x
@@ -113,7 +113,40 @@ $white_char = [\x0009\x000a\x000b\x000c\x000d\x0020\x00a0\x1680\x180e\x2000\x200
-- http://www.fileformat.info/info/unicode/category/Lu/list.htm etc, see unicode/doit.sh
$UnicodeLetter = [\x41-\x5a\x61-\x7a\xaa-\xaa\xb5-\xb5\xba-\xba\xc0-\xd6\xd8-\xf6\xf8-\x2c1\x2c6-\x2d1\x2e0-\x2e4\x2ec-\x2ec\x2ee-\x2ee\x370-\x374\x376-\x377\x37a-\x37d\x386-\x386\x388-\x38a\x38c-\x38c\x38e-\x3a1\x3a3-\x3f5\x3f7-\x481\x48a-\x527\x531-\x556\x559-\x559\x561-\x587\x5d0-\x5ea\x5f0-\x5f2\x620-\x64a\x66e-\x66f\x671-\x6d3\x6d5-\x6d5\x6e5-\x6e6\x6ee-\x6ef\x6fa-\x6fc\x6ff-\x6ff\x710-\x710\x712-\x72f\x74d-\x7a5\x7b1-\x7b1\x7ca-\x7ea\x7f4-\x7f5\x7fa-\x7fa\x800-\x815\x81a-\x81a\x824-\x824\x828-\x828\x840-\x858\x904-\x939\x93d-\x93d\x950-\x950\x958-\x961\x971-\x977\x979-\x97f\x985-\x98c\x98f-\x990\x993-\x9a8\x9aa-\x9b0\x9b2-\x9b2\x9b6-\x9b9\x9bd-\x9bd\x9ce-\x9ce\x9dc-\x9dd\x9df-\x9e1\x9f0-\x9f1\xa05-\xa0a\xa0f-\xa10\xa13-\xa28\xa2a-\xa30\xa32-\xa33\xa35-\xa36\xa38-\xa39\xa59-\xa5c\xa5e-\xa5e\xa72-\xa74\xa85-\xa8d\xa8f-\xa91\xa93-\xaa8\xaaa-\xab0\xab2-\xab3\xab5-\xab9\xabd-\xabd\xad0-\xad0\xae0-\xae1\xb05-\xb0c\xb0f-\xb10\xb13-\xb28\xb2a-\xb30\xb32-\xb33\xb35-\xb39\xb3d-\xb3d\xb5c-\xb5d\xb5f-\xb61\xb71-\xb71\xb83-\xb83\xb85-\xb8a\xb8e-\xb90\xb92-\xb95\xb99-\xb9a\xb9c-\xb9c\xb9e-\xb9f\xba3-\xba4\xba8-\xbaa\xbae-\xbb9\xbd0-\xbd0\xc05-\xc0c\xc0e-\xc10\xc12-\xc28\xc2a-\xc33\xc35-\xc39\xc3d-\xc3d\xc58-\xc59\xc60-\xc61\xc85-\xc8c\xc8e-\xc90\xc92-\xca8\xcaa-\xcb3\xcb5-\xcb9\xcbd-\xcbd\xcde-\xcde\xce0-\xce1\xcf1-\xcf2\xd05-\xd0c\xd0e-\xd10\xd12-\xd3a\xd3d-\xd3d\xd4e-\xd4e\xd60-\xd61\xd7a-\xd7f\xd85-\xd96\xd9a-\xdb1\xdb3-\xdbb\xdbd-\xdbd\xdc0-\xdc6\xe01-\xe30\xe32-\xe33\xe40-\xe46\xe81-\xe82\xe84-\xe84\xe87-\xe88\xe8a-\xe8a\xe8d-\xe8d\xe94-\xe97\xe99-\xe9f\xea1-\xea3\xea5-\xea5\xea7-\xea7\xeaa-\xeab\xead-\xeb0\xeb2-\xeb3\xebd-\xebd\xec0-\xec4\xec6-\xec6\xedc-\xedd\xf00-\xf00\xf40-\xf47\xf49-\xf6c\xf88-\xf8c\x1000-\x1000\x10000-\x1000b\x1000d-\x1000f\x1001-\x1001\x10010-\x1001f\x1002-\x1002\x10020-\x10026\x10028-\x1002f\x1003-\x1003\x10030-\x1003a\x1003c-\x1003d\x1003f-\x1003f\x1004-\x1004\x10040-\x1004d\x1005-\x1005\x10050-\x1005d\x1006-\x1008\x10080-\x1008f\x1009-\x1009\x10090-\x1009f\x100a-\x100a\x100a0-\x100af\x100b-\x100b\x100b0-\x100bf\x100c-\x100c\x100c0-\x100cf\x100d-\x100d\x100d0-\x100df\x100e-\x100e\x100e0-\x100ef\x100f-\x100f\x100f0-\x100fa\x1010-\x1014\x10140-\x1014f\x1015-\x1015\x10150-\x1015f\x1016-\x1016\x10160-\x1016f\x1017-\x1017\x10170-\x10174\x1018-\x1028\x10280-\x1028f\x1029-\x1029\x10290-\x1029c\x102a-\x102a\x102a0-\x102d0\x10300-\x1031e\x10330-\x1034a\x10380-\x1039d\x103a0-\x103c3\x103c8-\x103cf\x103d1-\x103d5\x103f-\x103f\x10400-\x1049d\x1050-\x1055\x105a-\x105d\x1061-\x1061\x1065-\x1066\x106e-\x1070\x1075-\x1080\x10800-\x10805\x10808-\x10808\x1080a-\x1080f\x1081-\x1081\x10810-\x10835\x10837-\x10838\x1083c-\x1083c\x1083f-\x10855\x108e-\x108e\x10900-\x10915\x10920-\x10939\x10a0-\x10a0\x10a00-\x10a00\x10a1-\x10a1\x10a10-\x10a13\x10a15-\x10a17\x10a19-\x10a1f\x10a2-\x10a2\x10a20-\x10a2f\x10a3-\x10a3\x10a30-\x10a33\x10a4-\x10a6\x10a60-\x10a6f\x10a7-\x10a7\x10a70-\x10a7c\x10a8-\x10b0\x10b00-\x10b0f\x10b1-\x10b1\x10b10-\x10b1f\x10b2-\x10b2\x10b20-\x10b2f\x10b3-\x10b3\x10b30-\x10b35\x10b4-\x10b4\x10b40-\x10b4f\x10b5-\x10b5\x10b50-\x10b55\x10b6-\x10b6\x10b60-\x10b6f\x10b7-\x10b7\x10b70-\x10b72\x10b8-\x10c0\x10c00-\x10c0f\x10c1-\x10c1\x10c10-\x10c1f\x10c2-\x10c2\x10c20-\x10c2f\x10c3-\x10c3\x10c30-\x10c3f\x10c4-\x10c4\x10c40-\x10c48\x10c5-\x10c5\x10d0-\x10fa\x10fc-\x10fc\x1100-\x1100\x11003-\x1100f\x1101-\x1101\x11010-\x1101f\x1102-\x1102\x11020-\x1102f\x1103-\x1103\x11030-\x11037\x1104-\x1108\x11083-\x1108f\x1109-\x1109\x11090-\x1109f\x110a-\x110a\x110a0-\x110af\x110b-\x1200\x12000-\x1200f\x1201-\x1201\x12010-\x1201f\x1202-\x1202\x12020-\x1202f\x1203-\x1203\x12030-\x1203f\x1204-\x1204\x12040-\x1204f\x1205-\x1205\x12050-\x1205f\x1206-\x1206\x12060-\x1206f\x1207-\x1207\x12070-\x1207f\x1208-\x1208\x12080-\x1208f\x1209-\x1209\x12090-\x1209f\x120a-\x120a\x120a0-\x120af\x120b-\x120b\x120b0-\x120bf\x120c-\x120c\x120c0-\x120cf\x120d-\x120d\x120d0-\x120df\x120e-\x120e\x120e0-\x120ef\x120f-\x120f\x120f0-\x120ff\x1210-\x1210\x12100-\x1210f\x1211-\x1211\x12110-\x1211f\x1212-\x1212\x12120-\x1212f\x1213-\x1213\x12130-\x1213f\x1214-\x1214\x12140-\x1214f\x1215-\x1215\x12150-\x1215f\x1216-\x1216\x12160-\x1216f\x1217-\x1217\x12170-\x1217f\x1218-\x1218\x12180-\x1218f\x1219-\x1219\x12190-\x1219f\x121a-\x121a\x121a0-\x121af\x121b-\x121b\x121b0-\x121bf\x121c-\x121c\x121c0-\x121cf\x121d-\x121d\x121d0-\x121df\x121e-\x121e\x121e0-\x121ef\x121f-\x121f\x121f0-\x121ff\x1220-\x1220\x12200-\x1220f\x1221-\x1221\x12210-\x1221f\x1222-\x1222\x12220-\x1222f\x1223-\x1223\x12230-\x1223f\x1224-\x1224\x12240-\x1224f\x1225-\x1225\x12250-\x1225f\x1226-\x1226\x12260-\x1226f\x1227-\x1227\x12270-\x1227f\x1228-\x1228\x12280-\x1228f\x1229-\x1229\x12290-\x1229f\x122a-\x122a\x122a0-\x122af\x122b-\x122b\x122b0-\x122bf\x122c-\x122c\x122c0-\x122cf\x122d-\x122d\x122d0-\x122df\x122e-\x122e\x122e0-\x122ef\x122f-\x122f\x122f0-\x122ff\x1230-\x1230\x12300-\x1230f\x1231-\x1231\x12310-\x1231f\x1232-\x1232\x12320-\x1232f\x1233-\x1233\x12330-\x1233f\x1234-\x1234\x12340-\x1234f\x1235-\x1235\x12350-\x1235f\x1236-\x1236\x12360-\x1236e\x1237-\x1240\x12400-\x1240f\x1241-\x1241\x12410-\x1241f\x1242-\x1242\x12420-\x1242f\x1243-\x1243\x12430-\x1243f\x1244-\x1244\x12440-\x1244f\x1245-\x1245\x12450-\x1245f\x1246-\x1246\x12460-\x12462\x1247-\x1248\x124a-\x124d\x1250-\x1256\x1258-\x1258\x125a-\x125d\x1260-\x1288\x128a-\x128d\x1290-\x12b0\x12b2-\x12b5\x12b8-\x12be\x12c0-\x12c0\x12c2-\x12c5\x12c8-\x12d6\x12d8-\x1300\x13000-\x1300f\x1301-\x1301\x13010-\x1301f\x1302-\x1302\x13020-\x1302f\x1303-\x1303\x13030-\x1303f\x1304-\x1304\x13040-\x1304f\x1305-\x1305\x13050-\x1305f\x1306-\x1306\x13060-\x1306f\x1307-\x1307\x13070-\x1307f\x1308-\x1308\x13080-\x1308f\x1309-\x1309\x13090-\x1309f\x130a-\x130a\x130a0-\x130af\x130b-\x130b\x130b0-\x130bf\x130c-\x130c\x130c0-\x130cf\x130d-\x130d\x130d0-\x130df\x130e-\x130e\x130e0-\x130ef\x130f-\x130f\x130f0-\x130ff\x1310-\x1310\x13100-\x1311f\x1312-\x1312\x13120-\x1312f\x1313-\x1313\x13130-\x1313f\x1314-\x1314\x13140-\x1314f\x1315-\x1315\x13150-\x1317f\x1318-\x1318\x13180-\x1318f\x1319-\x1319\x13190-\x1319f\x131a-\x131a\x131a0-\x131af\x131b-\x131b\x131b0-\x131bf\x131c-\x131c\x131c0-\x131cf\x131d-\x131d\x131d0-\x131df\x131e-\x131e\x131e0-\x131ef\x131f-\x131f\x131f0-\x131ff\x1320-\x1320\x13200-\x1320f\x1321-\x1321\x13210-\x1321f\x1322-\x1322\x13220-\x1322f\x1323-\x1323\x13230-\x1323f\x1324-\x1324\x13240-\x1324f\x1325-\x1325\x13250-\x1325f\x1326-\x1326\x13260-\x1326f\x1327-\x1327\x13270-\x1327f\x1328-\x1328\x13280-\x1328f\x1329-\x1329\x13290-\x1329f\x132a-\x132a\x132a0-\x132af\x132b-\x132b\x132b0-\x132bf\x132c-\x132c\x132c0-\x132cf\x132d-\x132d\x132d0-\x132df\x132e-\x132e\x132e0-\x132ef\x132f-\x132f\x132f0-\x132ff\x1330-\x1330\x13300-\x1330f\x1331-\x1331\x13310-\x1331f\x1332-\x1332\x13320-\x1332f\x1333-\x1333\x13330-\x1333f\x1334-\x1334\x13340-\x1334f\x1335-\x1335\x13350-\x1335f\x1336-\x1336\x13360-\x1336f\x1337-\x1337\x13370-\x1337f\x1338-\x1338\x13380-\x1338f\x1339-\x1339\x13390-\x1339f\x133a-\x133a\x133a0-\x133af\x133b-\x133b\x133b0-\x133bf\x133c-\x133c\x133c0-\x133cf\x133d-\x133d\x133d0-\x133df\x133e-\x133e\x133e0-\x133ef\x133f-\x133f\x133f0-\x133ff\x1340-\x1340\x13400-\x1340f\x1341-\x1341\x13410-\x1341f\x1342-\x1342\x13420-\x1342e\x1343-\x135a\x1380-\x138f\x13a0-\x13f4\x1401-\x166c\x166f-\x167f\x16800-\x1680f\x1681-\x1681\x16810-\x1681f\x1682-\x1682\x16820-\x1682f\x1683-\x1683\x16830-\x1683f\x1684-\x1684\x16840-\x1684f\x1685-\x1685\x16850-\x1685f\x1686-\x1686\x16860-\x1686f\x1687-\x1687\x16870-\x1687f\x1688-\x1688\x16880-\x1688f\x1689-\x1689\x16890-\x1689f\x168a-\x168a\x168a0-\x168af\x168b-\x168b\x168b0-\x168bf\x168c-\x168c\x168c0-\x168cf\x168d-\x168d\x168d0-\x168df\x168e-\x168e\x168e0-\x168ef\x168f-\x168f\x168f0-\x168ff\x1690-\x1690\x16900-\x1690f\x1691-\x1691\x16910-\x1691f\x1692-\x1692\x16920-\x1692f\x1693-\x1693\x16930-\x1693f\x1694-\x1694\x16940-\x1694f\x1695-\x1695\x16950-\x1695f\x1696-\x1696\x16960-\x1696f\x1697-\x1697\x16970-\x1697f\x1698-\x1698\x16980-\x1698f\x1699-\x1699\x16990-\x1699f\x169a-\x169a\x169a0-\x169ff\x16a0-\x16a0\x16a00-\x16a0f\x16a1-\x16a1\x16a10-\x16a1f\x16a2-\x16a2\x16a20-\x16a2f\x16a3-\x16a3\x16a30-\x16a38\x16a4-\x16ea\x16ee-\x16f0\x1700-\x170c\x170e-\x1711\x1720-\x1731\x1740-\x1751\x1760-\x176c\x176e-\x1770\x1780-\x17b3\x17d7-\x17d7\x17dc-\x17dc\x1820-\x1877\x1880-\x18a8\x18aa-\x18aa\x18b0-\x18f5\x1900-\x191c\x1950-\x196d\x1970-\x1974\x1980-\x19ab\x19c1-\x19c7\x1a00-\x1a16\x1a20-\x1a54\x1aa7-\x1aa7\x1b000-\x1b001\x1b05-\x1b33\x1b45-\x1b4b\x1b83-\x1ba0\x1bae-\x1baf\x1bc0-\x1be5\x1c00-\x1c23\x1c4d-\x1c4f\x1c5a-\x1c7d\x1ce9-\x1cec\x1cee-\x1cf1\x1d00-\x1d40\x1d400-\x1d40f\x1d41-\x1d41\x1d410-\x1d41f\x1d42-\x1d42\x1d420-\x1d42f\x1d43-\x1d43\x1d430-\x1d43f\x1d44-\x1d44\x1d440-\x1d44f\x1d45-\x1d45\x1d450-\x1d454\x1d456-\x1d45f\x1d46-\x1d46\x1d460-\x1d46f\x1d47-\x1d47\x1d470-\x1d47f\x1d48-\x1d48\x1d480-\x1d48f\x1d49-\x1d49\x1d490-\x1d49c\x1d49e-\x1d49f\x1d4a-\x1d4a\x1d4a2-\x1d4a2\x1d4a5-\x1d4a6\x1d4a9-\x1d4ac\x1d4ae-\x1d4af\x1d4b-\x1d4b\x1d4b0-\x1d4b9\x1d4bb-\x1d4bb\x1d4bd-\x1d4bf\x1d4c-\x1d4c\x1d4c0-\x1d4c3\x1d4c5-\x1d4cf\x1d4d-\x1d4d\x1d4d0-\x1d4df\x1d4e-\x1d4e\x1d4e0-\x1d4ef\x1d4f-\x1d4f\x1d4f0-\x1d4ff\x1d50-\x1d50\x1d500-\x1d505\x1d507-\x1d50a\x1d50d-\x1d50f\x1d51-\x1d51\x1d510-\x1d514\x1d516-\x1d51c\x1d51e-\x1d51f\x1d52-\x1d52\x1d520-\x1d52f\x1d53-\x1d53\x1d530-\x1d539\x1d53b-\x1d53e\x1d54-\x1d54\x1d540-\x1d544\x1d546-\x1d546\x1d54a-\x1d54f\x1d55-\x1d55\x1d550-\x1d550\x1d552-\x1d55f\x1d56-\x1d56\x1d560-\x1d56f\x1d57-\x1d57\x1d570-\x1d57f\x1d58-\x1d58\x1d580-\x1d58f\x1d59-\x1d59\x1d590-\x1d59f\x1d5a-\x1d5a\x1d5a0-\x1d5af\x1d5b-\x1d5b\x1d5b0-\x1d5bf\x1d5c-\x1d5c\x1d5c0-\x1d5cf\x1d5d-\x1d5d\x1d5d0-\x1d5df\x1d5e-\x1d5e\x1d5e0-\x1d5ef\x1d5f-\x1d5f\x1d5f0-\x1d5ff\x1d60-\x1d60\x1d600-\x1d60f\x1d61-\x1d61\x1d610-\x1d61f\x1d62-\x1d62\x1d620-\x1d62f\x1d63-\x1d63\x1d630-\x1d63f\x1d64-\x1d64\x1d640-\x1d64f\x1d65-\x1d65\x1d650-\x1d65f\x1d66-\x1d66\x1d660-\x1d66f\x1d67-\x1d67\x1d670-\x1d67f\x1d68-\x1d68\x1d680-\x1d68f\x1d69-\x1d69\x1d690-\x1d69f\x1d6a-\x1d6a\x1d6a0-\x1d6a5\x1d6a8-\x1d6af\x1d6b-\x1d6b\x1d6b0-\x1d6bf\x1d6c-\x1d6c\x1d6c0-\x1d6c0\x1d6c2-\x1d6cf\x1d6d-\x1d6d\x1d6d0-\x1d6da\x1d6dc-\x1d6df\x1d6e-\x1d6e\x1d6e0-\x1d6ef\x1d6f-\x1d6f\x1d6f0-\x1d6fa\x1d6fc-\x1d6ff\x1d70-\x1d70\x1d700-\x1d70f\x1d71-\x1d71\x1d710-\x1d714\x1d716-\x1d71f\x1d72-\x1d72\x1d720-\x1d72f\x1d73-\x1d73\x1d730-\x1d734\x1d736-\x1d73f\x1d74-\x1d74\x1d740-\x1d74e\x1d75-\x1d75\x1d750-\x1d75f\x1d76-\x1d76\x1d760-\x1d76e\x1d77-\x1d77\x1d770-\x1d77f\x1d78-\x1d78\x1d780-\x1d788\x1d78a-\x1d78f\x1d79-\x1d79\x1d790-\x1d79f\x1d7a-\x1d7a\x1d7a0-\x1d7a8\x1d7aa-\x1d7af\x1d7b-\x1d7b\x1d7b0-\x1d7bf\x1d7c-\x1d7c\x1d7c0-\x1d7c2\x1d7c4-\x1d7cb\x1d7d-\x1dbf\x1e00-\x1f15\x1f18-\x1f1d\x1f20-\x1f45\x1f48-\x1f4d\x1f50-\x1f57\x1f59-\x1f59\x1f5b-\x1f5b\x1f5d-\x1f5d\x1f5f-\x1f7d\x1f80-\x1fb4\x1fb6-\x1fbc\x1fbe-\x1fbe\x1fc2-\x1fc4\x1fc6-\x1fcc\x1fd0-\x1fd3\x1fd6-\x1fdb\x1fe0-\x1fec\x1ff2-\x1ff4\x1ff6-\x1ffc\x20000-\x20000\x2071-\x2071\x207f-\x207f\x2090-\x209c\x2102-\x2102\x2107-\x2107\x210a-\x2113\x2115-\x2115\x2119-\x211d\x2124-\x2124\x2126-\x2126\x2128-\x2128\x212a-\x212d\x212f-\x2139\x213c-\x213f\x2145-\x2149\x214e-\x214e\x2160-\x2188\x2a6d6-\x2a6d6\x2a700-\x2a700\x2b734-\x2b734\x2b740-\x2b740\x2b81d-\x2b81d\x2c00-\x2c2e\x2c30-\x2c5e\x2c60-\x2ce4\x2ceb-\x2cee\x2d00-\x2d25\x2d30-\x2d65\x2d6f-\x2d6f\x2d80-\x2d96\x2da0-\x2da6\x2da8-\x2dae\x2db0-\x2db6\x2db8-\x2dbe\x2dc0-\x2dc6\x2dc8-\x2dce\x2dd0-\x2dd6\x2dd8-\x2dde\x2e2f-\x2e2f\x2f800-\x2fa1d\x3005-\x3007\x3021-\x3029\x3031-\x3035\x3038-\x303c\x3041-\x3096\x309d-\x309f\x30a1-\x30fa\x30fc-\x30ff\x3105-\x312d\x3131-\x318e\x31a0-\x31ba\x31f0-\x31ff\x3400-\x3400\x4db5-\x4db5\x4e00-\x4e00\x9fcb-\x9fcb\xa000-\xa48c\xa4d0-\xa4fd\xa500-\xa60c\xa610-\xa61f\xa62a-\xa62b\xa640-\xa66e\xa67f-\xa697\xa6a0-\xa6ef\xa717-\xa71f\xa722-\xa788\xa78b-\xa78e\xa790-\xa791\xa7a0-\xa7a9\xa7fa-\xa801\xa803-\xa805\xa807-\xa80a\xa80c-\xa822\xa840-\xa873\xa882-\xa8b3\xa8f2-\xa8f7\xa8fb-\xa8fb\xa90a-\xa925\xa930-\xa946\xa960-\xa97c\xa984-\xa9b2\xa9cf-\xa9cf\xaa00-\xaa28\xaa40-\xaa42\xaa44-\xaa4b\xaa60-\xaa76\xaa7a-\xaa7a\xaa80-\xaaaf\xaab1-\xaab1\xaab5-\xaab6\xaab9-\xaabd\xaac0-\xaac0\xaac2-\xaac2\xaadb-\xaadd\xab01-\xab06\xab09-\xab0e\xab11-\xab16\xab20-\xab26\xab28-\xab2e\xabc0-\xabe2\xac00-\xac00\xd7a3-\xd7a3\xd7b0-\xd7c6\xd7cb-\xd7fb\xf900-\xfa2d\xfa30-\xfa6d\xfa70-\xfad9\xfb00-\xfb06\xfb13-\xfb17\xfb1d-\xfb1d\xfb1f-\xfb28\xfb2a-\xfb36\xfb38-\xfb3c\xfb3e-\xfb3e\xfb40-\xfb41\xfb43-\xfb44\xfb46-\xfbb1\xfbd3-\xfd3d\xfd50-\xfd8f\xfd92-\xfdc7\xfdf0-\xfdfb\xfe70-\xfe74\xfe76-\xfefc\xff21-\xff3a\xff41-\xff5a\xff66-\xffbe\xffc2-\xffc7\xffca-\xffcf\xffd2-\xffd7]
-
+-- UnicodeCombiningMark
+-- any character in the Unicode categories “Non-spacing mark (Mn)” or “Combining spacing mark (Mc)”
+$UnicodeCombiningMark = [\x300-\x36f\x483-\x487\x591-\x5bd\x5bf-\x5bf\x5c1-\x5c2\x5c4-\x5c5\x5c7-\x5c7\x610-\x61a\x64b-\x65f\x670-\x670\x6d6-\x6dc\x6df-\x6e4\x6e7-\x6e8\x6ea-\x6ed\x711-\x711\x730-\x74a\x7a6-\x7b0\x7eb-\x7f3\x816-\x819\x81b-\x823\x825-\x827\x829-\x82d\x859-\x85b\x900-\x903\x93a-\x93c\x93e-\x94f\x951-\x957\x962-\x963\x981-\x983\x9bc-\x9bc\x9be-\x9c4\x9c7-\x9c8\x9cb-\x9cd\x9d7-\x9d7\x9e2-\x9e3\xa01-\xa03\xa3c-\xa3c\xa3e-\xa42\xa47-\xa48\xa4b-\xa4d\xa51-\xa51\xa70-\xa71\xa75-\xa75\xa81-\xa83\xabc-\xabc\xabe-\xac5\xac7-\xac9\xacb-\xacd\xae2-\xae3\xb01-\xb03\xb3c-\xb3c\xb3e-\xb44\xb47-\xb48\xb4b-\xb4d\xb56-\xb57\xb62-\xb63\xb82-\xb82\xbbe-\xbc2\xbc6-\xbc8\xbca-\xbcd\xbd7-\xbd7\xc01-\xc03\xc3e-\xc44\xc46-\xc48\xc4a-\xc4d\xc55-\xc56\xc62-\xc63\xc82-\xc83\xcbc-\xcbc\xcbe-\xcc4\xcc6-\xcc8\xcca-\xccd\xcd5-\xcd6\xce2-\xce3\xd02-\xd03\xd3e-\xd44\xd46-\xd48\xd4a-\xd4d\xd57-\xd57\xd62-\xd63\xd82-\xd83\xdca-\xdca\xdcf-\xdd4\xdd6-\xdd6\xdd8-\xddf\xdf2-\xdf3\xe31-\xe31\xe34-\xe3a\xe47-\xe4e\xeb1-\xeb1\xeb4-\xeb9\xebb-\xebc\xec8-\xecd\xf18-\xf19\xf35-\xf35\xf37-\xf37\xf39-\xf39\xf3e-\xf3f\xf71-\xf84\xf86-\xf87\xf8d-\xf97\xf99-\xfbc\xfc6-\xfc6\x101fd-\x101fd\x102b-\x103e\x1056-\x1059\x105e-\x1060\x1062-\x1064\x1067-\x106d\x1071-\x1074\x1082-\x108d\x108f-\x108f\x109a-\x109d\x10a01-\x10a03\x10a05-\x10a06\x10a0c-\x10a0f\x10a38-\x10a3a\x10a3f-\x10a3f\x11000-\x11002\x11038-\x11046\x11080-\x11082\x110b0-\x110ba\x135d-\x135f\x1712-\x1714\x1732-\x1734\x1752-\x1753\x1772-\x1773\x17b6-\x17d3\x17dd-\x17dd\x180b-\x180d\x18a9-\x18a9\x1920-\x192b\x1930-\x193b\x19b0-\x19c0\x19c8-\x19c9\x1a17-\x1a1b\x1a55-\x1a5e\x1a60-\x1a7c\x1a7f-\x1a7f\x1b00-\x1b04\x1b34-\x1b44\x1b6b-\x1b73\x1b80-\x1b82\x1ba1-\x1baa\x1be6-\x1bf3\x1c24-\x1c37\x1cd0-\x1cd2\x1cd4-\x1ce8\x1ced-\x1ced\x1cf2-\x1cf2\x1d165-\x1d169\x1d16d-\x1d172\x1d17b-\x1d182\x1d185-\x1d18b\x1d1aa-\x1d1ad\x1d242-\x1d244\x1dc0-\x1de6\x1dfc-\x1dff\x20d0-\x20dc\x20e1-\x20e1\x20e5-\x20f0\x2cef-\x2cf1\x2d7f-\x2d7f\x2de0-\x2dff\x302a-\x302f\x3099-\x309a\xa66f-\xa66f\xa67c-\xa67d\xa6f0-\xa6f1\xa802-\xa802\xa806-\xa806\xa80b-\xa80b\xa823-\xa827\xa880-\xa881\xa8b4-\xa8c4\xa8e0-\xa8f1\xa926-\xa92d\xa947-\xa953\xa980-\xa983\xa9b3-\xa9c0\xaa29-\xaa36\xaa43-\xaa43\xaa4c-\xaa4d\xaa7b-\xaa7b\xaab0-\xaab0\xaab2-\xaab4\xaab7-\xaab8\xaabe-\xaabf\xaac1-\xaac1\xabe3-\xabea\xabec-\xabed\xe0100-\xe01ef\xfb1e-\xfb1e\xfe00-\xfe0f]
+
+-- UnicodeDigit
+-- any character in the Unicode category “Decimal number (Nd)”
+$UnicodeDigit = [\x30-\x39\x660-\x669\x6f0-\x6f9\x7c0-\x7c9\x966-\x96f\x9e6-\x9ef\xa66-\xa6f\xae6-\xaef\xb66-\xb6f\xbe6-\xbef\xc66-\xc6f\xce6-\xcef\xd66-\xd6f\xe50-\xe59\xed0-\xed9\xf20-\xf29\x1040-\x1049\x104a0-\x104a9\x1090-\x1099\x11066-\x1106f\x17e0-\x17e9\x1810-\x1819\x1946-\x194f\x19d0-\x19d9\x1a80-\x1a89\x1a90-\x1a99\x1b50-\x1b59\x1bb0-\x1bb9\x1c40-\x1c49\x1c50-\x1c59\x1d7ce-\x1d7ff\xa620-\xa629\xa8d0-\xa8d9\xa900-\xa909\xa9d0-\xa9d9\xaa50-\xaa59\xabf0-\xabf9]
+
+-- UnicodeConnectorPunctuation
+-- any character in the Unicode category “Connector punctuation (Pc)”
+$UnicodeConnectorPunctuation = [\x5f-\x5f\x203f-\x2040\x2054-\x2054\xfe33-\xfe34\xfe4d-\xfe4f]
+
+-- UnicodeEscapeSequence ::
+-- u HexDigit HexDigit HexDigit HexDigit
+$HexDigit = [0-9a-fA-F]
+@UnicodeEscapeSequence = u $HexDigit $HexDigit $HexDigit $HexDigit
+
+-- IdentifierStart ::
+-- UnicodeLetter
+-- $
+-- _
+-- \ UnicodeEscapeSequence
+@IdentifierStart = $UnicodeLetter | [\$] | [_] | [\\] @UnicodeEscapeSequence
+
+-- IdentifierPart ::
+-- IdentifierStart
+-- UnicodeCombiningMark
+-- UnicodeDigit
+-- UnicodeConnectorPunctuation
+-- \ UnicodeEscapeSequence
+
+@IdentifierPart = @IdentifierStart | $UnicodeCombiningMark | $UnicodeDigit | UnicodeConnectorPunctuation
+ [\\] @UnicodeEscapeSequence
+
-- ! ------------------------------------------------- Terminals
tokens :-
@@ -151,7 +184,8 @@ tokens :-
-- Identifier = {ID Head}{ID Tail}*
-<reg,divide> @IDHead(@IDTail)* { \loc len str -> keywordOrIdent (take len str) loc }
+--<reg,divide> @IDHead(@IDTail)* { \loc len str -> keywordOrIdent (take len str) loc }
+<reg,divide> @IdentifierStart(@IdentifierPart)* { \loc len str -> keywordOrIdent (take len str) loc }
-- StringLiteral = '"' ( {String Chars1} | '\' {Printable} )* '"'
-- | '' ( {String Chars2} | '\' {Printable} )* ''
View
9 unicode/combiningmark.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# UnicodeCombiningMark
+# any character in the Unicode categories “Non-spacing mark (Mn)” or “Combining spacing mark (Mc)”
+
+wget -c 'http://www.fileformat.info/info/unicode/category/Mn/list.htm?mode=print' -O uc-mn.htm
+wget -c 'http://www.fileformat.info/info/unicode/category/Mc/list.htm?mode=print' -O uc-mc.htm
+
+grep --no-filename -o -E "U\+[0-9a-fA-F]+" uc-m*.htm | sort > list-cm.txt
View
9 unicode/connector-punctuation.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+
+# UnicodeConnectorPunctuation
+# any character in the Unicode category “Connector punctuation (Pc)”
+
+wget -c 'http://www.fileformat.info/info/unicode/category/Pc/list.htm?mode=print' -O uc-pc.htm
+
+grep --no-filename -o -E "U\+[0-9a-fA-F]+" uc-pc.htm | sort > list-pc.txt
View
8 unicode/digit.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# UnicodeDigit
+# any character in the Unicode category “Decimal number (Nd)”
+
+wget -c 'http://www.fileformat.info/info/unicode/category/Nd/list.htm?mode=print' -O uc-nd.htm
+
+grep --no-filename -o -E "U\+[0-9a-fA-F]+" uc-nd.htm | sort > list-nd.txt
View
1,486 unicode/list-cm.txt
@@ -0,0 +1,1486 @@
+U+0300
+U+0301
+U+0302
+U+0303
+U+0304
+U+0305
+U+0306
+U+0307
+U+0308
+U+0309
+U+030A
+U+030B
+U+030C
+U+030D
+U+030E
+U+030F
+U+0310
+U+0311
+U+0312
+U+0313
+U+0314
+U+0315
+U+0316
+U+0317
+U+0318
+U+0319
+U+031A
+U+031B
+U+031C
+U+031D
+U+031E
+U+031F
+U+0320
+U+0321
+U+0322
+U+0323
+U+0324
+U+0325
+U+0326
+U+0327
+U+0328
+U+0329
+U+032A
+U+032B
+U+032C
+U+032D
+U+032E
+U+032F
+U+0330
+U+0331
+U+0332
+U+0333
+U+0334
+U+0335
+U+0336
+U+0337
+U+0338
+U+0339
+U+033A
+U+033B
+U+033C
+U+033D
+U+033E
+U+033F
+U+0340
+U+0341
+U+0342
+U+0343
+U+0344
+U+0345
+U+0346
+U+0347
+U+0348
+U+0349
+U+034A
+U+034B
+U+034C
+U+034D
+U+034E
+U+034F
+U+0350
+U+0351
+U+0352
+U+0353
+U+0354
+U+0355
+U+0356
+U+0357
+U+0358
+U+0359
+U+035A
+U+035B
+U+035C
+U+035D
+U+035E
+U+035F
+U+0360
+U+0361
+U+0362
+U+0363
+U+0364
+U+0365
+U+0366
+U+0367
+U+0368
+U+0369
+U+036A
+U+036B
+U+036C
+U+036D
+U+036E
+U+036F
+U+0483
+U+0484
+U+0485
+U+0486
+U+0487
+U+0591
+U+0592
+U+0593
+U+0594
+U+0595
+U+0596
+U+0597
+U+0598
+U+0599
+U+059A
+U+059B
+U+059C
+U+059D
+U+059E
+U+059F
+U+05A0
+U+05A1
+U+05A2
+U+05A3
+U+05A4
+U+05A5
+U+05A6
+U+05A7
+U+05A8
+U+05A9
+U+05AA
+U+05AB
+U+05AC
+U+05AD
+U+05AE
+U+05AF
+U+05B0
+U+05B1
+U+05B2
+U+05B3
+U+05B4
+U+05B5
+U+05B6
+U+05B7
+U+05B8
+U+05B9
+U+05BA
+U+05BB
+U+05BC
+U+05BD
+U+05BF
+U+05C1
+U+05C2
+U+05C4
+U+05C5
+U+05C7
+U+0610
+U+0611
+U+0612
+U+0613
+U+0614
+U+0615
+U+0616
+U+0617
+U+0618
+U+0619
+U+061A
+U+064B
+U+064C
+U+064D
+U+064E
+U+064F
+U+0650
+U+0651
+U+0652
+U+0653
+U+0654
+U+0655
+U+0656
+U+0657
+U+0658
+U+0659
+U+065A
+U+065B
+U+065C
+U+065D
+U+065E
+U+065F
+U+0670
+U+06D6
+U+06D7
+U+06D8
+U+06D9
+U+06DA
+U+06DB
+U+06DC
+U+06DF
+U+06E0
+U+06E1
+U+06E2
+U+06E3
+U+06E4
+U+06E7
+U+06E8
+U+06EA
+U+06EB
+U+06EC
+U+06ED
+U+0711
+U+0730
+U+0731
+U+0732
+U+0733
+U+0734
+U+0735
+U+0736
+U+0737
+U+0738
+U+0739
+U+073A
+U+073B
+U+073C
+U+073D
+U+073E
+U+073F
+U+0740
+U+0741
+U+0742
+U+0743
+U+0744
+U+0745
+U+0746
+U+0747
+U+0748
+U+0749
+U+074A
+U+07A6
+U+07A7
+U+07A8
+U+07A9
+U+07AA
+U+07AB
+U+07AC
+U+07AD
+U+07AE
+U+07AF
+U+07B0
+U+07EB
+U+07EC
+U+07ED
+U+07EE
+U+07EF
+U+07F0
+U+07F1
+U+07F2
+U+07F3
+U+0816
+U+0817
+U+0818
+U+0819
+U+081B
+U+081C
+U+081D
+U+081E
+U+081F
+U+0820
+U+0821
+U+0822
+U+0823
+U+0825
+U+0826
+U+0827
+U+0829
+U+082A
+U+082B
+U+082C
+U+082D
+U+0859
+U+085A
+U+085B
+U+0900
+U+0901
+U+0902
+U+0903
+U+093A
+U+093B
+U+093C
+U+093E
+U+093F
+U+0940
+U+0941
+U+0942
+U+0943
+U+0944
+U+0945
+U+0946
+U+0947
+U+0948
+U+0949
+U+094A
+U+094B
+U+094C
+U+094D
+U+094E
+U+094F
+U+0951
+U+0952
+U+0953
+U+0954
+U+0955
+U+0956
+U+0957
+U+0962
+U+0963
+U+0981
+U+0982
+U+0983
+U+09BC
+U+09BE
+U+09BF
+U+09C0
+U+09C1
+U+09C2
+U+09C3
+U+09C4
+U+09C7
+U+09C8
+U+09CB
+U+09CC
+U+09CD
+U+09D7
+U+09E2
+U+09E3
+U+0A01
+U+0A02
+U+0A03
+U+0A3C
+U+0A3E
+U+0A3F
+U+0A40
+U+0A41
+U+0A42
+U+0A47
+U+0A48
+U+0A4B
+U+0A4C
+U+0A4D
+U+0A51
+U+0A70
+U+0A71
+U+0A75
+U+0A81
+U+0A82
+U+0A83
+U+0ABC
+U+0ABE
+U+0ABF
+U+0AC0
+U+0AC1
+U+0AC2
+U+0AC3
+U+0AC4
+U+0AC5
+U+0AC7
+U+0AC8
+U+0AC9
+U+0ACB
+U+0ACC
+U+0ACD
+U+0AE2
+U+0AE3
+U+0B01
+U+0B02
+U+0B03
+U+0B3C
+U+0B3E
+U+0B3F
+U+0B40
+U+0B41
+U+0B42
+U+0B43
+U+0B44
+U+0B47
+U+0B48
+U+0B4B
+U+0B4C
+U+0B4D
+U+0B56
+U+0B57
+U+0B62
+U+0B63
+U+0B82
+U+0BBE
+U+0BBF
+U+0BC0
+U+0BC1
+U+0BC2
+U+0BC6
+U+0BC7
+U+0BC8
+U+0BCA
+U+0BCB
+U+0BCC
+U+0BCD
+U+0BD7
+U+0C01
+U+0C02
+U+0C03
+U+0C3E
+U+0C3F
+U+0C40
+U+0C41
+U+0C42
+U+0C43
+U+0C44
+U+0C46
+U+0C47
+U+0C48
+U+0C4A
+U+0C4B
+U+0C4C
+U+0C4D
+U+0C55
+U+0C56
+U+0C62
+U+0C63
+U+0C82
+U+0C83
+U+0CBC
+U+0CBE
+U+0CBF
+U+0CC0
+U+0CC1
+U+0CC2
+U+0CC3
+U+0CC4
+U+0CC6
+U+0CC7
+U+0CC8
+U+0CCA
+U+0CCB
+U+0CCC
+U+0CCD
+U+0CD5
+U+0CD6
+U+0CE2
+U+0CE3
+U+0D02
+U+0D03
+U+0D3E
+U+0D3F
+U+0D40
+U+0D41
+U+0D42
+U+0D43
+U+0D44
+U+0D46
+U+0D47
+U+0D48
+U+0D4A
+U+0D4B
+U+0D4C
+U+0D4D
+U+0D57
+U+0D62
+U+0D63
+U+0D82
+U+0D83
+U+0DCA
+U+0DCF
+U+0DD0
+U+0DD1
+U+0DD2
+U+0DD3
+U+0DD4
+U+0DD6
+U+0DD8
+U+0DD9
+U+0DDA
+U+0DDB
+U+0DDC
+U+0DDD
+U+0DDE
+U+0DDF
+U+0DF2
+U+0DF3
+U+0E31
+U+0E34
+U+0E35
+U+0E36
+U+0E37
+U+0E38
+U+0E39
+U+0E3A
+U+0E47
+U+0E48
+U+0E49
+U+0E4A
+U+0E4B
+U+0E4C
+U+0E4D
+U+0E4E
+U+0EB1
+U+0EB4
+U+0EB5
+U+0EB6
+U+0EB7
+U+0EB8
+U+0EB9
+U+0EBB
+U+0EBC
+U+0EC8
+U+0EC9
+U+0ECA
+U+0ECB
+U+0ECC
+U+0ECD
+U+0F18
+U+0F19
+U+0F35
+U+0F37
+U+0F39
+U+0F3E
+U+0F3F
+U+0F71
+U+0F72
+U+0F73
+U+0F74
+U+0F75
+U+0F76
+U+0F77
+U+0F78
+U+0F79
+U+0F7A
+U+0F7B
+U+0F7C
+U+0F7D
+U+0F7E
+U+0F7F
+U+0F80
+U+0F81
+U+0F82
+U+0F83
+U+0F84
+U+0F86
+U+0F87
+U+0F8D
+U+0F8E
+U+0F8F
+U+0F90
+U+0F91
+U+0F92
+U+0F93
+U+0F94
+U+0F95
+U+0F96
+U+0F97
+U+0F99
+U+0F9A
+U+0F9B
+U+0F9C
+U+0F9D
+U+0F9E
+U+0F9F
+U+0FA0
+U+0FA1
+U+0FA2
+U+0FA3
+U+0FA4
+U+0FA5
+U+0FA6
+U+0FA7
+U+0FA8
+U+0FA9
+U+0FAA
+U+0FAB
+U+0FAC
+U+0FAD
+U+0FAE
+U+0FAF
+U+0FB0
+U+0FB1
+U+0FB2
+U+0FB3
+U+0FB4
+U+0FB5
+U+0FB6
+U+0FB7
+U+0FB8
+U+0FB9
+U+0FBA
+U+0FBB
+U+0FBC
+U+0FC6
+U+101FD
+U+102B
+U+102C
+U+102D
+U+102E
+U+102F
+U+1030
+U+1031
+U+1032
+U+1033
+U+1034
+U+1035
+U+1036
+U+1037
+U+1038
+U+1039
+U+103A
+U+103B
+U+103C
+U+103D
+U+103E
+U+1056
+U+1057
+U+1058
+U+1059
+U+105E
+U+105F
+U+1060
+U+1062
+U+1063
+U+1064
+U+1067
+U+1068
+U+1069
+U+106A
+U+106B
+U+106C
+U+106D
+U+1071
+U+1072
+U+1073
+U+1074
+U+1082
+U+1083
+U+1084
+U+1085
+U+1086
+U+1087
+U+1088
+U+1089
+U+108A
+U+108B
+U+108C
+U+108D
+U+108F
+U+109A
+U+109B
+U+109C
+U+109D
+U+10A01
+U+10A02
+U+10A03
+U+10A05
+U+10A06
+U+10A0C
+U+10A0D
+U+10A0E
+U+10A0F
+U+10A38
+U+10A39
+U+10A3A
+U+10A3F
+U+11000
+U+11001
+U+11002
+U+11038
+U+11039
+U+1103A
+U+1103B
+U+1103C
+U+1103D
+U+1103E
+U+1103F
+U+11040
+U+11041
+U+11042
+U+11043
+U+11044
+U+11045
+U+11046
+U+11080
+U+11081
+U+11082
+U+110B0
+U+110B1
+U+110B2
+U+110B3
+U+110B4
+U+110B5
+U+110B6
+U+110B7
+U+110B8
+U+110B9
+U+110BA
+U+135D
+U+135E
+U+135F
+U+1712
+U+1713
+U+1714
+U+1732
+U+1733
+U+1734
+U+1752
+U+1753
+U+1772
+U+1773
+U+17B6
+U+17B7
+U+17B8
+U+17B9
+U+17BA
+U+17BB
+U+17BC
+U+17BD
+U+17BE
+U+17BF
+U+17C0
+U+17C1
+U+17C2
+U+17C3
+U+17C4
+U+17C5
+U+17C6
+U+17C7
+U+17C8
+U+17C9
+U+17CA
+U+17CB
+U+17CC
+U+17CD
+U+17CE
+U+17CF
+U+17D0
+U+17D1
+U+17D2
+U+17D3
+U+17DD
+U+180B
+U+180C
+U+180D
+U+18A9
+U+1920
+U+1921
+U+1922
+U+1923
+U+1924
+U+1925
+U+1926
+U+1927
+U+1928
+U+1929
+U+192A
+U+192B
+U+1930
+U+1931
+U+1932
+U+1933
+U+1934
+U+1935
+U+1936
+U+1937
+U+1938
+U+1939
+U+193A
+U+193B
+U+19B0
+U+19B1
+U+19B2
+U+19B3
+U+19B4
+U+19B5
+U+19B6
+U+19B7
+U+19B8
+U+19B9
+U+19BA
+U+19BB
+U+19BC
+U+19BD
+U+19BE
+U+19BF
+U+19C0
+U+19C8
+U+19C9
+U+1A17
+U+1A18
+U+1A19
+U+1A1A
+U+1A1B
+U+1A55
+U+1A56
+U+1A57
+U+1A58
+U+1A59
+U+1A5A
+U+1A5B
+U+1A5C
+U+1A5D
+U+1A5E
+U+1A60
+U+1A61
+U+1A62
+U+1A63
+U+1A64
+U+1A65
+U+1A66
+U+1A67
+U+1A68
+U+1A69
+U+1A6A
+U+1A6B
+U+1A6C
+U+1A6D
+U+1A6E
+U+1A6F
+U+1A70
+U+1A71
+U+1A72
+U+1A73
+U+1A74
+U+1A75
+U+1A76
+U+1A77
+U+1A78
+U+1A79
+U+1A7A
+U+1A7B
+U+1A7C
+U+1A7F
+U+1B00
+U+1B01
+U+1B02
+U+1B03
+U+1B04
+U+1B34
+U+1B35
+U+1B36
+U+1B37
+U+1B38
+U+1B39
+U+1B3A
+U+1B3B
+U+1B3C
+U+1B3D
+U+1B3E
+U+1B3F
+U+1B40
+U+1B41
+U+1B42
+U+1B43
+U+1B44
+U+1B6B
+U+1B6C
+U+1B6D
+U+1B6E
+U+1B6F
+U+1B70
+U+1B71
+U+1B72
+U+1B73
+U+1B80
+U+1B81
+U+1B82
+U+1BA1
+U+1BA2
+U+1BA3
+U+1BA4
+U+1BA5
+U+1BA6
+U+1BA7
+U+1BA8
+U+1BA9
+U+1BAA
+U+1BE6
+U+1BE7
+U+1BE8
+U+1BE9
+U+1BEA
+U+1BEB
+U+1BEC
+U+1BED
+U+1BEE
+U+1BEF
+U+1BF0
+U+1BF1
+U+1BF2
+U+1BF3
+U+1C24
+U+1C25
+U+1C26
+U+1C27
+U+1C28
+U+1C29
+U+1C2A
+U+1C2B
+U+1C2C
+U+1C2D
+U+1C2E
+U+1C2F
+U+1C30
+U+1C31
+U+1C32
+U+1C33
+U+1C34
+U+1C35
+U+1C36
+U+1C37
+U+1CD0
+U+1CD1
+U+1CD2
+U+1CD4
+U+1CD5
+U+1CD6
+U+1CD7
+U+1CD8
+U+1CD9
+U+1CDA
+U+1CDB
+U+1CDC
+U+1CDD
+U+1CDE
+U+1CDF
+U+1CE0
+U+1CE1
+U+1CE2
+U+1CE3
+U+1CE4
+U+1CE5
+U+1CE6
+U+1CE7
+U+1CE8
+U+1CED
+U+1CF2
+U+1D165
+U+1D166
+U+1D167
+U+1D168
+U+1D169
+U+1D16D
+U+1D16E
+U+1D16F
+U+1D170
+U+1D171
+U+1D172
+U+1D17B
+U+1D17C
+U+1D17D
+U+1D17E
+U+1D17F
+U+1D180
+U+1D181
+U+1D182
+U+1D185
+U+1D186
+U+1D187
+U+1D188
+U+1D189
+U+1D18A
+U+1D18B
+U+1D1AA
+U+1D1AB
+U+1D1AC
+U+1D1AD
+U+1D242
+U+1D243
+U+1D244
+U+1DC0
+U+1DC1
+U+1DC2
+U+1DC3
+U+1DC4
+U+1DC5
+U+1DC6
+U+1DC7
+U+1DC8
+U+1DC9
+U+1DCA
+U+1DCB
+U+1DCC
+U+1DCD
+U+1DCE
+U+1DCF
+U+1DD0
+U+1DD1
+U+1DD2
+U+1DD3
+U+1DD4
+U+1DD5
+U+1DD6
+U+1DD7
+U+1DD8
+U+1DD9
+U+1DDA
+U+1DDB
+U+1DDC
+U+1DDD
+U+1DDE
+U+1DDF
+U+1DE0
+U+1DE1
+U+1DE2
+U+1DE3
+U+1DE4
+U+1DE5
+U+1DE6
+U+1DFC
+U+1DFD
+U+1DFE
+U+1DFF
+U+20D0
+U+20D1
+U+20D2
+U+20D3
+U+20D4
+U+20D5
+U+20D6
+U+20D7
+U+20D8
+U+20D9
+U+20DA
+U+20DB
+U+20DC
+U+20E1
+U+20E5
+U+20E6
+U+20E7
+U+20E8
+U+20E9
+U+20EA
+U+20EB
+U+20EC
+U+20ED
+U+20EE
+U+20EF
+U+20F0
+U+2CEF
+U+2CF0
+U+2CF1
+U+2D7F
+U+2DE0
+U+2DE1
+U+2DE2
+U+2DE3
+U+2DE4
+U+2DE5
+U+2DE6
+U+2DE7
+U+2DE8
+U+2DE9
+U+2DEA
+U+2DEB
+U+2DEC
+U+2DED
+U+2DEE
+U+2DEF
+U+2DF0
+U+2DF1
+U+2DF2
+U+2DF3
+U+2DF4
+U+2DF5
+U+2DF6
+U+2DF7
+U+2DF8
+U+2DF9
+U+2DFA
+U+2DFB
+U+2DFC
+U+2DFD
+U+2DFE
+U+2DFF
+U+302A
+U+302B
+U+302C
+U+302D
+U+302E
+U+302F
+U+3099
+U+309A
+U+A66F
+U+A67C
+U+A67D
+U+A6F0
+U+A6F1
+U+A802
+U+A806
+U+A80B
+U+A823
+U+A824
+U+A825
+U+A826
+U+A827
+U+A880
+U+A881
+U+A8B4
+U+A8B5
+U+A8B6
+U+A8B7
+U+A8B8
+U+A8B9
+U+A8BA
+U+A8BB
+U+A8BC
+U+A8BD
+U+A8BE
+U+A8BF
+U+A8C0
+U+A8C1
+U+A8C2
+U+A8C3
+U+A8C4
+U+A8E0
+U+A8E1
+U+A8E2
+U+A8E3
+U+A8E4
+U+A8E5
+U+A8E6
+U+A8E7
+U+A8E8
+U+A8E9
+U+A8EA
+U+A8EB
+U+A8EC
+U+A8ED
+U+A8EE
+U+A8EF
+U+A8F0
+U+A8F1
+U+A926
+U+A927
+U+A928
+U+A929
+U+A92A
+U+A92B
+U+A92C
+U+A92D
+U+A947
+U+A948
+U+A949
+U+A94A
+U+A94B
+U+A94C
+U+A94D
+U+A94E
+U+A94F
+U+A950
+U+A951
+U+A952
+U+A953
+U+A980
+U+A981
+U+A982
+U+A983
+U+A9B3
+U+A9B4
+U+A9B5
+U+A9B6
+U+A9B7
+U+A9B8
+U+A9B9
+U+A9BA
+U+A9BB
+U+A9BC
+U+A9BD
+U+A9BE
+U+A9BF
+U+A9C0
+U+AA29
+U+AA2A
+U+AA2B
+U+AA2C
+U+AA2D
+U+AA2E
+U+AA2F
+U+AA30
+U+AA31
+U+AA32
+U+AA33
+U+AA34
+U+AA35
+U+AA36
+U+AA43
+U+AA4C
+U+AA4D
+U+AA7B
+U+AAB0
+U+AAB2
+U+AAB3
+U+AAB4
+U+AAB7
+U+AAB8
+U+AABE
+U+AABF
+U+AAC1
+U+ABE3
+U+ABE4
+U+ABE5
+U+ABE6
+U+ABE7
+U+ABE8
+U+ABE9
+U+ABEA
+U+ABEC
+U+ABED
+U+E0100
+U+E0101
+U+E0102
+U+E0103
+U+E0104
+U+E0105
+U+E0106
+U+E0107
+U+E0108
+U+E0109
+U+E010A
+U+E010B
+U+E010C
+U+E010D
+U+E010E
+U+E010F
+U+E0110
+U+E0111
+U+E0112
+U+E0113
+U+E0114
+U+E0115
+U+E0116
+U+E0117
+U+E0118
+U+E0119
+U+E011A
+U+E011B
+U+E011C
+U+E011D
+U+E011E
+U+E011F
+U+E0120
+U+E0121
+U+E0122
+U+E0123
+U+E0124
+U+E0125
+U+E0126
+U+E0127
+U+E0128
+U+E0129
+U+E012A
+U+E012B
+U+E012C
+U+E012D
+U+E012E
+U+E012F
+U+E0130
+U+E0131
+U+E0132
+U+E0133
+U+E0134
+U+E0135
+U+E0136
+U+E0137
+U+E0138
+U+E0139
+U+E013A
+U+E013B
+U+E013C
+U+E013D
+U+E013E
+U+E013F
+U+E0140
+U+E0141
+U+E0142
+U+E0143
+U+E0144
+U+E0145
+U+E0146
+U+E0147
+U+E0148
+U+E0149
+U+E014A
+U+E014B
+U+E014C
+U+E014D
+U+E014E
+U+E014F
+U+E0150
+U+E0151
+U+E0152
+U+E0153
+U+E0154
+U+E0155
+U+E0156
+U+E0157
+U+E0158
+U+E0159
+U+E015A
+U+E015B
+U+E015C
+U+E015D
+U+E015E
+U+E015F
+U+E0160
+U+E0161
+U+E0162
+U+E0163
+U+E0164
+U+E0165
+U+E0166
+U+E0167
+U+E0168
+U+E0169
+U+E016A
+U+E016B
+U+E016C
+U+E016D
+U+E016E
+U+E016F
+U+E0170
+U+E0171
+U+E0172
+U+E0173
+U+E0174
+U+E0175
+U+E0176
+U+E0177
+U+E0178
+U+E0179
+U+E017A
+U+E017B
+U+E017C
+U+E017D
+U+E017E
+U+E017F
+U+E0180
+U+E0181
+U+E0182
+U+E0183
+U+E0184
+U+E0185
+U+E0186
+U+E0187
+U+E0188
+U+E0189
+U+E018A
+U+E018B
+U+E018C
+U+E018D
+U+E018E
+U+E018F
+U+E0190
+U+E0191
+U+E0192
+U+E0193
+U+E0194
+U+E0195
+U+E0196
+U+E0197
+U+E0198
+U+E0199
+U+E019A
+U+E019B
+U+E019C
+U+E019D
+U+E019E
+U+E019F
+U+E01A0
+U+E01A1
+U+E01A2
+U+E01A3
+U+E01A4
+U+E01A5
+U+E01A6
+U+E01A7
+U+E01A8
+U+E01A9
+U+E01AA
+U+E01AB
+U+E01AC
+U+E01AD
+U+E01AE
+U+E01AF
+U+E01B0
+U+E01B1
+U+E01B2
+U+E01B3
+U+E01B4
+U+E01B5
+U+E01B6
+U+E01B7
+U+E01B8
+U+E01B9
+U+E01BA
+U+E01BB
+U+E01BC
+U+E01BD
+U+E01BE
+U+E01BF
+U+E01C0
+U+E01C1
+U+E01C2
+U+E01C3
+U+E01C4
+U+E01C5
+U+E01C6
+U+E01C7
+U+E01C8
+U+E01C9
+U+E01CA
+U+E01CB
+U+E01CC
+U+E01CD
+U+E01CE
+U+E01CF
+U+E01D0
+U+E01D1
+U+E01D2
+U+E01D3
+U+E01D4
+U+E01D5
+U+E01D6
+U+E01D7
+U+E01D8
+U+E01D9
+U+E01DA
+U+E01DB
+U+E01DC
+U+E01DD
+U+E01DE
+U+E01DF
+U+E01E0
+U+E01E1
+U+E01E2
+U+E01E3
+U+E01E4
+U+E01E5
+U+E01E6
+U+E01E7
+U+E01E8
+U+E01E9
+U+E01EA
+U+E01EB
+U+E01EC
+U+E01ED
+U+E01EE
+U+E01EF
+U+FB1E
+U+FE00
+U+FE01
+U+FE02
+U+FE03
+U+FE04
+U+FE05
+U+FE06
+U+FE07
+U+FE08
+U+FE09
+U+FE0A
+U+FE0B
+U+FE0C
+U+FE0D
+U+FE0E
+U+FE0F
+U+FE20
+U+FE21
+U+FE22
+U+FE23
+U+FE24
+U+FE25
+U+FE26
View
420 unicode/list-nd.txt
@@ -0,0 +1,420 @@
+U+0030
+U+0031
+U+0032
+U+0033
+U+0034
+U+0035
+U+0036
+U+0037
+U+0038
+U+0039
+U+0660
+U+0661
+U+0662
+U+0663
+U+0664
+U+0665
+U+0666
+U+0667
+U+0668
+U+0669
+U+06F0
+U+06F1
+U+06F2
+U+06F3
+U+06F4
+U+06F5
+U+06F6
+U+06F7
+U+06F8
+U+06F9
+U+07C0
+U+07C1
+U+07C2
+U+07C3
+U+07C4
+U+07C5
+U+07C6
+U+07C7
+U+07C8
+U+07C9
+U+0966
+U+0967
+U+0968
+U+0969
+U+096A
+U+096B
+U+096C
+U+096D
+U+096E
+U+096F
+U+09E6
+U+09E7
+U+09E8
+U+09E9
+U+09EA
+U+09EB
+U+09EC
+U+09ED
+U+09EE
+U+09EF
+U+0A66
+U+0A67
+U+0A68
+U+0A69
+U+0A6A
+U+0A6B
+U+0A6C
+U+0A6D
+U+0A6E
+U+0A6F
+U+0AE6
+U+0AE7
+U+0AE8
+U+0AE9
+U+0AEA
+U+0AEB
+U+0AEC
+U+0AED
+U+0AEE
+U+0AEF
+U+0B66
+U+0B67
+U+0B68
+U+0B69
+U+0B6A
+U+0B6B
+U+0B6C
+U+0B6D
+U+0B6E
+U+0B6F
+U+0BE6
+U+0BE7
+U+0BE8
+U+0BE9
+U+0BEA
+U+0BEB
+U+0BEC
+U+0BED
+U+0BEE
+U+0BEF
+U+0C66
+U+0C67
+U+0C68
+U+0C69
+U+0C6A
+U+0C6B
+U+0C6C
+U+0C6D
+U+0C6E
+U+0C6F
+U+0CE6
+U+0CE7
+U+0CE8
+U+0CE9
+U+0CEA
+U+0CEB
+U+0CEC
+U+0CED
+U+0CEE
+U+0CEF
+U+0D66
+U+0D67
+U+0D68
+U+0D69
+U+0D6A
+U+0D6B
+U+0D6C
+U+0D6D
+U+0D6E
+U+0D6F
+U+0E50
+U+0E51
+U+0E52
+U+0E53
+U+0E54
+U+0E55
+U+0E56
+U+0E57
+U+0E58
+U+0E59
+U+0ED0
+U+0ED1
+U+0ED2
+U+0ED3
+U+0ED4
+U+0ED5
+U+0ED6
+U+0ED7
+U+0ED8
+U+0ED9
+U+0F20
+U+0F21
+U+0F22
+U+0F23
+U+0F24
+U+0F25
+U+0F26
+U+0F27
+U+0F28
+U+0F29
+U+1040
+U+1041
+U+1042
+U+1043
+U+1044
+U+1045
+U+1046
+U+1047
+U+1048
+U+1049
+U+104A0
+U+104A1
+U+104A2
+U+104A3
+U+104A4
+U+104A5
+U+104A6
+U+104A7
+U+104A8
+U+104A9
+U+1090
+U+1091
+U+1092
+U+1093
+U+1094
+U+1095
+U+1096
+U+1097
+U+1098
+U+1099
+U+11066
+U+11067
+U+11068
+U+11069
+U+1106A
+U+1106B
+U+1106C
+U+1106D
+U+1106E
+U+1106F
+U+17E0
+U+17E1
+U+17E2
+U+17E3
+U+17E4
+U+17E5
+U+17E6
+U+17E7
+U+17E8
+U+17E9
+U+1810
+U+1811
+U+1812
+U+1813
+U+1814
+U+1815
+U+1816
+U+1817
+U+1818
+U+1819
+U+1946
+U+1947
+U+1948
+U+1949
+U+194A
+U+194B
+U+194C
+U+194D
+U+194E
+U+194F
+U+19D0
+U+19D1
+U+19D2
+U+19D3
+U+19D4
+U+19D5
+U+19D6
+U+19D7
+U+19D8
+U+19D9
+U+1A80
+U+1A81
+U+1A82
+U+1A83
+U+1A84
+U+1A85
+U+1A86
+U+1A87
+U+1A88
+U+1A89
+U+1A90
+U+1A91
+U+1A92
+U+1A93
+U+1A94
+U+1A95
+U+1A96
+U+1A97
+U+1A98
+U+1A99
+U+1B50
+U+1B51
+U+1B52
+U+1B53
+U+1B54
+U+1B55
+U+1B56
+U+1B57
+U+1B58
+U+1B59
+U+1BB0
+U+1BB1
+U+1BB2
+U+1BB3
+U+1BB4
+U+1BB5
+U+1BB6
+U+1BB7
+U+1BB8
+U+1BB9
+U+1C40
+U+1C41
+U+1C42
+U+1C43
+U+1C44
+U+1C45
+U+1C46
+U+1C47
+U+1C48
+U+1C49
+U+1C50
+U+1C51
+U+1C52
+U+1C53
+U+1C54
+U+1C55
+U+1C56
+U+1C57
+U+1C58
+U+1C59
+U+1D7CE
+U+1D7CF
+U+1D7D0
+U+1D7D1
+U+1D7D2
+U+1D7D3
+U+1D7D4
+U+1D7D5
+U+1D7D6
+U+1D7D7
+U+1D7D8
+U+1D7D9
+U+1D7DA
+U+1D7DB
+U+1D7DC
+U+1D7DD
+U+1D7DE
+U+1D7DF
+U+1D7E0
+U+1D7E1
+U+1D7E2
+U+1D7E3
+U+1D7E4
+U+1D7E5
+U+1D7E6
+U+1D7E7
+U+1D7E8
+U+1D7E9
+U+1D7EA
+U+1D7EB
+U+1D7EC
+U+1D7ED
+U+1D7EE
+U+1D7EF
+U+1D7F0
+U+1D7F1
+U+1D7F2
+U+1D7F3
+U+1D7F4
+U+1D7F5
+U+1D7F6
+U+1D7F7
+U+1D7F8
+U+1D7F9
+U+1D7FA
+U+1D7FB
+U+1D7FC
+U+1D7FD
+U+1D7FE
+U+1D7FF
+U+A620
+U+A621
+U+A622
+U+A623
+U+A624
+U+A625
+U+A626
+U+A627
+U+A628
+U+A629
+U+A8D0
+U+A8D1
+U+A8D2
+U+A8D3
+U+A8D4
+U+A8D5
+U+A8D6
+U+A8D7
+U+A8D8
+U+A8D9
+U+A900
+U+A901
+U+A902
+U+A903
+U+A904
+U+A905
+U+A906
+U+A907
+U+A908
+U+A909
+U+A9D0
+U+A9D1
+U+A9D2
+U+A9D3
+U+A9D4
+U+A9D5
+U+A9D6
+U+A9D7
+U+A9D8
+U+A9D9
+U+AA50
+U+AA51
+U+AA52
+U+AA53
+U+AA54
+U+AA55
+U+AA56
+U+AA57
+U+AA58
+U+AA59
+U+ABF0
+U+ABF1
+U+ABF2
+U+ABF3
+U+ABF4
+U+ABF5
+U+ABF6
+U+ABF7
+U+ABF8
+U+ABF9
+U+FF10
+U+FF11
+U+FF12
+U+FF13
+U+FF14
+U+FF15
+U+FF16
+U+FF17
+U+FF18
+U+FF19
View
10 unicode/list-pc.txt
@@ -0,0 +1,10 @@
+U+005F
+U+203F
+U+2040
+U+2054
+U+FE33
+U+FE34
+U+FE4D
+U+FE4E
+U+FE4F
+U+FF3F
View
1,934 unicode/list.hs
@@ -1,7 +1,10 @@
import Numeric
-doit = pretty $ res chars
+doit = pretty $ res charsLetter
+cm = pretty $ res charsCombiningMark
+nd = pretty $ res charsDigit
+pc = pretty $ res charsPc
pretty xs = concatMap (\(l,h) -> ('\\':"x") ++ (showHex l "") ++ "-" ++ ('\\':"x") ++ (showHex h "")) xs
@@ -15,8 +18,1935 @@ loop acc low cur xs
x = head xs
xs' = tail xs
+charsPc =
+ [
+ 0x005F
+ ,0x203F
+ ,0x2040
+ ,0x2054
+ ,0xFE33
+ ,0xFE34
+ ,0xFE4D
+ ,0xFE4E
+ ,0xFE4F
+ ,0xFF3F
+ ]
+
+charsDigit =
+ [
+ 0x0030
+ ,0x0031
+ ,0x0032
+ ,0x0033
+ ,0x0034
+ ,0x0035
+ ,0x0036
+ ,0x0037
+ ,0x0038
+ ,0x0039
+ ,0x0660
+ ,0x0661
+ ,0x0662
+ ,0x0663
+ ,0x0664
+ ,0x0665
+ ,0x0666
+ ,0x0667
+ ,0x0668
+ ,0x0669
+ ,0x06F0
+ ,0x06F1
+ ,0x06F2
+ ,0x06F3
+ ,0x06F4
+ ,0x06F5
+ ,0x06F6
+ ,0x06F7
+ ,0x06F8
+ ,0x06F9
+ ,0x07C0
+ ,0x07C1
+ ,0x07C2
+ ,0x07C3
+ ,0x07C4
+ ,0x07C5
+ ,0x07C6
+ ,0x07C7
+ ,0x07C8
+ ,0x07C9
+ ,0x0966
+ ,0x0967
+ ,0x0968
+ ,0x0969
+ ,0x096A
+ ,0x096B
+ ,0x096C
+ ,0x096D
+ ,0x096E
+ ,0x096F
+ ,0x09E6
+ ,0x09E7
+ ,0x09E8
+ ,0x09E9
+ ,0x09EA
+ ,0x09EB
+ ,0x09EC
+ ,0x09ED
+ ,0x09EE
+ ,0x09EF
+ ,0x0A66
+ ,0x0A67
+ ,0x0A68
+ ,0x0A69
+ ,0x0A6A
+ ,0x0A6B
+ ,0x0A6C
+ ,0x0A6D
+ ,0x0A6E
+ ,0x0A6F
+ ,0x0AE6
+ ,0x0AE7
+ ,0x0AE8
+ ,0x0AE9
+ ,0x0AEA
+ ,0x0AEB
+ ,0x0AEC
+ ,0x0AED
+ ,0x0AEE
+ ,0x0AEF
+ ,0x0B66
+ ,0x0B67
+ ,0x0B68
+ ,0x0B69
+ ,0x0B6A
+ ,0x0B6B
+ ,0x0B6C
+ ,0x0B6D
+ ,0x0B6E
+ ,0x0B6F
+ ,0x0BE6
+ ,0x0BE7
+ ,0x0BE8
+ ,0x0BE9
+ ,0x0BEA
+ ,0x0BEB
+ ,0x0BEC
+ ,0x0BED
+ ,0x0BEE
+ ,0x0BEF
+ ,0x0C66
+ ,0x0C67
+ ,0x0C68
+ ,0x0C69
+ ,0x0C6A
+ ,0x0C6B
+ ,0x0C6C
+ ,0x0C6D
+ ,0x0C6E
+ ,0x0C6F
+ ,0x0CE6
+ ,0x0CE7
+ ,0x0CE8
+ ,0x0CE9
+ ,0x0CEA
+ ,0x0CEB
+ ,0x0CEC
+ ,0x0CED
+ ,0x0CEE
+ ,0x0CEF
+ ,0x0D66
+ ,0x0D67
+ ,0x0D68
+ ,0x0D69
+ ,0x0D6A
+ ,0x0D6B
+ ,0x0D6C
+ ,0x0D6D
+ ,0x0D6E
+ ,0x0D6F
+ ,0x0E50
+ ,0x0E51
+ ,0x0E52
+ ,0x0E53
+ ,0x0E54
+ ,0x0E55
+ ,0x0E56
+ ,0x0E57
+ ,0x0E58
+ ,0x0E59
+ ,0x0ED0
+ ,0x0ED1
+ ,0x0ED2
+ ,0x0ED3
+ ,0x0ED4
+ ,0x0ED5
+ ,0x0ED6
+ ,0x0ED7
+ ,0x0ED8
+ ,0x0ED9
+ ,0x0F20
+ ,0x0F21
+ ,0x0F22
+ ,0x0F23
+ ,0x0F24
+ ,0x0F25
+ ,0x0F26
+ ,0x0F27
+ ,0x0F28
+ ,0x0F29
+ ,0x1040
+ ,0x1041
+ ,0x1042
+ ,0x1043
+ ,0x1044
+ ,0x1045
+ ,0x1046
+ ,0x1047
+ ,0x1048
+ ,0x1049
+ ,0x104A0
+ ,0x104A1
+ ,0x104A2
+ ,0x104A3
+ ,0x104A4
+ ,0x104A5
+ ,0x104A6
+ ,0x104A7
+ ,0x104A8
+ ,0x104A9
+ ,0x1090
+ ,0x1091
+ ,0x1092
+ ,0x1093
+ ,0x1094
+ ,0x1095
+ ,0x1096
+ ,0x1097
+ ,0x1098
+ ,0x1099
+ ,0x11066
+ ,0x11067
+ ,0x11068
+ ,0x11069
+ ,0x1106A
+ ,0x1106B
+ ,0x1106C
+ ,0x1106D
+ ,0x1106E
+ ,0x1106F
+ ,0x17E0
+ ,0x17E1
+ ,0x17E2
+ ,0x17E3
+ ,0x17E4
+ ,0x17E5
+ ,0x17E6
+ ,0x17E7
+ ,0x17E8
+ ,0x17E9
+ ,0x1810
+ ,0x1811
+ ,0x1812
+ ,0x1813
+ ,0x1814
+ ,0x1815
+ ,0x1816
+ ,0x1817
+ ,0x1818
+ ,0x1819
+ ,0x1946
+ ,0x1947
+ ,0x1948
+ ,0x1949
+ ,0x194A
+ ,0x194B
+ ,0x194C
+ ,0x194D
+ ,0x194E
+ ,0x194F
+ ,0x19D0
+ ,0x19D1
+ ,0x19D2
+ ,0x19D3
+ ,0x19D4
+ ,0x19D5
+ ,0x19D6
+ ,0x19D7
+ ,0x19D8
+ ,0x19D9
+ ,0x1A80
+ ,0x1A81
+ ,0x1A82
+ ,0x1A83
+ ,0x1A84
+ ,0x1A85
+ ,0x1A86
+ ,0x1A87
+ ,0x1A88
+ ,0x1A89
+ ,0x1A90
+ ,0x1A91
+ ,0x1A92
+ ,0x1A93
+ ,0x1A94
+ ,0x1A95
+ ,0x1A96
+ ,0x1A97
+ ,0x1A98
+ ,0x1A99
+ ,0x1B50
+ ,0x1B51
+ ,0x1B52
+ ,0x1B53
+ ,0x1B54
+ ,0x1B55
+ ,0x1B56
+ ,0x1B57
+ ,0x1B58
+ ,0x1B59
+ ,0x1BB0
+ ,0x1BB1
+ ,0x1BB2
+ ,0x1BB3
+ ,0x1BB4
+ ,0x1BB5
+ ,0x1BB6
+ ,0x1BB7
+ ,0x1BB8
+ ,0x1BB9
+ ,0x1C40
+ ,0x1C41
+ ,0x1C42
+ ,0x1C43
+ ,0x1C44
+ ,0x1C45
+ ,0x1C46
+ ,0x1C47
+ ,0x1C48
+ ,0x1C49
+ ,0x1C50
+ ,0x1C51
+ ,0x1C52
+ ,0x1C53
+ ,0x1C54
+ ,0x1C55
+ ,0x1C56
+ ,0x1C57
+ ,0x1C58
+ ,0x1C59
+ ,0x1D7CE
+ ,0x1D7CF
+ ,0x1D7D0
+ ,0x1D7D1
+ ,0x1D7D2
+ ,0x1D7D3
+ ,0x1D7D4
+ ,0x1D7D5
+ ,0x1D7D6
+ ,0x1D7D7
+ ,0x1D7D8
+ ,0x1D7D9
+ ,0x1D7DA
+ ,0x1D7DB
+ ,0x1D7DC
+ ,0x1D7DD
+ ,0x1D7DE
+ ,0x1D7DF
+ ,0x1D7E0
+ ,0x1D7E1
+ ,0x1D7E2
+ ,0x1D7E3
+ ,0x1D7E4
+ ,0x1D7E5
+ ,0x1D7E6
+ ,0x1D7E7
+ ,0x1D7E8
+ ,0x1D7E9
+ ,0x1D7EA
+ ,0x1D7EB
+ ,0x1D7EC
+ ,0x1D7ED
+ ,0x1D7EE
+ ,0x1D7EF
+ ,0x1D7F0
+ ,0x1D7F1
+ ,0x1D7F2
+ ,0x1D7F3
+ ,0x1D7F4
+ ,0x1D7F5
+ ,0x1D7F6
+ ,0x1D7F7
+ ,0x1D7F8
+ ,0x1D7F9
+ ,0x1D7FA
+ ,0x1D7FB
+ ,0x1D7FC
+ ,0x1D7FD
+ ,0x1D7FE
+ ,0x1D7FF
+ ,0xA620
+ ,0xA621
+ ,0xA622
+ ,0xA623
+ ,0xA624
+ ,0xA625
+ ,0xA626
+ ,0xA627
+ ,0xA628
+ ,0xA629
+ ,0xA8D0
+ ,0xA8D1
+ ,0xA8D2
+ ,0xA8D3
+ ,0xA8D4
+ ,0xA8D5
+ ,0xA8D6
+ ,0xA8D7
+ ,0xA8D8
+ ,0xA8D9
+ ,0xA900
+ ,0xA901
+ ,0xA902
+ ,0xA903
+ ,0xA904
+ ,0xA905
+ ,0xA906
+ ,0xA907
+ ,0xA908
+ ,0xA909
+ ,0xA9D0
+ ,0xA9D1
+ ,0xA9D2
+ ,0xA9D3
+ ,0xA9D4
+ ,0xA9D5
+ ,0xA9D6
+ ,0xA9D7
+ ,0xA9D8
+ ,0xA9D9
+ ,0xAA50
+ ,0xAA51
+ ,0xAA52
+ ,0xAA53
+ ,0xAA54
+ ,0xAA55
+ ,0xAA56
+ ,0xAA57
+ ,0xAA58
+ ,0xAA59
+ ,0xABF0
+ ,0xABF1
+ ,0xABF2
+ ,0xABF3
+ ,0xABF4
+ ,0xABF5
+ ,0xABF6
+ ,0xABF7
+ ,0xABF8
+ ,0xABF9
+ ,0xFF10
+ ,0xFF11
+ ,0xFF12
+ ,0xFF13
+ ,0xFF14
+ ,0xFF15
+ ,0xFF16
+ ,0xFF17
+ ,0xFF18
+ ,0xFF19
+ ]
+
+charsCombiningMark =
+ [
+ 0x0300
+ ,0x0301
+ ,0x0302
+ ,0x0303
+ ,0x0304
+ ,0x0305
+ ,0x0306
+ ,0x0307
+ ,0x0308
+ ,0x0309
+ ,0x030A
+ ,0x030B
+ ,0x030C
+ ,0x030D
+ ,0x030E
+ ,0x030F
+ ,0x0310
+ ,0x0311
+ ,0x0312
+ ,0x0313
+ ,0x0314
+ ,0x0315
+ ,0x0316
+ ,0x0317
+ ,0x0318
+ ,0x0319
+ ,0x031A
+ ,0x031B
+ ,0x031C
+ ,0x031D
+ ,0x031E
+ ,0x031F
+ ,0x0320
+ ,0x0321
+ ,0x0322
+ ,0x0323
+ ,0x0324
+ ,0x0325
+ ,0x0326
+ ,0x0327
+ ,0x0328
+ ,0x0329
+ ,0x032A
+ ,0x032B
+ ,0x032C
+ ,0x032D
+ ,0x032E
+ ,0x032F
+ ,0x0330
+ ,0x0331
+ ,0x0332
+ ,0x0333
+ ,0x0334
+ ,0x0335
+ ,0x0336
+ ,0x0337
+ ,0x0338
+ ,0x0339
+ ,0x033A
+ ,0x033B
+ ,0x033C
+ ,0x033D
+ ,0x033E
+ ,0x033F
+ ,0x0340
+ ,0x0341
+ ,0x0342
+ ,0x0343
+ ,0x0344
+ ,0x0345
+ ,0x0346
+ ,0x0347
+ ,0x0348
+ ,0x0349
+ ,0x034A
+ ,0x034B
+ ,0x034C
+ ,0x034D
+ ,0x034E
+ ,0x034F
+ ,0x0350
+ ,0x0351
+ ,0x0352
+ ,0x0353
+ ,0x0354
+ ,0x0355
+ ,0x0356
+ ,0x0357
+ ,0x0358
+ ,0x0359
+ ,0x035A
+ ,0x035B
+ ,0x035C
+ ,0x035D
+ ,0x035E
+ ,0x035F
+ ,0x0360
+ ,0x0361
+ ,0x0362
+ ,0x0363
+ ,0x0364
+ ,0x0365
+ ,0x0366
+ ,0x0367
+ ,0x0368
+ ,0x0369
+ ,0x036A
+ ,0x036B
+ ,0x036C
+ ,0x036D
+ ,0x036E
+ ,0x036F
+ ,0x0483
+ ,0x0484
+ ,0x0485
+ ,0x0486
+ ,0x0487
+ ,0x0591
+ ,0x0592
+ ,0x0593
+ ,0x0594
+ ,0x0595
+ ,0x0596
+ ,0x0597
+ ,0x0598
+ ,0x0599
+ ,0x059A
+ ,0x059B
+ ,0x059C
+ ,0x059D
+ ,0x059E
+ ,0x059F
+ ,0x05A0
+ ,0x05A1
+ ,0x05A2
+ ,0x05A3
+ ,0x05A4
+ ,0x05A5
+ ,0x05A6
+ ,0x05A7
+ ,0x05A8
+ ,0x05A9
+ ,0x05AA
+ ,0x05AB
+ ,0x05AC
+ ,0x05AD
+ ,0x05AE
+ ,0x05AF
+ ,0x05B0
+ ,0x05B1
+ ,0x05B2
+ ,0x05B3
+ ,0x05B4
+ ,0x05B5
+ ,0x05B6
+ ,0x05B7
+ ,0x05B8
+ ,0x05B9
+ ,0x05BA
+ ,0x05BB
+ ,0x05BC
+ ,0x05BD
+ ,0x05BF
+ ,0x05C1
+ ,0x05C2
+ ,0x05C4
+ ,0x05C5
+ ,0x05C7
+ ,0x0610
+ ,0x0611
+ ,0x0612
+ ,0x0613
+ ,0x0614
+ ,0x0615
+ ,0x0616
+ ,0x0617
+ ,0x0618
+ ,0x0619
+ ,0x061A
+ ,0x064B
+ ,0x064C
+ ,0x064D
+ ,0x064E
+ ,0x064F
+ ,0x0650
+ ,0x0651
+ ,0x0652
+ ,0x0653
+ ,0x0654
+ ,0x0655
+ ,0x0656
+ ,0x0657
+ ,0x0658
+ ,0x0659
+ ,0x065A
+ ,0x065B
+ ,0x065C
+ ,0x065D
+ ,0x065E
+ ,0x065F
+ ,0x0670
+ ,0x06D6
+ ,0x06D7
+ ,0x06D8
+ ,0x06D9
+ ,0x06DA
+ ,0x06DB
+ ,0x06DC
+ ,0x06DF
+ ,0x06E0
+ ,0x06E1
+ ,0x06E2
+ ,0x06E3
+ ,0x06E4
+ ,0x06E7
+ ,0x06E8
+ ,0x06EA
+ ,0x06EB
+ ,0x06EC
+ ,0x06ED
+ ,0x0711
+ ,0x0730
+ ,0x0731
+ ,0x0732
+ ,0x0733
+ ,0x0734
+ ,0x0735
+ ,0x0736
+ ,0x0737
+ ,0x0738
+ ,0x0739
+ ,0x073A
+ ,0x073B
+ ,0x073C
+ ,0x073D
+ ,0x073E
+ ,0x073F
+ ,0x0740
+ ,0x0741
+ ,0x0742
+ ,0x0743
+ ,0x0744
+ ,0x0745
+ ,0x0746
+ ,0x0747
+ ,0x0748
+ ,0x0749
+ ,0x074A
+ ,0x07A6
+ ,0x07A7
+ ,0x07A8
+ ,0x07A9
+ ,0x07AA
+ ,0x07AB
+ ,0x07AC
+ ,0x07AD
+ ,0x07AE
+ ,0x07AF
+ ,0x07B0
+ ,0x07EB
+ ,0x07EC
+ ,0x07ED
+ ,0x07EE
+ ,0x07EF
+ ,0x07F0
+ ,0x07F1
+ ,0x07F2
+ ,0x07F3
+ ,0x0816
+ ,0x0817
+ ,0x0818
+ ,0x0819
+ ,0x081B
+ ,0x081C
+ ,0x081D
+ ,0x081E
+ ,0x081F
+ ,0x0820
+ ,0x0821
+ ,0x0822
+ ,0x0823
+ ,0x0825
+ ,0x0826
+ ,0x0827
+ ,0x0829
+ ,0x082A
+ ,0x082B
+ ,0x082C
+ ,0x082D
+ ,0x0859
+ ,0x085A
+ ,0x085B
+ ,0x0900
+ ,0x0901
+ ,0x0902
+ ,0x0903
+ ,0x093A
+ ,0x093B
+ ,0x093C
+ ,0x093E
+ ,0x093F
+ ,0x0940
+ ,0x0941
+ ,0x0942
+ ,0x0943
+ ,0x0944
+ ,0x0945
+ ,0x0946
+ ,0x0947
+ ,0x0948
+ ,0x0949
+ ,0x094A