Annotation of embedaddon/ntp/sntp/libopts/ag-char-map.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  *   Character mapping generated 04/29/11 15:43:58
        !             3:  *
        !             4:  *  This file contains the character classifications
        !             5:  *  used by AutoGen and AutoOpts for identifying tokens.
        !             6:  *  This file is part of AutoGen.
        !             7:  *  AutoGen Copyright (c) 1992-2011 by Bruce Korb - all rights reserved
        !             8:  *  AutoGen is free software: you can redistribute it and/or modify it under the
        !             9:  *  terms of the GNU General Public License as published by the Free Software
        !            10:  *  Foundation, either version 3 of the License, or (at your option) any later
        !            11:  *  version.
        !            12:  *  AutoGen is distributed in the hope that it will be useful, but WITHOUT ANY
        !            13:  *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
        !            14:  *  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
        !            15:  *  You should have received a copy of the GNU General Public License along
        !            16:  *  with this program.  If not, see <http://www.gnu.org/licenses/>.
        !            17:  */
        !            18: #ifndef AG_CHAR_MAP_H_GUARD
        !            19: #define AG_CHAR_MAP_H_GUARD 1
        !            20: 
        !            21: #ifdef HAVE_CONFIG_H
        !            22: # if defined(HAVE_INTTYPES_H)
        !            23: #  include <inttypes.h>
        !            24: # elif defined(HAVE_STDINT_H)
        !            25: #  include <stdint.h>
        !            26: 
        !            27: # else
        !            28: #   ifndef HAVE_INT8_T
        !            29:         typedef signed char     int8_t;
        !            30: #   endif
        !            31: #   ifndef HAVE_UINT8_T
        !            32:         typedef unsigned char   uint8_t;
        !            33: #   endif
        !            34: #   ifndef HAVE_INT16_T
        !            35:         typedef signed short    int16_t;
        !            36: #   endif
        !            37: #   ifndef HAVE_UINT16_T
        !            38:         typedef unsigned short  uint16_t;
        !            39: #   endif
        !            40: #   ifndef HAVE_UINT_T
        !            41:         typedef unsigned int    uint_t;
        !            42: #   endif
        !            43: 
        !            44: #   ifndef HAVE_INT32_T
        !            45: #    if SIZEOF_INT == 4
        !            46:         typedef signed int      int32_t;
        !            47: #    elif SIZEOF_LONG == 4
        !            48:         typedef signed long     int32_t;
        !            49: #    endif
        !            50: #   endif
        !            51: 
        !            52: #   ifndef HAVE_UINT32_T
        !            53: #    if SIZEOF_INT == 4
        !            54:         typedef unsigned int    uint32_t;
        !            55: #    elif SIZEOF_LONG == 4
        !            56:         typedef unsigned long   uint32_t;
        !            57: #    endif
        !            58: #   endif
        !            59: # endif /* HAVE_*INT*_H header */
        !            60: 
        !            61: #else /* not HAVE_CONFIG_H -- */
        !            62: # ifdef __sun
        !            63: #  include <inttypes.h>
        !            64: # else
        !            65: #  include <stdint.h>
        !            66: # endif
        !            67: #endif /* HAVE_CONFIG_H */
        !            68: 
        !            69: #if 0 /* mapping specification source (from autogen.map) */
        !            70: // 
        !            71: // %guard          autoopts_internal
        !            72: // %file           ag-char-map.h
        !            73: // %static-table   option-char-category
        !            74: // 
        !            75: // %comment
        !            76: //   This file contains the character classifications
        !            77: //   used by AutoGen and AutoOpts for identifying tokens.
        !            78: // 
        !            79: //   This file is part of AutoGen.
        !            80: //   AutoGen Copyright (c) 1992-2011 by Bruce Korb - all rights reserved
        !            81: // 
        !            82: //   AutoGen is free software: you can redistribute it and/or modify it under the
        !            83: //   terms of the GNU General Public License as published by the Free Software
        !            84: //   Foundation, either version 3 of the License, or (at your option) any later
        !            85: //   version.
        !            86: // 
        !            87: //   AutoGen is distributed in the hope that it will be useful, but WITHOUT ANY
        !            88: //   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
        !            89: //   A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
        !            90: // 
        !            91: //   You should have received a copy of the GNU General Public License along
        !            92: //   with this program.  If not, see <http://www.gnu.org/licenses/>.
        !            93: // %
        !            94: // 
        !            95: // lower-case      "a-z"
        !            96: // upper-case      "A-Z"
        !            97: // alphabetic      +lower-case   +upper-case
        !            98: // oct-digit       "0-7"
        !            99: // dec-digit       "89"          +oct-digit
        !           100: // hex-digit       "a-fA-F"      +dec-digit
        !           101: // alphanumeric    +alphabetic   +dec-digit
        !           102: // var-first       "_"           +alphabetic
        !           103: // variable-name   +var-first    +dec-digit
        !           104: // option-name     "^-"          +variable-name
        !           105: // value-name      ":"           +option-name
        !           106: // horiz-white     "\t "
        !           107: // compound-name   "[.]"         +value-name   +horiz-white
        !           108: // whitespace      "\v\f\r\n\b"  +horiz-white
        !           109: // unquotable      "!-~"         -"\"#(),;<=>[\\]`{}?*'"
        !           110: // end-xml-token   "/>"          +whitespace
        !           111: // graphic         "!-~"
        !           112: // plus-n-space    "+"           +whitespace
        !           113: // punctuation     "!-~"         -alphanumeric -"_"
        !           114: // suffix          "-._"         +alphanumeric
        !           115: // suffix-fmt      "%/"          +suffix     
        !           116: // false-type      "nNfF0\x00"
        !           117: // file-name       "/"           +suffix
        !           118: // end-token       "\x00"        +whitespace
        !           119: // end-list-entry  ","           +end-token
        !           120: //
        !           121: #endif /* 0 -- mapping spec. source */
        !           122: 
        !           123: typedef uint32_t option_char_category_mask_t;
        !           124: static option_char_category_mask_t const option_char_category[128];
        !           125: 
        !           126: static inline int is_option_char_category_char(char ch, option_char_category_mask_t mask) {
        !           127:     unsigned int ix = (unsigned char)ch;
        !           128:     return ((ix < 128) && ((option_char_category[ix] & mask) != 0)); }
        !           129: 
        !           130: #define IS_LOWER_CASE_CHAR(_c)      is_option_char_category_char((_c), 0x000001)
        !           131: #define IS_UPPER_CASE_CHAR(_c)      is_option_char_category_char((_c), 0x000002)
        !           132: #define IS_ALPHABETIC_CHAR(_c)      is_option_char_category_char((_c), 0x000003)
        !           133: #define IS_OCT_DIGIT_CHAR(_c)       is_option_char_category_char((_c), 0x000004)
        !           134: #define IS_DEC_DIGIT_CHAR(_c)       is_option_char_category_char((_c), 0x00000C)
        !           135: #define IS_HEX_DIGIT_CHAR(_c)       is_option_char_category_char((_c), 0x00001C)
        !           136: #define IS_ALPHANUMERIC_CHAR(_c)    is_option_char_category_char((_c), 0x00000F)
        !           137: #define IS_VAR_FIRST_CHAR(_c)       is_option_char_category_char((_c), 0x000023)
        !           138: #define IS_VARIABLE_NAME_CHAR(_c)   is_option_char_category_char((_c), 0x00002F)
        !           139: #define IS_OPTION_NAME_CHAR(_c)     is_option_char_category_char((_c), 0x00006F)
        !           140: #define IS_VALUE_NAME_CHAR(_c)      is_option_char_category_char((_c), 0x0000EF)
        !           141: #define IS_HORIZ_WHITE_CHAR(_c)     is_option_char_category_char((_c), 0x000100)
        !           142: #define IS_COMPOUND_NAME_CHAR(_c)   is_option_char_category_char((_c), 0x0003EF)
        !           143: #define IS_WHITESPACE_CHAR(_c)      is_option_char_category_char((_c), 0x000500)
        !           144: #define IS_UNQUOTABLE_CHAR(_c)      is_option_char_category_char((_c), 0x000800)
        !           145: #define IS_END_XML_TOKEN_CHAR(_c)   is_option_char_category_char((_c), 0x001500)
        !           146: #define IS_GRAPHIC_CHAR(_c)         is_option_char_category_char((_c), 0x002000)
        !           147: #define IS_PLUS_N_SPACE_CHAR(_c)    is_option_char_category_char((_c), 0x004500)
        !           148: #define IS_PUNCTUATION_CHAR(_c)     is_option_char_category_char((_c), 0x008000)
        !           149: #define IS_SUFFIX_CHAR(_c)          is_option_char_category_char((_c), 0x01000F)
        !           150: #define IS_SUFFIX_FMT_CHAR(_c)      is_option_char_category_char((_c), 0x03000F)
        !           151: #define IS_FALSE_TYPE_CHAR(_c)      is_option_char_category_char((_c), 0x040000)
        !           152: #define IS_FILE_NAME_CHAR(_c)       is_option_char_category_char((_c), 0x09000F)
        !           153: #define IS_END_TOKEN_CHAR(_c)       is_option_char_category_char((_c), 0x100500)
        !           154: #define IS_END_LIST_ENTRY_CHAR(_c)  is_option_char_category_char((_c), 0x300500)
        !           155: 
        !           156: #if 1 /* def AUTOOPTS_INTERNAL */
        !           157: static option_char_category_mask_t const option_char_category[128] = {
        !           158:   /*x00*/ 0x140000, /*x01*/ 0x000000, /*x02*/ 0x000000, /*x03*/ 0x000000,
        !           159:   /*x04*/ 0x000000, /*x05*/ 0x000000, /*x06*/ 0x000000, /*\a */ 0x000000,
        !           160:   /*\b */ 0x000400, /*\t */ 0x000100, /*\n */ 0x000400, /*\v */ 0x000400,
        !           161:   /*\f */ 0x000400, /*\r */ 0x000400, /*x0E*/ 0x000000, /*x0F*/ 0x000000,
        !           162:   /*x10*/ 0x000000, /*x11*/ 0x000000, /*x12*/ 0x000000, /*x13*/ 0x000000,
        !           163:   /*x14*/ 0x000000, /*x15*/ 0x000000, /*x16*/ 0x000000, /*x17*/ 0x000000,
        !           164:   /*x18*/ 0x000000, /*x19*/ 0x000000, /*x1A*/ 0x000000, /*x1B*/ 0x000000,
        !           165:   /*x1C*/ 0x000000, /*x1D*/ 0x000000, /*x1E*/ 0x000000, /*x1F*/ 0x000000,
        !           166:   /*   */ 0x000100, /* ! */ 0x00A800, /* " */ 0x00A000, /* # */ 0x00A000,
        !           167:   /* $ */ 0x00A800, /* % */ 0x02A800, /* & */ 0x00A800, /* ' */ 0x00A000,
        !           168:   /* ( */ 0x00A000, /* ) */ 0x00A000, /* * */ 0x00A000, /* + */ 0x00E800,
        !           169:   /* , */ 0x20A000, /* - */ 0x01A840, /* . */ 0x01AA00, /* / */ 0x0AB800,
        !           170:   /* 0 */ 0x042804, /* 1 */ 0x002804, /* 2 */ 0x002804, /* 3 */ 0x002804,
        !           171:   /* 4 */ 0x002804, /* 5 */ 0x002804, /* 6 */ 0x002804, /* 7 */ 0x002804,
        !           172:   /* 8 */ 0x002808, /* 9 */ 0x002808, /* : */ 0x00A880, /* ; */ 0x00A000,
        !           173:   /* < */ 0x00A000, /* = */ 0x00A000, /* > */ 0x00B000, /* ? */ 0x00A000,
        !           174:   /* @ */ 0x00A800, /* A */ 0x002812, /* B */ 0x002812, /* C */ 0x002812,
        !           175:   /* D */ 0x002812, /* E */ 0x002812, /* F */ 0x042812, /* G */ 0x002802,
        !           176:   /* H */ 0x002802, /* I */ 0x002802, /* J */ 0x002802, /* K */ 0x002802,
        !           177:   /* L */ 0x002802, /* M */ 0x002802, /* N */ 0x042802, /* O */ 0x002802,
        !           178:   /* P */ 0x002802, /* Q */ 0x002802, /* R */ 0x002802, /* S */ 0x002802,
        !           179:   /* T */ 0x002802, /* U */ 0x002802, /* V */ 0x002802, /* W */ 0x002802,
        !           180:   /* X */ 0x002802, /* Y */ 0x002802, /* Z */ 0x002802, /* [ */ 0x00A200,
        !           181:   /* \ */ 0x00A000, /* ] */ 0x00A200, /* ^ */ 0x00A840, /* _ */ 0x012820,
        !           182:   /* ` */ 0x00A000, /* a */ 0x002811, /* b */ 0x002811, /* c */ 0x002811,
        !           183:   /* d */ 0x002811, /* e */ 0x002811, /* f */ 0x042811, /* g */ 0x002801,
        !           184:   /* h */ 0x002801, /* i */ 0x002801, /* j */ 0x002801, /* k */ 0x002801,
        !           185:   /* l */ 0x002801, /* m */ 0x002801, /* n */ 0x042801, /* o */ 0x002801,
        !           186:   /* p */ 0x002801, /* q */ 0x002801, /* r */ 0x002801, /* s */ 0x002801,
        !           187:   /* t */ 0x002801, /* u */ 0x002801, /* v */ 0x002801, /* w */ 0x002801,
        !           188:   /* x */ 0x002801, /* y */ 0x002801, /* z */ 0x002801, /* { */ 0x00A000,
        !           189:   /* | */ 0x00A800, /* } */ 0x00A000, /* ~ */ 0x00A800, /*x7F*/ 0x000000
        !           190: };
        !           191: #endif /* AUTOOPTS_INTERNAL */
        !           192: #endif /* AG_CHAR_MAP_H_GUARD */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>