00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include "xml/defxml.hpp"
00029 #include "xml/declxml.hpp"
00030 #include "xml/miscxml.hpp"
00031 #include "xml/mngxml.hpp"
00032 #include "xml/storexml.hpp"
00033
00034 #include "base/common.hpp"
00035 #include "base/list.hpp"
00036 #include "base/string.hpp"
00037 #include "base/memory.hpp"
00038
00039 BEGIN_TERIMBER_NAMESPACE
00040 #pragma pack(4)
00041
00042 const ub1_t s_char_map[256] =
00043 {
00044 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x01,0x21,0x00, 0x00,0x21,0x00,0x00,
00045 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00046 0x21,0x20,0x00,0x20, 0x20,0x20,0x00,0x20, 0x20,0x20,0x20,0x20, 0x20,0xF0,0xF0,0x20,
00047 0xF2,0xF2,0xF2,0xF2, 0xF2,0xF2,0xF2,0xF2, 0xF2,0xF2,0x78,0x20, 0x00,0x20,0x00,0x20,
00048
00049 0x20,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC,
00050 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0x00, 0x00,0x00,0x00,0xF8,
00051 0x00,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC,
00052 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0xFC, 0xFC,0xFC,0xFC,0x00, 0x00,0x00,0x00,0x00,
00053
00054 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00055 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00056 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00057 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00058
00059 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00060 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00061 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
00062 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00
00063 };
00064
00065
00066
00067 void
00068 tokenValues(const char* x, _list< const char* >& values, byte_allocator& tmp_allocator)
00069 {
00070 paged_buffer keeper(tmp_allocator, tmp_allocator, os_def_size);
00071
00072 if (!x)
00073 xml_exception_throw("Empty names syntax", 0);
00074
00075 while (is_white_space(*x))
00076 ++x;
00077
00078 while (*x)
00079 {
00080 if (is_white_space(*x))
00081 {
00082
00083 values.push_back(tmp_allocator, copy_string(keeper.persist(), tmp_allocator, keeper.size()));
00084 keeper.reset();
00085 while (*x && is_white_space(*x))
00086 ++x;
00087 }
00088 else
00089 {
00090 keeper << *x;
00091 ++x;
00092 }
00093 }
00094
00095 if (keeper.size())
00096 values.push_back(tmp_allocator, keeper.persist());
00097 }
00098
00099 const ub2_t encoding_table_winodws_1251[256] =
00100 {
00101 0x0000,
00102 0x0001,
00103 0x0002,
00104 0x0003,
00105 0x0004,
00106 0x0005,
00107 0x0006,
00108 0x0007,
00109 0x0008,
00110 0x0009,
00111 0x000A,
00112 0x000B,
00113 0x000C,
00114 0x000D,
00115 0x000E,
00116 0x000F,
00117 0x0010,
00118 0x0011,
00119 0x0012,
00120 0x0013,
00121 0x0014,
00122 0x0015,
00123 0x0016,
00124 0x0017,
00125 0x0018,
00126 0x0019,
00127 0x001A,
00128 0x001B,
00129 0x001C,
00130 0x001D,
00131 0x001E,
00132 0x001F,
00133 0x0020,
00134 0x0021,
00135 0x0022,
00136 0x0023,
00137 0x0024,
00138 0x0025,
00139 0x0026,
00140 0x0027,
00141 0x0028,
00142 0x0029,
00143 0x002A,
00144 0x002B,
00145 0x002C,
00146 0x002D,
00147 0x002E,
00148 0x002F,
00149 0x0030,
00150 0x0031,
00151 0x0032,
00152 0x0033,
00153 0x0034,
00154 0x0035,
00155 0x0036,
00156 0x0037,
00157 0x0038,
00158 0x0039,
00159 0x003A,
00160 0x003B,
00161 0x003C,
00162 0x003D,
00163 0x003E,
00164 0x003F,
00165 0x0040,
00166 0x0041,
00167 0x0042,
00168 0x0043,
00169 0x0044,
00170 0x0045,
00171 0x0046,
00172 0x0047,
00173 0x0048,
00174 0x0049,
00175 0x004A,
00176 0x004B,
00177 0x004C,
00178 0x004D,
00179 0x004E,
00180 0x004F,
00181 0x0050,
00182 0x0051,
00183 0x0052,
00184 0x0053,
00185 0x0054,
00186 0x0055,
00187 0x0056,
00188 0x0057,
00189 0x0058,
00190 0x0059,
00191 0x005A,
00192 0x005B,
00193 0x005C,
00194 0x005D,
00195 0x005E,
00196 0x005F,
00197 0x0060,
00198 0x0061,
00199 0x0062,
00200 0x0063,
00201 0x0064,
00202 0x0065,
00203 0x0066,
00204 0x0067,
00205 0x0068,
00206 0x0069,
00207 0x006A,
00208 0x006B,
00209 0x006C,
00210 0x006D,
00211 0x006E,
00212 0x006F,
00213 0x0070,
00214 0x0071,
00215 0x0072,
00216 0x0073,
00217 0x0074,
00218 0x0075,
00219 0x0076,
00220 0x0077,
00221 0x0078,
00222 0x0079,
00223 0x007A,
00224 0x007B,
00225 0x007C,
00226 0x007D,
00227 0x007E,
00228 0x007F,
00229 0x0402,
00230 0x0403,
00231 0x201A,
00232 0x0453,
00233 0x201E,
00234 0x2026,
00235 0x2020,
00236 0x2021,
00237 0x20AC,
00238 0x2030,
00239 0x0409,
00240 0x2039,
00241 0x040A,
00242 0x040C,
00243 0x040B,
00244 0x040F,
00245 0x0452,
00246 0x2018,
00247 0x2019,
00248 0x201C,
00249 0x201D,
00250 0x2022,
00251 0x2013,
00252 0x2014,
00253 0x0020 ,
00254 0x2122,
00255 0x0459,
00256 0x203A,
00257 0x045A,
00258 0x045C,
00259 0x045B,
00260 0x045F,
00261 0x00A0,
00262 0x040E,
00263 0x045E,
00264 0x0408,
00265 0x00A4,
00266 0x0490,
00267 0x00A6,
00268 0x00A7,
00269 0x0401,
00270 0x00A9,
00271 0x0404,
00272 0x00AB,
00273 0x00AC,
00274 0x00AD,
00275 0x00AE,
00276 0x0407,
00277 0x00B0,
00278 0x00B1,
00279 0x0406,
00280 0x0456,
00281 0x0491,
00282 0x00B5,
00283 0x00B6,
00284 0x00B7,
00285 0x0451,
00286 0x2116,
00287 0x0454,
00288 0x00BB,
00289 0x0458,
00290 0x0405,
00291 0x0455,
00292 0x0457,
00293 0x0410,
00294 0x0411,
00295 0x0412,
00296 0x0413,
00297 0x0414,
00298 0x0415,
00299 0x0416,
00300 0x0417,
00301 0x0418,
00302 0x0419,
00303 0x041A,
00304 0x041B,
00305 0x041C,
00306 0x041D,
00307 0x041E,
00308 0x041F,
00309 0x0420,
00310 0x0421,
00311 0x0422,
00312 0x0423,
00313 0x0424,
00314 0x0425,
00315 0x0426,
00316 0x0427,
00317 0x0428,
00318 0x0429,
00319 0x042A,
00320 0x042B,
00321 0x042C,
00322 0x042D,
00323 0x042E,
00324 0x042F,
00325 0x0430,
00326 0x0431,
00327 0x0432,
00328 0x0433,
00329 0x0434,
00330 0x0435,
00331 0x0436,
00332 0x0437,
00333 0x0438,
00334 0x0439,
00335 0x043A,
00336 0x043B,
00337 0x043C,
00338 0x043D,
00339 0x043E,
00340 0x043F,
00341 0x0440,
00342 0x0441,
00343 0x0442,
00344 0x0443,
00345 0x0444,
00346 0x0445,
00347 0x0446,
00348 0x0447,
00349 0x0448,
00350 0x0449,
00351 0x044A,
00352 0x044B,
00353 0x044C,
00354 0x044D,
00355 0x044E,
00356 0x044F,
00357 };
00358
00359 #pragma pack()
00360 END_TERIMBER_NAMESPACE