Packages

Erlang unicode utils functions library

Current section

Files

Jump to
erg_unicode include erg_unicode.hrl
Raw

include/erg_unicode.hrl

%% Copyright (c) 2022, Madalin Grigore-Enescu <github@ergenius.com>
%%
%% Permission to use, copy, modify, and/or distribute this software for any
%% purpose with or without fee is hereby granted, provided that the above
%% copyright notice and this permission notice appear in all copies.
%%
%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
%% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
%% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
%% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
%% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
%% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
%% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-author("Madalin Grigore-Enescu").
-define(ERG_UNICODE_NUMERIC_LIST, [
{48, 57}
]).
-define(ERG_UNICODE_ALPHABETIC_LIST, [
{65,90},
{97,122},
170,181,186,
{192,214},
{216,246},
{248,442},
{444,659},
{661,705},
{710,721},
{736,740},
750,837,
{891,893},
902,
{904,906},
908,
{910,929},
{931,974},
{976,1013},
{1015,1153},
{1162,1299},
{1329,1366},
1369,
{1377,1415},
{1456,1469},
1471,
{1473,1474},
{1476,1477},
1479,
{1488,1514},
{1520,1522},
{1552,1557},
{1569,1594},
{1601,1623},
{1625,1630},
{1646,1647},
{1649,1747},
{1750,1756},
{1761,1768},
{1774,1775},
{1786,1788},
1791,1808,
{1810,1855},
{1869,1901},
{1920,1968},
1969,
{1994,2026},
{2036,2037},
2042,
{2305,2306},
{2308,2361},
{2366,2380},
2384,
{2392,2403},
{2427,2431},
{2434,2435},
{2437,2444},
{2447,2448},
{2451,2472},
{2474,2480},
2482,
{2486,2489},
{2494,2500},
{2503,2504},
{2507,2508},
2510,2519,
{2524,2525},
{2527,2531},
{2544,2545},
{2561,2563},
{2565,2570},
{2575,2576},
{2579,2600},
{2602,2608},
{2610,2611},
{2613,2614},
{2616,2617},
{2622,2626},
{2631,2632},
{2635,2636},
{2649,2652},
2654,
{2672,2676},
{2689,2690},
2691,
{2693,2701},
{2703,2705},
{2707,2728},
{2730,2736},
{2738,2739},
{2741,2745},
{2750,2757},
{2759,2761},
{2763,2764},
2768,
{2784,2787},
{2818,2819},
{2821,2828},
{2831,2832},
{2835,2856},
{2858,2864},
{2866,2867},
{2869,2873},
{2877,2879},
{2881,2883},
{2887,2888},
{2891,2892},
{2902,2903},
{2908,2909},
{2911,2913},
2929,2946,2947,
{2949,2954},
{2958,2960},
{2962,2965},
{2969,2970},
2972,
{2974,2975},
{2979,2980},
{2984,2986},
{2990,3001},
{3006,3007},
{3009,3010},
{3014,3016},
{3018,3020},
3031,
{3073,3075},
{3077,3084},
{3086,3088},
{3090,3112},
{3114,3123},
{3125,3129},
{3134,3140},
{3142,3144},
{3146,3148},
{3157,3158},
{3168,3169},
{3202,3203},
{3205,3212},
{3214,3216},
{3218,3240},
{3242,3251},
{3253,3257},
3261,3262,
{3264,3268},
{3271,3272},
{3274,3276},
{3285,3286},
3294,
{3296,3299},
{3330,3331},
{3333,3340},
{3342,3344},
{3346,3368},
{3370,3385},
{3390,3395},
{3398,3400},
{3402,3404},
3415,
{3424,3425},
{3458,3459},
{3461,3478},
{3482,3505},
{3507,3515},
3517,
{3520,3526},
{3535,3540},
3542,
{3544,3551},
{3570,3571},
{3585,3632},
{3634,3642},
{3648,3654},
3661,
{3713,3714},
3716,
{3719,3720},
3722,3725,
{3732,3735},
{3737,3743},
{3745,3747},
3749,3751,
{3754,3755},
{3757,3760},
{3762,3769},
{3771,3773},
{3776,3780},
3782,3789,
{3804,3805},
3840,
{3904,3911},
{3913,3946},
{3953,3966},
{3968,3969},
{3976,3979},
{3984,3991},
{3993,4028},
{4096,4129},
{4131,4135},
{4137,4138},
{4141,4146},
4150,4152,
{4176,4185},
{4256,4293},
{4304,4346},
4348,
{4352,4441},
{4447,4514},
{4520,4601},
{4608,4680},
{4682,4685},
{4688,4694},
4696,
{4698,4701},
{4704,4744},
{4746,4749},
{4752,4784},
{4786,4789},
{4792,4798},
4800,
{4802,4805},
{4808,4822},
{4824,4880},
{4882,4885},
{4888,4954},
4959,
{4992,5007},
{5024,5108},
{5121,5740},
{5743,5750},
{5761,5786},
{5792,5866},
{5870,5872},
{5888,5900},
{5902,5907},
{5920,5939},
{5952,5971},
{5984,5996},
{5998,6000},
{6002,6003},
{6016,6067},
{6071,6085},
{6087,6088},
6103,6108,
{6176,6210},
{6212,6263},
{6272,6313},
{6400,6428},
{6432,6443},
{6448,6449},
{6451,6456},
{6480,6509},
{6512,6516},
{6528,6569},
{6576,6601},
{6656,6678},
{6679,6683},
{6912,6915},
{6917,6963},
{6966,6971},
{6973,6979},
{6981,6987},
{7424,7543},
{7545,7615},
{7680,7835},
{7840,7929},
{7936,7957},
{7960,7965},
{7968,8005},
{8008,8013},
{8016,8023},
8025,8027,8029,
{8031,8061},
{8064,8116},
{8118,8124},
8126,
{8130,8132},
{8134,8140},
{8144,8147},
{8150,8155},
{8160,8172},
{8178,8180},
{8182,8188},
8305,8319,
{8336,8340},
8450,8455,
{8458,8467},
8469,
{8473,8477},
8484,8486,8488,
{8490,8493},
{8495,8505},
{8508,8511},
{8517,8521},
8526,
{8544,8580},
{9398,9449},
{11264,11310},
{11312,11358},
{11360,11372},
{11380,11383},
{11392,11492},
{11520,11557},
{11568,11621},
11631,
{11648,11670},
{11680,11686},
{11688,11694},
{11696,11702},
{11704,11710},
{11712,11718},
{11720,11726},
{11728,11734},
{11736,11742},
{12293,12295},
{12321,12329},
{12337,12341},
{12344,12348},
{12353,12438},
{12445,12447},
{12449,12538},
{12540,12543},
{12549,12588},
{12593,12686},
{12704,12727},
{12784,12799},
{13312,19893},
{40960,40980},
{40982,42124},
{42775,42778},
{43008,43009},
{43011,43013},
{43015,43018},
{43020,43047},
{43072,43123},
{44032,55203},
{63744,64045},
{64048,64106},
{64112,64217},
{64256,64262},
{64275,64279},
64285,
{64287,64296},
{64298,64310},
{64312,64316},
64318,
{64320,64321},
{64323,64324},
{64326,64433},
{64467,64829},
{64848,64911},
{64914,64967},
{65008,65019},
{65136,65140},
{65142,65276},
{65313,65338},
{65345,65370},
{65382,65391},
{65393,65470},
{65474,65479},
{65482,65487},
{65490,65495},
{65498,65500},
{65536,65547},
{65549,65574},
{65576,65594},
{65596,65597},
{65599,65613},
{65616,65629},
{65664,65786},
{65856,65908},
{66304,66334},
{66352,66368},
{66370,66378},
{66432,66461},
{66464,66499},
{66504,66511},
{66513,66517},
{66560,66717},
{67584,67589},
67592,
{67594,67637},
{67639,67640},
67644,67647,
{67840,67861},
{68097,68099},
{68101,68102},
{68108,68115},
{68117,68119},
{68121,68147},
{73728,74606},
{74752,74850},
{119808,119892},
{119894,119964},
{119966,119967},
119970,
{119973,119974},
{119977,119980},
{119982,119993},
119995,
{119997,120003},
{120005,120069},
{120071,120074},
{120077,120084},
{120086,120092},
{120094,120121},
{120123,120126},
{120128,120132},
120134,
{120138,120144},
{120146,120485},
{120488,120512},
{120514,120538},
{120540,120570},
{120572,120596},
{120598,120628},
{120630,120654},
{120656,120686},
{120688,120712},
{120714,120744},
{120746,120770},
{120772,120779},
{131072,173782},
{194560,195101}]).
-define(ERG_UNICODE_WHITESPACE_CHARACTERS_LIST, [
16#0009, %% character tabulation
16#000A, %% line feed
16#000B, %% line tabulation
16#000C, %% form feed
16#000D, %% carriage return
16#0020, %% space Most common (normal ASCII space)
16#0085, %% next line
16#00A0, %% no-break space, identical to 16#0020, but not a point at which a line may be broken.
16#1680, %% ogham space mark. Used for interword separation in Ogham text. Normally a vertical line in vertical text or a horizontal line in horizontal text, but may also be a blank space in "stemless" fonts.
16#2000, %% en quad 8192 - Punctuation Separator space Width of one en.
16#2001, %% em quad 8193 - Common General Punctuation Separator space Also known as "mutton quad". Width of one em.
16#2002, %% en space 8194 - Common General Punctuation Separator space Also known as "nut". Width of one en.
16#2003, %% em space 8195 - Common General Punctuation Separator space. Also known as "mutton". Width of one em.
16#2004, %% three-per-em space 8196 - Common General Punctuation Separator space. Also known as "thick space". One third of an em wide.
16#2005, %% four-per-em space 8197 - Common General Punctuation Separator space. Also known as "mid space". One fourth of an em wide.
16#2006, %% six-per-em space 8198 - Common General Punctuation Separator space. One sixth of an em wide. In computer typography, sometimes equated to 16#2009.
16#2007, %% figure space 8199 - Common General Punctuation Separator space. Figure space. In fonts with monospaced digits, equal to the width of one digit. HTML/XML named entity: &numsp;
16#2008, %% punctuation space 8200 - Common General Punctuation Separator space. As wide as the narrow punctuation in a font, HTML/XML named entity: &puncsp;
16#2009, %% thin space 8201 - Common General Punctuation Separator space. One-fifth (sometimes one-sixth) of an em wide. Recommended for use as a thousands separator for measures made with SI units.
16#200A, %% hair space 8202 - Common General Punctuation Separator space. Thinner than a thin space. HTML/XML named entity: &hairsp;
16#2028, %% line separator 8232 - Common General Punctuation Separator space. Line.
16#2029, %% paragraph separator 8233 - Common General Punctuation Separator space. Paragraph.
16#202F, %% narrow no-break space 8239 - Common General Punctuation Separator space. Narrow no-break space. Similar in function to 16#00A0 No-Break Space. When used with Mongolian, its width is usually one third of the normal space.
16#205F, %% medium mathematical space 8287 - Common General Punctuation Separator space. MMSP. Used in mathematical formulae.
16#3000 %% ideographic space 12288 - CJK Symbols Punctuation Separator, used, for example, in tai tou.
]).