source: trunk/src/charsets/ASCII_EBCDIC.h @ 18

Last change on this file since 18 was 18, checked in by cameron, 11 years ago

CaseFoldBit?

File size: 14.1 KB
Line 
1#ifndef ASCII_EBCDIC_H
2#define ASCII_EBCDIC_H
3/* ASCII_EBCDIC.h
4    Copyright (c) 2008, Robert D. Cameron.
5    Licensed to the public under the Open Software License 3.0.
6    Licensed to International Characters, Inc., under the Academic
7    Free License 3.0.
8   
9    This is a generated file using bytelexgen.py.  Do not edit.
10
11*/
12
13#include <stdint.h>
14
15enum CharBase {Native, ASCII, EBCDIC};
16
17template<CharBase C, unsigned char c> struct Ord;
18
19template<unsigned char c> 
20struct Ord<Native, c> {static uint8_t const value = (uint8_t) c;};
21
22template<> struct Ord<ASCII,'\0'> {static uint8_t const value = 0x0;};
23template<> struct Ord<ASCII,' '> {static uint8_t const value = 0x20;};
24template<> struct Ord<ASCII,'!'> {static uint8_t const value = 0x21;};
25template<> struct Ord<ASCII,'"'> {static uint8_t const value = 0x22;};
26template<> struct Ord<ASCII,'#'> {static uint8_t const value = 0x23;};
27template<> struct Ord<ASCII,'$'> {static uint8_t const value = 0x24;};
28template<> struct Ord<ASCII,'%'> {static uint8_t const value = 0x25;};
29template<> struct Ord<ASCII,'&'> {static uint8_t const value = 0x26;};
30template<> struct Ord<ASCII,'\''> {static uint8_t const value = 0x27;};
31template<> struct Ord<ASCII,'('> {static uint8_t const value = 0x28;};
32template<> struct Ord<ASCII,')'> {static uint8_t const value = 0x29;};
33template<> struct Ord<ASCII,'*'> {static uint8_t const value = 0x2a;};
34template<> struct Ord<ASCII,'+'> {static uint8_t const value = 0x2b;};
35template<> struct Ord<ASCII,','> {static uint8_t const value = 0x2c;};
36template<> struct Ord<ASCII,'-'> {static uint8_t const value = 0x2d;};
37template<> struct Ord<ASCII,'.'> {static uint8_t const value = 0x2e;};
38template<> struct Ord<ASCII,'/'> {static uint8_t const value = 0x2f;};
39template<> struct Ord<ASCII,'0'> {static uint8_t const value = 0x30;};
40template<> struct Ord<ASCII,'1'> {static uint8_t const value = 0x31;};
41template<> struct Ord<ASCII,'2'> {static uint8_t const value = 0x32;};
42template<> struct Ord<ASCII,'3'> {static uint8_t const value = 0x33;};
43template<> struct Ord<ASCII,'4'> {static uint8_t const value = 0x34;};
44template<> struct Ord<ASCII,'5'> {static uint8_t const value = 0x35;};
45template<> struct Ord<ASCII,'6'> {static uint8_t const value = 0x36;};
46template<> struct Ord<ASCII,'7'> {static uint8_t const value = 0x37;};
47template<> struct Ord<ASCII,'8'> {static uint8_t const value = 0x38;};
48template<> struct Ord<ASCII,'9'> {static uint8_t const value = 0x39;};
49template<> struct Ord<ASCII,':'> {static uint8_t const value = 0x3a;};
50template<> struct Ord<ASCII,';'> {static uint8_t const value = 0x3b;};
51template<> struct Ord<ASCII,'<'> {static uint8_t const value = 0x3c;};
52template<> struct Ord<ASCII,'='> {static uint8_t const value = 0x3d;};
53template<> struct Ord<ASCII,'>'> {static uint8_t const value = 0x3e;};
54template<> struct Ord<ASCII,'?'> {static uint8_t const value = 0x3f;};
55template<> struct Ord<ASCII,'@'> {static uint8_t const value = 0x40;};
56template<> struct Ord<ASCII,'A'> {static uint8_t const value = 0x41;};
57template<> struct Ord<ASCII,'B'> {static uint8_t const value = 0x42;};
58template<> struct Ord<ASCII,'C'> {static uint8_t const value = 0x43;};
59template<> struct Ord<ASCII,'D'> {static uint8_t const value = 0x44;};
60template<> struct Ord<ASCII,'E'> {static uint8_t const value = 0x45;};
61template<> struct Ord<ASCII,'F'> {static uint8_t const value = 0x46;};
62template<> struct Ord<ASCII,'G'> {static uint8_t const value = 0x47;};
63template<> struct Ord<ASCII,'H'> {static uint8_t const value = 0x48;};
64template<> struct Ord<ASCII,'I'> {static uint8_t const value = 0x49;};
65template<> struct Ord<ASCII,'J'> {static uint8_t const value = 0x4a;};
66template<> struct Ord<ASCII,'K'> {static uint8_t const value = 0x4b;};
67template<> struct Ord<ASCII,'L'> {static uint8_t const value = 0x4c;};
68template<> struct Ord<ASCII,'M'> {static uint8_t const value = 0x4d;};
69template<> struct Ord<ASCII,'N'> {static uint8_t const value = 0x4e;};
70template<> struct Ord<ASCII,'O'> {static uint8_t const value = 0x4f;};
71template<> struct Ord<ASCII,'P'> {static uint8_t const value = 0x50;};
72template<> struct Ord<ASCII,'Q'> {static uint8_t const value = 0x51;};
73template<> struct Ord<ASCII,'R'> {static uint8_t const value = 0x52;};
74template<> struct Ord<ASCII,'S'> {static uint8_t const value = 0x53;};
75template<> struct Ord<ASCII,'T'> {static uint8_t const value = 0x54;};
76template<> struct Ord<ASCII,'U'> {static uint8_t const value = 0x55;};
77template<> struct Ord<ASCII,'V'> {static uint8_t const value = 0x56;};
78template<> struct Ord<ASCII,'W'> {static uint8_t const value = 0x57;};
79template<> struct Ord<ASCII,'X'> {static uint8_t const value = 0x58;};
80template<> struct Ord<ASCII,'Y'> {static uint8_t const value = 0x59;};
81template<> struct Ord<ASCII,'Z'> {static uint8_t const value = 0x5a;};
82template<> struct Ord<ASCII,'['> {static uint8_t const value = 0x5b;};
83template<> struct Ord<ASCII,'\\'> {static uint8_t const value = 0x5c;};
84template<> struct Ord<ASCII,']'> {static uint8_t const value = 0x5d;};
85template<> struct Ord<ASCII,'^'> {static uint8_t const value = 0x5e;};
86template<> struct Ord<ASCII,'_'> {static uint8_t const value = 0x5f;};
87template<> struct Ord<ASCII,'`'> {static uint8_t const value = 0x60;};
88template<> struct Ord<ASCII,'a'> {static uint8_t const value = 0x61;};
89template<> struct Ord<ASCII,'b'> {static uint8_t const value = 0x62;};
90template<> struct Ord<ASCII,'c'> {static uint8_t const value = 0x63;};
91template<> struct Ord<ASCII,'d'> {static uint8_t const value = 0x64;};
92template<> struct Ord<ASCII,'e'> {static uint8_t const value = 0x65;};
93template<> struct Ord<ASCII,'f'> {static uint8_t const value = 0x66;};
94template<> struct Ord<ASCII,'g'> {static uint8_t const value = 0x67;};
95template<> struct Ord<ASCII,'h'> {static uint8_t const value = 0x68;};
96template<> struct Ord<ASCII,'i'> {static uint8_t const value = 0x69;};
97template<> struct Ord<ASCII,'j'> {static uint8_t const value = 0x6a;};
98template<> struct Ord<ASCII,'k'> {static uint8_t const value = 0x6b;};
99template<> struct Ord<ASCII,'l'> {static uint8_t const value = 0x6c;};
100template<> struct Ord<ASCII,'m'> {static uint8_t const value = 0x6d;};
101template<> struct Ord<ASCII,'n'> {static uint8_t const value = 0x6e;};
102template<> struct Ord<ASCII,'o'> {static uint8_t const value = 0x6f;};
103template<> struct Ord<ASCII,'p'> {static uint8_t const value = 0x70;};
104template<> struct Ord<ASCII,'q'> {static uint8_t const value = 0x71;};
105template<> struct Ord<ASCII,'r'> {static uint8_t const value = 0x72;};
106template<> struct Ord<ASCII,'s'> {static uint8_t const value = 0x73;};
107template<> struct Ord<ASCII,'t'> {static uint8_t const value = 0x74;};
108template<> struct Ord<ASCII,'u'> {static uint8_t const value = 0x75;};
109template<> struct Ord<ASCII,'v'> {static uint8_t const value = 0x76;};
110template<> struct Ord<ASCII,'w'> {static uint8_t const value = 0x77;};
111template<> struct Ord<ASCII,'x'> {static uint8_t const value = 0x78;};
112template<> struct Ord<ASCII,'y'> {static uint8_t const value = 0x79;};
113template<> struct Ord<ASCII,'z'> {static uint8_t const value = 0x7a;};
114template<> struct Ord<ASCII,'{'> {static uint8_t const value = 0x7b;};
115template<> struct Ord<ASCII,'|'> {static uint8_t const value = 0x7c;};
116template<> struct Ord<ASCII,'}'> {static uint8_t const value = 0x7d;};
117
118template<> struct Ord<EBCDIC,'\0'> {static uint8_t const value = 0x0;};
119template<> struct Ord<EBCDIC,' '> {static uint8_t const value = 0x40;};
120template<> struct Ord<EBCDIC,'!'> {static uint8_t const value = 0x5a;};
121template<> struct Ord<EBCDIC,'"'> {static uint8_t const value = 0x7f;};
122template<> struct Ord<EBCDIC,'#'> {static uint8_t const value = 0x7b;};
123template<> struct Ord<EBCDIC,'$'> {static uint8_t const value = 0x5b;};
124template<> struct Ord<EBCDIC,'%'> {static uint8_t const value = 0x6c;};
125template<> struct Ord<EBCDIC,'&'> {static uint8_t const value = 0x50;};
126template<> struct Ord<EBCDIC,'\''> {static uint8_t const value = 0x7d;};
127template<> struct Ord<EBCDIC,'('> {static uint8_t const value = 0x4d;};
128template<> struct Ord<EBCDIC,')'> {static uint8_t const value = 0x5d;};
129template<> struct Ord<EBCDIC,'*'> {static uint8_t const value = 0x5c;};
130template<> struct Ord<EBCDIC,'+'> {static uint8_t const value = 0x4e;};
131template<> struct Ord<EBCDIC,','> {static uint8_t const value = 0x6b;};
132template<> struct Ord<EBCDIC,'-'> {static uint8_t const value = 0x60;};
133template<> struct Ord<EBCDIC,'.'> {static uint8_t const value = 0x4b;};
134template<> struct Ord<EBCDIC,'/'> {static uint8_t const value = 0x61;};
135template<> struct Ord<EBCDIC,'0'> {static uint8_t const value = 0xf0;};
136template<> struct Ord<EBCDIC,'1'> {static uint8_t const value = 0xf1;};
137template<> struct Ord<EBCDIC,'2'> {static uint8_t const value = 0xf2;};
138template<> struct Ord<EBCDIC,'3'> {static uint8_t const value = 0xf3;};
139template<> struct Ord<EBCDIC,'4'> {static uint8_t const value = 0xf4;};
140template<> struct Ord<EBCDIC,'5'> {static uint8_t const value = 0xf5;};
141template<> struct Ord<EBCDIC,'6'> {static uint8_t const value = 0xf6;};
142template<> struct Ord<EBCDIC,'7'> {static uint8_t const value = 0xf7;};
143template<> struct Ord<EBCDIC,'8'> {static uint8_t const value = 0xf8;};
144template<> struct Ord<EBCDIC,'9'> {static uint8_t const value = 0xf9;};
145template<> struct Ord<EBCDIC,':'> {static uint8_t const value = 0x7a;};
146template<> struct Ord<EBCDIC,';'> {static uint8_t const value = 0x5e;};
147template<> struct Ord<EBCDIC,'<'> {static uint8_t const value = 0x4c;};
148template<> struct Ord<EBCDIC,'='> {static uint8_t const value = 0x7e;};
149template<> struct Ord<EBCDIC,'>'> {static uint8_t const value = 0x6e;};
150template<> struct Ord<EBCDIC,'?'> {static uint8_t const value = 0x6f;};
151template<> struct Ord<EBCDIC,'@'> {static uint8_t const value = 0x7c;};
152template<> struct Ord<EBCDIC,'A'> {static uint8_t const value = 0xc1;};
153template<> struct Ord<EBCDIC,'B'> {static uint8_t const value = 0xc2;};
154template<> struct Ord<EBCDIC,'C'> {static uint8_t const value = 0xc3;};
155template<> struct Ord<EBCDIC,'D'> {static uint8_t const value = 0xc4;};
156template<> struct Ord<EBCDIC,'E'> {static uint8_t const value = 0xc5;};
157template<> struct Ord<EBCDIC,'F'> {static uint8_t const value = 0xc6;};
158template<> struct Ord<EBCDIC,'G'> {static uint8_t const value = 0xc7;};
159template<> struct Ord<EBCDIC,'H'> {static uint8_t const value = 0xc8;};
160template<> struct Ord<EBCDIC,'I'> {static uint8_t const value = 0xc9;};
161template<> struct Ord<EBCDIC,'J'> {static uint8_t const value = 0xd1;};
162template<> struct Ord<EBCDIC,'K'> {static uint8_t const value = 0xd2;};
163template<> struct Ord<EBCDIC,'L'> {static uint8_t const value = 0xd3;};
164template<> struct Ord<EBCDIC,'M'> {static uint8_t const value = 0xd4;};
165template<> struct Ord<EBCDIC,'N'> {static uint8_t const value = 0xd5;};
166template<> struct Ord<EBCDIC,'O'> {static uint8_t const value = 0xd6;};
167template<> struct Ord<EBCDIC,'P'> {static uint8_t const value = 0xd7;};
168template<> struct Ord<EBCDIC,'Q'> {static uint8_t const value = 0xd8;};
169template<> struct Ord<EBCDIC,'R'> {static uint8_t const value = 0xd9;};
170template<> struct Ord<EBCDIC,'S'> {static uint8_t const value = 0xe2;};
171template<> struct Ord<EBCDIC,'T'> {static uint8_t const value = 0xe3;};
172template<> struct Ord<EBCDIC,'U'> {static uint8_t const value = 0xe4;};
173template<> struct Ord<EBCDIC,'V'> {static uint8_t const value = 0xe5;};
174template<> struct Ord<EBCDIC,'W'> {static uint8_t const value = 0xe6;};
175template<> struct Ord<EBCDIC,'X'> {static uint8_t const value = 0xe7;};
176template<> struct Ord<EBCDIC,'Y'> {static uint8_t const value = 0xe8;};
177template<> struct Ord<EBCDIC,'Z'> {static uint8_t const value = 0xe9;};
178template<> struct Ord<EBCDIC,'['> {static uint8_t const value = 0xba;};
179template<> struct Ord<EBCDIC,'\\'> {static uint8_t const value = 0xe0;};
180template<> struct Ord<EBCDIC,']'> {static uint8_t const value = 0xbb;};
181template<> struct Ord<EBCDIC,'^'> {static uint8_t const value = 0xb0;};
182template<> struct Ord<EBCDIC,'_'> {static uint8_t const value = 0x6d;};
183template<> struct Ord<EBCDIC,'`'> {static uint8_t const value = 0x79;};
184template<> struct Ord<EBCDIC,'a'> {static uint8_t const value = 0x81;};
185template<> struct Ord<EBCDIC,'b'> {static uint8_t const value = 0x82;};
186template<> struct Ord<EBCDIC,'c'> {static uint8_t const value = 0x83;};
187template<> struct Ord<EBCDIC,'d'> {static uint8_t const value = 0x84;};
188template<> struct Ord<EBCDIC,'e'> {static uint8_t const value = 0x85;};
189template<> struct Ord<EBCDIC,'f'> {static uint8_t const value = 0x86;};
190template<> struct Ord<EBCDIC,'g'> {static uint8_t const value = 0x87;};
191template<> struct Ord<EBCDIC,'h'> {static uint8_t const value = 0x88;};
192template<> struct Ord<EBCDIC,'i'> {static uint8_t const value = 0x89;};
193template<> struct Ord<EBCDIC,'j'> {static uint8_t const value = 0x91;};
194template<> struct Ord<EBCDIC,'k'> {static uint8_t const value = 0x92;};
195template<> struct Ord<EBCDIC,'l'> {static uint8_t const value = 0x93;};
196template<> struct Ord<EBCDIC,'m'> {static uint8_t const value = 0x94;};
197template<> struct Ord<EBCDIC,'n'> {static uint8_t const value = 0x95;};
198template<> struct Ord<EBCDIC,'o'> {static uint8_t const value = 0x96;};
199template<> struct Ord<EBCDIC,'p'> {static uint8_t const value = 0x97;};
200template<> struct Ord<EBCDIC,'q'> {static uint8_t const value = 0x98;};
201template<> struct Ord<EBCDIC,'r'> {static uint8_t const value = 0x99;};
202template<> struct Ord<EBCDIC,'s'> {static uint8_t const value = 0xa2;};
203template<> struct Ord<EBCDIC,'t'> {static uint8_t const value = 0xa3;};
204template<> struct Ord<EBCDIC,'u'> {static uint8_t const value = 0xa4;};
205template<> struct Ord<EBCDIC,'v'> {static uint8_t const value = 0xa5;};
206template<> struct Ord<EBCDIC,'w'> {static uint8_t const value = 0xa6;};
207template<> struct Ord<EBCDIC,'x'> {static uint8_t const value = 0xa7;};
208template<> struct Ord<EBCDIC,'y'> {static uint8_t const value = 0xa8;};
209template<> struct Ord<EBCDIC,'z'> {static uint8_t const value = 0xa9;};
210template<> struct Ord<EBCDIC,'{'> {static uint8_t const value = 0xc0;};
211template<> struct Ord<EBCDIC,'|'> {static uint8_t const value = 0x4f;};
212template<> struct Ord<EBCDIC,'}'> {static uint8_t const value = 0xd0;};
213
214// CaseFoldBit is the bit that differs between upper and lower
215// case versions of the same letter.  Both ASCII and EBCDIC have
216// the property that a single case fold bit exists and is the same
217// for all letters. 
218template <CharBase CS>
219struct CaseFoldBit
220  {static uint8_t const value = Ord<CS, 'a'>::value ^ Ord<CS, 'A'>::value;};
221
222#endif
Note: See TracBrowser for help on using the repository browser.