mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 16:03:03 +01:00
303 lines
7.4 KiB
C
303 lines
7.4 KiB
C
/*
|
|
* PROGRAM: Dynamic SQL runtime support
|
|
* MODULE: chars.h
|
|
* DESCRIPTION: character classification
|
|
*
|
|
* The contents of this file are subject to the Interbase Public
|
|
* License Version 1.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy
|
|
* of the License at http://www.Inprise.com/IPL.html
|
|
*
|
|
* Software distributed under the License is distributed on an
|
|
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
|
|
* or implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code was created by Inprise Corporation
|
|
* and its predecessors. Portions created by Inprise Corporation are
|
|
* Copyright (C) Inprise Corporation.
|
|
*
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
const SCHAR CHR_LETTER = 1;
|
|
const SCHAR CHR_DIGIT = 2;
|
|
const SCHAR CHR_IDENT = 4;
|
|
const SCHAR CHR_QUOTE = 8;
|
|
const SCHAR CHR_WHITE = 16;
|
|
const SCHAR CHR_HEX = 32;
|
|
const SCHAR CHR_INTRODUCER = 64;
|
|
|
|
// Use the functions at the end of this file; do not reference the array directly.
|
|
|
|
static const SCHAR classes_array[] = {
|
|
/* 000 */ 0,
|
|
/* 001 */ 0,
|
|
/* 002 */ 0,
|
|
/* 003 */ 0,
|
|
/* 004 */ 0,
|
|
/* 005 */ 0,
|
|
/* 006 */ 0,
|
|
/* 007 */ 0,
|
|
/* 008 */ 0,
|
|
/* 009 */ 0 | CHR_WHITE,
|
|
/* 010 */ 0 | CHR_WHITE,
|
|
/* 011 */ 0,
|
|
/* 012 */ 0 | CHR_WHITE,
|
|
/* 013 */ 0 | CHR_WHITE,
|
|
/* 014 */ 0,
|
|
/* 015 */ 0,
|
|
/* 016 */ 0,
|
|
/* 017 */ 0,
|
|
/* 018 */ 0,
|
|
/* 019 */ 0,
|
|
/* 020 */ 0,
|
|
/* 021 */ 0,
|
|
/* 022 */ 0,
|
|
/* 023 */ 0,
|
|
/* 024 */ 0,
|
|
/* 025 */ 0,
|
|
/* 026 */ 0,
|
|
/* 027 */ 0,
|
|
/* 028 */ 0,
|
|
/* 029 */ 0,
|
|
/* 030 */ 0,
|
|
/* 031 */ 0,
|
|
/* 032 */ 0 | CHR_WHITE,
|
|
/* 033 ! */ 0,
|
|
/* 034 " */ 0 | CHR_QUOTE,
|
|
/* 035 # */ 0,
|
|
/* 036 $ */ 0 | CHR_IDENT,
|
|
/* 037 % */ 0,
|
|
/* 038 & */ 0,
|
|
/* 039 ' */ 0 | CHR_QUOTE,
|
|
/* 040 ( */ 0,
|
|
/* 041 ) */ 0,
|
|
/* 042 * */ 0,
|
|
/* 043 + */ 0,
|
|
/* 044 , */ 0,
|
|
/* 045 - */ 0,
|
|
/* 046 . */ 0,
|
|
/* 047 / */ 0,
|
|
/* 048 0 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 049 1 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 050 2 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 051 3 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 052 4 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 053 5 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 054 6 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 055 7 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 056 8 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 057 9 */ 0 | CHR_DIGIT | CHR_IDENT | CHR_HEX,
|
|
/* 058 : */ 0,
|
|
/* 059 ; */ 0,
|
|
/* 060 < */ 0,
|
|
/* 061 = */ 0,
|
|
/* 062 > */ 0,
|
|
/* 063 ? */ 0,
|
|
/* 064 @ */ 0,
|
|
/* 065 A */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 066 B */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 067 C */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 068 D */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 069 E */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 070 F */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 071 G */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 072 H */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 073 I */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 074 J */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 075 K */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 076 L */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 077 M */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 078 N */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 079 O */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 080 P */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 081 Q */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 082 R */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 083 S */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 084 T */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 085 U */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 086 V */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 087 W */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 088 X */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 089 Y */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 090 Z */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 091 [ */ 0,
|
|
/* 092 \ */ 0,
|
|
/* 093 ] */ 0,
|
|
/* 094 ^ */ 0,
|
|
/* 095 _ */ 0 | CHR_IDENT | CHR_INTRODUCER,
|
|
/* 096 ` */ 0,
|
|
/* 097 a */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 098 b */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 099 c */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 100 d */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 101 e */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 102 f */ 0 | CHR_LETTER | CHR_IDENT | CHR_HEX,
|
|
/* 103 g */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 104 h */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 105 i */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 106 j */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 107 k */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 108 l */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 109 m */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 110 n */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 111 o */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 112 p */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 113 q */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 114 r */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 115 s */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 116 t */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 117 u */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 118 v */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 119 w */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 120 x */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 121 y */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 122 z */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 123 { */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 124 | */ 0,
|
|
/* 125 } */ 0 | CHR_LETTER | CHR_IDENT,
|
|
/* 126 ~ */ 0,
|
|
/* 127 */ 0,
|
|
/* 128 */ 0,
|
|
/* 129 */ 0,
|
|
/* 130 */ 0,
|
|
/* 131 */ 0,
|
|
/* 132 */ 0,
|
|
/* 133 */ 0,
|
|
/* 134 */ 0,
|
|
/* 135 */ 0,
|
|
/* 136 */ 0,
|
|
/* 137 */ 0,
|
|
/* 138 */ 0,
|
|
/* 139 */ 0,
|
|
/* 140 */ 0,
|
|
/* 141 */ 0,
|
|
/* 142 */ 0,
|
|
/* 143 */ 0,
|
|
/* 144 */ 0,
|
|
/* 145 */ 0,
|
|
/* 146 */ 0,
|
|
/* 147 */ 0,
|
|
/* 148 */ 0,
|
|
/* 149 */ 0,
|
|
/* 150 */ 0,
|
|
/* 151 */ 0,
|
|
/* 152 */ 0,
|
|
/* 153 */ 0,
|
|
/* 154 */ 0,
|
|
/* 155 */ 0,
|
|
/* 156 */ 0,
|
|
/* 157 */ 0,
|
|
/* 158 */ 0,
|
|
/* 159 */ 0,
|
|
/* 160 */ 0,
|
|
/* 161 */ 0,
|
|
/* 162 */ 0,
|
|
/* 163 */ 0,
|
|
/* 164 */ 0,
|
|
/* 165 */ 0,
|
|
/* 166 */ 0,
|
|
/* 167 */ 0,
|
|
/* 168 */ 0,
|
|
/* 169 */ 0,
|
|
/* 170 */ 0,
|
|
/* 171 */ 0,
|
|
/* 172 */ 0,
|
|
/* 173 */ 0,
|
|
/* 174 */ 0,
|
|
/* 175 */ 0,
|
|
/* 176 */ 0,
|
|
/* 177 */ 0,
|
|
/* 178 */ 0,
|
|
/* 179 */ 0,
|
|
/* 180 */ 0,
|
|
/* 181 */ 0,
|
|
/* 182 */ 0,
|
|
/* 183 */ 0,
|
|
/* 184 */ 0,
|
|
/* 185 */ 0,
|
|
/* 186 */ 0,
|
|
/* 187 */ 0,
|
|
/* 188 */ 0,
|
|
/* 189 */ 0,
|
|
/* 190 */ 0,
|
|
/* 191 */ 0,
|
|
/* 192 */ 0,
|
|
/* 193 */ 0,
|
|
/* 194 */ 0,
|
|
/* 195 */ 0,
|
|
/* 196 */ 0,
|
|
/* 197 */ 0,
|
|
/* 198 */ 0,
|
|
/* 199 */ 0,
|
|
/* 200 */ 0,
|
|
/* 201 */ 0,
|
|
/* 202 */ 0,
|
|
/* 203 */ 0,
|
|
/* 204 */ 0,
|
|
/* 205 */ 0,
|
|
/* 206 */ 0,
|
|
/* 207 */ 0,
|
|
/* 208 */ 0,
|
|
/* 209 */ 0,
|
|
/* 210 */ 0,
|
|
/* 211 */ 0,
|
|
/* 212 */ 0,
|
|
/* 213 */ 0,
|
|
/* 214 */ 0,
|
|
/* 215 */ 0,
|
|
/* 216 */ 0,
|
|
/* 217 */ 0,
|
|
/* 218 */ 0,
|
|
/* 219 */ 0,
|
|
/* 220 */ 0,
|
|
/* 221 */ 0,
|
|
/* 222 */ 0,
|
|
/* 223 */ 0,
|
|
/* 224 */ 0,
|
|
/* 225 */ 0,
|
|
/* 226 */ 0,
|
|
/* 227 */ 0,
|
|
/* 228 */ 0,
|
|
/* 229 */ 0,
|
|
/* 230 */ 0,
|
|
/* 231 */ 0,
|
|
/* 232 */ 0,
|
|
/* 233 */ 0,
|
|
/* 234 */ 0,
|
|
/* 235 */ 0,
|
|
/* 236 */ 0,
|
|
/* 237 */ 0,
|
|
/* 238 */ 0,
|
|
/* 239 */ 0,
|
|
/* 240 */ 0,
|
|
/* 241 */ 0,
|
|
/* 242 */ 0,
|
|
/* 243 */ 0,
|
|
/* 244 */ 0,
|
|
/* 245 */ 0,
|
|
/* 246 */ 0,
|
|
/* 247 */ 0,
|
|
/* 248 */ 0,
|
|
/* 249 */ 0,
|
|
/* 250 */ 0,
|
|
/* 251 */ 0,
|
|
/* 252 */ 0,
|
|
/* 253 */ 0,
|
|
/* 254 */ 0,
|
|
/* 255 */ 0
|
|
};
|
|
|
|
inline SCHAR classes(int idx)
|
|
{
|
|
return classes_array[(UCHAR) idx];
|
|
}
|
|
|
|
inline SCHAR classes(UCHAR idx)
|
|
{
|
|
return classes_array[idx];
|
|
}
|
|
|