54#define LANG_GREEK 0x0000
55#define LANG_LATIN 0x1000
56#define LANG_COPTIC 0x2000
57#define LANG_ARABIC 0x4000
58#define LANG_HEBREW 0x8000
60#define LANG_CHEROKEE 0x10000
74int quote_state[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
96int quote_close[10] = {
115void print_ascii (
char *);
116void print_unicode (
char *);
117void print_quote (
char *);
118void print_utf8 (uint32_t);
119void print_capital (
char *);
120void print_small (
char *);
121void print_pattern (
char *, uint32_t);
130void print_letter (uint32_t, uint32_t, uint32_t, uint32_t);
133uint32_t ascii2greek_capital[128]={128*0};
134uint32_t ascii2greek_small[128]={128*0};
135uint32_t ascii2coptic[128]={128*0};
136uint32_t ascii2hebrew[128]={128*0};
Header information for the sequoyah program.
#define LANG_CHEROKEE
Define for Cherokee output (default).
151 yytext [strlen (yytext) - 1] =
'\0';
153 print_ascii (&yytext[1]);
157A print_utf8 (0x13A0);
158E print_utf8 (0x13A1);
159I print_utf8 (0x13A2);
160O print_utf8 (0x13A3);
161U print_utf8 (0x13A4);
162V print_utf8 (0x13A5);
163GA print_utf8 (0x13A6);
164Ga print_utf8 (0x13A6);
165KA print_utf8 (0x13A7);
166Ka print_utf8 (0x13A7);
167GE print_utf8 (0x13A8);
168Ge print_utf8 (0x13A8);
169GI print_utf8 (0x13A9);
170Gi print_utf8 (0x13A9);
171GO print_utf8 (0x13AA);
172Go print_utf8 (0x13AA);
173GU print_utf8 (0x13AB);
174Gu print_utf8 (0x13AB);
175GV print_utf8 (0x13AC);
176Gv print_utf8 (0x13AC);
177HA print_utf8 (0x13AD);
178Ha print_utf8 (0x13AD);
179HE print_utf8 (0x13AE);
180He print_utf8 (0x13AE);
181HI print_utf8 (0x13AF);
182Hi print_utf8 (0x13AF);
183HO print_utf8 (0x13B0);
184Ho print_utf8 (0x13B0);
185HU print_utf8 (0x13B1);
186Hu print_utf8 (0x13B1);
187HV print_utf8 (0x13B2);
188Hv print_utf8 (0x13B2);
189LA print_utf8 (0x13B3);
190La print_utf8 (0x13B3);
191LE print_utf8 (0x13B4);
192Le print_utf8 (0x13B4);
193LI print_utf8 (0x13B5);
194Li print_utf8 (0x13B5);
195LO print_utf8 (0x13B6);
196Lo print_utf8 (0x13B6);
197LU print_utf8 (0x13B7);
198Lu print_utf8 (0x13B7);
199LV print_utf8 (0x13B8);
200Lv print_utf8 (0x13B8);
201MA print_utf8 (0x13B9);
202Ma print_utf8 (0x13B9);
203ME print_utf8 (0x13BA);
204Me print_utf8 (0x13BA);
205MI print_utf8 (0x13BB);
206Mi print_utf8 (0x13BB);
207MO print_utf8 (0x13BC);
208Mo print_utf8 (0x13BC);
209MU print_utf8 (0x13BD);
210Mu print_utf8 (0x13BD);
211NA print_utf8 (0x13BE);
212Na print_utf8 (0x13BE);
213HNA print_utf8 (0x13BF);
214Hna print_utf8 (0x13BF);
215NAH print_utf8 (0x13C0);
216Nah print_utf8 (0x13C0);
217NE print_utf8 (0x13C1);
218Ne print_utf8 (0x13C1);
219NI print_utf8 (0x13C2);
220Ni print_utf8 (0x13C2);
221NO print_utf8 (0x13C3);
222No print_utf8 (0x13C3);
223NU print_utf8 (0x13C4);
224Nu print_utf8 (0x13C4);
225NV print_utf8 (0x13C5);
226Nv print_utf8 (0x13C5);
227QUA print_utf8 (0x13C6);
228Qua print_utf8 (0x13C6);
229QUE print_utf8 (0x13C7);
230Que print_utf8 (0x13C7);
231QUI print_utf8 (0x13C8);
232Qui print_utf8 (0x13C8);
233QUO print_utf8 (0x13C9);
234Quo print_utf8 (0x13C9);
235QUU print_utf8 (0x13CA);
236Quu print_utf8 (0x13CA);
237QUV print_utf8 (0x13CB);
238Quv print_utf8 (0x13CB);
239SA print_utf8 (0x13CC);
240Sa print_utf8 (0x13CC);
241S print_utf8 (0x13CD);
242SE print_utf8 (0x13CE);
243Se print_utf8 (0x13CE);
244SI print_utf8 (0x13CF);
245Si print_utf8 (0x13CF);
246SO print_utf8 (0x13D0);
247So print_utf8 (0x13D0);
248SU print_utf8 (0x13D1);
249Su print_utf8 (0x13D1);
250SV print_utf8 (0x13D2);
251Sv print_utf8 (0x13D2);
252DA print_utf8 (0x13D3);
253Da print_utf8 (0x13D3);
254TA print_utf8 (0x13D4);
255Ta print_utf8 (0x13D4);
256DE print_utf8 (0x13D5);
257De print_utf8 (0x13D5);
258TE print_utf8 (0x13D6);
259Te print_utf8 (0x13D6);
260DI print_utf8 (0x13D7);
261Di print_utf8 (0x13D7);
262TI print_utf8 (0x13D8);
263Ti print_utf8 (0x13D8);
264DO print_utf8 (0x13D9);
265Do print_utf8 (0x13D9);
266DU print_utf8 (0x13DA);
267Du print_utf8 (0x13DA);
268DV print_utf8 (0x13DB);
269Dv print_utf8 (0x13DB);
270DLA print_utf8 (0x13DC);
271Dla print_utf8 (0x13DC);
272TLA print_utf8 (0x13DD);
273Tla print_utf8 (0x13DD);
274TLE print_utf8 (0x13DE);
275Tle print_utf8 (0x13DE);
276TLI print_utf8 (0x13DF);
277Tli print_utf8 (0x13DF);
278TLO print_utf8 (0x13E0);
279Tlo print_utf8 (0x13E0);
280TLU print_utf8 (0x13E1);
281Tlu print_utf8 (0x13E1);
282TLV print_utf8 (0x13E2);
283Tlv print_utf8 (0x13E2);
284TSA print_utf8 (0x13E3);
285Tsa print_utf8 (0x13E3);
286TSE print_utf8 (0x13E4);
287Tse print_utf8 (0x13E4);
288TSI print_utf8 (0x13E5);
289Tsi print_utf8 (0x13E5);
290TSO print_utf8 (0x13E6);
291Tso print_utf8 (0x13E6);
292TSU print_utf8 (0x13E7);
293Tsu print_utf8 (0x13E7);
294TSV print_utf8 (0x13E8);
295Tsv print_utf8 (0x13E8);
296WA print_utf8 (0x13E9);
297Wa print_utf8 (0x13E9);
298WE print_utf8 (0x13EA);
299We print_utf8 (0x13EA);
300WI print_utf8 (0x13EB);
301Wi print_utf8 (0x13EB);
302WO print_utf8 (0x13EC);
303Wo print_utf8 (0x13EC);
304WU print_utf8 (0x13ED);
305Wu print_utf8 (0x13ED);
306WV print_utf8 (0x13EE);
307Wv print_utf8 (0x13EE);
308YA print_utf8 (0x13EF);
309Ya print_utf8 (0x13EF);
310YE print_utf8 (0x13F0);
311Ye print_utf8 (0x13F0);
312YI print_utf8 (0x13F1);
313Yi print_utf8 (0x13F1);
314YO print_utf8 (0x13F2);
315Yo print_utf8 (0x13F2);
316YU print_utf8 (0x13F3);
317Yu print_utf8 (0x13F3);
318YV print_utf8 (0x13F4);
319Yv print_utf8 (0x13F4);
320MV print_utf8 (0x13F5);
321Mv print_utf8 (0x13F5);
322ye print_utf8 (0x13F8);
323yi print_utf8 (0x13F9);
324yo print_utf8 (0x13FA);
325yu print_utf8 (0x13FB);
326yv print_utf8 (0x13FC);
327mv print_utf8 (0x13FD);
328a print_utf8 (0xAB70);
329e print_utf8 (0xAB71);
330i print_utf8 (0xAB72);
331o print_utf8 (0xAB73);
332u print_utf8 (0xAB74);
333v print_utf8 (0xAB75);
334ga print_utf8 (0xAB76);
335ka print_utf8 (0xAB77);
336ge print_utf8 (0xAB78);
337gi print_utf8 (0xAB79);
338go print_utf8 (0xAB7A);
339gu print_utf8 (0xAB7B);
340gv print_utf8 (0xAB7C);
341ha print_utf8 (0xAB7D);
342he print_utf8 (0xAB7E);
343hi print_utf8 (0xAB7F);
344ho print_utf8 (0xAB80);
345hu print_utf8 (0xAB81);
346hv print_utf8 (0xAB82);
347la print_utf8 (0xAB83);
348le print_utf8 (0xAB84);
349li print_utf8 (0xAB85);
350lo print_utf8 (0xAB86);
351lu print_utf8 (0xAB87);
352lv print_utf8 (0xAB88);
353ma print_utf8 (0xAB89);
354me print_utf8 (0xAB8A);
355mi print_utf8 (0xAB8B);
356mo print_utf8 (0xAB8C);
357mu print_utf8 (0xAB8D);
358na print_utf8 (0xAB8E);
359hna print_utf8 (0xAB8F);
360nah print_utf8 (0xAB90);
361ne print_utf8 (0xAB91);
362ni print_utf8 (0xAB92);
363no print_utf8 (0xAB93);
364nu print_utf8 (0xAB94);
365nv print_utf8 (0xAB95);
366qua print_utf8 (0xAB96);
367que print_utf8 (0xAB97);
368qui print_utf8 (0xAB98);
369quo print_utf8 (0xAB99);
370quu print_utf8 (0xAB9A);
371quv print_utf8 (0xAB9B);
372sa print_utf8 (0xAB9C);
373s print_utf8 (0xAB9D);
374se print_utf8 (0xAB9E);
375si print_utf8 (0xAB9F);
376so print_utf8 (0xABA0);
377su print_utf8 (0xABA1);
378sv print_utf8 (0xABA2);
379da print_utf8 (0xABA3);
380ta print_utf8 (0xABA4);
381de print_utf8 (0xABA5);
382te print_utf8 (0xABA6);
383di print_utf8 (0xABA7);
384ti print_utf8 (0xABA8);
385do print_utf8 (0xABA9);
386du print_utf8 (0xABAA);
387dv print_utf8 (0xABAB);
388dla print_utf8 (0xABAC);
389tla print_utf8 (0xABAD);
390tle print_utf8 (0xABAE);
391tli print_utf8 (0xABAF);
392tlo print_utf8 (0xABB0);
393tlu print_utf8 (0xABB1);
394tlv print_utf8 (0xABB2);
395tsa print_utf8 (0xABB3);
396tse print_utf8 (0xABB4);
397tsi print_utf8 (0xABB5);
398tso print_utf8 (0xABB6);
399tsu print_utf8 (0xABB7);
400tsv print_utf8 (0xABB8);
401wa print_utf8 (0xABB9);
402we print_utf8 (0xABBA);
403wi print_utf8 (0xABBB);
404wo print_utf8 (0xABBC);
405wu print_utf8 (0xABBD);
406wv print_utf8 (0xABBE);
407ya print_utf8 (0xABBF);
410\341\216\240 fprintf (yyout,
"A");
411\341\216\241 fprintf (yyout,
"E");
412\341\216\242 fprintf (yyout,
"I");
413\341\216\243 fprintf (yyout,
"O");
414\341\216\244 fprintf (yyout,
"U");
415\341\216\245 fprintf (yyout,
"V");
416\341\216\246 fprintf (yyout,
"GA");
417\341\216\247 fprintf (yyout,
"KA");
418\341\216\250 fprintf (yyout,
"GE");
419\341\216\251 fprintf (yyout,
"GI");
420\341\216\252 fprintf (yyout,
"GO");
421\341\216\253 fprintf (yyout,
"GU");
422\341\216\254 fprintf (yyout,
"GV");
423\341\216\255 fprintf (yyout,
"HA");
424\341\216\256 fprintf (yyout,
"HE");
425\341\216\257 fprintf (yyout,
"HI");
426\341\216\260 fprintf (yyout,
"HO");
427\341\216\261 fprintf (yyout,
"HU");
428\341\216\262 fprintf (yyout,
"HV");
429\341\216\263 fprintf (yyout,
"LA");
430\341\216\264 fprintf (yyout,
"LE");
431\341\216\265 fprintf (yyout,
"LI");
432\341\216\266 fprintf (yyout,
"LO");
433\341\216\267 fprintf (yyout,
"LU");
434\341\216\270 fprintf (yyout,
"LV");
435\341\216\271 fprintf (yyout,
"MA");
436\341\216\272 fprintf (yyout,
"ME");
437\341\216\273 fprintf (yyout,
"MI");
438\341\216\274 fprintf (yyout,
"MO");
439\341\216\275 fprintf (yyout,
"MU");
440\341\216\276 fprintf (yyout,
"NA");
441\341\216\277 fprintf (yyout,
"HNA");
442\341\217\200 fprintf (yyout,
"NAH");
443\341\217\201 fprintf (yyout,
"NE");
444\341\217\202 fprintf (yyout,
"NI");
445\341\217\203 fprintf (yyout,
"NO");
446\341\217\204 fprintf (yyout,
"NU");
447\341\217\205 fprintf (yyout,
"NV");
448\341\217\206 fprintf (yyout,
"QUA");
449\341\217\207 fprintf (yyout,
"QUE");
450\341\217\210 fprintf (yyout,
"QUI");
451\341\217\211 fprintf (yyout,
"QUO");
452\341\217\212 fprintf (yyout,
"QUU");
453\341\217\213 fprintf (yyout,
"QUV");
454\341\217\214 fprintf (yyout,
"SA");
455\341\217\215 fprintf (yyout,
"S");
456\341\217\216 fprintf (yyout,
"SE");
457\341\217\217 fprintf (yyout,
"SI");
458\341\217\220 fprintf (yyout,
"SO");
459\341\217\221 fprintf (yyout,
"SU");
460\341\217\222 fprintf (yyout,
"SV");
461\341\217\223 fprintf (yyout,
"DA");
462\341\217\224 fprintf (yyout,
"TA");
463\341\217\225 fprintf (yyout,
"DE");
464\341\217\226 fprintf (yyout,
"TE");
465\341\217\227 fprintf (yyout,
"DI");
466\341\217\230 fprintf (yyout,
"TI");
467\341\217\231 fprintf (yyout,
"DO");
468\341\217\232 fprintf (yyout,
"DU");
469\341\217\233 fprintf (yyout,
"DV");
470\341\217\234 fprintf (yyout,
"DLA");
471\341\217\235 fprintf (yyout,
"TLA");
472\341\217\236 fprintf (yyout,
"TLE");
473\341\217\237 fprintf (yyout,
"TLI");
474\341\217\240 fprintf (yyout,
"TLO");
475\341\217\241 fprintf (yyout,
"TLU");
476\341\217\242 fprintf (yyout,
"TLV");
477\341\217\243 fprintf (yyout,
"TSA");
478\341\217\244 fprintf (yyout,
"TSE");
479\341\217\245 fprintf (yyout,
"TSI");
480\341\217\246 fprintf (yyout,
"TSO");
481\341\217\247 fprintf (yyout,
"TSU");
482\341\217\250 fprintf (yyout,
"TSV");
483\341\217\251 fprintf (yyout,
"WA");
484\341\217\252 fprintf (yyout,
"WE");
485\341\217\253 fprintf (yyout,
"WI");
486\341\217\254 fprintf (yyout,
"WO");
487\341\217\255 fprintf (yyout,
"WU");
488\341\217\256 fprintf (yyout,
"WV");
489\341\217\257 fprintf (yyout,
"YA");
490\341\217\260 fprintf (yyout,
"YE");
491\341\217\261 fprintf (yyout,
"YI");
492\341\217\262 fprintf (yyout,
"YO");
493\341\217\263 fprintf (yyout,
"YU");
494\341\217\264 fprintf (yyout,
"YV");
495\341\217\265 fprintf (yyout,
"MV");
496\341\217\270 fprintf (yyout,
"ye");
497\341\217\271 fprintf (yyout,
"yi");
498\341\217\272 fprintf (yyout,
"yo");
499\341\217\273 fprintf (yyout,
"yu");
500\341\217\274 fprintf (yyout,
"yv");
501\341\217\275 fprintf (yyout,
"mv");
502\352\255\260 fprintf (yyout,
"a");
503\352\255\261 fprintf (yyout,
"e");
504\352\255\262 fprintf (yyout,
"i");
505\352\255\263 fprintf (yyout,
"o");
506\352\255\264 fprintf (yyout,
"u");
507\352\255\265 fprintf (yyout,
"v");
508\352\255\266 fprintf (yyout,
"ga");
509\352\255\267 fprintf (yyout,
"ka");
510\352\255\270 fprintf (yyout,
"ge");
511\352\255\271 fprintf (yyout,
"gi");
512\352\255\272 fprintf (yyout,
"go");
513\352\255\273 fprintf (yyout,
"gu");
514\352\255\274 fprintf (yyout,
"gv");
515\352\255\275 fprintf (yyout,
"ha");
516\352\255\276 fprintf (yyout,
"he");
517\352\255\277 fprintf (yyout,
"hi");
518\352\256\200 fprintf (yyout,
"ho");
519\352\256\201 fprintf (yyout,
"hu");
520\352\256\202 fprintf (yyout,
"hv");
521\352\256\203 fprintf (yyout,
"la");
522\352\256\204 fprintf (yyout,
"le");
523\352\256\205 fprintf (yyout,
"li");
524\352\256\206 fprintf (yyout,
"lo");
525\352\256\207 fprintf (yyout,
"lu");
526\352\256\210 fprintf (yyout,
"lv");
527\352\256\211 fprintf (yyout,
"ma");
528\352\256\212 fprintf (yyout,
"me");
529\352\256\213 fprintf (yyout,
"mi");
530\352\256\214 fprintf (yyout,
"mo");
531\352\256\215 fprintf (yyout,
"mu");
532\352\256\216 fprintf (yyout,
"na");
533\352\256\217 fprintf (yyout,
"hna");
534\352\256\220 fprintf (yyout,
"nah");
535\352\256\221 fprintf (yyout,
"ne");
536\352\256\222 fprintf (yyout,
"ni");
537\352\256\223 fprintf (yyout,
"no");
538\352\256\224 fprintf (yyout,
"nu");
539\352\256\225 fprintf (yyout,
"nv");
540\352\256\226 fprintf (yyout,
"qua");
541\352\256\227 fprintf (yyout,
"que");
542\352\256\230 fprintf (yyout,
"qui");
543\352\256\231 fprintf (yyout,
"quo");
544\352\256\232 fprintf (yyout,
"quu");
545\352\256\233 fprintf (yyout,
"quv");
546\352\256\234 fprintf (yyout,
"sa");
547\352\256\235 fprintf (yyout,
"s");
548\352\256\236 fprintf (yyout,
"se");
549\352\256\237 fprintf (yyout,
"si");
550\352\256\240 fprintf (yyout,
"so");
551\352\256\241 fprintf (yyout,
"su");
552\352\256\242 fprintf (yyout,
"sv");
553\352\256\243 fprintf (yyout,
"da");
554\352\256\244 fprintf (yyout,
"ta");
555\352\256\245 fprintf (yyout,
"de");
556\352\256\246 fprintf (yyout,
"te");
557\352\256\247 fprintf (yyout,
"di");
558\352\256\250 fprintf (yyout,
"ti");
559\352\256\251 fprintf (yyout,
"do");
560\352\256\252 fprintf (yyout,
"du");
561\352\256\253 fprintf (yyout,
"dv");
562\352\256\254 fprintf (yyout,
"dla");
563\352\256\255 fprintf (yyout,
"tla");
564\352\256\256 fprintf (yyout,
"tle");
565\352\256\257 fprintf (yyout,
"tli");
566\352\256\260 fprintf (yyout,
"tlo");
567\352\256\261 fprintf (yyout,
"tlu");
568\352\256\262 fprintf (yyout,
"tlv");
569\352\256\263 fprintf (yyout,
"tsa");
570\352\256\264 fprintf (yyout,
"tse");
571\352\256\265 fprintf (yyout,
"tsi");
572\352\256\266 fprintf (yyout,
"tso");
573\352\256\267 fprintf (yyout,
"tsu");
574\352\256\270 fprintf (yyout,
"tsv");
575\352\256\271 fprintf (yyout,
"wa");
576\352\256\272 fprintf (yyout,
"we");
577\352\256\273 fprintf (yyout,
"wi");
578\352\256\274 fprintf (yyout,
"wo");
579\352\256\275 fprintf (yyout,
"wu");
580\352\256\276 fprintf (yyout,
"wv");
581\352\256\277 fprintf (yyout,
"ya");
585main (
int argc,
char *argv[])
590 void print_help (
char *);
592 exit_status = EXIT_SUCCESS;
596 for (i = 1; i < argc; i++) {
601 if (argv[i][0] ==
'-') {
602 switch (argv[i][1]) {
604 case '-':
if (strncmp (argv[i],
"--version", 9) == 0) {
605 printf (
"sequoyah Version %s\n", VERSION);
606 printf (
"Copyright (C) 2003, 2004 Paul Hardy\n");
610 case 'b': bom_out = 1;
616 case 'i': yyin = fopen (argv[++i],
"r");
622 case 'o': yyout = fopen (argv[++i],
"w");
625 case 'v': printf (
"sequoyah Version %s\n", VERSION);
628 default: print_help (argv[0]);
629 exit_status = EXIT_FAILURE;
634 print_help (argv[0]);
635 exit_status = EXIT_FAILURE;
639 if (exit_status == EXIT_SUCCESS) {
656print_help (
char * progname)
659 fprintf (stderr,
"\nUnknown command line parameter.\n\n");
660 fprintf (stderr,
"Syntax: %s [-b] [-i input_file] [-o output_file]\n\n",
662 fprintf (stderr,
" -b: begin output with UTF-8 Byte Order Mark\n\n");
663 fprintf (stderr,
" -i: specify input file name\n\n");
664 fprintf (stderr,
" -o: specify output file name\n\n");
675print_pattern (
char *intext, uint32_t codept)
678 void print_ascii (
char *);
679 void print_utf8 (uint32_t);
682 print_ascii (intext);
694print_ascii (
char *intext)
697 char unicode_string[7];
699 for (i = 0; intext[i] !=
'\0'; i++) {
708 intext[j] !=
'\0' && intext[j] !=
'\\';
711 if (intext [j] ==
'\0') {
712 fprintf (yyout,
"%s", &intext [i]);
718 else if (intext [j+1] ==
'u') {
721 fprintf (yyout,
"%s", &intext[i]);
723 unicode_string [0] =
'\0';
729 (isdigit (intext [i]) ||
730 (intext [i] >=
'A' && intext [i] <=
'F') ||
731 (intext [i] >=
'a' && intext [i] <=
'f'));
734 unicode_string [k] = intext[i];
735 unicode_string [k + 1] =
'\0';
738 print_unicode (unicode_string);
748 fprintf (yyout,
"%s\\", &intext [i]);
763print_unicode (
char *intext)
769 void print_utf8 (uint32_t);
772 for (i = 0; intext[i] !=
'\0'; i++) {
774 this_digit = intext[i];
775 if (this_digit >=
'a')
776 this_digit = this_digit -
'a' + 10;
777 else if (this_digit >=
'A')
778 this_digit = this_digit -
'A' + 10;
782 codept |= this_digit;
798print_quote (
char *intext)
801 void print_utf8 (uint32_t);
804 if (intext[0] ==
'"') {
805 if (quote_state[doubleq_style] == 0) {
806 print_utf8 (quote_open[doubleq_style]);
807 quote_state[doubleq_style] = 1;
810 print_utf8 (quote_close[doubleq_style]);
811 quote_state[doubleq_style] = 0;
815 if (intext[0] ==
'`') {
816 if (singleq_style == 0)
818 else if (singleq_style == 4)
824 if (singleq_style == 0)
826 else if (singleq_style == 4)
844print_capital (
char *intext)
848 test_char = intext[1] & 0x7F;
853 if (intext[2] ==
'\\') {
854 test_char = tolower (test_char);
878 fprintf (yyout,
"%s", intext);
887 print_utf8 (ascii2greek_capital[test_char]);
891 print_utf8 (ascii2coptic[test_char]);
893 if (intext[2] ==
'\\')
899 fprintf (yyout,
"%s", intext);
913print_small (
char *intext)
918 test_char = intext[0] & 0x7F;
923 if (intext[1] ==
'\\') {
924 test_char = tolower (test_char);
948 fprintf (yyout,
"%s", intext);
953 print_utf8 (ascii2greek_small[test_char]);
962 print_utf8 (ascii2coptic[test_char] + 1);
963 if (intext[1] ==
'\\')
967 test_char = intext[0];
973 if (test_char ==
'k' || test_char ==
'm' || test_char ==
'n' ||
974 test_char ==
'p' || test_char ==
'T') {
975 letter_form = yytext[1];
976 if (letter_form ==
'2') {
994 fprintf (yyout,
"%s", intext);
1003 switch (test_char) {
1020 fprintf (yyout,
"%s", intext);
1026 print_utf8 (ascii2hebrew[test_char]);
1030 fprintf (yyout,
"%s", intext);
1045print_letter (uint32_t latin, uint32_t greek,
1046 uint32_t coptic, uint32_t hebrew)
1049 switch (lang_type) {
1057 print_utf8 (coptic);
1060 print_utf8 (hebrew);
1075print_utf8 (uint32_t codept)
1082 int bin_digits (uint32_t);
1089 if (codept <= 0x10FFFF) {
1090 bin_length = bin_digits (codept);
1091 if (bin_length < 8) {
1093 utf8_bytes [0] = codept;
1095 else if (bin_length < 12) {
1097 utf8_bytes [0] = 0xC0 | ((codept >> 6) & 0x1F);
1098 utf8_bytes [1] = 0x80 | ( codept & 0x3F);
1100 else if (bin_length < 17) {
1102 utf8_bytes [0] = 0xE0 | ((codept >> 12) & 0x0F);
1103 utf8_bytes [1] = 0x80 | ((codept >> 6) & 0x3F);
1104 utf8_bytes [2] = 0x80 | ( codept & 0x3F);
1106 else if (bin_length < 22) {
1108 utf8_bytes [0] = 0xF0 | ((codept >> 18) & 0x07);
1109 utf8_bytes [1] = 0x80 | ((codept >> 12) & 0x3F);
1110 utf8_bytes [2] = 0x80 | ((codept >> 6) & 0x3F);
1111 utf8_bytes [3] = 0x80 | ( codept & 0x3F);
1115 "Internal error forming UTF-8 in print_utf8() for U+%04X\n",
1119 for (i = 0; i < byte_length; i++) fputc (utf8_bytes [i], yyout);
1123 "print_utf8() called with illegal Unicode code point U+%06X\n",
1135bin_digits (uint32_t itest)
1142 while ( (i != 0) && ((itest & i) == 0) ) {
#define LANG_HEBREW
Define for Hebrew output (unused).
#define LANG_GREEK
Define for Greek output (unused).
#define LANG_LATIN
Define for Latin output (unused).
#define LANG_COPTIC
Define for Coptic output (unused).