File indexing completed on 2025-01-19 09:47:48
0001
0002
0003
0004
0005
0006
0007
0008 #if !defined(BOOST_SPIRIT_ISO8859_1_APRIL_26_2006_1106PM)
0009 #define BOOST_SPIRIT_ISO8859_1_APRIL_26_2006_1106PM
0010
0011 #if defined(_MSC_VER)
0012 #pragma once
0013 #endif
0014
0015 #include <climits>
0016 #include <boost/assert.hpp>
0017 #include <boost/cstdint.hpp>
0018
0019
0020
0021
0022 #define BOOST_CC_DIGIT 0x0001
0023 #define BOOST_CC_XDIGIT 0x0002
0024 #define BOOST_CC_ALPHA 0x0004
0025 #define BOOST_CC_CTRL 0x0008
0026 #define BOOST_CC_LOWER 0x0010
0027 #define BOOST_CC_UPPER 0x0020
0028 #define BOOST_CC_SPACE 0x0040
0029 #define BOOST_CC_PUNCT 0x0080
0030
0031 namespace boost { namespace spirit { namespace char_encoding
0032 {
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043 const unsigned char iso8859_1_char_types[] =
0044 {
0045 BOOST_CC_CTRL,
0046 BOOST_CC_CTRL,
0047 BOOST_CC_CTRL,
0048 BOOST_CC_CTRL,
0049 BOOST_CC_CTRL,
0050 BOOST_CC_CTRL,
0051 BOOST_CC_CTRL,
0052 BOOST_CC_CTRL,
0053 BOOST_CC_CTRL,
0054 BOOST_CC_CTRL|BOOST_CC_SPACE,
0055 BOOST_CC_CTRL|BOOST_CC_SPACE,
0056 BOOST_CC_CTRL|BOOST_CC_SPACE,
0057 BOOST_CC_CTRL|BOOST_CC_SPACE,
0058 BOOST_CC_CTRL|BOOST_CC_SPACE,
0059 BOOST_CC_CTRL,
0060 BOOST_CC_CTRL,
0061 BOOST_CC_CTRL,
0062 BOOST_CC_CTRL,
0063 BOOST_CC_CTRL,
0064 BOOST_CC_CTRL,
0065 BOOST_CC_CTRL,
0066 BOOST_CC_CTRL,
0067 BOOST_CC_CTRL,
0068 BOOST_CC_CTRL,
0069 BOOST_CC_CTRL,
0070 BOOST_CC_CTRL,
0071 BOOST_CC_CTRL,
0072 BOOST_CC_CTRL,
0073 BOOST_CC_CTRL,
0074 BOOST_CC_CTRL,
0075 BOOST_CC_CTRL,
0076 BOOST_CC_CTRL,
0077 BOOST_CC_SPACE,
0078 BOOST_CC_PUNCT,
0079 BOOST_CC_PUNCT,
0080 BOOST_CC_PUNCT,
0081 BOOST_CC_PUNCT,
0082 BOOST_CC_PUNCT,
0083 BOOST_CC_PUNCT,
0084 BOOST_CC_PUNCT,
0085 BOOST_CC_PUNCT,
0086 BOOST_CC_PUNCT,
0087 BOOST_CC_PUNCT,
0088 BOOST_CC_PUNCT,
0089 BOOST_CC_PUNCT,
0090 BOOST_CC_PUNCT,
0091 BOOST_CC_PUNCT,
0092 BOOST_CC_PUNCT,
0093 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0094 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0095 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0096 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0097 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0098 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0099 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0100 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0101 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0102 BOOST_CC_DIGIT|BOOST_CC_XDIGIT,
0103 BOOST_CC_PUNCT,
0104 BOOST_CC_PUNCT,
0105 BOOST_CC_PUNCT,
0106 BOOST_CC_PUNCT,
0107 BOOST_CC_PUNCT,
0108 BOOST_CC_PUNCT,
0109 BOOST_CC_PUNCT,
0110 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_UPPER,
0111 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_UPPER,
0112 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_UPPER,
0113 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_UPPER,
0114 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_UPPER,
0115 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_UPPER,
0116 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0117 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0118 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0119 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0120 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0121 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0122 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0123 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0124 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0125 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0126 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0127 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0128 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0129 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0130 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0131 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0132 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0133 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0134 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0135 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0136 BOOST_CC_PUNCT,
0137 BOOST_CC_PUNCT,
0138 BOOST_CC_PUNCT,
0139 BOOST_CC_PUNCT,
0140 BOOST_CC_PUNCT,
0141 BOOST_CC_PUNCT,
0142 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_LOWER,
0143 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_LOWER,
0144 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_LOWER,
0145 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_LOWER,
0146 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_LOWER,
0147 BOOST_CC_ALPHA|BOOST_CC_XDIGIT|BOOST_CC_LOWER,
0148 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0149 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0150 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0151 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0152 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0153 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0154 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0155 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0156 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0157 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0158 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0159 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0160 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0161 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0162 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0163 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0164 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0165 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0166 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0167 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0168 BOOST_CC_PUNCT,
0169 BOOST_CC_PUNCT,
0170 BOOST_CC_PUNCT,
0171 BOOST_CC_PUNCT,
0172 BOOST_CC_CTRL,
0173 BOOST_CC_CTRL,
0174 BOOST_CC_CTRL,
0175 BOOST_CC_CTRL,
0176 BOOST_CC_CTRL,
0177 BOOST_CC_CTRL,
0178 BOOST_CC_CTRL,
0179 BOOST_CC_CTRL,
0180 BOOST_CC_CTRL,
0181 BOOST_CC_CTRL,
0182 BOOST_CC_CTRL,
0183 BOOST_CC_CTRL,
0184 BOOST_CC_CTRL,
0185 BOOST_CC_CTRL,
0186 BOOST_CC_CTRL,
0187 BOOST_CC_CTRL,
0188 BOOST_CC_CTRL,
0189 BOOST_CC_CTRL,
0190 BOOST_CC_CTRL,
0191 BOOST_CC_CTRL,
0192 BOOST_CC_CTRL,
0193 BOOST_CC_CTRL,
0194 BOOST_CC_CTRL,
0195 BOOST_CC_CTRL,
0196 BOOST_CC_CTRL,
0197 BOOST_CC_CTRL,
0198 BOOST_CC_CTRL,
0199 BOOST_CC_CTRL,
0200 BOOST_CC_CTRL,
0201 BOOST_CC_CTRL,
0202 BOOST_CC_CTRL,
0203 BOOST_CC_CTRL,
0204 BOOST_CC_CTRL,
0205 BOOST_CC_SPACE,
0206 BOOST_CC_PUNCT,
0207 BOOST_CC_PUNCT,
0208 BOOST_CC_PUNCT,
0209 BOOST_CC_PUNCT,
0210 BOOST_CC_PUNCT,
0211 BOOST_CC_PUNCT,
0212 BOOST_CC_PUNCT,
0213 BOOST_CC_PUNCT,
0214 BOOST_CC_PUNCT,
0215 BOOST_CC_PUNCT,
0216 BOOST_CC_PUNCT,
0217 BOOST_CC_PUNCT,
0218 BOOST_CC_PUNCT,
0219 BOOST_CC_PUNCT,
0220 BOOST_CC_PUNCT,
0221 BOOST_CC_PUNCT,
0222 BOOST_CC_PUNCT,
0223 BOOST_CC_DIGIT|BOOST_CC_PUNCT,
0224 BOOST_CC_DIGIT|BOOST_CC_PUNCT,
0225 BOOST_CC_PUNCT,
0226 BOOST_CC_PUNCT,
0227 BOOST_CC_PUNCT,
0228 BOOST_CC_PUNCT,
0229 BOOST_CC_PUNCT,
0230 BOOST_CC_DIGIT|BOOST_CC_PUNCT,
0231 BOOST_CC_PUNCT,
0232 BOOST_CC_PUNCT,
0233 BOOST_CC_PUNCT,
0234 BOOST_CC_PUNCT,
0235 BOOST_CC_PUNCT,
0236 BOOST_CC_PUNCT,
0237 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0238 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0239 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0240 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0241 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0242 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0243 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0244 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0245 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0246 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0247 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0248 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0249 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0250 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0251 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0252 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0253 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0254 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0255 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0256 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0257 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0258 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0259 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0260 BOOST_CC_PUNCT,
0261 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0262 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0263 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0264 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0265 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0266 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0267 BOOST_CC_ALPHA|BOOST_CC_UPPER,
0268 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0269 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0270 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0271 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0272 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0273 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0274 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0275 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0276 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0277 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0278 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0279 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0280 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0281 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0282 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0283 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0284 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0285 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0286 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0287 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0288 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0289 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0290 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0291 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0292 BOOST_CC_PUNCT,
0293 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0294 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0295 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0296 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0297 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0298 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0299 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0300 BOOST_CC_ALPHA|BOOST_CC_LOWER,
0301 };
0302
0303
0304
0305
0306 const unsigned char iso8859_1_char_conversion[] =
0307 {
0308 '\0',
0309 '\0',
0310 '\0',
0311 '\0',
0312 '\0',
0313 '\0',
0314 '\0',
0315 '\0',
0316 '\0',
0317 '\0',
0318 '\0',
0319 '\0',
0320 '\0',
0321 '\0',
0322 '\0',
0323 '\0',
0324 '\0',
0325 '\0',
0326 '\0',
0327 '\0',
0328 '\0',
0329 '\0',
0330 '\0',
0331 '\0',
0332 '\0',
0333 '\0',
0334 '\0',
0335 '\0',
0336 '\0',
0337 '\0',
0338 '\0',
0339 '\0',
0340 '\0',
0341 '\0',
0342 '\0',
0343 '\0',
0344 '\0',
0345 '\0',
0346 '\0',
0347 '\0',
0348 '\0',
0349 '\0',
0350 '\0',
0351 '\0',
0352 '\0',
0353 '\0',
0354 '\0',
0355 '\0',
0356 '\0',
0357 '\0',
0358 '\0',
0359 '\0',
0360 '\0',
0361 '\0',
0362 '\0',
0363 '\0',
0364 '\0',
0365 '\0',
0366 '\0',
0367 '\0',
0368 '\0',
0369 '\0',
0370 '\0',
0371 '\0',
0372 '\0',
0373 'a',
0374 'b',
0375 'c',
0376 'd',
0377 'e',
0378 'f',
0379 'g',
0380 'h',
0381 'i',
0382 'j',
0383 'k',
0384 'l',
0385 'm',
0386 'n',
0387 'o',
0388 'p',
0389 'q',
0390 'r',
0391 's',
0392 't',
0393 'u',
0394 'v',
0395 'w',
0396 'x',
0397 'y',
0398 'z',
0399 '\0',
0400 '\0',
0401 '\0',
0402 '\0',
0403 '\0',
0404 '\0',
0405 'A',
0406 'B',
0407 'C',
0408 'D',
0409 'E',
0410 'F',
0411 'G',
0412 'H',
0413 'I',
0414 'J',
0415 'K',
0416 'L',
0417 'M',
0418 'N',
0419 'O',
0420 'P',
0421 'Q',
0422 'R',
0423 'S',
0424 'T',
0425 'U',
0426 'V',
0427 'W',
0428 'X',
0429 'Y',
0430 'Z',
0431 '\0',
0432 '\0',
0433 '\0',
0434 '\0',
0435 '\0',
0436 '\0',
0437 '\0',
0438 '\0',
0439 '\0',
0440 '\0',
0441 '\0',
0442 '\0',
0443 '\0',
0444 '\0',
0445 '\0',
0446 '\0',
0447 '\0',
0448 '\0',
0449 '\0',
0450 '\0',
0451 '\0',
0452 '\0',
0453 '\0',
0454 '\0',
0455 '\0',
0456 '\0',
0457 '\0',
0458 '\0',
0459 '\0',
0460 '\0',
0461 '\0',
0462 '\0',
0463 '\0',
0464 '\0',
0465 '\0',
0466 '\0',
0467 '\0',
0468 '\0',
0469 '\0',
0470 '\0',
0471 '\0',
0472 '\0',
0473 '\0',
0474 '\0',
0475 '\0',
0476 '\0',
0477 '\0',
0478 '\0',
0479 '\0',
0480 '\0',
0481 '\0',
0482 '\0',
0483 '\0',
0484 '\0',
0485 '\0',
0486 '\0',
0487 '\0',
0488 '\0',
0489 '\0',
0490 '\0',
0491 '\0',
0492 '\0',
0493 '\0',
0494 '\0',
0495 '\0',
0496 '\0',
0497 '\0',
0498 '\0',
0499 '\0',
0500 0xe0,
0501 0xe1,
0502 0xe2,
0503 0xe3,
0504 0xe4,
0505 0xe5,
0506 0xe6,
0507 0xe7,
0508 0xe8,
0509 0xe9,
0510 0xea,
0511 0xeb,
0512 0xec,
0513 0xed,
0514 0xee,
0515 0xef,
0516 0xf0,
0517 0xf1,
0518 0xf2,
0519 0xf3,
0520 0xf4,
0521 0xf5,
0522 0xf6,
0523 '\0',
0524 0xf8,
0525 0xf9,
0526 0xfa,
0527 0xfb,
0528 0xfc,
0529 0xfd,
0530 0xfe,
0531 '\0',
0532 0xc0,
0533 0xc1,
0534 0xc2,
0535 0xc3,
0536 0xc4,
0537 0xc5,
0538 0xc6,
0539 0xc7,
0540 0xc8,
0541 0xc9,
0542 0xca,
0543 0xcb,
0544 0xcc,
0545 0xcd,
0546 0xce,
0547 0xcf,
0548 0xd0,
0549 0xd1,
0550 0xd2,
0551 0xd3,
0552 0xd4,
0553 0xd5,
0554 0xd6,
0555 '\0',
0556 0xd8,
0557 0xd9,
0558 0xda,
0559 0xdb,
0560 0xdc,
0561 0xdd,
0562 0xde,
0563 '\0',
0564 };
0565
0566
0567
0568
0569 struct iso8859_1
0570 {
0571 typedef unsigned char char_type;
0572 typedef unsigned char classify_type;
0573
0574 static bool
0575 isascii_(int ch)
0576 {
0577 return 0 == (ch & ~0x7f);
0578 }
0579
0580 static bool
0581 ischar(int ch)
0582 {
0583
0584
0585 return (0 == (ch & ~0xff) || ~0 == (ch | 0xff)) != 0;
0586 }
0587
0588
0589
0590
0591
0592
0593
0594 static bool
0595 strict_ischar(int ch)
0596 {
0597 return ch >= 0 && ch <= 255;
0598 }
0599
0600 static bool
0601 isalnum(int ch)
0602 {
0603 BOOST_ASSERT(strict_ischar(ch));
0604 return (iso8859_1_char_types[ch] & BOOST_CC_ALPHA)
0605 || (iso8859_1_char_types[ch] & BOOST_CC_DIGIT);
0606 }
0607
0608 static bool
0609 isalpha(int ch)
0610 {
0611 BOOST_ASSERT(strict_ischar(ch));
0612 return (iso8859_1_char_types[ch] & BOOST_CC_ALPHA) != 0;
0613 }
0614
0615 static bool
0616 isdigit(int ch)
0617 {
0618 BOOST_ASSERT(strict_ischar(ch));
0619 return (iso8859_1_char_types[ch] & BOOST_CC_DIGIT) != 0;
0620 }
0621
0622 static bool
0623 isxdigit(int ch)
0624 {
0625 BOOST_ASSERT(strict_ischar(ch));
0626 return (iso8859_1_char_types[ch] & BOOST_CC_XDIGIT) != 0;
0627 }
0628
0629 static bool
0630 iscntrl(int ch)
0631 {
0632 BOOST_ASSERT(strict_ischar(ch));
0633 return (iso8859_1_char_types[ch] & BOOST_CC_CTRL) != 0;
0634 }
0635
0636 static bool
0637 isgraph(int ch)
0638 {
0639 return ('\x21' <= ch && ch <= '\x7e') || ('\xa1' <= ch && ch <= '\xff');
0640 }
0641
0642 static bool
0643 islower(int ch)
0644 {
0645 BOOST_ASSERT(strict_ischar(ch));
0646 return (iso8859_1_char_types[ch] & BOOST_CC_LOWER) != 0;
0647 }
0648
0649 static bool
0650 isprint(int ch)
0651 {
0652 return ('\x20' <= ch && ch <= '\x7e') || ('\xa0' <= ch && ch <= '\xff');
0653 }
0654
0655 static bool
0656 ispunct(int ch)
0657 {
0658 BOOST_ASSERT(strict_ischar(ch));
0659 return (iso8859_1_char_types[ch] & BOOST_CC_PUNCT) != 0;
0660 }
0661
0662 static bool
0663 isspace(int ch)
0664 {
0665 BOOST_ASSERT(strict_ischar(ch));
0666 return (iso8859_1_char_types[ch] & BOOST_CC_SPACE) != 0;
0667 }
0668
0669 static bool
0670 isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
0671 {
0672 BOOST_ASSERT(strict_ischar(ch));
0673 return ('\x09' == ch || '\x20' == ch || '\xa0' == ch);
0674 }
0675
0676 static bool
0677 isupper(int ch)
0678 {
0679 BOOST_ASSERT(strict_ischar(ch));
0680 return (iso8859_1_char_types[ch] & BOOST_CC_UPPER) != 0;
0681 }
0682
0683
0684
0685
0686
0687 static int
0688 tolower(int ch)
0689 {
0690 BOOST_ASSERT(strict_ischar(ch));
0691 return isupper(ch) && '\0' != iso8859_1_char_conversion[ch] ?
0692 iso8859_1_char_conversion[ch] : ch;
0693 }
0694
0695 static int
0696 toupper(int ch)
0697 {
0698 BOOST_ASSERT(strict_ischar(ch));
0699 return islower(ch) && '\0' != iso8859_1_char_conversion[ch] ?
0700 iso8859_1_char_conversion[ch] : ch;
0701 }
0702
0703 static ::boost::uint32_t
0704 toucs4(int ch)
0705 {
0706
0707
0708 BOOST_ASSERT(strict_ischar(ch));
0709 return ch;
0710 }
0711 };
0712
0713 }}}
0714
0715
0716
0717
0718 #undef BOOST_CC_DIGIT
0719 #undef BOOST_CC_XDIGIT
0720 #undef BOOST_CC_ALPHA
0721 #undef BOOST_CC_CTRL
0722 #undef BOOST_CC_LOWER
0723 #undef BOOST_CC_UPPER
0724 #undef BOOST_CC_PUNCT
0725 #undef BOOST_CC_SPACE
0726
0727 #endif
0728