wirispluginengine 3.62.0.1322 → 7.14.0.1422
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +34 -34
- data/app/assets/javascripts/wirispluginengine/WIRISplugins.js +1040 -64
- data/app/controllers/wirispluginengine/application_controller.rb +84 -75
- data/app/helpers/wirispluginengine/application_helper.rb +4 -4
- data/config/routes.rb +4 -4
- data/lib/com/wiris/common/WInteger.rb +52 -51
- data/lib/com/wiris/plugin/api/Cas.rb +5 -5
- data/lib/com/wiris/plugin/api/CleanCache.rb +5 -5
- data/lib/com/wiris/plugin/api/Configuration.rb +5 -5
- data/lib/com/wiris/plugin/api/ConfigurationKeys.rb +94 -91
- data/lib/com/wiris/plugin/api/Editor.rb +5 -5
- data/lib/com/wiris/plugin/api/Filter.rb +5 -5
- data/lib/com/wiris/plugin/api/ImageFormatController.rb +5 -5
- data/lib/com/wiris/plugin/api/ParamsProvider.rb +5 -5
- data/lib/com/wiris/plugin/api/PluginBuilder.rb +88 -74
- data/lib/com/wiris/plugin/api/Render.rb +5 -5
- data/lib/com/wiris/plugin/api/ServiceResourceLoader.rb +5 -5
- data/lib/com/wiris/plugin/api/Test.rb +5 -5
- data/lib/com/wiris/plugin/api/TextService.rb +5 -5
- data/lib/com/wiris/plugin/configuration/ConfigurationUpdater.rb +5 -5
- data/lib/com/wiris/plugin/impl/CacheFormulaImpl.rb +15 -0
- data/lib/com/wiris/plugin/impl/CacheImpl.rb +124 -0
- data/lib/com/wiris/plugin/impl/CasImpl.rb +140 -138
- data/lib/com/wiris/plugin/impl/CleanCacheImpl.rb +103 -101
- data/lib/com/wiris/plugin/impl/ConfigurationImpl.rb +165 -166
- data/lib/com/wiris/plugin/impl/CustomConfigurationUpdater.rb +32 -30
- data/lib/com/wiris/plugin/impl/DefaultConfigurationUpdater.rb +24 -22
- data/lib/com/wiris/plugin/impl/EditorImpl.rb +80 -78
- data/lib/com/wiris/plugin/impl/FileConfigurationUpdater.rb +29 -27
- data/lib/com/wiris/plugin/impl/FileStorageAndCache.rb +55 -53
- data/lib/com/wiris/plugin/impl/FolderTreeStorageAndCache.rb +65 -134
- data/lib/com/wiris/plugin/impl/GenericParamsProviderImpl.rb +50 -48
- data/lib/com/wiris/plugin/impl/HttpImpl.rb +49 -48
- data/lib/com/wiris/plugin/impl/HttpListener.rb +5 -5
- data/lib/com/wiris/plugin/impl/ImageFormatControllerPng.rb +71 -63
- data/lib/com/wiris/plugin/impl/ImageFormatControllerSvg.rb +37 -28
- data/lib/com/wiris/plugin/impl/PluginBuilderImpl.rb +280 -248
- data/lib/com/wiris/plugin/impl/RenderImpl.rb +303 -257
- data/lib/com/wiris/plugin/impl/ServiceResourceLoaderImpl.rb +41 -39
- data/lib/com/wiris/plugin/impl/TestImpl.rb +177 -157
- data/lib/com/wiris/plugin/impl/TextFilter.rb +210 -194
- data/lib/com/wiris/plugin/impl/TextFilterTags.rb +57 -50
- data/lib/com/wiris/plugin/impl/TextServiceImpl.rb +158 -107
- data/lib/com/wiris/plugin/storage/StorageAndCache.rb +5 -5
- data/lib/com/wiris/util/json/JSon.rb +505 -493
- data/lib/com/wiris/util/json/JSonIntegerFormat.rb +17 -16
- data/lib/com/wiris/util/json/JsonAPIResponse.rb +70 -0
- data/lib/com/wiris/util/json/StringParser.rb +57 -56
- data/lib/com/wiris/util/sys/AccessProvider.rb +8 -0
- data/lib/com/wiris/util/sys/Cache.rb +8 -0
- data/lib/com/wiris/util/sys/HttpConnection.rb +14 -13
- data/lib/com/wiris/util/sys/HttpConnectionListener.rb +5 -5
- data/lib/com/wiris/util/sys/HttpSync.rb +28 -0
- data/lib/com/wiris/util/sys/IniFile.rb +132 -131
- data/lib/com/wiris/util/sys/Lock.rb +8 -0
- data/lib/com/wiris/util/sys/LockProvider.rb +8 -0
- data/lib/com/wiris/util/sys/Store.rb +126 -101
- data/lib/com/wiris/util/sys/StoreCache.rb +63 -0
- data/lib/com/wiris/util/sys/TimerProxy.rb +21 -0
- data/lib/com/wiris/util/sys/TimerTask.rb +8 -0
- data/lib/com/wiris/util/type/Arrays.rb +275 -0
- data/lib/com/wiris/util/type/ByteBuffer.rb +69 -0
- data/lib/com/wiris/util/type/Comparator.rb +8 -0
- data/lib/com/wiris/util/type/DataUtils.rb +24 -0
- data/lib/com/wiris/util/type/DoubleTools.rb +14 -0
- data/lib/com/wiris/util/type/HashCache.rb +43 -0
- data/lib/com/wiris/util/type/IntegerTools.rb +32 -0
- data/lib/com/wiris/util/type/Queue.rb +31 -0
- data/lib/com/wiris/util/type/SortArrayByStringLength.rb +26 -0
- data/lib/com/wiris/util/type/SortStringByLength.rb +26 -0
- data/lib/com/wiris/util/type/SortedHash.rb +45 -0
- data/lib/com/wiris/util/type/Stack.rb +31 -0
- data/lib/com/wiris/util/type/StringUtils.rb +56 -0
- data/lib/com/wiris/util/type/Tokenizer.rb +40 -0
- data/lib/com/wiris/util/type/UrlUtils.rb +78 -0
- data/lib/com/wiris/util/xml/ContentHandler.rb +8 -0
- data/lib/com/wiris/util/xml/DefaultHandler.rb +25 -0
- data/lib/com/wiris/util/xml/EntityResolver.rb +8 -0
- data/lib/com/wiris/util/xml/MathMLEntityResolver.rb +19 -0
- data/lib/com/wiris/util/xml/SAXParser.rb +470 -0
- data/lib/com/wiris/util/xml/SerializableImpl.rb +16 -15
- data/lib/com/wiris/util/xml/WCharacterBase.rb +968 -627
- data/lib/com/wiris/util/xml/WEntities.rb +11 -9
- data/lib/com/wiris/util/xml/WXmlUtils.rb +660 -490
- data/lib/com/wiris/util/xml/XmlSerializer.rb +517 -471
- data/lib/com/wiris/util/xml/XmlWriter.rb +260 -262
- data/lib/loader.rb +15 -12
- data/lib/src-generic/Array.rb +22 -22
- data/lib/src-generic/ArrayInt.rb +31 -31
- data/lib/src-generic/Base64.rb +14 -14
- data/lib/src-generic/BaseCode.rb +93 -93
- data/lib/src-generic/Boolean.rb +27 -0
- data/lib/src-generic/Bytes.rb +50 -50
- data/lib/src-generic/BytesInput.rb +37 -37
- data/lib/src-generic/EReg.rb +55 -55
- data/lib/src-generic/File.rb +35 -35
- data/lib/src-generic/FileLock.rb +26 -26
- data/lib/src-generic/FileSystem.rb +37 -37
- data/lib/src-generic/Hash.rb +42 -42
- data/lib/src-generic/Http.rb +111 -107
- data/lib/src-generic/HttpRequest.rb +25 -25
- data/lib/src-generic/HttpResponse.rb +70 -70
- data/lib/src-generic/Iterator.rb +20 -19
- data/lib/src-generic/Math.rb +14 -14
- data/lib/src-generic/Md5.rb +8 -8
- data/lib/src-generic/Md5Tools.rb +11 -11
- data/lib/src-generic/PropertiesTools.rb +32 -32
- data/lib/src-generic/Reflect.rb +16 -16
- data/lib/src-generic/RubyConfigurationUpdater.rb +49 -45
- data/lib/src-generic/Serializer.rb +84 -84
- data/lib/src-generic/Std.rb +74 -74
- data/lib/src-generic/Storage.rb +152 -152
- data/lib/src-generic/StringBuf.rb +40 -40
- data/lib/src-generic/StringTools.rb +44 -46
- data/lib/src-generic/Timer.rb +6 -6
- data/lib/src-generic/Type.rb +18 -18
- data/lib/src-generic/TypeTools.rb +31 -31
- data/lib/src-generic/Unserializer.rb +72 -72
- data/lib/src-generic/Utf8.rb +26 -26
- data/lib/src-generic/Xml.rb +199 -198
- data/lib/src-generic/extended/Integer.rb +5 -5
- data/lib/src-generic/extended/Math.rb +6 -6
- data/lib/src-generic/extended/Properties.rb +11 -11
- data/lib/src-generic/extended/String.rb +38 -38
- data/lib/src-generic/settings/PlatformSettings.rb +18 -18
- data/lib/src-generic/system/HttpProxy.rb +23 -0
- data/lib/src-generic/system/HttpProxyAuth.rb +10 -0
- data/lib/wirispluginengine.rb +5 -5
- data/lib/wirispluginengine/engine.rb +5 -5
- data/lib/wirispluginengine/integration/cleancache.rb +8 -8
- data/lib/wirispluginengine/integration/configurationjs.rb +8 -15
- data/lib/wirispluginengine/integration/configurationjson.rb +6 -6
- data/lib/wirispluginengine/integration/createimage.rb +7 -7
- data/lib/wirispluginengine/integration/getmathml.rb +18 -18
- data/lib/wirispluginengine/integration/resource.rb +8 -8
- data/lib/wirispluginengine/integration/service.rb +5 -5
- data/lib/wirispluginengine/integration/showimage.rb +28 -21
- data/lib/wirispluginengine/integration/test.rb +5 -5
- data/lib/wirispluginengine/integration/testfilter.rb +10 -0
- data/lib/wirispluginengine/version.rb +2 -2
- data/resources/VERSION +1 -1
- data/resources/WEB-INF/web.xml +25 -0
- data/resources/WIRISplugins.js +3809 -0
- data/resources/default-configuration.ini +47 -45
- data/resources/tech.txt +1 -1
- data/resources/wirisplugin.css +43 -42
- metadata +40 -4
- data/configuration.ini.dist +0 -104
@@ -1,20 +1,21 @@
|
|
1
1
|
module WirisPlugin
|
2
2
|
include Wiris
|
3
|
-
require('com/wiris/util/xml/XmlSerializer.rb')
|
4
|
-
|
5
|
-
|
3
|
+
require('com/wiris/util/xml/XmlSerializer.rb')
|
4
|
+
class SerializableImpl
|
5
|
+
include Wiris
|
6
|
+
|
7
|
+
def initialize()
|
8
|
+
super()
|
9
|
+
end
|
10
|
+
def onSerialize(s)
|
11
|
+
end
|
12
|
+
def newInstance()
|
13
|
+
return SerializableImpl.new()
|
14
|
+
end
|
15
|
+
def serialize()
|
16
|
+
s = XmlSerializer.new()
|
17
|
+
return s::write(self)
|
18
|
+
end
|
6
19
|
|
7
|
-
def initialize()
|
8
|
-
super()
|
9
|
-
end
|
10
|
-
def onSerialize(s)
|
11
|
-
end
|
12
|
-
def newInstance()
|
13
|
-
return SerializableImpl.new()
|
14
|
-
end
|
15
|
-
def serialize()
|
16
|
-
s = XmlSerializer.new()
|
17
|
-
return s::write(self)
|
18
20
|
end
|
19
|
-
end
|
20
21
|
end
|
@@ -1,634 +1,975 @@
|
|
1
1
|
module WirisPlugin
|
2
2
|
include Wiris
|
3
|
-
|
4
|
-
|
3
|
+
class WCharacterBase
|
4
|
+
include Wiris
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
UNICODES_WITH_CATEGORIES = "@P:21-23,25-2A,2C-2F,3A-3B,3F-40,5B-5D,5F,7B,7D,A1,A7,AB,B6-B7,BB,BF,37E,387,55A-55F,589-58A,5BE,5C0,5C3,5C6,5F3-5F4,609-60A,60C-60D,61B,61E-61F,66A-66D,6D4,700-70D,7F7-7F9,830-83E,85E,964-965,970,AF0,DF4,E4F,E5A-E5B,F04-F12,F14,F3A-F3D,F85,FD0-FD4,FD9-FDA,104A-104F,10FB,1360-1368,1400,166D-166E,169B-169C,16EB-16ED,1735-1736,17D4-17D6,17D8-17DA,1800-180A,1944-1945,1A1E-1A1F,1AA0-1AA6,1AA8-1AAD,1B5A-1B60,1BFC-1BFF,1C3B-1C3F,1C7E-1C7F,1CC0-1CC7,1CD3,2010-2027,2030-2043,2045-2051,2053-205E,207D-207E,208D-208E,2308-230B,2329-232A,2768-2775,27C5-27C6,27E6-27EF,2983-2998,29D8-29DB,29FC-29FD,2CF9-2CFC,2CFE-2CFF,2D70,2E00-2E2E,2E30-2E44,3001-3003,3008-3011,3014-301F,3030,303D,30A0,30FB,A4FE-A4FF,A60D-A60F,A673,A67E,A6F2-A6F7,A874-A877,A8CE-A8CF,A8F8-A8FA,A8FC,A92E-A92F,A95F,A9C1-A9CD,A9DE-A9DF,AA5C-AA5F,AADE-AADF,AAF0-AAF1,ABEB,FD3E-FD3F,FE10-FE19,FE30-FE52,FE54-FE61,FE63,FE68,FE6A-FE6B,FF01-FF03,FF05-FF0A,FF0C-FF0F,FF1A-FF1B,FF1F-FF20,FF3B-FF3D,FF3F,FF5B,FF5D,FF5F-FF65,10100-10102,1039F,103D0,1056F,10857,1091F,1093F,10A50-10A58,10A7F,10AF0-10AF6,10B39-10B3F,10B99-10B9C,11047-1104D,110BB-110BC,110BE-110C1,11140-11143,11174-11175,111C5-111C9,111CD,111DB,111DD-111DF,11238-1123D,112A9,1144B-1144F,1145B,1145D,114C6,115C1-115D7,11641-11643,11660-1166C,1173C-1173E,11C41-11C45,11C70-11C71,12470-12474,16A6E-16A6F,16AF5,16B37-16B3B,16B44,1BC9F,1DA87-1DA8B,1E95E-1E95F@C:AD,600-605,61C,6DD,70F,8E2,180E,200B-200F,202A-202E,2060-2064,2066-206F,D800,DB7F-DB80,DBFF-DC00,DFFF-E000,F8FF,FEFF,FFF9-FFFB,110BD,1BCA0-1BCA3,1D173-1D17A@L:41-5A,61-7A,AA,B5,BA,C0-D6,D8-F6,F8-2C1,2C6-2D1,2E0-2E4,2EC,2EE,370-374,376-377,37A-37D,37F,386,388-38A,38C,38E-3A1,3A3-3F5,3F7-481,48A-52F,531-556,559,561-587,5D0-5EA,5F0-5F2,620-64A,66E-66F,671-6D3,6D5,6E5-6E6,6EE-6EF,6FA-6FC,6FF,710,712-72F,74D-7A5,7B1,7CA-7EA,7F4-7F5,7FA,800-815,81A,824,828,840-858,8A0-8B4,8B6-8BD,904-939,93D,950,958-961,971-980,985-98C,98F-990,993-9A8,9AA-9B0,9B2,9B6-9B9,9BD,9CE,9DC-9DD,9DF-9E1,9F0-9F1,A05-A0A,A0F-A10,A13-A28,A2A-A30,A32-A33,A35-A36,A38-A39,A59-A5C,A5E,A72-A74,A85-A8D,A8F-A91,A93-AA8,AAA-AB0,AB2-AB3,AB5-AB9,ABD,AD0,AE0-AE1,AF9,B05-B0C,B0F-B10,B13-B28,B2A-B30,B32-B33,B35-B39,B3D,B5C-B5D,B5F-B61,B71,B83,B85-B8A,B8E-B90,B92-B95,B99-B9A,B9C,B9E-B9F,BA3-BA4,BA8-BAA,BAE-BB9,BD0,C05-C0C,C0E-C10,C12-C28,C2A-C39,C3D,C58-C5A,C60-C61,C80,C85-C8C,C8E-C90,C92-CA8,CAA-CB3,CB5-CB9,CBD,CDE,CE0-CE1,CF1-CF2,D05-D0C,D0E-D10,D12-D3A,D3D,D4E,D54-D56,D5F-D61,D7A-D7F,D85-D96,D9A-DB1,DB3-DBB,DBD,DC0-DC6,E01-E30,E32-E33,E40-E46,E81-E82,E84,E87-E88,E8A,E8D,E94-E97,E99-E9F,EA1-EA3,EA5,EA7,EAA-EAB,EAD-EB0,EB2-EB3,EBD,EC0-EC4,EC6,EDC-EDF,F00,F40-F47,F49-F6C,F88-F8C,1000-102A,103F,1050-1055,105A-105D,1061,1065-1066,106E-1070,1075-1081,108E,10A0-10C5,10C7,10CD,10D0-10FA,10FC-1248,124A-124D,1250-1256,1258,125A-125D,1260-1288,128A-128D,1290-12B0,12B2-12B5,12B8-12BE,12C0,12C2-12C5,12C8-12D6,12D8-1310,1312-1315,1318-135A,1380-138F,13A0-13F5,13F8-13FD,1401-166C,166F-167F,1681-169A,16A0-16EA,16F1-16F8,1700-170C,170E-1711,1720-1731,1740-1751,1760-176C,176E-1770,1780-17B3,17D7,17DC,1820-1877,1880-1884,1887-18A8,18AA,18B0-18F5,1900-191E,1950-196D,1970-1974,1980-19AB,19B0-19C9,1A00-1A16,1A20-1A54,1AA7,1B05-1B33,1B45-1B4B,1B83-1BA0,1BAE-1BAF,1BBA-1BE5,1C00-1C23,1C4D-1C4F,1C5A-1C7D,1C80-1C88,1CE9-1CEC,1CEE-1CF1,1CF5-1CF6,1D00-1DBF,1E00-1F15,1F18-1F1D,1F20-1F45,1F48-1F4D,1F50-1F57,1F59,1F5B,1F5D,1F5F-1F7D,1F80-1FB4,1FB6-1FBC,1FBE,1FC2-1FC4,1FC6-1FCC,1FD0-1FD3,1FD6-1FDB,1FE0-1FEC,1FF2-1FF4,1FF6-1FFC,2071,207F,2090-209C,2102,2107,210A-2113,2115,2119-211D,2124,2126,2128,212A-212D,212F-2139,213C-213F,2145-2149,214E,2183-2184,2C00-2C2E,2C30-2C5E,2C60-2CE4,2CEB-2CEE,2CF2-2CF3,2D00-2D25,2D27,2D2D,2D30-2D67,2D6F,2D80-2D96,2DA0-2DA6,2DA8-2DAE,2DB0-2DB6,2DB8-2DBE,2DC0-2DC6,2DC8-2DCE,2DD0-2DD6,2DD8-2DDE,2E2F,3005-3006,3031-3035,303B-303C,3041-3096,309D-309F,30A1-30FA,30FC-30FF,3105-312D,3131-318E,31A0-31BA,31F0-31FF,3400,4DB5,4E00,9FD5,A000-A48C,A4D0-A4FD,A500-A60C,A610-A61F,A62A-A62B,A640-A66E,A67F-A69D,A6A0-A6E5,A717-A71F,A722-A788,A78B-A7AE,A7B0-A7B7,A7F7-A801,A803-A805,A807-A80A,A80C-A822,A840-A873,A882-A8B3,A8F2-A8F7,A8FB,A8FD,A90A-A925,A930-A946,A960-A97C,A984-A9B2,A9CF,A9E0-A9E4,A9E6-A9EF,A9FA-A9FE,AA00-AA28,AA40-AA42,AA44-AA4B,AA60-AA76,AA7A,AA7E-AAAF,AAB1,AAB5-AAB6,AAB9-AABD,AAC0,AAC2,AADB-AADD,AAE0-AAEA,AAF2-AAF4,AB01-AB06,AB09-AB0E,AB11-AB16,AB20-AB26,AB28-AB2E,AB30-AB5A,AB5C-AB65,AB70-ABE2,AC00,D7A3,D7B0-D7C6,D7CB-D7FB,F900-FA6D,FA70-FAD9,FB00-FB06,FB13-FB17,FB1D,FB1F-FB28,FB2A-FB36,FB38-FB3C,FB3E,FB40-FB41,FB43-FB44,FB46-FBB1,FBD3-FD3D,FD50-FD8F,FD92-FDC7,FDF0-FDFB,FE70-FE74,FE76-FEFC,FF21-FF3A,FF41-FF5A,FF66-FFBE,FFC2-FFC7,FFCA-FFCF,FFD2-FFD7,FFDA-FFDC,10000-1000B,1000D-10026,10028-1003A,1003C-1003D,1003F-1004D,10050-1005D,10080-100FA,10280-1029C,102A0-102D0,10300-1031F,10330-10340,10342-10349,10350-10375,10380-1039D,103A0-103C3,103C8-103CF,10400-1049D,104B0-104D3,104D8-104FB,10500-10527,10530-10563,10600-10736,10740-10755,10760-10767,10800-10805,10808,1080A-10835,10837-10838,1083C,1083F-10855,10860-10876,10880-1089E,108E0-108F2,108F4-108F5,10900-10915,10920-10939,10980-109B7,109BE-109BF,10A00,10A10-10A13,10A15-10A17,10A19-10A33,10A60-10A7C,10A80-10A9C,10AC0-10AC7,10AC9-10AE4,10B00-10B35,10B40-10B55,10B60-10B72,10B80-10B91,10C00-10C48,10C80-10CB2,10CC0-10CF2,11003-11037,11083-110AF,110D0-110E8,11103-11126,11150-11172,11176,11183-111B2,111C1-111C4,111DA,111DC,11200-11211,11213-1122B,11280-11286,11288,1128A-1128D,1128F-1129D,1129F-112A8,112B0-112DE,11305-1130C,1130F-11310,11313-11328,1132A-11330,11332-11333,11335-11339,1133D,11350,1135D-11361,11400-11434,11447-1144A,11480-114AF,114C4-114C5,114C7,11580-115AE,115D8-115DB,11600-1162F,11644,11680-116AA,11700-11719,118A0-118DF,118FF,11AC0-11AF8,11C00-11C08,11C0A-11C2E,11C40,11C72-11C8F,12000-12399,12480-12543,13000-1342E,14400-14646,16800-16A38,16A40-16A5E,16AD0-16AED,16B00-16B2F,16B40-16B43,16B63-16B77,16B7D-16B8F,16F00-16F44,16F50,16F93-16F9F,16FE0,17000,187EC,18800-18AF2,1B000-1B001,1BC00-1BC6A,1BC70-1BC7C,1BC80-1BC88,1BC90-1BC99,1D400-1D454,1D456-1D49C,1D49E-1D49F,1D4A2,1D4A5-1D4A6,1D4A9-1D4AC,1D4AE-1D4B9,1D4BB,1D4BD-1D4C3,1D4C5-1D505,1D507-1D50A,1D50D-1D514,1D516-1D51C,1D51E-1D539,1D53B-1D53E,1D540-1D544,1D546,1D54A-1D550,1D552-1D6A5,1D6A8-1D6C0,1D6C2-1D6DA,1D6DC-1D6FA,1D6FC-1D714,1D716-1D734,1D736-1D74E,1D750-1D76E,1D770-1D788,1D78A-1D7A8,1D7AA-1D7C2,1D7C4-1D7CB,1E800-1E8C4,1E900-1E943,1EE00-1EE03,1EE05-1EE1F,1EE21-1EE22,1EE24,1EE27,1EE29-1EE32,1EE34-1EE37,1EE39,1EE3B,1EE42,1EE47,1EE49,1EE4B,1EE4D-1EE4F,1EE51-1EE52,1EE54,1EE57,1EE59,1EE5B,1EE5D,1EE5F,1EE61-1EE62,1EE64,1EE67-1EE6A,1EE6C-1EE72,1EE74-1EE77,1EE79-1EE7C,1EE7E,1EE80-1EE89,1EE8B-1EE9B,1EEA1-1EEA3,1EEA5-1EEA9,1EEAB-1EEBB,20000,2A6D6,2A700,2B734,2B740,2B81D,2B820,2CEA1,2F800-2FA1D@M:300-36F,483-489,591-5BD,5BF,5C1-5C2,5C4-5C5,5C7,610-61A,64B-65F,670,6D6-6DC,6DF-6E4,6E7-6E8,6EA-6ED,711,730-74A,7A6-7B0,7EB-7F3,816-819,81B-823,825-827,829-82D,859-85B,8D4-8E1,8E3-903,93A-93C,93E-94F,951-957,962-963,981-983,9BC,9BE-9C4,9C7-9C8,9CB-9CD,9D7,9E2-9E3,A01-A03,A3C,A3E-A42,A47-A48,A4B-A4D,A51,A70-A71,A75,A81-A83,ABC,ABE-AC5,AC7-AC9,ACB-ACD,AE2-AE3,B01-B03,B3C,B3E-B44,B47-B48,B4B-B4D,B56-B57,B62-B63,B82,BBE-BC2,BC6-BC8,BCA-BCD,BD7,C00-C03,C3E-C44,C46-C48,C4A-C4D,C55-C56,C62-C63,C81-C83,CBC,CBE-CC4,CC6-CC8,CCA-CCD,CD5-CD6,CE2-CE3,D01-D03,D3E-D44,D46-D48,D4A-D4D,D57,D62-D63,D82-D83,DCA,DCF-DD4,DD6,DD8-DDF,DF2-DF3,E31,E34-E3A,E47-E4E,EB1,EB4-EB9,EBB-EBC,EC8-ECD,F18-F19,F35,F37,F39,F3E-F3F,F71-F84,F86-F87,F8D-F97,F99-FBC,FC6,102B-103E,1056-1059,105E-1060,1062-1064,1067-106D,1071-1074,1082-108D,108F,109A-109D,135D-135F,1712-1714,1732-1734,1752-1753,1772-1773,17B4-17D3,17DD,1885-1886,18A9,1920-192B,1930-193B,1A17-1A1B,1A55-1A5E,1A60-1A7C,1A7F,1AB0-1ABE,1B00-1B04,1B34-1B44,1B6B-1B73,1B80-1B82,1BA1-1BAD,1BE6-1BF3,1C24-1C37,1CD0-1CD2,1CD4-1CE8,1CED,1CF2-1CF4,1CF8-1CF9,1DC0-1DF5,1DFB-1DFF,20D0-20F0,2CEF-2CF1,2D7F,2DE0-2DFF,302A-302F,3099-309A,A66F-A672,A674-A67D,A69E-A69F,A6F0-A6F1,A802,A806,A80B,A823-A827,A880-A881,A8B4-A8C5,A8E0-A8F1,A926-A92D,A947-A953,A980-A983,A9B3-A9C0,A9E5,AA29-AA36,AA43,AA4C-AA4D,AA7B-AA7D,AAB0,AAB2-AAB4,AAB7-AAB8,AABE-AABF,AAC1,AAEB-AAEF,AAF5-AAF6,ABE3-ABEA,ABEC-ABED,FB1E,FE20-FE2F,101FD,102E0,10376-1037A,10A01-10A03,10A05-10A06,10A0C-10A0F,10A38-10A3A,10A3F,10AE5-10AE6,11000-11002,11038-11046,1107F-11082,110B0-110BA,11100-11102,11127-11134,11173,11180-11182,111B3-111C0,111CA-111CC,1122C-11237,1123E,112DF-112EA,11300-11303,1133C,1133E-11344,11347-11348,1134B-1134D,11357,11362-11363,11366-1136C,11370-11374,11435-11446,114B0-114C3,115AF-115B5,115B8-115C0,115DC-115DD,11630-11640,116AB-116B7,1171D-1172B,11C2F-11C36,11C38-11C3F,11C92-11CA7,11CA9-11CB6,16AF0-16AF4,16B30-16B36,16F51-16F7E,16F8F-16F92,1BC9D-1BC9E,1D165-1D169,1D16D-1D172,1D17B-1D182,1D185-1D18B,1D1AA-1D1AD,1D242-1D244,1DA00-1DA36,1DA3B-1DA6C,1DA75,1DA84,1DA9B-1DA9F,1DAA1-1DAAF,1E000-1E006,1E008-1E018,1E01B-1E021,1E023-1E024,1E026-1E02A,1E8D0-1E8D6,1E944-1E94A@N:30-39,B2-B3,B9,BC-BE,660-669,6F0-6F9,7C0-7C9,966-96F,9E6-9EF,9F4-9F9,A66-A6F,AE6-AEF,B66-B6F,B72-B77,BE6-BF2,C66-C6F,C78-C7E,CE6-CEF,D58-D5E,D66-D78,DE6-DEF,E50-E59,ED0-ED9,F20-F33,1040-1049,1090-1099,1369-137C,16EE-16F0,17E0-17E9,17F0-17F9,1810-1819,1946-194F,19D0-19DA,1A80-1A89,1A90-1A99,1B50-1B59,1BB0-1BB9,1C40-1C49,1C50-1C59,2070,2074-2079,2080-2089,2150-2182,2185-2189,2460-249B,24EA-24FF,2776-2793,2CFD,3007,3021-3029,3038-303A,3192-3195,3220-3229,3248-324F,3251-325F,3280-3289,32B1-32BF,A620-A629,A6E6-A6EF,A830-A835,A8D0-A8D9,A900-A909,A9D0-A9D9,A9F0-A9F9,AA50-AA59,ABF0-ABF9,FF10-FF19,10107-10133,10140-10178,1018A-1018B,102E1-102FB,10320-10323,10341,1034A,103D1-103D5,104A0-104A9,10858-1085F,10879-1087F,108A7-108AF,108FB-108FF,10916-1091B,109BC-109BD,109C0-109CF,109D2-109FF,10A40-10A47,10A7D-10A7E,10A9D-10A9F,10AEB-10AEF,10B58-10B5F,10B78-10B7F,10BA9-10BAF,10CFA-10CFF,10E60-10E7E,11052-1106F,110F0-110F9,11136-1113F,111D0-111D9,111E1-111F4,112F0-112F9,11450-11459,114D0-114D9,11650-11659,116C0-116C9,11730-1173B,118E0-118F2,11C50-11C6C,12400-1246E,16A60-16A69,16B50-16B59,16B5B-16B61,1D360-1D371,1D7CE-1D7FF,1E8C7-1E8CF,1E950-1E959,1F100-1F10C@S:24,2B,3C-3E,5E,60,7C,7E,A2-A6,A8-A9,AC,AE-B1,B4,B8,D7,F7,2C2-2C5,2D2-2DF,2E5-2EB,2ED,2EF-2FF,375,384-385,3F6,482,58D-58F,606-608,60B,60E-60F,6DE,6E9,6FD-6FE,7F6,9F2-9F3,9FA-9FB,AF1,B70,BF3-BFA,C7F,D4F,D79,E3F,F01-F03,F13,F15-F17,F1A-F1F,F34,F36,F38,FBE-FC5,FC7-FCC,FCE-FCF,FD5-FD8,109E-109F,1390-1399,17DB,1940,19DE-19FF,1B61-1B6A,1B74-1B7C,1FBD,1FBF-1FC1,1FCD-1FCF,1FDD-1FDF,1FED-1FEF,1FFD-1FFE,2044,2052,207A-207C,208A-208C,20A0-20BE,2100-2101,2103-2106,2108-2109,2114,2116-2118,211E-2123,2125,2127,2129,212E,213A-213B,2140-2144,214A-214D,214F,218A-218B,2190-2307,230C-2328,232B-23FE,2400-2426,2440-244A,249C-24E9,2500-2767,2794-27C4,27C7-27E5,27F0-2982,2999-29D7,29DC-29FB,29FE-2B73,2B76-2B95,2B98-2BB9,2BBD-2BC8,2BCA-2BD1,2BEC-2BEF,2CE5-2CEA,2E80-2E99,2E9B-2EF3,2F00-2FD5,2FF0-2FFB,3004,3012-3013,3020,3036-3037,303E-303F,309B-309C,3190-3191,3196-319F,31C0-31E3,3200-321E,322A-3247,3250,3260-327F,328A-32B0,32C0-32FE,3300-33FF,4DC0-4DFF,A490-A4C6,A700-A716,A720-A721,A789-A78A,A828-A82B,A836-A839,AA77-AA79,AB5B,FB29,FBB2-FBC1,FDFC-FDFD,FE62,FE64-FE66,FE69,FF04,FF0B,FF1C-FF1E,FF3E,FF40,FF5C,FF5E,FFE0-FFE6,FFE8-FFEE,FFFC-FFFD,10137-1013F,10179-10189,1018C-1018E,10190-1019B,101A0,101D0-101FC,10877-10878,10AC8,1173F,16B3C-16B3F,16B45,1BC9C,1D000-1D0F5,1D100-1D126,1D129-1D164,1D16A-1D16C,1D183-1D184,1D18C-1D1A9,1D1AE-1D1E8,1D200-1D241,1D245,1D300-1D356,1D6C1,1D6DB,1D6FB,1D715,1D735,1D74F,1D76F,1D789,1D7A9,1D7C3,1D800-1D9FF,1DA37-1DA3A,1DA6D-1DA74,1DA76-1DA83,1DA85-1DA86,1EEF0-1EEF1,1F000-1F02B,1F030-1F093,1F0A0-1F0AE,1F0B1-1F0BF,1F0C1-1F0CF,1F0D1-1F0F5,1F110-1F12E,1F130-1F16B,1F170-1F1AC,1F1E6-1F202,1F210-1F23B,1F240-1F248,1F250-1F251,1F300-1F6D2,1F6E0-1F6EC,1F6F0-1F6F6,1F700-1F773,1F780-1F7D4,1F800-1F80B,1F810-1F847,1F850-1F859,1F860-1F887,1F890-1F8AD,1F910-1F91E,1F920-1F927,1F930,1F933-1F93E,1F940-1F94B,1F950-1F95E,1F980-1F991,1F9C0@Z:20,A0,1680,2000-200A,2028-2029,202F,205F,3000@"
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
6
|
+
def initialize()
|
7
|
+
super()
|
8
|
+
end
|
9
|
+
NEGATIVE_THIN_SPACE = 57344
|
10
|
+
LINE = 57345
|
11
|
+
SEGMENT = 57346
|
12
|
+
ALIGNMENT_MARK = 57358
|
13
|
+
ROOT = 61696
|
14
|
+
ROOT_VERTICAL = 61727
|
15
|
+
ROOT_NO_TAIL = 61728
|
16
|
+
ROOT_NO_TAIL_VERTICAL = 61759
|
17
|
+
ROOT_LEFT_TAIL = 61760
|
18
|
+
ROOT_VERTICAL_LINE = 61761
|
19
|
+
LINE_FEED = 10
|
20
|
+
ROUND_BRACKET_LEFT = 40
|
21
|
+
ROUND_BRACKET_RIGHT = 41
|
22
|
+
COMMA = 44
|
23
|
+
FULL_STOP = 46
|
24
|
+
SQUARE_BRACKET_LEFT = 91
|
25
|
+
SQUARE_BRACKET_RIGHT = 93
|
26
|
+
CIRCUMFLEX_ACCENT = 94
|
27
|
+
LOW_LINE = 95
|
28
|
+
CURLY_BRACKET_LEFT = 123
|
29
|
+
VERTICAL_BAR = 124
|
30
|
+
CURLY_BRACKET_RIGHT = 125
|
31
|
+
TILDE = 126
|
32
|
+
MACRON = 175
|
33
|
+
COMBINING_LOW_LINE = 818
|
34
|
+
MODIFIER_LETTER_CIRCUMFLEX_ACCENT = 710
|
35
|
+
CARON = 711
|
36
|
+
NO_BREAK_SPACE = 160
|
37
|
+
EN_QUAD = 8192
|
38
|
+
EM_QUAD = 8193
|
39
|
+
EN_SPACE = 8194
|
40
|
+
EM_SPACE = 8195
|
41
|
+
THICK_SPACE = 8196
|
42
|
+
MID_SPACE = 8197
|
43
|
+
SIX_PER_EM_SPACE = 8198
|
44
|
+
FIGIRE_SPACE = 8199
|
45
|
+
PUNCTUATION_SPACE = 8200
|
46
|
+
THIN_SPACE = 8201
|
47
|
+
HAIR_SPACE = 8202
|
48
|
+
ZERO_WIDTH_SPACE = 8203
|
49
|
+
ZERO_WIDTH_NON_JOINER = 8204
|
50
|
+
ZERO_WIDTH_JOINER = 8205
|
51
|
+
DOUBLE_VERTICAL_BAR = 8214
|
52
|
+
DOUBLE_HORIZONTAL_BAR = 9552
|
53
|
+
NARROW_NO_BREAK_SPACE = 8239
|
54
|
+
MEDIUM_MATHEMATICAL_SPACE = 8287
|
55
|
+
WORD_JOINER = 8288
|
56
|
+
PLANCKOVER2PI = 8463
|
57
|
+
LEFTWARDS_ARROW = 8592
|
58
|
+
UPWARDS_ARROW = 8593
|
59
|
+
RIGHTWARDS_ARROW = 8594
|
60
|
+
DOWNWARDS_ARROW = 8595
|
61
|
+
LEFTRIGHT_ARROW = 8596
|
62
|
+
UP_DOWN_ARROW = 8597
|
63
|
+
LEFTWARDS_ARROW_FROM_BAR = 8612
|
64
|
+
RIGHTWARDS_ARROW_FROM_BAR = 8614
|
65
|
+
LEFTWARDS_ARROW_WITH_HOOK = 8617
|
66
|
+
RIGHTWARDS_ARROW_WITH_HOOK = 8618
|
67
|
+
LEFTWARDS_HARPOON_WITH_BARB_UPWARDS = 8636
|
68
|
+
RIGHTWARDS_HARPOON_WITH_BARB_UPWARDS = 8640
|
69
|
+
LEFTWARDS_DOUBLE_ARROW = 8656
|
70
|
+
RIGHTWARDS_DOUBLE_ARROW = 8658
|
71
|
+
LEFT_RIGHT_DOUBLE_ARROW = 8660
|
72
|
+
LEFTWARDS_ARROW_OVER_RIGHTWARDS_ARROW = 8646
|
73
|
+
RIGHTWARDS_ARROW_OVER_LEFTWARDS_ARROW = 8644
|
74
|
+
LEFTWARDS_HARPOON_OVER_RIGHTWARDS_HARPOON = 8651
|
75
|
+
RIGHTWARDS_HARPOON_OVER_LEFTWARDS_HARPOON = 8652
|
76
|
+
RIGHTWARDS_ARROW_ABOVE_SHORT_LEFTWARDS_ARROW = 10562
|
77
|
+
SHORT_RIGHTWARDS_ARROW_ABOVE_LEFTWARDS_ARROW = 10564
|
78
|
+
LONG_RIGHTWARDS_ARROW = 10230
|
79
|
+
LONG_LEFTWARDS_ARROW = 10229
|
80
|
+
LONG_LEFT_RIGHT_ARROW = 10231
|
81
|
+
LONG_LEFTWARDS_DOUBLE_ARROW = 10232
|
82
|
+
LONG_RIGHTWARDS_DOUBLE_ARROW = 10233
|
83
|
+
LONG_LEFT_RIGHT_DOUBLE_ARROW = 10234
|
84
|
+
INTEGRAL = 8747
|
85
|
+
TOP_HALF_INTEGRAL = 8992
|
86
|
+
BOTTOM_HALF_INTEGRAL = 8993
|
87
|
+
INTEGRAL_EXTENSION = 9134
|
88
|
+
VERTICAL_LINE_EXTENSION = 9168
|
89
|
+
TILDE_OPERATOR = 8764
|
90
|
+
LEFT_CEILING = 8968
|
91
|
+
RIGHT_CEILING = 8969
|
92
|
+
LEFT_FLOOR = 8970
|
93
|
+
RIGHT_FLOOR = 8971
|
94
|
+
TOP_PARENTHESIS = 9180
|
95
|
+
BOTTOM_PARENTHESIS = 9181
|
96
|
+
TOP_SQUARE_BRACKET = 9140
|
97
|
+
BOTTOM_SQUARE_BRACKET = 9141
|
98
|
+
TOP_CURLY_BRACKET = 9182
|
99
|
+
BOTTOM_CURLY_BRACKET = 9183
|
100
|
+
MATHEMATICAL_LEFT_ANGLE_BRACKET = 10216
|
101
|
+
MATHEMATICAL_RIGHT_ANGLE_BRACKET = 10217
|
102
|
+
DOUBLE_STRUCK_ITALIC_CAPITAL_D = 8517
|
103
|
+
DOUBLE_STRUCK_ITALIC_SMALL_D = 8518
|
104
|
+
DOUBLE_STRUCK_ITALIC_SMALL_E = 8519
|
105
|
+
DOUBLE_STRUCK_ITALIC_SMALL_I = 8520
|
106
|
+
EPSILON = 949
|
107
|
+
VAREPSILON = 1013
|
108
|
+
DIGIT_ZERO = 48
|
109
|
+
DIGIT_NINE = 57
|
110
|
+
LATIN_CAPITAL_LETTER_A = 65
|
111
|
+
LATIN_CAPITAL_LETTER_Z = 90
|
112
|
+
LATIN_SMALL_LETTER_A = 97
|
113
|
+
LATIN_SMALL_LETTER_Z = 122
|
114
|
+
MATHEMATICAL_SCRIPT_CAPITAL_A = 119964
|
115
|
+
MATHEMATICAL_SCRIPT_SMALL_A = 119990
|
116
|
+
MATHEMATICAL_FRAKTUR_CAPITAL_A = 120068
|
117
|
+
MATHEMATICAL_FRAKTUR_SMALL_A = 120094
|
118
|
+
MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_A = 120120
|
119
|
+
MATHEMATICAL_DOUBLE_STRUCK_SMALL_A = 120146
|
120
|
+
MATHEMATICAL_DOUBLE_STRUCK_DIGIT_ZERO = 120792
|
121
|
+
MIDDLE_DOT = 183
|
122
|
+
DOT_ABOVE = 729
|
123
|
+
ARABIC_DECIMAL_SEPARATOR = 1643
|
124
|
+
ARABIC_THOUSANDS_SEPARATOR = 1644
|
125
|
+
ALIGNMENT_RELATION_OPERATORS = [61, 8801, 8764, 8776, 8771, 8773, 8800, 8802, 8769, 62, 60, 8805, 8804, 10878, 10877, 10887, 10888, 8810, 8811, 8733, 8826, 8827, 8882, 8883]
|
126
|
+
def self.isDigit(c)
|
127
|
+
if (48 <= c) && (c <= 57)
|
128
|
+
return true
|
129
|
+
end
|
130
|
+
if (1632 <= c) && (c <= 1641)
|
131
|
+
return true
|
132
|
+
end
|
133
|
+
if (1776 <= c) && (c <= 1785)
|
134
|
+
return true
|
135
|
+
end
|
136
|
+
if (2790 <= c) && (c <= 2799)
|
137
|
+
return true
|
138
|
+
end
|
139
|
+
return false
|
140
|
+
end
|
141
|
+
def self.isIdentifier(c)
|
142
|
+
return (WCharacterBase.isLetter(c) || WCharacterBase.isCombiningCharacter(c)) || (c == 95)
|
143
|
+
end
|
144
|
+
def self.isLarge(c)
|
145
|
+
return WCharacterBase.binarySearch(largeOps,c)
|
146
|
+
end
|
147
|
+
def self.isVeryLarge(c)
|
148
|
+
return WCharacterBase.binarySearch(veryLargeOps,c)
|
149
|
+
end
|
150
|
+
def self.isBinaryOp(c)
|
151
|
+
return WCharacterBase.binarySearch(binaryOps,c)
|
152
|
+
end
|
153
|
+
def self.isRelation(c)
|
154
|
+
return WCharacterBase.binarySearch(relations,c)
|
155
|
+
end
|
156
|
+
def self.binarySearch(v, c)
|
157
|
+
min = 0
|
158
|
+
max = v::length - 1
|
159
|
+
loop do
|
160
|
+
mid = ((min + max)/2)
|
161
|
+
cc = v[mid]
|
162
|
+
if c == cc
|
163
|
+
return true
|
164
|
+
else
|
165
|
+
if c < cc
|
166
|
+
max = mid - 1
|
167
|
+
else
|
168
|
+
min = mid + 1
|
169
|
+
end
|
170
|
+
end
|
171
|
+
break if not min <= max
|
172
|
+
end
|
173
|
+
return false
|
174
|
+
end
|
175
|
+
@@binaryOps;
|
176
|
+
def self.binaryOps
|
177
|
+
@@binaryOps
|
178
|
+
end
|
179
|
+
def self.binaryOps=(binaryOps)
|
180
|
+
@@binaryOps = binaryOps
|
181
|
+
end
|
182
|
+
@@relations;
|
183
|
+
def self.relations
|
184
|
+
@@relations
|
185
|
+
end
|
186
|
+
def self.relations=(relations)
|
187
|
+
@@relations = relations
|
188
|
+
end
|
189
|
+
@@largeOps;
|
190
|
+
def self.largeOps
|
191
|
+
@@largeOps
|
192
|
+
end
|
193
|
+
def self.largeOps=(largeOps)
|
194
|
+
@@largeOps = largeOps
|
195
|
+
end
|
196
|
+
@@veryLargeOps;
|
197
|
+
def self.veryLargeOps
|
198
|
+
@@veryLargeOps
|
199
|
+
end
|
200
|
+
def self.veryLargeOps=(veryLargeOps)
|
201
|
+
@@veryLargeOps = veryLargeOps
|
202
|
+
end
|
203
|
+
@@tallLetters;
|
204
|
+
def self.tallLetters
|
205
|
+
@@tallLetters
|
206
|
+
end
|
207
|
+
def self.tallLetters=(tallLetters)
|
208
|
+
@@tallLetters = tallLetters
|
209
|
+
end
|
210
|
+
@@longLetters;
|
211
|
+
def self.longLetters
|
212
|
+
@@longLetters
|
213
|
+
end
|
214
|
+
def self.longLetters=(longLetters)
|
215
|
+
@@longLetters = longLetters
|
216
|
+
end
|
217
|
+
@@negations;
|
218
|
+
def self.negations
|
219
|
+
@@negations
|
220
|
+
end
|
221
|
+
def self.negations=(negations)
|
222
|
+
@@negations = negations
|
223
|
+
end
|
224
|
+
@@mirrorDictionary;
|
225
|
+
def self.mirrorDictionary
|
226
|
+
@@mirrorDictionary
|
227
|
+
end
|
228
|
+
def self.mirrorDictionary=(mirrorDictionary)
|
229
|
+
@@mirrorDictionary = mirrorDictionary
|
230
|
+
end
|
231
|
+
@@subSuperScriptDictionary;
|
232
|
+
def self.subSuperScriptDictionary
|
233
|
+
@@subSuperScriptDictionary
|
234
|
+
end
|
235
|
+
def self.subSuperScriptDictionary=(subSuperScriptDictionary)
|
236
|
+
@@subSuperScriptDictionary = subSuperScriptDictionary
|
237
|
+
end
|
238
|
+
@@accentsDictionary;
|
239
|
+
def self.accentsDictionary
|
240
|
+
@@accentsDictionary
|
241
|
+
end
|
242
|
+
def self.accentsDictionary=(accentsDictionary)
|
243
|
+
@@accentsDictionary = accentsDictionary
|
244
|
+
end
|
245
|
+
def self.initAccentsDictionary()
|
246
|
+
if @@accentsDictionary != nil
|
247
|
+
return
|
248
|
+
end
|
249
|
+
h = Hash.new()
|
250
|
+
h::set("A",[192, 193, 194, 195, 196, 197, 256, 258, 260, 461, 478, 480, 506, 512, 514, 550, 570, 7680, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, 9398, 11375, 65313])
|
251
|
+
h::set("AA",[42802])
|
252
|
+
h::set("AE",[198, 482, 508])
|
253
|
+
h::set("AO",[42804])
|
254
|
+
h::set("AU",[42806])
|
255
|
+
h::set("AV",[42808, 42810])
|
256
|
+
h::set("AY",[42812])
|
257
|
+
h::set("B",[385, 386, 579, 7682, 7684, 7686, 9399, 65314])
|
258
|
+
h::set("C",[199, 262, 264, 266, 268, 391, 571, 7688, 9400, 42814, 65315])
|
259
|
+
h::set("D",[208, 270, 272, 393, 394, 395, 7690, 7692, 7694, 7696, 7698, 9401, 42873, 65316])
|
260
|
+
h::set("DZ",[452, 497])
|
261
|
+
h::set("Dz",[453, 498])
|
262
|
+
h::set("E",[200, 201, 202, 203, 274, 276, 278, 280, 282, 398, 400, 516, 518, 552, 7700, 7702, 7704, 7706, 7708, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 9402, 65317])
|
263
|
+
h::set("F",[401, 7710, 9403, 42875, 65318])
|
264
|
+
h::set("G",[284, 286, 288, 290, 403, 484, 486, 500, 7712, 9404, 42877, 42878, 42912, 65319])
|
265
|
+
h::set("H",[292, 294, 542, 7714, 7716, 7718, 7720, 7722, 9405, 11367, 11381, 42893, 65320])
|
266
|
+
h::set("I",[204, 205, 206, 207, 296, 298, 300, 302, 304, 407, 463, 520, 522, 7724, 7726, 7880, 7882, 9406, 65321])
|
267
|
+
h::set("J",[308, 584, 9407, 65322])
|
268
|
+
h::set("K",[310, 408, 488, 7728, 7730, 7732, 9408, 11369, 42816, 42818, 42820, 42914, 65323])
|
269
|
+
h::set("L",[313, 315, 317, 319, 321, 573, 7734, 7736, 7738, 7740, 9409, 11360, 11362, 42822, 42824, 42880, 65324])
|
270
|
+
h::set("LJ",[455])
|
271
|
+
h::set("Lj",[456])
|
272
|
+
h::set("M",[412, 7742, 7744, 7746, 9410, 11374, 65325])
|
273
|
+
h::set("N",[209, 323, 325, 327, 413, 504, 544, 7748, 7750, 7752, 7754, 9411, 42896, 42916, 65326])
|
274
|
+
h::set("NJ",[458])
|
275
|
+
h::set("Nj",[459])
|
276
|
+
h::set("O",[210, 211, 212, 213, 214, 216, 332, 334, 336, 390, 415, 416, 465, 490, 492, 510, 524, 526, 554, 556, 558, 560, 7756, 7758, 7760, 7762, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, 7906, 9412, 42826, 42828, 65327])
|
277
|
+
h::set("OI",[418])
|
278
|
+
h::set("OO",[42830])
|
279
|
+
h::set("OU",[546])
|
280
|
+
h::set("OE",[140, 338])
|
281
|
+
h::set("oe",[156, 339])
|
282
|
+
h::set("P",[420, 7764, 7766, 9413, 11363, 42832, 42834, 42836, 65328])
|
283
|
+
h::set("Q",[586, 9414, 42838, 42840, 65329])
|
284
|
+
h::set("R",[340, 342, 344, 528, 530, 588, 7768, 7770, 7772, 7774, 9415, 11364, 42842, 42882, 42918, 65330])
|
285
|
+
h::set("S",[346, 348, 350, 352, 536, 7776, 7778, 7780, 7782, 7784, 7838, 9416, 11390, 42884, 42920, 65331])
|
286
|
+
h::set("T",[354, 356, 358, 428, 430, 538, 574, 7786, 7788, 7790, 7792, 9417, 42886, 65332])
|
287
|
+
h::set("TZ",[42792])
|
288
|
+
h::set("U",[217, 218, 219, 220, 360, 362, 364, 366, 368, 370, 431, 467, 469, 471, 473, 475, 532, 534, 580, 7794, 7796, 7798, 7800, 7802, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 9418, 65333])
|
289
|
+
h::set("V",[434, 581, 7804, 7806, 9419, 42846, 65334])
|
290
|
+
h::set("VY",[42848])
|
291
|
+
h::set("W",[372, 7808, 7810, 7812, 7814, 7816, 9420, 11378, 65335])
|
292
|
+
h::set("X",[7818, 7820, 9421, 65336])
|
293
|
+
h::set("Y",[221, 374, 376, 435, 562, 590, 7822, 7922, 7924, 7926, 7928, 7934, 9422, 65337])
|
294
|
+
h::set("Z",[377, 379, 381, 437, 548, 7824, 7826, 7828, 9423, 11371, 11391, 42850, 65338])
|
295
|
+
h::set("a",[224, 225, 226, 227, 228, 229, 257, 259, 261, 462, 479, 481, 507, 513, 515, 551, 592, 7681, 7834, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863, 9424, 11365, 65345])
|
296
|
+
h::set("aa",[42803])
|
297
|
+
h::set("ae",[230, 483, 509])
|
298
|
+
h::set("ao",[42805])
|
299
|
+
h::set("au",[42807])
|
300
|
+
h::set("av",[42809, 42811])
|
301
|
+
h::set("ay",[42813])
|
302
|
+
h::set("b",[384, 387, 595, 7683, 7685, 7687, 9425, 65346])
|
303
|
+
h::set("c",[231, 263, 265, 267, 269, 392, 572, 7689, 8580, 9426, 42815, 65347])
|
304
|
+
h::set("d",[271, 273, 396, 598, 599, 7691, 7693, 7695, 7697, 7699, 9427, 42874, 65348])
|
305
|
+
h::set("dz",[454, 499])
|
306
|
+
h::set("e",[232, 233, 234, 235, 275, 277, 279, 281, 283, 477, 517, 519, 553, 583, 603, 7701, 7703, 7705, 7707, 7709, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 9428, 65349])
|
307
|
+
h::set("f",[402, 7711, 9429, 42876, 65350])
|
308
|
+
h::set("g",[285, 287, 289, 291, 485, 487, 501, 608, 7545, 7713, 9430, 42879, 42913, 65351])
|
309
|
+
h::set("h",[293, 295, 543, 613, 7715, 7717, 7719, 7721, 7723, 7830, 9431, 11368, 11382, 65352])
|
310
|
+
h::set("hv",[405])
|
311
|
+
h::set("i",[236, 237, 238, 239, 297, 299, 301, 303, 305, 464, 521, 523, 616, 7725, 7727, 7881, 7883, 9432, 65353])
|
312
|
+
h::set("j",[309, 496, 585, 9433, 65354])
|
313
|
+
h::set("k",[311, 409, 489, 7729, 7731, 7733, 9434, 11370, 42817, 42819, 42821, 42915, 65355])
|
314
|
+
h::set("l",[314, 316, 318, 320, 322, 383, 410, 619, 7735, 7737, 7739, 7741, 9435, 11361, 42823, 42825, 42881, 65356])
|
315
|
+
h::set("lj",[457])
|
316
|
+
h::set("m",[623, 625, 7743, 7745, 7747, 9436, 65357])
|
317
|
+
h::set("n",[241, 324, 326, 328, 329, 414, 505, 626, 7749, 7751, 7753, 7755, 9437, 42897, 42917, 65358])
|
318
|
+
h::set("nj",[460])
|
319
|
+
h::set("o",[242, 243, 244, 245, 246, 248, 333, 335, 337, 417, 466, 491, 493, 511, 525, 527, 555, 557, 559, 561, 596, 629, 7757, 7759, 7761, 7763, 7885, 7887, 7889, 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907, 9438, 42827, 42829, 65359])
|
320
|
+
h::set("oi",[419])
|
321
|
+
h::set("ou",[547])
|
322
|
+
h::set("oo",[42831])
|
323
|
+
h::set("p",[421, 7549, 7765, 7767, 9439, 42833, 42835, 42837, 65360])
|
324
|
+
h::set("q",[587, 9440, 42839, 42841, 65361])
|
325
|
+
h::set("r",[341, 343, 345, 529, 531, 589, 637, 7769, 7771, 7773, 7775, 9441, 42843, 42883, 42919, 65362])
|
326
|
+
h::set("s",[223, 347, 349, 351, 353, 537, 575, 7777, 7779, 7781, 7783, 7785, 7835, 9442, 42885, 42921, 65363])
|
327
|
+
h::set("t",[355, 357, 359, 429, 539, 648, 7787, 7789, 7791, 7793, 7831, 9443, 11366, 42887, 65364])
|
328
|
+
h::set("tz",[42793])
|
329
|
+
h::set("u",[249, 250, 251, 252, 361, 363, 365, 367, 369, 371, 432, 468, 470, 472, 474, 476, 533, 535, 649, 7795, 7797, 7799, 7801, 7803, 7909, 7911, 7913, 7915, 7917, 7919, 7921, 9444, 65365])
|
330
|
+
h::set("v",[651, 652, 7805, 7807, 9445, 42847, 65366])
|
331
|
+
h::set("vy",[42849])
|
332
|
+
h::set("w",[373, 7809, 7811, 7813, 7815, 7817, 7832, 9446, 11379, 65367])
|
333
|
+
h::set("x",[7819, 7821, 9447, 65368])
|
334
|
+
h::set("y",[253, 255, 375, 436, 563, 591, 7823, 7833, 7923, 7925, 7927, 7929, 7935, 9448, 65369])
|
335
|
+
h::set("z",[378, 380, 382, 438, 549, 576, 7825, 7827, 7829, 9449, 11372, 42851, 65370])
|
336
|
+
@@accentsDictionary = h
|
337
|
+
end
|
338
|
+
@@horizontalLTRStretchyChars;
|
339
|
+
def self.horizontalLTRStretchyChars
|
340
|
+
@@horizontalLTRStretchyChars
|
341
|
+
end
|
342
|
+
def self.horizontalLTRStretchyChars=(horizontalLTRStretchyChars)
|
343
|
+
@@horizontalLTRStretchyChars = horizontalLTRStretchyChars
|
344
|
+
end
|
345
|
+
@@tallAccents;
|
346
|
+
def self.tallAccents
|
347
|
+
@@tallAccents
|
348
|
+
end
|
349
|
+
def self.tallAccents=(tallAccents)
|
350
|
+
@@tallAccents = tallAccents
|
351
|
+
end
|
352
|
+
PUNCTUATION_CATEGORY = "P"
|
353
|
+
OTHER_CATEGORY = "C"
|
354
|
+
LETTER_CATEGORY = "L"
|
355
|
+
MARK_CATEGORY = "M"
|
356
|
+
NUMBER_CATEGORY = "N"
|
357
|
+
SYMBOL_CATEGORY = "S"
|
358
|
+
PHONETICAL_CATEGORY = "F"
|
359
|
+
UNICODES_WITH_CATEGORIES = "@P:21-23,25-2A,2C-2F,3A-3B,3F-40,5B-5D,5F,7B,7D,A1,A7,AB,B6-B7,BB,BF,37E,387,55A-55F,589-58A,5BE,5C0,5C3,5C6,5F3-5F4,609-60A,60C-60D,61B,61E-61F,66A-66D,6D4,E4F,E5A-E5B,2010-2022,2025-2026,2030-203E,2040,2043,2047,204E-2051,2057,205E,2308-230B,2329-232A,2772-2773,27C5-27C6,27E6-27EF,2983-2998,29D8-29DB,29FC-29FD,2E17,3030,FD3E-FD3F@C:AD,600-603,6DD,200B-200F,202A-202E,206A-206F@L:41-5A,61-7A,AA,B5,BA,C0-D6,D8-F6,F8-2C1,2C6-2D1,2E0-2E4,2EC,2EE,370-374,376-377,37A-37D,386,388-38A,38C,38E-3A1,3A3-3F5,3F7-481,48A-527,531-556,559,561-587,5D0-5EA,5F0-5F2,620-64A,66E-66F,671-6D3,6D5,6E5-6E6,6EE-6EF,6FA-6FC,6FF,750-77F,E01-E30,E32-E33,E40-E46,1D00-1DBF,1E00-1F15,1F18-1F1D,1F20-1F45,1F48-1F4D,1F50-1F57,1F59,1F5B,1F5D,1F5F-1F7D,1F80-1FB4,1FB6-1FBC,1FBE,1FC2-1FC4,1FC6-1FCC,1FD0-1FD3,1FD6-1FDB,1FE0-1FEC,1FF2-1FF4,1FF6-1FFC,207F,2090-2094,2102,2107,210A-2113,2115,2119-211D,2124,2126,2128,212B-212D,212F-2138,213C-213F,2145-2149,214E,2184,2C60-2C7F,306E,A717-A71F,A727,A788,A78B-A78C,A792,FB00-FB04,FB13-FB17,FB1D,FB1F-FB28,FB2A-FB36,FB38-FB3C,FB3E,FB40-FB41,FB43-FB44,FB46-FBB1,FBD3-FBE9,FBFC-FBFF,FC5E-FC63,FC6A,FC6D,FC70,FC73,FC91,FC94,FDF2,FE70-FE74,FE76-FEFC,1D400-1D454,1D456-1D49C,1D49E-1D49F,1D4A2,1D4A5-1D4A6,1D4A9-1D4AC,1D4AE-1D4B9,1D4BB,1D4BD-1D4C3,1D4C5-1D505,1D507-1D50A,1D50D-1D514,1D516-1D51C,1D51E-1D539,1D53B-1D53E,1D540-1D544,1D546,1D54A-1D550,1D552-1D6A5,1D6A8-1D6C0,1D6C2-1D6DA,1D6DC-1D6FA,1D6FC-1D714,1D716-1D734,1D736-1D74E,1D750-1D76E,1D770-1D788,1D78A-1D7A8,1D7AA-1D7C2,1D7C4-1D7C9@M:300-36F,483-489,591-5BD,5BF,5C1-5C2,5C4-5C5,5C7,610-61A,64B-65F,670,6D6-6DC,6DF-6E4,6E7-6E8,6EA-6ED,E31,E34-E3A,E47-E4E,1DC0-1DC1,1DC3,1DCA,1DFE-1DFF,20D0-20D2,20D6-20D7,20DB-20DF,20E1,20E4-20F0,FB1E,FE20-FE23@N:30-39,B2-B3,B9,BC-BE,660-669,6F0-6F9,E50-E59,2070,2074-2079,2080-2089,2153-215E,2460-2468,24EA,2780-2793,1D7CE-1D7FF@S:24,2B,3C-3E,5E,60,7C,7E,A2-A6,A8-A9,AC,AE-B1,B4,B8,D7,F7,2C2-2C5,2D2-2DF,2E5-2EB,2ED,2EF-2FF,375,384-385,3F6,482,58F,606-608,60B,60E-60F,6DE,6E9,6FD-6FE,E3F,1FBD,1FBF-1FC1,1FCD-1FCF,1FDD-1FDF,1FED-1FEF,1FFD-1FFE,2044,2052,20A0-20BA,2105,2116-2118,211E,2120,2122,2125,2127,2129,212E,2140-2144,214A-214B,214D,2190-21EA,21F4-2300,2302,2305-2306,230C-2313,2315-231A,231C-2323,232C-232E,2332,2336,233D,233F-2340,2353,2370,237C,2393-2394,23AF,23B4-23B6,23CE,23D0,23DC-23E7,2423,24B6-24E9,2500,2502,2506,2508,250A,250C,2510,2514,2518,251C,2524,252C,2534,253C,2550-256C,2571-2572,2580,2584,2588,258C,2590-2593,25A0-25FF,2605-2606,2609,260C,260E,2612,2621,2639-2644,2646-2649,2660-2667,2669-266B,266D-266F,267E,2680-2689,26A0,26A5,26AA-26AC,26B2,26E2,2702,2709,2713,2720,272A,2736,273D,279B,27C0-27C4,27C7-27C9,27CB-27CD,27D0-27E5,27F0-27FF,2900-2982,2999-29D7,29DC-29FB,29FE-2AFF,2B12-2B4C,2B50-2B54,3012,A720-A721,A789-A78A,FB29,FBB2-FBC1,FDFC,FFFC-FFFD,1D6C1,1D6DB,1D6FB,1D715,1D735,1D74F,1D76F,1D789,1D7A9,1D7C3@F:70,62,74,64,288,256,63,25F,6B,261,71,262,294,6D,271,6E,273,272,14B,274,72,280,27E,27D,278,3B2,66,76,3B8,F0,73,7A,283,292,282,290,E7,29D,78,263,3C7,281,127,295,68,266,26C,26E,28B,279,27B,6A,270,6C,26D,28E,29F,1A5,253,1AD,257,188,284,199,260,2A0,29B,28D,77,265,29C,2A1-2A2,267,298,1C0,1C3,1C2,1C1,27A,255,291,2C71,287,297,296,286,293,27C,2E2,1AB,26B,67,2A6,2A3,2A7,2A4,2A8,2A5,1DBF,1D4A,1D91,1BB,29E,2E3,19E,19B,3BB,17E,161,1F0,10D,69,65,25B,61,251,254,6F,75,79,F8,153,276,252,28C,264,26F,268,289,26A,28F,28A,259,275,250,E6,25C,25A,131,25E,29A,258,277,269,2BC,325,30A,32C,2B0,324,330,33C,32A,33A-33B,339,31C,31F-320,308,33D,318-319,2DE,2B7,2B2,2E0,2E4,303,207F,2E1,31A,334,31D,2D4,31E,2D5,329,32F,361,35C,322,2F9,2C,2BB,307,2D7,2D6,2B8,323,321,32B,2C8,2CC,2D0-2D1,306,2E,7C,2016,203F,2197-2198,30B,301,304,300,30F,A71B-A71C,2E5-2E9,30C,302,1DC4-1DC5,1DC8,311,2C7,2C6,316,2CE,317,2CF,2AD,2A9-2AB,274D,2A,56,46,57,43,4C,4A,152,398,1D191,1D18F,31-33,346,34D,34A-34C,348-349,5C,34E,2193,2191,2EC,1DB9,362,347,2B6,2ED,2F1-2F2,2F7,41-42,44-45,47-49,4B,4D-55,58-5B,5D,2F,28-29,7B,7D@"
|
360
|
+
def self.getCategoriesUnicode()
|
361
|
+
categoriesUnicode = Hash.new()
|
362
|
+
categoriesUnicode::set(SYMBOL_CATEGORY,"SymbolUnicodeCategory")
|
363
|
+
categoriesUnicode::set(PUNCTUATION_CATEGORY,"PunctuationUnicodeCategory")
|
364
|
+
categoriesUnicode::set(LETTER_CATEGORY,"LetterUnicodeCategory")
|
365
|
+
categoriesUnicode::set(MARK_CATEGORY,"MarkUnicodeCategory")
|
366
|
+
categoriesUnicode::set(NUMBER_CATEGORY,"NumberUnicodeCategory")
|
367
|
+
categoriesUnicode::set(PHONETICAL_CATEGORY,"PhoneticalUnicodeCategory")
|
368
|
+
categoriesUnicode::set(OTHER_CATEGORY,"OtherUnicodeCategory")
|
369
|
+
return categoriesUnicode
|
370
|
+
end
|
371
|
+
def self.getUnicodeCategoryList(category)
|
372
|
+
indexStart = UNICODES_WITH_CATEGORIES::indexOf(("@" + category) + ":")
|
373
|
+
unicodes = Std::substr(UNICODES_WITH_CATEGORIES,indexStart + 3)
|
374
|
+
indexEnd = unicodes::indexOf("@")
|
375
|
+
unicodes = Std::substr(unicodes,0,indexEnd)
|
376
|
+
return WCharacterBase.getUnicodesRangedStringList(unicodes)
|
377
|
+
end
|
378
|
+
def self.getUnicodesRangedStringList(unicodesRangedList)
|
379
|
+
inputList = Std::split(unicodesRangedList,",")
|
380
|
+
unicodeList = Array.new()
|
381
|
+
i = 0
|
382
|
+
while i < inputList::length()
|
383
|
+
actual_range = inputList::_(i)
|
384
|
+
actual_range = StringTools::replace(actual_range," ","")
|
385
|
+
if actual_range::indexOf("-") != -1
|
386
|
+
firstRangeValueHex = WCharacterBase.hexStringToUnicode(Std::split(actual_range,"-")::_(0))
|
387
|
+
lastRangeValueHex = WCharacterBase.hexStringToUnicode(Std::split(actual_range,"-")::_(1))
|
388
|
+
actualValue = firstRangeValueHex
|
389
|
+
while actualValue <= lastRangeValueHex
|
390
|
+
unicodeList::push(Utf8::uchr(actualValue))
|
391
|
+
actualValue+=1
|
392
|
+
end
|
393
|
+
else
|
394
|
+
actualValue = WCharacterBase.hexStringToUnicode(actual_range)
|
395
|
+
unicodeList::push(Utf8::uchr(actualValue))
|
396
|
+
end
|
397
|
+
i+=1
|
398
|
+
end
|
399
|
+
return unicodeList
|
400
|
+
end
|
401
|
+
def self.hexStringToUnicode(unicode)
|
402
|
+
return Std::parseInt("0x" + unicode)
|
403
|
+
end
|
404
|
+
@@invisible;
|
405
|
+
def self.invisible
|
406
|
+
@@invisible
|
407
|
+
end
|
408
|
+
def self.invisible=(invisible)
|
409
|
+
@@invisible = invisible
|
410
|
+
end
|
411
|
+
def self.getMirror(str)
|
412
|
+
mirroredStr = ""
|
413
|
+
i = 0
|
414
|
+
while i < str::length()
|
415
|
+
c = Std::charCodeAt(str,i)
|
416
|
+
j = 0
|
417
|
+
while j < WCharacterBase::mirrorDictionary::length
|
418
|
+
if c == WCharacterBase::mirrorDictionary[j]
|
419
|
+
c = WCharacterBase::mirrorDictionary[j + 1]
|
420
|
+
break
|
421
|
+
end
|
422
|
+
j += 2
|
423
|
+
end
|
424
|
+
mirroredStr += Std::fromCharCode(c)
|
425
|
+
i+=1
|
426
|
+
end
|
427
|
+
return mirroredStr
|
428
|
+
end
|
429
|
+
def self.isStretchyLTR(c)
|
430
|
+
i = 0
|
431
|
+
while i < WCharacterBase::horizontalLTRStretchyChars::length
|
432
|
+
if c == WCharacterBase::horizontalLTRStretchyChars[i]
|
433
|
+
return true
|
434
|
+
end
|
435
|
+
i+=1
|
436
|
+
end
|
437
|
+
return false
|
438
|
+
end
|
439
|
+
def self.getNegated(c)
|
440
|
+
i = 0
|
441
|
+
while i < WCharacterBase::negations::length
|
442
|
+
if WCharacterBase::negations[i] == c
|
443
|
+
return WCharacterBase::negations[i + 1]
|
444
|
+
end
|
445
|
+
i += 2
|
446
|
+
end
|
447
|
+
return -1
|
448
|
+
end
|
449
|
+
def self.getNotNegated(c)
|
450
|
+
i = 1
|
451
|
+
while i < WCharacterBase::negations::length
|
452
|
+
if WCharacterBase::negations[i] == c
|
453
|
+
return WCharacterBase::negations[i - 1]
|
454
|
+
end
|
455
|
+
i += 2
|
456
|
+
end
|
457
|
+
return -1
|
458
|
+
end
|
459
|
+
def self.isCombining(s)
|
460
|
+
it = Utf8::getIterator(s)
|
461
|
+
while it::hasNext()
|
462
|
+
if !WCharacterBase::isCombiningCharacter(it::next())
|
463
|
+
return false
|
464
|
+
end
|
465
|
+
end
|
416
466
|
return true
|
417
|
-
end
|
418
467
|
end
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
end
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
468
|
+
def self.isCombiningCharacter(c)
|
469
|
+
return (((c >= 768) && (c <= 879)) || ((c >= 6832) && (c <= 6911))) || ((((c >= 7616) && (c <= 7679)) && ((c >= 8400) && (c <= 8447))) && ((c >= 65056) && (c <= 65071)))
|
470
|
+
end
|
471
|
+
def self.isLetter(c)
|
472
|
+
if WCharacterBase.isDigit(c)
|
473
|
+
return false
|
474
|
+
end
|
475
|
+
if (65 <= c) && (c <= 90)
|
476
|
+
return true
|
477
|
+
end
|
478
|
+
if (97 <= c) && (c <= 122)
|
479
|
+
return true
|
480
|
+
end
|
481
|
+
if (((192 <= c) && (c <= 696)) && (c != 215)) && (c != 247)
|
482
|
+
return true
|
483
|
+
end
|
484
|
+
if (867 <= c) && (c <= 1521)
|
485
|
+
return true
|
486
|
+
end
|
487
|
+
if (1552 <= c) && (c <= 8188)
|
488
|
+
return true
|
489
|
+
end
|
490
|
+
if ((((c == 8472) || (c == 8467)) || WCharacterBase.isDoubleStruck(c)) || WCharacterBase.isFraktur(c)) || WCharacterBase.isScript(c)
|
491
|
+
return true
|
492
|
+
end
|
493
|
+
if WCharacterBase.isChinese(c)
|
494
|
+
return true
|
495
|
+
end
|
496
|
+
if WCharacterBase.isKorean(c)
|
497
|
+
return true
|
498
|
+
end
|
499
|
+
return false
|
500
|
+
end
|
501
|
+
def self.isUnicodeMathvariant(c)
|
502
|
+
return ((WCharacterBase.isDoubleStruck(c) || WCharacterBase.isFraktur(c)) || WCharacterBase.isScript(c))
|
503
|
+
end
|
504
|
+
def self.isRequiredByQuizzes(c)
|
505
|
+
return ((((((((c == 120128) || (c == 8450)) || (c == 8461)) || (c == 8469)) || (c == 8473)) || (c == 8474)) || (c == 8477)) || (c == 8484))
|
506
|
+
end
|
507
|
+
def self.isDoubleStruck(c)
|
508
|
+
return (((((((((c >= 120120) && (c <= 120171)) || (c == 8450)) || (c == 8461)) || (c == 8469)) || (c == 8473)) || (c == 8474)) || (c == 8477)) || (c == 8484))
|
509
|
+
end
|
510
|
+
def self.isFraktur(c)
|
511
|
+
return (((((((c >= 120068) && (c <= 120119)) || (c == 8493)) || (c == 8460)) || (c == 8465)) || (c == 8476)) || (c == 8488))
|
512
|
+
end
|
513
|
+
def self.isScript(c)
|
514
|
+
return (((((((((((((c >= 119964) && (c <= 120015)) || (c == 8458)) || (c == 8459)) || (c == 8466)) || (c == 8464)) || (c == 8499)) || (c == 8500)) || (c == 8492)) || (c == 8495)) || (c == 8496)) || (c == 8497)) || (c == 8475))
|
515
|
+
end
|
516
|
+
def self.isLowerCase(c)
|
517
|
+
return (((((c >= 97) && (c <= 122)) || ((c >= 224) && (c <= 255))) || ((c >= 591) && (c >= 659))) || ((c >= 661) && (c <= 687))) || ((c >= 940) && (c <= 974))
|
518
|
+
end
|
519
|
+
def self.isWord(c)
|
520
|
+
if ((((WCharacterBase.isDevanagari(c) || WCharacterBase.isChinese(c)) || WCharacterBase.isHebrew(c)) || WCharacterBase.isThai(c)) || WCharacterBase.isGujarati(c)) || WCharacterBase.isKorean(c)
|
521
|
+
return true
|
522
|
+
end
|
523
|
+
return false
|
524
|
+
end
|
525
|
+
def self.isArabianString(s)
|
526
|
+
i = s::length() - 1
|
527
|
+
while i >= 0
|
528
|
+
if !WCharacterBase.isArabian(Std::charCodeAt(s,i))
|
529
|
+
return false
|
530
|
+
end
|
531
|
+
i-=1
|
532
|
+
end
|
533
|
+
return true
|
534
|
+
end
|
535
|
+
def self.isArabian(c)
|
536
|
+
if ((c >= 1536) && (c <= 1791)) && !WCharacterBase::isDigit(c)
|
537
|
+
return true
|
538
|
+
end
|
539
|
+
return false
|
540
|
+
end
|
541
|
+
def self.isHebrew(c)
|
542
|
+
if (c >= 1424) && (c <= 1535)
|
543
|
+
return true
|
544
|
+
end
|
545
|
+
return false
|
546
|
+
end
|
547
|
+
def self.isChinese(c)
|
548
|
+
if (c >= 13312) && (c <= 40959)
|
549
|
+
return true
|
550
|
+
end
|
551
|
+
return false
|
552
|
+
end
|
553
|
+
def self.isKorean(c)
|
554
|
+
if (c >= 12593) && (c <= 52044)
|
555
|
+
return true
|
556
|
+
end
|
557
|
+
return false
|
558
|
+
end
|
559
|
+
def self.isGreek(c)
|
560
|
+
if (c >= 945) && (c <= 969)
|
561
|
+
return true
|
562
|
+
else
|
563
|
+
if ((c >= 913) && (c <= 937)) && (c != 930)
|
564
|
+
return true
|
565
|
+
else
|
566
|
+
if ((c == 977) || (c == 981)) || (c == 982)
|
567
|
+
return true
|
568
|
+
end
|
569
|
+
end
|
570
|
+
end
|
571
|
+
return false
|
572
|
+
end
|
573
|
+
def self.isDevanagari(c)
|
574
|
+
if (c >= 2304) && (c < 2431)
|
575
|
+
return true
|
576
|
+
end
|
577
|
+
return false
|
578
|
+
end
|
579
|
+
def self.isGujarati(c)
|
580
|
+
if (((c >= 2689) && (c < 2788)) || (c == 2800)) || (c == 2801)
|
581
|
+
return true
|
582
|
+
end
|
583
|
+
return false
|
584
|
+
end
|
585
|
+
def self.isThai(c)
|
586
|
+
if (3585 <= c) && (c < 3676)
|
587
|
+
return true
|
588
|
+
end
|
589
|
+
return false
|
590
|
+
end
|
591
|
+
def self.isDevanagariString(s)
|
592
|
+
i = s::length() - 1
|
593
|
+
while i >= 0
|
594
|
+
if !WCharacterBase.isDevanagari(Std::charCodeAt(s,i))
|
595
|
+
return false
|
596
|
+
end
|
597
|
+
i-=1
|
598
|
+
end
|
599
|
+
return true
|
600
|
+
end
|
601
|
+
def self.isRTL(c)
|
602
|
+
if WCharacterBase.isHebrew(c) || WCharacterBase.isArabian(c)
|
603
|
+
return true
|
604
|
+
end
|
605
|
+
return false
|
606
|
+
end
|
607
|
+
def self.isTallLetter(c)
|
608
|
+
if ((97 <= c) && (c <= 122)) || ((945 <= c) && (c <= 969))
|
609
|
+
return (WCharacterBase::binarySearch(@@tallLetters,c))
|
610
|
+
end
|
611
|
+
return true
|
612
|
+
end
|
613
|
+
def self.isLongLetter(c)
|
614
|
+
if ((97 <= c) && (c <= 122)) || ((945 <= c) && (c <= 969))
|
615
|
+
return (WCharacterBase::binarySearch(@@longLetters,c))
|
616
|
+
else
|
617
|
+
if (65 <= c) && (c <= 90)
|
618
|
+
return false
|
619
|
+
end
|
620
|
+
end
|
621
|
+
return true
|
622
|
+
end
|
623
|
+
def self.isLTRNumber(text)
|
624
|
+
i = 0
|
625
|
+
n = Utf8::getLength(text)
|
626
|
+
while i < n
|
627
|
+
if !WCharacterBase::isDigit(Utf8::charCodeAt(text,i))
|
628
|
+
return false
|
629
|
+
end
|
630
|
+
i+=1
|
631
|
+
end
|
632
|
+
return true
|
633
|
+
end
|
634
|
+
def self.isSuperscript(c)
|
635
|
+
return (((c == 178) || (c == 179)) || (c == 185)) || ((((c >= 8304) && (c <= 8319)) && (c != 8306)) && (c != 8307))
|
636
|
+
end
|
637
|
+
def self.isSubscript(c)
|
638
|
+
return ((c >= 8320) && (c <= 8348)) && (c != 8335)
|
639
|
+
end
|
640
|
+
def self.isSuperscriptOrSubscript(c)
|
641
|
+
return WCharacterBase.isSuperscript(c) || WCharacterBase.isSubscript(c)
|
642
|
+
end
|
643
|
+
def self.normalizeSubSuperScript(c)
|
644
|
+
i = 0
|
645
|
+
n = @@subSuperScriptDictionary::length
|
646
|
+
while i < n
|
647
|
+
if @@subSuperScriptDictionary[i] == c
|
648
|
+
return @@subSuperScriptDictionary[i + 1]
|
649
|
+
end
|
650
|
+
i += 2
|
651
|
+
end
|
652
|
+
return c
|
653
|
+
end
|
654
|
+
def self.isInvisible(c)
|
655
|
+
return WCharacterBase.binarySearch(@@invisible,c)
|
656
|
+
end
|
657
|
+
@@horizontalOperators;
|
658
|
+
def self.horizontalOperators
|
659
|
+
@@horizontalOperators
|
660
|
+
end
|
661
|
+
def self.horizontalOperators=(horizontalOperators)
|
662
|
+
@@horizontalOperators = horizontalOperators
|
663
|
+
end
|
664
|
+
def self.isHorizontalOperator(c)
|
665
|
+
return WCharacterBase.binarySearch(@@horizontalOperators,c)
|
666
|
+
end
|
667
|
+
@@latinLetters;
|
668
|
+
def self.latinLetters
|
669
|
+
@@latinLetters
|
670
|
+
end
|
671
|
+
def self.latinLetters=(latinLetters)
|
672
|
+
@@latinLetters = latinLetters
|
673
|
+
end
|
674
|
+
@@greekLetters;
|
675
|
+
def self.greekLetters
|
676
|
+
@@greekLetters
|
677
|
+
end
|
678
|
+
def self.greekLetters=(greekLetters)
|
679
|
+
@@greekLetters = greekLetters
|
680
|
+
end
|
681
|
+
def self.latin2Greek(l)
|
682
|
+
index = -1
|
683
|
+
if l < 100
|
684
|
+
index = WCharacterBase::latinLetters::indexOf(("@00" + l.to_s) + "@")
|
685
|
+
else
|
686
|
+
if l < 1000
|
687
|
+
index = WCharacterBase::latinLetters::indexOf(("@0" + l.to_s) + "@")
|
688
|
+
else
|
689
|
+
index = WCharacterBase::latinLetters::indexOf(("@" + l.to_s) + "@")
|
690
|
+
end
|
691
|
+
end
|
692
|
+
if index != -1
|
693
|
+
s = Std::substr(WCharacterBase::greekLetters,index + 1,4)
|
694
|
+
return Std::parseInt(s)
|
695
|
+
end
|
696
|
+
return l
|
697
|
+
end
|
698
|
+
def self.greek2Latin(g)
|
699
|
+
index = -1
|
700
|
+
if g < 100
|
701
|
+
index = WCharacterBase::greekLetters::indexOf(("@00" + g.to_s) + "@")
|
702
|
+
else
|
703
|
+
if g < 1000
|
704
|
+
index = WCharacterBase::greekLetters::indexOf(("@0" + g.to_s) + "@")
|
705
|
+
else
|
706
|
+
index = WCharacterBase::greekLetters::indexOf(("@" + g.to_s) + "@")
|
707
|
+
end
|
708
|
+
end
|
709
|
+
if index != -1
|
710
|
+
s = Std::substr(WCharacterBase::latinLetters,index + 1,4)
|
711
|
+
return Std::parseInt(s)
|
712
|
+
end
|
713
|
+
return g
|
714
|
+
end
|
715
|
+
def self.isOp(c)
|
716
|
+
return (((((WCharacterBase.isLarge(c) || WCharacterBase.isVeryLarge(c)) || WCharacterBase.isBinaryOp(c)) || WCharacterBase.isRelation(c)) || (c == Std::charCodeAt(".",0))) || (c == Std::charCodeAt(",",0))) || (c == Std::charCodeAt(":",0))
|
717
|
+
end
|
718
|
+
def self.isTallAccent(c)
|
719
|
+
i = 0
|
720
|
+
while i < WCharacterBase::tallAccents::length
|
721
|
+
if c == WCharacterBase::tallAccents[i]
|
722
|
+
return true
|
723
|
+
end
|
724
|
+
i+=1
|
725
|
+
end
|
726
|
+
return false
|
727
|
+
end
|
728
|
+
def self.isDisplayedWithStix(c)
|
729
|
+
if (c >= 592) && (c <= 687)
|
730
|
+
return true
|
731
|
+
end
|
732
|
+
if (c >= 688) && (c <= 767)
|
733
|
+
return true
|
734
|
+
end
|
735
|
+
if ((c >= 8215) && (c <= 8233)) || ((c >= 8241) && (c <= 8303))
|
736
|
+
return true
|
737
|
+
end
|
738
|
+
if (c >= 8304) && (c <= 8351)
|
739
|
+
return true
|
740
|
+
end
|
741
|
+
if (c >= 8400) && (c <= 8447)
|
742
|
+
return true
|
743
|
+
end
|
744
|
+
if (c >= 8448) && (c <= 8527)
|
745
|
+
return true
|
746
|
+
end
|
747
|
+
if (c >= 8528) && (c <= 8591)
|
748
|
+
return true
|
749
|
+
end
|
750
|
+
if (c >= 8592) && (c <= 8703)
|
751
|
+
return true
|
752
|
+
end
|
753
|
+
if (c >= 8704) && (c <= 8959)
|
754
|
+
return true
|
755
|
+
end
|
756
|
+
if (c >= 8960) && (c <= 9215)
|
757
|
+
return true
|
758
|
+
end
|
759
|
+
if (c >= 9312) && (c <= 9471)
|
760
|
+
return true
|
761
|
+
end
|
762
|
+
if (c >= 9472) && (c <= 9599)
|
763
|
+
return true
|
764
|
+
end
|
765
|
+
if (c >= 9600) && (c <= 9631)
|
766
|
+
return true
|
767
|
+
end
|
768
|
+
if (c >= 9632) && (c <= 9727)
|
769
|
+
return true
|
770
|
+
end
|
771
|
+
if (c >= 9728) && (c <= 9983)
|
772
|
+
return true
|
773
|
+
end
|
774
|
+
if (c >= 9984) && (c <= 10175)
|
775
|
+
return true
|
776
|
+
end
|
777
|
+
if (c >= 10176) && (c <= 10223)
|
778
|
+
return true
|
779
|
+
end
|
780
|
+
if (c >= 10224) && (c <= 10239)
|
781
|
+
return true
|
782
|
+
end
|
783
|
+
if (c >= 10240) && (c <= 10495)
|
784
|
+
return true
|
785
|
+
end
|
786
|
+
if (c >= 10496) && (c <= 10623)
|
787
|
+
return true
|
788
|
+
end
|
789
|
+
if (c >= 10624) && (c <= 10751)
|
790
|
+
return true
|
791
|
+
end
|
792
|
+
if (c >= 10752) && (c <= 11007)
|
793
|
+
return true
|
794
|
+
end
|
795
|
+
if (c >= 11008) && (c <= 11263)
|
796
|
+
return true
|
797
|
+
end
|
798
|
+
if (c >= 12288) && (c <= 12351)
|
799
|
+
return true
|
800
|
+
end
|
801
|
+
if (c >= 57344) && (c <= 65535)
|
802
|
+
return true
|
803
|
+
end
|
804
|
+
if ((c >= 119808) && (c <= 119963)) || ((c >= 120224) && (c <= 120831))
|
805
|
+
return true
|
806
|
+
end
|
807
|
+
if ((c == 12398) || (c == 42791)) || (c == 42898)
|
808
|
+
return true
|
809
|
+
end
|
810
|
+
return false
|
811
|
+
end
|
812
|
+
def self.latinToDoublestruck(codepoint)
|
813
|
+
if codepoint == 67
|
814
|
+
return 8450
|
815
|
+
else
|
816
|
+
if codepoint == 72
|
817
|
+
return 8461
|
818
|
+
else
|
819
|
+
if codepoint == 78
|
820
|
+
return 8469
|
821
|
+
else
|
822
|
+
if codepoint == 80
|
823
|
+
return 8473
|
824
|
+
else
|
825
|
+
if codepoint == 81
|
826
|
+
return 8474
|
827
|
+
else
|
828
|
+
if codepoint == 82
|
829
|
+
return 8477
|
830
|
+
else
|
831
|
+
if codepoint == 90
|
832
|
+
return 8484
|
833
|
+
else
|
834
|
+
if (codepoint >= LATIN_CAPITAL_LETTER_A) && (codepoint <= LATIN_CAPITAL_LETTER_Z)
|
835
|
+
return codepoint + (MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_A - LATIN_CAPITAL_LETTER_A)
|
836
|
+
else
|
837
|
+
if (codepoint >= LATIN_SMALL_LETTER_A) && (codepoint <= LATIN_SMALL_LETTER_Z)
|
838
|
+
return codepoint + (MATHEMATICAL_DOUBLE_STRUCK_SMALL_A - LATIN_SMALL_LETTER_A)
|
839
|
+
else
|
840
|
+
if (codepoint >= DIGIT_ZERO) && (codepoint <= DIGIT_NINE)
|
841
|
+
return codepoint + (MATHEMATICAL_DOUBLE_STRUCK_DIGIT_ZERO - DIGIT_ZERO)
|
842
|
+
else
|
843
|
+
return codepoint
|
844
|
+
end
|
845
|
+
end
|
846
|
+
end
|
847
|
+
end
|
848
|
+
end
|
849
|
+
end
|
850
|
+
end
|
851
|
+
end
|
852
|
+
end
|
853
|
+
end
|
854
|
+
end
|
855
|
+
def self.latinToScript(codepoint)
|
856
|
+
if codepoint == 66
|
857
|
+
return 8492
|
858
|
+
else
|
859
|
+
if codepoint == 69
|
860
|
+
return 8496
|
861
|
+
else
|
862
|
+
if codepoint == 70
|
863
|
+
return 8497
|
864
|
+
else
|
865
|
+
if codepoint == 72
|
866
|
+
return 8459
|
867
|
+
else
|
868
|
+
if codepoint == 73
|
869
|
+
return 8464
|
870
|
+
else
|
871
|
+
if codepoint == 76
|
872
|
+
return 8466
|
873
|
+
else
|
874
|
+
if codepoint == 77
|
875
|
+
return 8499
|
876
|
+
else
|
877
|
+
if codepoint == 82
|
878
|
+
return 8475
|
879
|
+
else
|
880
|
+
if codepoint == 101
|
881
|
+
return 8495
|
882
|
+
else
|
883
|
+
if codepoint == 103
|
884
|
+
return 8458
|
885
|
+
else
|
886
|
+
if codepoint == 111
|
887
|
+
return 8500
|
888
|
+
else
|
889
|
+
if (codepoint >= LATIN_CAPITAL_LETTER_A) && (codepoint <= LATIN_CAPITAL_LETTER_Z)
|
890
|
+
return codepoint + (MATHEMATICAL_SCRIPT_CAPITAL_A - LATIN_CAPITAL_LETTER_A)
|
891
|
+
else
|
892
|
+
if (codepoint >= LATIN_SMALL_LETTER_A) && (codepoint <= LATIN_SMALL_LETTER_Z)
|
893
|
+
return codepoint + (MATHEMATICAL_SCRIPT_SMALL_A - LATIN_SMALL_LETTER_A)
|
894
|
+
else
|
895
|
+
return codepoint
|
896
|
+
end
|
897
|
+
end
|
898
|
+
end
|
899
|
+
end
|
900
|
+
end
|
901
|
+
end
|
902
|
+
end
|
903
|
+
end
|
904
|
+
end
|
905
|
+
end
|
906
|
+
end
|
907
|
+
end
|
908
|
+
end
|
909
|
+
end
|
910
|
+
def self.latinToFraktur(codepoint)
|
911
|
+
if codepoint == 67
|
912
|
+
return 8493
|
913
|
+
else
|
914
|
+
if codepoint == 72
|
915
|
+
return 8460
|
916
|
+
else
|
917
|
+
if codepoint == 73
|
918
|
+
return 8465
|
919
|
+
else
|
920
|
+
if codepoint == 82
|
921
|
+
return 8476
|
922
|
+
else
|
923
|
+
if codepoint == 90
|
924
|
+
return 8488
|
925
|
+
else
|
926
|
+
if (codepoint >= LATIN_CAPITAL_LETTER_A) && (codepoint <= LATIN_CAPITAL_LETTER_Z)
|
927
|
+
return codepoint + (MATHEMATICAL_FRAKTUR_CAPITAL_A - LATIN_CAPITAL_LETTER_A)
|
928
|
+
else
|
929
|
+
if (codepoint >= LATIN_SMALL_LETTER_A) && (codepoint <= LATIN_SMALL_LETTER_Z)
|
930
|
+
return codepoint + (MATHEMATICAL_FRAKTUR_SMALL_A - LATIN_SMALL_LETTER_A)
|
931
|
+
else
|
932
|
+
return codepoint
|
933
|
+
end
|
934
|
+
end
|
935
|
+
end
|
936
|
+
end
|
937
|
+
end
|
938
|
+
end
|
939
|
+
end
|
940
|
+
end
|
941
|
+
def self.stripAccent(c)
|
942
|
+
WCharacterBase.initAccentsDictionary()
|
943
|
+
if c >= 128
|
944
|
+
i = @@accentsDictionary::keys()
|
945
|
+
while i::hasNext()
|
946
|
+
s = i::next()
|
947
|
+
chars = @@accentsDictionary::get(s)
|
948
|
+
if WCharacterBase.binarySearch(chars,c)
|
949
|
+
return s
|
950
|
+
end
|
951
|
+
end
|
952
|
+
return Utf8::uchr(c)
|
953
|
+
else
|
954
|
+
return Std::fromCharCode(c)
|
955
|
+
end
|
956
|
+
end
|
957
|
+
|
958
|
+
@@binaryOps = [43, 45, 47, 177, 183, 215, 247, 8226, 8722, 8723, 8724, 8726, 8727, 8728, 8743, 8744, 8745, 8746, 8760, 8768, 8846, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8861, 8862, 8863, 8864, 8865, 8890, 8891, 8900, 8901, 8902, 8903, 8905, 8906, 8907, 8908, 8910, 8911, 8914, 8915, 8966, 9021, 9675, 10678, 10789, 10794, 10797, 10798, 10799, 10804, 10805, 10812, 10815, 10835, 10836, 10837, 10838, 10846, 10847, 10851]
|
959
|
+
@@relations = [60, 61, 62, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, 8605, 8606, 8608, 8610, 8611, 8614, 8617, 8618, 8619, 8620, 8621, 8622, 8624, 8625, 8627, 8630, 8631, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8666, 8667, 8669, 8693, 8712, 8713, 8715, 8716, 8733, 8739, 8740, 8741, 8742, 8764, 8765, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8791, 8793, 8794, 8795, 8796, 8799, 8800, 8801, 8802, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8811, 8812, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8847, 8848, 8849, 8850, 8866, 8867, 8869, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8904, 8909, 8912, 8913, 8918, 8919, 8920, 8921, 8922, 8923, 8926, 8927, 8930, 8931, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8941, 8994, 8995, 9123, 10229, 10230, 10231, 10232, 10233, 10234, 10236, 10239, 10501, 10514, 10515, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10547, 10550, 10551, 10560, 10561, 10562, 10564, 10567, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10606, 10607, 10608, 10620, 10621, 10869, 10877, 10878, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10901, 10902, 10909, 10910, 10913, 10914, 10927, 10928, 10933, 10934, 10935, 10936, 10937, 10938, 10949, 10950, 10955, 10956, 10987, 11005]
|
960
|
+
@@largeOps = [8719, 8720, 8721, 8896, 8897, 8898, 8899, 10756, 10757, 10758, 10759, 10760]
|
961
|
+
@@veryLargeOps = [8747, 8748, 8749, 8750, 8751, 8752, 8753, 8754, 8755, 10763, 10764, 10765, 10766, 10767, 10768, 10774, 10775, 10776, 10777, 10778, 10779, 10780]
|
962
|
+
@@tallLetters = [98, 100, 102, 104, 105, 106, 107, 108, 116, 946, 948, 950, 952, 955, 958]
|
963
|
+
@@longLetters = [103, 106, 112, 113, 121, 946, 947, 950, 951, 956, 958, 961, 962, 966, 967, 968]
|
964
|
+
@@negations = [61, 8800, 8801, 8802, 8764, 8769, 8712, 8713, 8715, 8716, 8834, 8836, 8835, 8837, 8838, 8840, 8839, 8841, 62, 8815, 60, 8814, 8805, 8817, 8804, 8816, 10878, 8817, 10877, 8816, 8776, 8777, 8771, 8772, 8773, 8775, 8849, 8930, 8850, 8931, 8707, 8708, 8741, 8742]
|
965
|
+
@@mirrorDictionary = [40, 41, 41, 40, 60, 62, 62, 60, 91, 93, 93, 91, 123, 125, 125, 123, 171, 187, 187, 171, 3898, 3899, 3899, 3898, 3900, 3901, 3901, 3900, 5787, 5788, 5788, 5787, 8249, 8250, 8250, 8249, 8261, 8262, 8262, 8261, 8317, 8318, 8318, 8317, 8333, 8334, 8334, 8333, 8712, 8715, 8713, 8716, 8714, 8717, 8715, 8712, 8716, 8713, 8717, 8714, 8725, 10741, 8764, 8765, 8765, 8764, 8771, 8909, 8786, 8787, 8787, 8786, 8788, 8789, 8789, 8788, 8804, 8805, 8805, 8804, 8806, 8807, 8807, 8806, 8808, 8809, 8809, 8808, 8810, 8811, 8811, 8810, 8814, 8815, 8815, 8814, 8816, 8817, 8817, 8816, 8818, 8819, 8819, 8818, 8820, 8821, 8821, 8820, 8822, 8823, 8823, 8822, 8824, 8825, 8825, 8824, 8826, 8827, 8827, 8826, 8828, 8829, 8829, 8828, 8830, 8831, 8831, 8830, 8832, 8833, 8833, 8832, 8834, 8835, 8835, 8834, 8836, 8837, 8837, 8836, 8838, 8839, 8839, 8838, 8840, 8841, 8841, 8840, 8842, 8843, 8843, 8842, 8847, 8848, 8848, 8847, 8849, 8850, 8850, 8849, 8856, 10680, 8866, 8867, 8867, 8866, 8870, 10974, 8872, 10980, 8873, 10979, 8875, 10981, 8880, 8881, 8881, 8880, 8882, 8883, 8883, 8882, 8884, 8885, 8885, 8884, 8886, 8887, 8887, 8886, 8905, 8906, 8906, 8905, 8907, 8908, 8908, 8907, 8909, 8771, 8912, 8913, 8913, 8912, 8918, 8919, 8919, 8918, 8920, 8921, 8921, 8920, 8922, 8923, 8923, 8922, 8924, 8925, 8925, 8924, 8926, 8927, 8927, 8926, 8928, 8929, 8929, 8928, 8930, 8931, 8931, 8930, 8932, 8933, 8933, 8932, 8934, 8935, 8935, 8934, 8936, 8937, 8937, 8936, 8938, 8939, 8939, 8938, 8940, 8941, 8941, 8940, 8944, 8945, 8945, 8944, 8946, 8954, 8947, 8955, 8948, 8956, 8950, 8957, 8951, 8958, 8954, 8946, 8955, 8947, 8956, 8948, 8957, 8950, 8958, 8951, 8968, 8969, 8969, 8968, 8970, 8971, 8971, 8970, 9001, 9002, 9002, 9001, 10088, 10089, 10089, 10088, 10090, 10091, 10091, 10090, 10092, 10093, 10093, 10092, 10094, 10095, 10095, 10094, 10096, 10097, 10097, 10096, 10098, 10099, 10099, 10098, 10100, 10101, 10101, 10100, 10179, 10180, 10180, 10179, 10181, 10182, 10182, 10181, 10184, 10185, 10185, 10184, 10187, 10189, 10189, 10187, 10197, 10198, 10198, 10197, 10205, 10206, 10206, 10205, 10210, 10211, 10211, 10210, 10212, 10213, 10213, 10212, 10214, 10215, 10215, 10214, 10216, 10217, 10217, 10216, 10218, 10219, 10219, 10218, 10220, 10221, 10221, 10220, 10222, 10223, 10223, 10222, 10627, 10628, 10628, 10627, 10629, 10630, 10630, 10629, 10631, 10632, 10632, 10631, 10633, 10634, 10634, 10633, 10635, 10636, 10636, 10635, 10637, 10640, 10638, 10639, 10639, 10638, 10640, 10637, 10641, 10642, 10642, 10641, 10643, 10644, 10644, 10643, 10645, 10646, 10646, 10645, 10647, 10648, 10648, 10647, 10680, 8856, 10688, 10689, 10689, 10688, 10692, 10693, 10693, 10692, 10703, 10704, 10704, 10703, 10705, 10706, 10706, 10705, 10708, 10709, 10709, 10708, 10712, 10713, 10713, 10712, 10714, 10715, 10715, 10714, 10741, 8725, 10744, 10745, 10745, 10744, 10748, 10749, 10749, 10748, 10795, 10796, 10796, 10795, 10797, 10798, 10798, 10797, 10804, 10805, 10805, 10804, 10812, 10813, 10813, 10812, 10852, 10853, 10853, 10852, 10873, 10874, 10874, 10873, 10877, 10878, 10878, 10877, 10879, 10880, 10880, 10879, 10881, 10882, 10882, 10881, 10883, 10884, 10884, 10883, 10891, 10892, 10892, 10891, 10897, 10898, 10898, 10897, 10899, 10900, 10900, 10899, 10901, 10902, 10902, 10901, 10903, 10904, 10904, 10903, 10905, 10906, 10906, 10905, 10907, 10908, 10908, 10907, 10913, 10914, 10914, 10913, 10918, 10919, 10919, 10918, 10920, 10921, 10921, 10920, 10922, 10923, 10923, 10922, 10924, 10925, 10925, 10924, 10927, 10928, 10928, 10927, 10931, 10932, 10932, 10931, 10939, 10940, 10940, 10939, 10941, 10942, 10942, 10941, 10943, 10944, 10944, 10943, 10945, 10946, 10946, 10945, 10947, 10948, 10948, 10947, 10949, 10950, 10950, 10949, 10957, 10958, 10958, 10957, 10959, 10960, 10960, 10959, 10961, 10962, 10962, 10961, 10963, 10964, 10964, 10963, 10965, 10966, 10966, 10965, 10974, 8870, 10979, 8873, 10980, 8872, 10981, 8875, 10988, 10989, 10989, 10988, 10999, 11000, 11000, 10999, 11001, 11002, 11002, 11001, 11778, 11779, 11779, 11778, 11780, 11781, 11781, 11780, 11785, 11786, 11786, 11785, 11788, 11789, 11789, 11788, 11804, 11805, 11805, 11804, 11808, 11809, 11809, 11808, 11810, 11811, 11811, 11810, 11812, 11813, 11813, 11812, 11814, 11815, 11815, 11814, 11816, 11817, 11817, 11816, 12296, 12297, 12297, 12296, 12298, 12299, 12299, 12298, 12300, 12301, 12301, 12300, 12302, 12303, 12303, 12302, 12304, 12305, 12305, 12304, 12308, 12309, 12309, 12308, 12310, 12311, 12311, 12310, 12312, 12313, 12313, 12312, 12314, 12315, 12315, 12314, 65113, 65114, 65114, 65113, 65115, 65116, 65116, 65115, 65117, 65118, 65118, 65117, 65124, 65125, 65125, 65124, 65288, 65289, 65289, 65288, 65308, 65310, 65310, 65308, 65339, 65341, 65341, 65339, 65371, 65373, 65373, 65371, 65375, 65376, 65376, 65375, 65378, 65379, 65379, 65378, 9115, 9118, 9116, 9119, 9117, 9120, 9118, 9115, 9119, 9116, 9120, 9117, 9121, 9124, 9122, 9125, 9123, 9126, 9124, 9121, 9125, 9122, 9126, 9123, 9127, 9131, 9130, 9134, 9129, 9133, 9131, 9127, 9134, 9130, 9133, 9129, 9128, 9132, 9132, 9128]
|
966
|
+
@@subSuperScriptDictionary = [178, 50, 179, 51, 185, 49, 8304, 48, 8305, 105, 8308, 52, 8309, 53, 8310, 54, 8311, 55, 8312, 56, 8313, 57, 8314, 43, 8315, 45, 8316, 61, 8317, 40, 8318, 41, 8319, 110, 8320, 48, 8321, 49, 8322, 50, 8323, 51, 8324, 52, 8325, 53, 8326, 54, 8327, 55, 8328, 56, 8329, 57, 8330, 43, 8331, 45, 8332, 61, 8333, 40, 8334, 41, 8336, 97, 8337, 101, 8338, 111, 8339, 120, 8340, 601, 8341, 104, 8342, 107, 8343, 108, 8344, 109, 8345, 110, 8346, 112, 8347, 115, 8348, 116]
|
967
|
+
@@accentsDictionary = nil
|
968
|
+
@@horizontalLTRStretchyChars = [WCharacterBase::LEFTWARDS_ARROW, WCharacterBase::RIGHTWARDS_ARROW, WCharacterBase::LEFTRIGHT_ARROW, WCharacterBase::LEFTWARDS_ARROW_FROM_BAR, WCharacterBase::RIGHTWARDS_ARROW_FROM_BAR, WCharacterBase::LEFTWARDS_ARROW_WITH_HOOK, WCharacterBase::RIGHTWARDS_ARROW_WITH_HOOK, WCharacterBase::LEFTWARDS_HARPOON_WITH_BARB_UPWARDS, WCharacterBase::RIGHTWARDS_HARPOON_WITH_BARB_UPWARDS, WCharacterBase::LEFTWARDS_DOUBLE_ARROW, WCharacterBase::RIGHTWARDS_DOUBLE_ARROW, WCharacterBase::TOP_CURLY_BRACKET, WCharacterBase::BOTTOM_CURLY_BRACKET, WCharacterBase::TOP_PARENTHESIS, WCharacterBase::BOTTOM_PARENTHESIS, WCharacterBase::TOP_SQUARE_BRACKET, WCharacterBase::BOTTOM_SQUARE_BRACKET, WCharacterBase::LEFTWARDS_ARROW_OVER_RIGHTWARDS_ARROW, WCharacterBase::RIGHTWARDS_ARROW_OVER_LEFTWARDS_ARROW, WCharacterBase::LEFTWARDS_HARPOON_OVER_RIGHTWARDS_HARPOON, WCharacterBase::RIGHTWARDS_HARPOON_OVER_LEFTWARDS_HARPOON, WCharacterBase::SEGMENT]
|
969
|
+
@@tallAccents = [WCharacterBase::LEFTWARDS_ARROW_OVER_RIGHTWARDS_ARROW, WCharacterBase::RIGHTWARDS_ARROW_OVER_LEFTWARDS_ARROW, WCharacterBase::LEFTWARDS_HARPOON_OVER_RIGHTWARDS_HARPOON, WCharacterBase::RIGHTWARDS_HARPOON_OVER_LEFTWARDS_HARPOON]
|
970
|
+
@@invisible = [8289, 8290, 8291]
|
971
|
+
@@horizontalOperators = [175, 818, 8592, 8594, 8596, 8612, 8614, 8617, 8618, 8636, 8637, 8640, 8641, 8644, 8646, 8651, 8652, 8656, 8658, 8660, 8764, 9140, 9141, 9180, 9181, 9182, 9183, 9552, 10562, 10564, 10602, 10605, 57345, 57346]
|
972
|
+
@@latinLetters = "@0065@0066@0067@0068@0069@0070@0071@0072@0073@0074@0075@0076@0077@0078@0079@0080@0081@0082@0083@0084@0085@0086@0087@0088@0089@0090@0097@0098@0099@0100@0101@0102@0103@0104@0105@0106@0107@0108@0109@0110@0111@0112@0113@0114@0115@0116@0117@0118@0119@0120@0121@0122@"
|
973
|
+
@@greekLetters = "@0913@0914@0935@0916@0917@0934@0915@0919@0921@0977@0922@0923@0924@0925@0927@0928@0920@0929@0931@0932@0933@0962@0937@0926@0936@0918@0945@0946@0967@0948@0949@0966@0947@0951@0953@0966@0954@0955@0956@0957@0959@0960@0952@0961@0963@0964@0965@0982@0969@0958@0968@0950@"
|
632
974
|
end
|
633
|
-
end
|
634
975
|
end
|