Sequoyah 1.0
Convert between Cherokee and ASCII transliteration
sequoyah.c
1
2#line 2 "<stdout>"
3
4#define YY_INT_ALIGNED short int
5
6/* A lexical scanner generated by flex */
7
8#define FLEX_SCANNER
9#define YY_FLEX_MAJOR_VERSION 2
10#define YY_FLEX_MINOR_VERSION 6
11#define YY_FLEX_SUBMINOR_VERSION 4
12#if YY_FLEX_SUBMINOR_VERSION > 0
13#define FLEX_BETA
14#endif
15
16/* First, we deal with platform-specific or compiler-specific issues. */
17
18/* begin standard C headers. */
19#include <stdio.h>
20#include <string.h>
21#include <errno.h>
22#include <stdlib.h>
23
24/* end standard C headers. */
25
26/* flex integer type definitions */
27
28#ifndef FLEXINT_H
29#define FLEXINT_H
30
31/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
37 */
38#ifndef __STDC_LIMIT_MACROS
39#define __STDC_LIMIT_MACROS 1
40#endif
41
42#include <inttypes.h>
43typedef int8_t flex_int8_t;
44typedef uint8_t flex_uint8_t;
45typedef int16_t flex_int16_t;
46typedef uint16_t flex_uint16_t;
47typedef int32_t flex_int32_t;
48typedef uint32_t flex_uint32_t;
49typedef uint64_t flex_uint64_t;
50#else
51typedef signed char flex_int8_t;
52typedef short int flex_int16_t;
53typedef int flex_int32_t;
54typedef unsigned char flex_uint8_t;
55typedef unsigned short int flex_uint16_t;
56typedef unsigned int flex_uint32_t;
57
58/* Limits of integral types. */
59#ifndef INT8_MIN
60#define INT8_MIN (-128)
61#endif
62#ifndef INT16_MIN
63#define INT16_MIN (-32767-1)
64#endif
65#ifndef INT32_MIN
66#define INT32_MIN (-2147483647-1)
67#endif
68#ifndef INT8_MAX
69#define INT8_MAX (127)
70#endif
71#ifndef INT16_MAX
72#define INT16_MAX (32767)
73#endif
74#ifndef INT32_MAX
75#define INT32_MAX (2147483647)
76#endif
77#ifndef UINT8_MAX
78#define UINT8_MAX (255U)
79#endif
80#ifndef UINT16_MAX
81#define UINT16_MAX (65535U)
82#endif
83#ifndef UINT32_MAX
84#define UINT32_MAX (4294967295U)
85#endif
86
87#ifndef SIZE_MAX
88#define SIZE_MAX (~(size_t)0)
89#endif
90
91#endif /* ! C99 */
92
93#endif /* ! FLEXINT_H */
94
95/* begin standard C++ headers. */
96
97/* TODO: this is always defined, so inline it */
98#define yyconst const
99
100#if defined(__GNUC__) && __GNUC__ >= 3
101#define yynoreturn __attribute__((__noreturn__))
102#else
103#define yynoreturn
104#endif
105
106/* Returned upon end-of-file. */
107#define YY_NULL 0
108
109/* Promotes a possibly negative, possibly signed char to an
110 * integer in range [0..255] for use as an array index.
111 */
112#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
113
114/* Enter a start condition. This macro really ought to take a parameter,
115 * but we do it the disgusting crufty way forced on us by the ()-less
116 * definition of BEGIN.
117 */
118#define BEGIN (yy_start) = 1 + 2 *
119/* Translate the current start state into a value that can be later handed
120 * to BEGIN to return to the state. The YYSTATE alias is for lex
121 * compatibility.
122 */
123#define YY_START (((yy_start) - 1) / 2)
124#define YYSTATE YY_START
125/* Action number for EOF rule of a given start state. */
126#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
127/* Special action meaning "start processing a new file". */
128#define YY_NEW_FILE yyrestart( yyin )
129#define YY_END_OF_BUFFER_CHAR 0
130
131/* Size of default input buffer. */
132#ifndef YY_BUF_SIZE
133#ifdef __ia64__
134/* On IA-64, the buffer size is 16k, not 8k.
135 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
136 * Ditto for the __ia64__ case accordingly.
137 */
138#define YY_BUF_SIZE 32768
139#else
140#define YY_BUF_SIZE 16384
141#endif /* __ia64__ */
142#endif
143
144/* The state buf must be large enough to hold one state per character in the main buffer.
145 */
146#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
147
148#ifndef YY_TYPEDEF_YY_BUFFER_STATE
149#define YY_TYPEDEF_YY_BUFFER_STATE
150typedef struct yy_buffer_state *YY_BUFFER_STATE;
151#endif
152
153#ifndef YY_TYPEDEF_YY_SIZE_T
154#define YY_TYPEDEF_YY_SIZE_T
155typedef size_t yy_size_t;
156#endif
157
158extern yy_size_t yyleng;
159
160extern FILE *yyin, *yyout;
161
162#define EOB_ACT_CONTINUE_SCAN 0
163#define EOB_ACT_END_OF_FILE 1
164#define EOB_ACT_LAST_MATCH 2
165
166 #define YY_LESS_LINENO(n)
167 #define YY_LINENO_REWIND_TO(ptr)
168
169/* Return all but the first "n" matched characters back to the input stream. */
170#define yyless(n) \
171 do \
172 { \
173 /* Undo effects of setting up yytext. */ \
174 int yyless_macro_arg = (n); \
175 YY_LESS_LINENO(yyless_macro_arg);\
176 *yy_cp = (yy_hold_char); \
177 YY_RESTORE_YY_MORE_OFFSET \
178 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
179 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
180 } \
181 while ( 0 )
182#define unput(c) yyunput( c, (yytext_ptr) )
183
184#ifndef YY_STRUCT_YY_BUFFER_STATE
185#define YY_STRUCT_YY_BUFFER_STATE
187 {
188 FILE *yy_input_file;
189
190 char *yy_ch_buf; /* input buffer */
191 char *yy_buf_pos; /* current position in input buffer */
192
193 /* Size of input buffer in bytes, not including room for EOB
194 * characters.
195 */
196 int yy_buf_size;
197
198 /* Number of characters read into yy_ch_buf, not including EOB
199 * characters.
200 */
201 yy_size_t yy_n_chars;
202
203 /* Whether we "own" the buffer - i.e., we know we created it,
204 * and can realloc() it to grow it, and should free() it to
205 * delete it.
206 */
207 int yy_is_our_buffer;
208
209 /* Whether this is an "interactive" input source; if so, and
210 * if we're using stdio for input, then we want to use getc()
211 * instead of fread(), to make sure we stop fetching input after
212 * each newline.
213 */
214 int yy_is_interactive;
215
216 /* Whether we're considered to be at the beginning of a line.
217 * If so, '^' rules will be active on the next match, otherwise
218 * not.
219 */
220 int yy_at_bol;
221
225 /* Whether to try to fill the input buffer when we reach the
226 * end of it.
227 */
228 int yy_fill_buffer;
229
230 int yy_buffer_status;
231
232#define YY_BUFFER_NEW 0
233#define YY_BUFFER_NORMAL 1
234 /* When an EOF's been seen but there's still some text to process
235 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
236 * shouldn't try reading from the input source any more. We might
237 * still have a bunch of tokens to match, though, because of
238 * possible backing-up.
239 *
240 * When we actually see the EOF, we change the status to "new"
241 * (via yyrestart()), so that the user can continue scanning by
242 * just pointing yyin at a new input file.
243 */
244#define YY_BUFFER_EOF_PENDING 2
245
246 };
247#endif /* !YY_STRUCT_YY_BUFFER_STATE */
248
249/* Stack of input buffers. */
250static size_t yy_buffer_stack_top = 0;
251static size_t yy_buffer_stack_max = 0;
252static YY_BUFFER_STATE * yy_buffer_stack = NULL;
254/* We provide macros for accessing buffer states in case in the
255 * future we want to put the buffer states in a more general
256 * "scanner state".
257 *
258 * Returns the top of the stack, or NULL.
259 */
260#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
261 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
262 : NULL)
263/* Same as previous macro, but useful when we know that the buffer stack is not
264 * NULL or when we need an lvalue. For internal use only.
265 */
266#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
267
268/* yy_hold_char holds the character lost when yytext is formed. */
269static char yy_hold_char;
270static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
271yy_size_t yyleng;
272
273/* Points to current character in buffer. */
274static char *yy_c_buf_p = NULL;
275static int yy_init = 0; /* whether we need to initialize */
276static int yy_start = 0; /* start state number */
277
278/* Flag which is used to allow yywrap()'s to do buffer switches
279 * instead of setting up a fresh yyin. A bit of a hack ...
280 */
281static int yy_did_buffer_switch_on_eof;
282
283void yyrestart ( FILE *input_file );
284void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
285YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
286void yy_delete_buffer ( YY_BUFFER_STATE b );
287void yy_flush_buffer ( YY_BUFFER_STATE b );
288void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
289void yypop_buffer_state ( void );
290
291static void yyensure_buffer_stack ( void );
292static void yy_load_buffer_state ( void );
293static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
294#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
295
296YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
297YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
298YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, yy_size_t len );
299
300void *yyalloc ( yy_size_t );
301void *yyrealloc ( void *, yy_size_t );
302void yyfree ( void * );
303
304#define yy_new_buffer yy_create_buffer
305#define yy_set_interactive(is_interactive) \
306 { \
307 if ( ! YY_CURRENT_BUFFER ){ \
308 yyensure_buffer_stack (); \
309 YY_CURRENT_BUFFER_LVALUE = \
310 yy_create_buffer( yyin, YY_BUF_SIZE ); \
311 } \
312 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
313 }
314#define yy_set_bol(at_bol) \
315 { \
316 if ( ! YY_CURRENT_BUFFER ){\
317 yyensure_buffer_stack (); \
318 YY_CURRENT_BUFFER_LVALUE = \
319 yy_create_buffer( yyin, YY_BUF_SIZE ); \
320 } \
321 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
322 }
323#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
324
325/* Begin user sect3 */
326
327#define yywrap() (/*CONSTCOND*/1)
328#define YY_SKIP_YYWRAP
329typedef flex_uint8_t YY_CHAR;
330
331FILE *yyin = NULL, *yyout = NULL;
332
333typedef int yy_state_type;
334
335extern int yylineno;
336int yylineno = 1;
337
338extern char *yytext;
339#ifdef yytext_ptr
340#undef yytext_ptr
341#endif
342#define yytext_ptr yytext
343
344static yy_state_type yy_get_previous_state ( void );
345static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
346static int yy_get_next_buffer ( void );
347static void yynoreturn yy_fatal_error ( const char* msg );
348
349/* Done after the current pattern has been matched and before the
350 * corresponding action - sets up yytext.
351 */
352#define YY_DO_BEFORE_ACTION \
353 (yytext_ptr) = yy_bp; \
354 yyleng = (yy_size_t) (yy_cp - yy_bp); \
355 (yy_hold_char) = *yy_cp; \
356 *yy_cp = '\0'; \
357 (yy_c_buf_p) = yy_cp;
358#define YY_NUM_RULES 425
359#define YY_END_OF_BUFFER 426
360/* This struct is not used in this scanner,
361 but its presence is necessary. */
363 {
364 flex_int32_t yy_verify;
365 flex_int32_t yy_nxt;
366 };
367static const flex_int16_t yy_accept[475] =
368 { 0,
369 0, 0, 426, 425, 2, 425, 3, 425, 425, 4,
370 425, 425, 425, 425, 5, 425, 86, 425, 6, 7,
371 425, 425, 173, 425, 174, 425, 425, 175, 425, 425,
372 425, 425, 176, 425, 218, 425, 177, 178, 425, 425,
373 425, 425, 425, 97, 101, 105, 0, 109, 111, 113,
374 98, 102, 106, 0, 110, 112, 114, 8, 12, 14,
375 16, 18, 20, 9, 13, 15, 17, 19, 21, 22,
376 24, 26, 0, 28, 30, 32, 23, 25, 27, 0,
377 29, 31, 33, 10, 11, 34, 36, 38, 40, 42,
378 44, 35, 37, 39, 41, 43, 45, 46, 48, 50,
379
380 52, 54, 165, 47, 49, 51, 53, 55, 166, 56,
381 62, 64, 66, 68, 70, 57, 63, 65, 67, 69,
382 71, 0, 0, 84, 87, 89, 91, 93, 95, 85,
383 88, 90, 92, 94, 96, 99, 103, 107, 0, 0,
384 100, 104, 108, 0, 0, 141, 143, 145, 147, 149,
385 151, 142, 144, 146, 148, 150, 152, 153, 155, 157,
386 159, 161, 163, 154, 156, 158, 160, 162, 164, 224,
387 226, 228, 0, 230, 231, 232, 179, 181, 182, 183,
388 184, 185, 186, 187, 188, 0, 189, 190, 191, 180,
389 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
390
391 202, 172, 203, 206, 207, 208, 209, 210, 0, 217,
392 219, 220, 221, 222, 223, 225, 227, 229, 0, 0,
393 246, 247, 248, 249, 250, 251, 252, 167, 168, 169,
394 170, 171, 0, 1, 0, 0, 0, 0, 115, 116,
395 58, 59, 60, 61, 72, 74, 76, 78, 80, 82,
396 73, 75, 77, 79, 81, 83, 117, 119, 121, 123,
397 125, 127, 129, 131, 133, 135, 137, 139, 118, 120,
398 122, 124, 126, 128, 130, 132, 134, 136, 138, 140,
399 233, 204, 205, 211, 212, 213, 214, 215, 216, 234,
400 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
401
402 245, 253, 254, 255, 256, 257, 258, 259, 260, 261,
403 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
404 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
405 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
406 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
407 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
408 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
409 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
410 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
411 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
412
413 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
414 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
415 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
416 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
417 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
418 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
419 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
420 422, 423, 424, 0
421 } ;
422
423static const YY_CHAR yy_ec[256] =
424 { 0,
425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
430 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
431 1, 1, 1, 1, 2, 1, 1, 3, 4, 1,
432 5, 6, 7, 1, 8, 9, 10, 11, 12, 1,
433 13, 1, 14, 15, 16, 17, 18, 1, 19, 1,
434 1, 1, 1, 1, 1, 1, 20, 1, 1, 21,
435
436 22, 1, 23, 24, 25, 1, 26, 27, 28, 29,
437 30, 1, 31, 1, 32, 33, 34, 35, 36, 1,
438 37, 1, 38, 1, 39, 1, 1, 40, 41, 42,
439 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
440 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
441 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
442 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
443 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
444 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
445 103, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
449 1, 1, 1, 1, 104, 1, 1, 1, 1, 1,
450 1, 1, 1, 105, 1, 1, 1, 1, 1, 1,
451 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
452 1, 1, 1, 1, 1
453 } ;
454
455static const YY_CHAR yy_meta[106] =
456 { 0,
457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
458 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
465 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
466 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
467
468 1, 1, 1, 1, 1
469 } ;
470
471static const flex_int16_t yy_base[477] =
472 { 0,
473 0, 104, 85, 609, 609, 37, 609, 61, 141, 609,
474 38, 152, 176, 200, 609, 26, 211, 235, 609, 609,
475 236, 261, 609, 67, 609, 254, 272, 609, 64, 278,
476 289, 295, 609, 48, 306, 23, 609, 609, 312, 323,
477 41, 15, 13, 609, 609, 609, 77, 609, 609, 609,
478 609, 609, 609, 56, 609, 609, 609, 609, 609, 609,
479 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
480 609, 609, 73, 609, 609, 609, 609, 609, 609, 54,
481 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
482 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
483
484 609, 609, 609, 609, 609, 609, 609, 609, 609, 60,
485 609, 609, 609, 609, 609, 37, 609, 609, 609, 609,
486 609, 347, 340, 609, 609, 609, 609, 609, 609, 609,
487 609, 609, 609, 609, 609, 609, 609, 609, 364, 375,
488 609, 609, 609, 363, 374, 609, 609, 609, 609, 609,
489 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
490 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
491 609, 609, 36, 609, 609, 609, 609, 609, 609, 609,
492 609, 609, 609, 609, 609, 32, 609, 609, 609, 609,
493 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
494
495 609, 609, 27, 609, 609, 609, 609, 609, 380, 609,
496 609, 609, 609, 609, 609, 609, 609, 609, 391, 397,
497 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
498 609, 609, 8, 609, 361, 425, 439, 503, 609, 609,
499 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
500 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
501 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
502 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
503 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
504 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
505
506 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
507 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
508 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
509 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
510 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
511 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
512 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
513 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
514 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
515 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
516
517 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
518 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
519 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
520 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
521 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
522 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
523 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
524 609, 609, 609, 609, 606, 0
525 } ;
526
527static const flex_int16_t yy_def[477] =
528 { 0,
529 475, 475, 474, 474, 474, 474, 474, 474, 474, 474,
530 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
531 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
532 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
533 476, 474, 474, 474, 474, 474, 474, 474, 474, 474,
534 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
535 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
536 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
537 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
538 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
539
540 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
541 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
542 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
543 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
544 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
545 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
546 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
547 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
548 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
549 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
550
551 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
552 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
553 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
554 474, 474, 476, 474, 474, 474, 474, 474, 474, 474,
555 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
556 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
557 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
558 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
559 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
560 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
561
562 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
563 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
564 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
565 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
566 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
567 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
568 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
569 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
570 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
571 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
572
573 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
574 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
575 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
576 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
577 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
578 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
579 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
580 474, 474, 474, 0, 474, 474
581 } ;
582
583static const flex_int16_t yy_nxt[715] =
584 { 0,
585 233, 5, 6, 7, 8, 9, 10, 11, 12, 13,
586 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
587 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
588 34, 35, 36, 37, 38, 39, 40, 41, 44, 84,
589 45, 122, 216, 46, 217, 47, 234, 218, 48, 219,
590 283, 282, 49, 50, 220, 281, 51, 85, 52, 123,
591 244, 53, 58, 54, 59, 243, 55, 60, 235, 236,
592 56, 57, 61, 242, 241, 240, 62, 63, 239, 234,
593 64, 209, 65, 190, 474, 66, 170, 474, 171, 474,
594 67, 172, 474, 173, 68, 69, 174, 237, 238, 474,
595
596 175, 176, 474, 42, 43, 5, 6, 7, 8, 9,
597 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
598 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
599 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
600 40, 41, 70, 474, 71, 474, 474, 72, 474, 474,
601 474, 73, 74, 86, 474, 87, 75, 76, 88, 474,
602 77, 474, 78, 89, 474, 79, 474, 90, 91, 80,
603 81, 92, 474, 93, 82, 83, 94, 98, 474, 99,
604 474, 95, 100, 474, 474, 96, 97, 101, 474, 474,
605 474, 102, 103, 474, 474, 104, 474, 105, 474, 474,
606
607 106, 110, 474, 111, 474, 107, 112, 42, 43, 108,
608 109, 113, 124, 474, 125, 114, 115, 126, 474, 116,
609 474, 117, 127, 474, 118, 474, 128, 129, 474, 119,
610 130, 474, 131, 120, 121, 132, 136, 146, 137, 147,
611 133, 138, 148, 139, 134, 135, 474, 149, 140, 474,
612 474, 150, 151, 474, 141, 152, 142, 153, 474, 143,
613 154, 144, 158, 474, 159, 155, 145, 160, 474, 156,
614 157, 474, 161, 177, 474, 178, 162, 163, 179, 474,
615 164, 474, 165, 180, 474, 166, 474, 181, 182, 474,
616 167, 183, 474, 184, 168, 169, 185, 191, 474, 192,
617
618 186, 187, 193, 474, 474, 188, 189, 194, 197, 474,
619 198, 195, 196, 199, 203, 474, 204, 474, 200, 205,
620 474, 474, 201, 202, 206, 210, 474, 211, 207, 208,
621 212, 221, 474, 222, 474, 213, 223, 474, 474, 214,
622 215, 224, 227, 474, 228, 225, 226, 229, 245, 474,
623 246, 474, 230, 247, 474, 474, 231, 232, 248, 251,
624 474, 252, 249, 250, 253, 257, 474, 258, 474, 254,
625 259, 474, 474, 255, 256, 260, 263, 474, 264, 261,
626 262, 265, 269, 474, 270, 474, 266, 271, 474, 474,
627 267, 268, 272, 275, 474, 276, 273, 274, 277, 284,
628
629 474, 285, 474, 278, 286, 474, 474, 279, 280, 287,
630 290, 474, 291, 288, 289, 292, 296, 474, 297, 474,
631 293, 298, 474, 474, 294, 295, 299, 474, 474, 474,
632 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
633 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
634 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
635 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
636 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
637 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
638 360, 361, 362, 363, 364, 365, 366, 367, 368, 369,
639
640 370, 371, 372, 373, 374, 375, 376, 377, 378, 379,
641 380, 381, 382, 383, 384, 385, 386, 387, 474, 474,
642 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
643 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
644 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
645 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
646 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
647 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
648 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
649 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
650
651 468, 469, 470, 471, 472, 473, 4, 4, 3, 474,
652 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
653 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
654 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
655 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
656 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
657 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
658 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
659 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
660 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
661
662 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
663 474, 474, 474, 474
664 } ;
665
666static const flex_int16_t yy_chk[715] =
667 { 0,
668 476, 1, 1, 1, 1, 1, 1, 1, 1, 1,
669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
670 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
671 1, 1, 1, 1, 1, 1, 1, 1, 6, 11,
672 6, 16, 36, 6, 36, 6, 233, 36, 6, 36,
673 203, 186, 6, 6, 36, 173, 6, 11, 6, 16,
674 116, 6, 8, 6, 8, 110, 6, 8, 42, 42,
675 6, 6, 8, 80, 73, 54, 8, 8, 47, 41,
676 8, 34, 8, 29, 3, 8, 24, 0, 24, 0,
677 8, 24, 0, 24, 8, 8, 24, 43, 43, 0,
678
679 24, 24, 0, 1, 1, 2, 2, 2, 2, 2,
680 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
681 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683 2, 2, 9, 0, 9, 0, 0, 9, 0, 0,
684 0, 9, 9, 12, 0, 12, 9, 9, 12, 0,
685 9, 0, 9, 12, 0, 9, 0, 12, 12, 9,
686 9, 12, 0, 12, 9, 9, 12, 13, 0, 13,
687 0, 12, 13, 0, 0, 12, 12, 13, 0, 0,
688 0, 13, 13, 0, 0, 13, 0, 13, 0, 0,
689
690 13, 14, 0, 14, 0, 13, 14, 2, 2, 13,
691 13, 14, 17, 0, 17, 14, 14, 17, 0, 14,
692 0, 14, 17, 0, 14, 0, 17, 17, 0, 14,
693 17, 0, 17, 14, 14, 17, 18, 21, 18, 21,
694 17, 18, 21, 18, 17, 17, 0, 21, 18, 0,
695 0, 21, 21, 0, 18, 21, 18, 21, 0, 18,
696 21, 18, 22, 0, 22, 21, 18, 22, 0, 21,
697 21, 0, 22, 26, 0, 26, 22, 22, 26, 0,
698 22, 0, 22, 26, 0, 22, 0, 26, 26, 0,
699 22, 27, 0, 27, 22, 22, 27, 30, 0, 30,
700
701 27, 27, 30, 0, 0, 27, 27, 30, 31, 0,
702 31, 30, 30, 31, 32, 0, 32, 0, 31, 32,
703 0, 0, 31, 31, 32, 35, 0, 35, 32, 32,
704 35, 39, 0, 39, 0, 35, 39, 0, 0, 35,
705 35, 39, 40, 0, 40, 39, 39, 40, 122, 0,
706 122, 0, 40, 122, 0, 0, 40, 40, 122, 123,
707 0, 123, 122, 122, 123, 139, 0, 139, 0, 123,
708 139, 0, 0, 123, 123, 139, 140, 0, 140, 139,
709 139, 140, 144, 0, 144, 0, 140, 144, 0, 0,
710 140, 140, 144, 145, 0, 145, 144, 144, 145, 209,
711
712 0, 209, 0, 145, 209, 0, 0, 145, 145, 209,
713 219, 0, 219, 209, 209, 219, 220, 0, 220, 0,
714 219, 220, 0, 0, 219, 219, 220, 0, 0, 0,
715 220, 220, 235, 235, 235, 235, 235, 235, 235, 235,
716 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
717 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
718 235, 235, 235, 235, 236, 236, 236, 236, 236, 236,
719 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
720 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
721 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
722
723 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
724 236, 236, 236, 236, 236, 236, 236, 236, 0, 0,
725 236, 236, 236, 236, 236, 236, 237, 237, 237, 237,
726 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
727 237, 237, 238, 238, 238, 238, 238, 238, 238, 238,
728 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
729 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
730 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
731 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
732 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
733
734 238, 238, 238, 238, 238, 238, 475, 475, 474, 474,
735 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
736 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
737 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
738 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
739 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
740 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
741 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
742 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
743 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
744
745 474, 474, 474, 474, 474, 474, 474, 474, 474, 474,
746 474, 474, 474, 474
747 } ;
748
749static yy_state_type yy_last_accepting_state;
750static char *yy_last_accepting_cpos;
751
752extern int yy_flex_debug;
753int yy_flex_debug = 0;
754
755/* The intent behind this definition is that it'll catch
756 * any uses of REJECT which flex missed.
757 */
758#define REJECT reject_used_but_not_detected
759#define yymore() yymore_used_but_not_detected
760#define YY_MORE_ADJ 0
761#define YY_RESTORE_YY_MORE_OFFSET
762char *yytext;
763#line 1 "sequoyah.l"
782/*
783 LICENSE:
784
785 This program is free software: you can redistribute it and/or modify
786 it under the terms of the GNU General Public License as published by
787 the Free Software Foundation, either version 2 of the License, or
788 (at your option) any later version.
789
790 This program is distributed in the hope that it will be useful,
791 but WITHOUT ANY WARRANTY; without even the implied warranty of
792 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
793 GNU General Public License for more details.
794
795 You should have received a copy of the GNU General Public License
796 along with this program. If not, see <http://www.gnu.org/licenses/>.
797*/
798#line 37 "sequoyah.l"
799#include <stdio.h>
800#include <unistd.h>
801#include <ctype.h>
802
803#include "config.h"
804
805#define YY_NO_INPUT
806#define YY_NO_UNPUT
807
808/*
809 The rest of this section contains several definitions for compatibility
810 with the Unibetacode package, also by Paul Hardy. However, the two
811 packages are not currently merged in any way.
812*/
813/*
814 Definitions for Beta Code encoding.
815*/
816#define LANG_GREEK 0x0000
817#define LANG_LATIN 0x1000
818#define LANG_COPTIC 0x2000
819#define LANG_ARABIC 0x4000 /* Defined by Thesaurus Linguae Graecae but not in their corpus */
820#define LANG_HEBREW 0x8000
821
822#define LANG_CHEROKEE 0x10000
823
824int bom_out = 0; /* =1 to begin UTF-8 output with a UTF-8 Byte Order Mark */
825int lang_type = LANG_CHEROKEE; /* for selecting additional languages */
826
827int doubleq_style=6; /* style for double quotation marks (Greek double quotes) */
828int singleq_style=7; /* style for single quotation marks (Greek single quotes) */
829/*
830 State for quotation type 0 through 9, inclusive; Beta
831 Code only uses quotation types 1 through 8, inclusive.
832
833 0 = open quote not active
834 1 = open quote active, so next encounter will close this quote
835*/
836int quote_state[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
837
838/* Unicode character for an opening quote for styles 0 through 9 */
839int quote_open[10] = {
840 0x201C, /* 0 */ /* LANG_LATIN: U+201C LEFT DOUBLE QUOTATION MARK */
841 0x201E, /* 1 */ /* LANG_HEBREW: U+201E DOUBLE LOW-9 QUOTATION MARK */
842 0x201E, /* 2 */ /* U+201E DOUBLE LOW-9 QUOTATION MARK (not in TLG spec) */
843 0x2018, /* 3 */ /* LANG_LATIN: U+2018 LEFT SINGLE QUOTATION MARK */
844 /* 0x02BB 3 */ /* LANG_LATIN: U+02BB Alternative - MODIFIER LETTER TURNED COMMA */
845 0x201A, /* 4 */ /* LANG_HEBREW: U+201A SINGLE LOW-9 QUOTATION MARK */
846 0x2018, /* 5 */ /* U+2018 LEFT SINGLE QUOTATION MARK (not in TLG spec) */
847 0x00AB, /* 6 */ /* LANG_GREEK:
848 LANG_COPTIC: U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
849 0x02BB, /* 7 */ /* LANG_GREEK:
850 LANG_COPTIC: U+02BB MODIFIER LETTER TURNED COMMA
851 Alternative - U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
852 */
853 0x201C, /* 8 */ /* U+201C LEFT DOUBLE QUOTATION MARK (not implemented) */
854 0x0022 /* 9 */ /* U+0022 QUOTATION MARK (not implemented) */
855};
856
857/* Unicode character for a closing quote for styles 0 through 9 */
858int quote_close[10] = {
859 0x201D, /* 0 */ /* LANG_LATIN: U+201D RIGHT DOUBLE QUOTATION MARK */
860 0x201E, /* 1 */ /* LANG_HEBREW: U+201E DOUBLE LOW-9 QUOTATION MARK */
861 0x201C, /* 2 */ /* U+201C LEFT DOUBLE QUOTATION MARK (not paired in TLG spec) */
862 0x2019, /* 3 */ /* LANG_LATIN: U+2019 RIGHT SINGLE QUOTATION MARK */
863 /* 0x02BC 3 */ /* LANG_LATIN: U+02BC Alternative - MODIFIER LETTER APOSTROPHE */
864 0x201A, /* 4 */ /* LANG_HEBREW: U+201A SINGLE LOW-9 QUOTATION MARK */
865 0x201B, /* 5 */ /* U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK (not paired in TLG spec) */
866 0x00BB, /* 6 */ /* LANG_GREEK:
867 LANG_COPTIC: U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
868 0x02BC, /* 7 */ /* LANG_GREEK:
869 LANG_COPTIC: U+02BC MODIFIER LETTER APOSTROPHE
870 Alternative - U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
871 */
872 0x201E, /* 8 */ /* U+201E DOUBLE LOW-9 QUOTATION MARK (not implemented) */
873 0x0022 /* 9 */ /* U+0022 QUOTATION MARK (not implemented) */
874};
875
876
877void print_ascii (char *); /* print a string that's inside '{'...'}' pair */
878void print_unicode (char *); /* print a Unicode code point in the form "\uXXXX" */
879void print_quote (char *); /* print open or close quoation mark styles */
880void print_utf8 (uint32_t); /* Print a Unicode code point in UTF-8 */
881void print_capital (char *); /* Print Greek, Hebrew, or Coptic capital letter */
882void print_small (char *); /* Print Greek, Hebrew, or Coptic small letter */
883void print_pattern (char *, uint32_t); /* Print yytext in Latin mode or print a Unicode code point in UTF-8 */
884/*
885 Print a letter in one of four language modes:
886
887 Latin, Greek, Coptic, and Hebrew, respectively.
888
889 Currently this is only needed to handle 'S' and 's'
890 because of Greek context-dependent middle and final sigma.
891*/
892void print_letter (uint32_t, uint32_t, uint32_t, uint32_t);
893
894
895uint32_t ascii2greek_capital[128]={128*0};
896uint32_t ascii2greek_small[128]={128*0};
897uint32_t ascii2coptic[128]={128*0};
898uint32_t ascii2hebrew[128]={128*0};
899
900#line 900 "<stdout>"
901#line 901 "<stdout>"
902
903#define INITIAL 0
904
905#ifndef YY_NO_UNISTD_H
906/* Special case for "unistd.h", since it is non-ANSI. We include it way
907 * down here because we want the user's section 1 to have been scanned first.
908 * The user has a chance to override it with an option.
909 */
910#include <unistd.h>
911#endif
912
913#ifndef YY_EXTRA_TYPE
914#define YY_EXTRA_TYPE void *
915#endif
916
917static int yy_init_globals ( void );
918
919/* Accessor methods to globals.
920 These are made visible to non-reentrant scanners for convenience. */
921
922int yylex_destroy ( void );
923
924int yyget_debug ( void );
925
926void yyset_debug ( int debug_flag );
927
928YY_EXTRA_TYPE yyget_extra ( void );
929
930void yyset_extra ( YY_EXTRA_TYPE user_defined );
931
932FILE *yyget_in ( void );
933
934void yyset_in ( FILE * _in_str );
935
936FILE *yyget_out ( void );
937
938void yyset_out ( FILE * _out_str );
939
940 yy_size_t yyget_leng ( void );
941
942char *yyget_text ( void );
943
944int yyget_lineno ( void );
945
946void yyset_lineno ( int _line_number );
947
948/* Macros after this point can all be overridden by user definitions in
949 * section 1.
950 */
951
952#ifndef YY_SKIP_YYWRAP
953#ifdef __cplusplus
954extern "C" int yywrap ( void );
955#else
956extern int yywrap ( void );
957#endif
958#endif
959
960#ifndef YY_NO_UNPUT
961
962 static void yyunput ( int c, char *buf_ptr );
963
964#endif
965
966#ifndef yytext_ptr
967static void yy_flex_strncpy ( char *, const char *, int );
968#endif
969
970#ifdef YY_NEED_STRLEN
971static int yy_flex_strlen ( const char * );
972#endif
973
974#ifndef YY_NO_INPUT
975#ifdef __cplusplus
976static int yyinput ( void );
977#else
978static int input ( void );
979#endif
980
981#endif
982
983/* Amount of stuff to slurp up with each read. */
984#ifndef YY_READ_BUF_SIZE
985#ifdef __ia64__
986/* On IA-64, the buffer size is 16k, not 8k */
987#define YY_READ_BUF_SIZE 16384
988#else
989#define YY_READ_BUF_SIZE 8192
990#endif /* __ia64__ */
991#endif
992
993/* Copy whatever the last rule matched to the standard output. */
994#ifndef ECHO
995/* This used to be an fputs(), but since the string might contain NUL's,
996 * we now use fwrite().
997 */
998#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
999#endif
1000
1001/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1002 * is returned in "result".
1003 */
1004#ifndef YY_INPUT
1005#define YY_INPUT(buf,result,max_size) \
1006 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1007 { \
1008 int c = '*'; \
1009 yy_size_t n; \
1010 for ( n = 0; n < max_size && \
1011 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1012 buf[n] = (char) c; \
1013 if ( c == '\n' ) \
1014 buf[n++] = (char) c; \
1015 if ( c == EOF && ferror( yyin ) ) \
1016 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1017 result = n; \
1018 } \
1019 else \
1020 { \
1021 errno=0; \
1022 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1023 { \
1024 if( errno != EINTR) \
1025 { \
1026 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1027 break; \
1028 } \
1029 errno=0; \
1030 clearerr(yyin); \
1031 } \
1032 }\
1033\
1034
1035#endif
1036
1037/* No semi-colon after return; correct usage is to write "yyterminate();" -
1038 * we don't want an extra ';' after the "return" because that will cause
1039 * some compilers to complain about unreachable statements.
1040 */
1041#ifndef yyterminate
1042#define yyterminate() return YY_NULL
1043#endif
1044
1045/* Number of entries by which start-condition stack grows. */
1046#ifndef YY_START_STACK_INCR
1047#define YY_START_STACK_INCR 25
1048#endif
1049
1050/* Report a fatal error. */
1051#ifndef YY_FATAL_ERROR
1052#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1053#endif
1054
1055/* end tables serialization structures and prototypes */
1056
1057/* Default declaration of generated scanner - a define so the user can
1058 * easily add parameters.
1059 */
1060#ifndef YY_DECL
1061#define YY_DECL_IS_OURS 1
1062
1063extern int yylex (void);
1064
1065#define YY_DECL int yylex (void)
1066#endif /* !YY_DECL */
1067
1068/* Code executed at the beginning of each rule, after yytext and yyleng
1069 * have been set up.
1070 */
1071#ifndef YY_USER_ACTION
1072#define YY_USER_ACTION
1073#endif
1074
1075/* Code executed at the end of each rule. */
1076#ifndef YY_BREAK
1077#define YY_BREAK /*LINTED*/break;
1078#endif
1079
1080#define YY_RULE_SETUP \
1081 YY_USER_ACTION
1082
1085YY_DECL
1086{
1087 yy_state_type yy_current_state;
1088 char *yy_cp, *yy_bp;
1089 int yy_act;
1090
1091 if ( !(yy_init) )
1092 {
1093 (yy_init) = 1;
1094
1095#ifdef YY_USER_INIT
1096 YY_USER_INIT;
1097#endif
1098
1099 if ( ! (yy_start) )
1100 (yy_start) = 1; /* first start state */
1101
1102 if ( ! yyin )
1103 yyin = stdin;
1104
1105 if ( ! yyout )
1106 yyout = stdout;
1107
1108 if ( ! YY_CURRENT_BUFFER ) {
1109 yyensure_buffer_stack ();
1110 YY_CURRENT_BUFFER_LVALUE =
1111 yy_create_buffer( yyin, YY_BUF_SIZE );
1112 }
1113
1114 yy_load_buffer_state( );
1115 }
1116
1117 {
1118#line 146 "sequoyah.l"
1119
1120#line 1120 "<stdout>"
1121
1122 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1123 {
1124 yy_cp = (yy_c_buf_p);
1125
1126 /* Support of yytext. */
1127 *yy_cp = (yy_hold_char);
1128
1129 /* yy_bp points to the position in yy_ch_buf of the start of
1130 * the current run.
1131 */
1132 yy_bp = yy_cp;
1133
1134 yy_current_state = (yy_start);
1135yy_match:
1136 do
1137 {
1138 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1139 if ( yy_accept[yy_current_state] )
1140 {
1141 (yy_last_accepting_state) = yy_current_state;
1142 (yy_last_accepting_cpos) = yy_cp;
1143 }
1144 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1145 {
1146 yy_current_state = (int) yy_def[yy_current_state];
1147 if ( yy_current_state >= 475 )
1148 yy_c = yy_meta[yy_c];
1149 }
1150 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1151 ++yy_cp;
1152 }
1153 while ( yy_base[yy_current_state] != 609 );
1154
1155yy_find_action:
1156 yy_act = yy_accept[yy_current_state];
1157 if ( yy_act == 0 )
1158 { /* have to back up */
1159 yy_cp = (yy_last_accepting_cpos);
1160 yy_current_state = (yy_last_accepting_state);
1161 yy_act = yy_accept[yy_current_state];
1162 }
1163
1164 YY_DO_BEFORE_ACTION;
1165
1166do_action: /* This label is used only to access EOF actions. */
1167
1168 switch ( yy_act )
1169 { /* beginning of action switch */
1170 case 0: /* must back up */
1171 /* undo the effects of YY_DO_BEFORE_ACTION */
1172 *yy_cp = (yy_hold_char);
1173 yy_cp = (yy_last_accepting_cpos);
1174 yy_current_state = (yy_last_accepting_state);
1175 goto yy_find_action;
1176
1177case 1:
1178/* rule 1 can match eol */
1179YY_RULE_SETUP
1180#line 147 "sequoyah.l"
1181{ /*
1182 Print escape-delimited string of ASCII and/or
1183 special Unicode symbols of the form "\ux...x"
1184 */
1185 yytext [strlen (yytext) - 1] = '\0';
1186 /* fprintf (yyout, "%s", &yytext[1]); */
1187 print_ascii (&yytext[1]);
1188 }
1189 YY_BREAK
1190/* Convert transliterated ASCII to UTF-8 Cherokee. */
1191case 2:
1192YY_RULE_SETUP
1193#line 157 "sequoyah.l"
1194print_utf8 (0x13A0); /* CHEROKEE LETTER A */
1195 YY_BREAK
1196case 3:
1197YY_RULE_SETUP
1198#line 158 "sequoyah.l"
1199print_utf8 (0x13A1); /* CHEROKEE LETTER E */
1200 YY_BREAK
1201case 4:
1202YY_RULE_SETUP
1203#line 159 "sequoyah.l"
1204print_utf8 (0x13A2); /* CHEROKEE LETTER I */
1205 YY_BREAK
1206case 5:
1207YY_RULE_SETUP
1208#line 160 "sequoyah.l"
1209print_utf8 (0x13A3); /* CHEROKEE LETTER O */
1210 YY_BREAK
1211case 6:
1212YY_RULE_SETUP
1213#line 161 "sequoyah.l"
1214print_utf8 (0x13A4); /* CHEROKEE LETTER U */
1215 YY_BREAK
1216case 7:
1217YY_RULE_SETUP
1218#line 162 "sequoyah.l"
1219print_utf8 (0x13A5); /* CHEROKEE LETTER V */
1220 YY_BREAK
1221case 8:
1222YY_RULE_SETUP
1223#line 163 "sequoyah.l"
1224print_utf8 (0x13A6); /* CHEROKEE LETTER GA */
1225 YY_BREAK
1226case 9:
1227YY_RULE_SETUP
1228#line 164 "sequoyah.l"
1229print_utf8 (0x13A6); /* CHEROKEE LETTER GA */
1230 YY_BREAK
1231case 10:
1232YY_RULE_SETUP
1233#line 165 "sequoyah.l"
1234print_utf8 (0x13A7); /* CHEROKEE LETTER KA */
1235 YY_BREAK
1236case 11:
1237YY_RULE_SETUP
1238#line 166 "sequoyah.l"
1239print_utf8 (0x13A7); /* CHEROKEE LETTER KA */
1240 YY_BREAK
1241case 12:
1242YY_RULE_SETUP
1243#line 167 "sequoyah.l"
1244print_utf8 (0x13A8); /* CHEROKEE LETTER GE */
1245 YY_BREAK
1246case 13:
1247YY_RULE_SETUP
1248#line 168 "sequoyah.l"
1249print_utf8 (0x13A8); /* CHEROKEE LETTER GE */
1250 YY_BREAK
1251case 14:
1252YY_RULE_SETUP
1253#line 169 "sequoyah.l"
1254print_utf8 (0x13A9); /* CHEROKEE LETTER GI */
1255 YY_BREAK
1256case 15:
1257YY_RULE_SETUP
1258#line 170 "sequoyah.l"
1259print_utf8 (0x13A9); /* CHEROKEE LETTER GI */
1260 YY_BREAK
1261case 16:
1262YY_RULE_SETUP
1263#line 171 "sequoyah.l"
1264print_utf8 (0x13AA); /* CHEROKEE LETTER GO */
1265 YY_BREAK
1266case 17:
1267YY_RULE_SETUP
1268#line 172 "sequoyah.l"
1269print_utf8 (0x13AA); /* CHEROKEE LETTER GO */
1270 YY_BREAK
1271case 18:
1272YY_RULE_SETUP
1273#line 173 "sequoyah.l"
1274print_utf8 (0x13AB); /* CHEROKEE LETTER GU */
1275 YY_BREAK
1276case 19:
1277YY_RULE_SETUP
1278#line 174 "sequoyah.l"
1279print_utf8 (0x13AB); /* CHEROKEE LETTER GU */
1280 YY_BREAK
1281case 20:
1282YY_RULE_SETUP
1283#line 175 "sequoyah.l"
1284print_utf8 (0x13AC); /* CHEROKEE LETTER GV */
1285 YY_BREAK
1286case 21:
1287YY_RULE_SETUP
1288#line 176 "sequoyah.l"
1289print_utf8 (0x13AC); /* CHEROKEE LETTER GV */
1290 YY_BREAK
1291case 22:
1292YY_RULE_SETUP
1293#line 177 "sequoyah.l"
1294print_utf8 (0x13AD); /* CHEROKEE LETTER HA */
1295 YY_BREAK
1296case 23:
1297YY_RULE_SETUP
1298#line 178 "sequoyah.l"
1299print_utf8 (0x13AD); /* CHEROKEE LETTER HA */
1300 YY_BREAK
1301case 24:
1302YY_RULE_SETUP
1303#line 179 "sequoyah.l"
1304print_utf8 (0x13AE); /* CHEROKEE LETTER HE */
1305 YY_BREAK
1306case 25:
1307YY_RULE_SETUP
1308#line 180 "sequoyah.l"
1309print_utf8 (0x13AE); /* CHEROKEE LETTER HE */
1310 YY_BREAK
1311case 26:
1312YY_RULE_SETUP
1313#line 181 "sequoyah.l"
1314print_utf8 (0x13AF); /* CHEROKEE LETTER HI */
1315 YY_BREAK
1316case 27:
1317YY_RULE_SETUP
1318#line 182 "sequoyah.l"
1319print_utf8 (0x13AF); /* CHEROKEE LETTER HI */
1320 YY_BREAK
1321case 28:
1322YY_RULE_SETUP
1323#line 183 "sequoyah.l"
1324print_utf8 (0x13B0); /* CHEROKEE LETTER HO */
1325 YY_BREAK
1326case 29:
1327YY_RULE_SETUP
1328#line 184 "sequoyah.l"
1329print_utf8 (0x13B0); /* CHEROKEE LETTER HO */
1330 YY_BREAK
1331case 30:
1332YY_RULE_SETUP
1333#line 185 "sequoyah.l"
1334print_utf8 (0x13B1); /* CHEROKEE LETTER HU */
1335 YY_BREAK
1336case 31:
1337YY_RULE_SETUP
1338#line 186 "sequoyah.l"
1339print_utf8 (0x13B1); /* CHEROKEE LETTER HU */
1340 YY_BREAK
1341case 32:
1342YY_RULE_SETUP
1343#line 187 "sequoyah.l"
1344print_utf8 (0x13B2); /* CHEROKEE LETTER HV */
1345 YY_BREAK
1346case 33:
1347YY_RULE_SETUP
1348#line 188 "sequoyah.l"
1349print_utf8 (0x13B2); /* CHEROKEE LETTER HV */
1350 YY_BREAK
1351case 34:
1352YY_RULE_SETUP
1353#line 189 "sequoyah.l"
1354print_utf8 (0x13B3); /* CHEROKEE LETTER LA */
1355 YY_BREAK
1356case 35:
1357YY_RULE_SETUP
1358#line 190 "sequoyah.l"
1359print_utf8 (0x13B3); /* CHEROKEE LETTER LA */
1360 YY_BREAK
1361case 36:
1362YY_RULE_SETUP
1363#line 191 "sequoyah.l"
1364print_utf8 (0x13B4); /* CHEROKEE LETTER LE */
1365 YY_BREAK
1366case 37:
1367YY_RULE_SETUP
1368#line 192 "sequoyah.l"
1369print_utf8 (0x13B4); /* CHEROKEE LETTER LE */
1370 YY_BREAK
1371case 38:
1372YY_RULE_SETUP
1373#line 193 "sequoyah.l"
1374print_utf8 (0x13B5); /* CHEROKEE LETTER LI */
1375 YY_BREAK
1376case 39:
1377YY_RULE_SETUP
1378#line 194 "sequoyah.l"
1379print_utf8 (0x13B5); /* CHEROKEE LETTER LI */
1380 YY_BREAK
1381case 40:
1382YY_RULE_SETUP
1383#line 195 "sequoyah.l"
1384print_utf8 (0x13B6); /* CHEROKEE LETTER LO */
1385 YY_BREAK
1386case 41:
1387YY_RULE_SETUP
1388#line 196 "sequoyah.l"
1389print_utf8 (0x13B6); /* CHEROKEE LETTER LO */
1390 YY_BREAK
1391case 42:
1392YY_RULE_SETUP
1393#line 197 "sequoyah.l"
1394print_utf8 (0x13B7); /* CHEROKEE LETTER LU */
1395 YY_BREAK
1396case 43:
1397YY_RULE_SETUP
1398#line 198 "sequoyah.l"
1399print_utf8 (0x13B7); /* CHEROKEE LETTER LU */
1400 YY_BREAK
1401case 44:
1402YY_RULE_SETUP
1403#line 199 "sequoyah.l"
1404print_utf8 (0x13B8); /* CHEROKEE LETTER LV */
1405 YY_BREAK
1406case 45:
1407YY_RULE_SETUP
1408#line 200 "sequoyah.l"
1409print_utf8 (0x13B8); /* CHEROKEE LETTER LV */
1410 YY_BREAK
1411case 46:
1412YY_RULE_SETUP
1413#line 201 "sequoyah.l"
1414print_utf8 (0x13B9); /* CHEROKEE LETTER MA */
1415 YY_BREAK
1416case 47:
1417YY_RULE_SETUP
1418#line 202 "sequoyah.l"
1419print_utf8 (0x13B9); /* CHEROKEE LETTER MA */
1420 YY_BREAK
1421case 48:
1422YY_RULE_SETUP
1423#line 203 "sequoyah.l"
1424print_utf8 (0x13BA); /* CHEROKEE LETTER ME */
1425 YY_BREAK
1426case 49:
1427YY_RULE_SETUP
1428#line 204 "sequoyah.l"
1429print_utf8 (0x13BA); /* CHEROKEE LETTER ME */
1430 YY_BREAK
1431case 50:
1432YY_RULE_SETUP
1433#line 205 "sequoyah.l"
1434print_utf8 (0x13BB); /* CHEROKEE LETTER MI */
1435 YY_BREAK
1436case 51:
1437YY_RULE_SETUP
1438#line 206 "sequoyah.l"
1439print_utf8 (0x13BB); /* CHEROKEE LETTER MI */
1440 YY_BREAK
1441case 52:
1442YY_RULE_SETUP
1443#line 207 "sequoyah.l"
1444print_utf8 (0x13BC); /* CHEROKEE LETTER MO */
1445 YY_BREAK
1446case 53:
1447YY_RULE_SETUP
1448#line 208 "sequoyah.l"
1449print_utf8 (0x13BC); /* CHEROKEE LETTER MO */
1450 YY_BREAK
1451case 54:
1452YY_RULE_SETUP
1453#line 209 "sequoyah.l"
1454print_utf8 (0x13BD); /* CHEROKEE LETTER MU */
1455 YY_BREAK
1456case 55:
1457YY_RULE_SETUP
1458#line 210 "sequoyah.l"
1459print_utf8 (0x13BD); /* CHEROKEE LETTER MU */
1460 YY_BREAK
1461case 56:
1462YY_RULE_SETUP
1463#line 211 "sequoyah.l"
1464print_utf8 (0x13BE); /* CHEROKEE LETTER NA */
1465 YY_BREAK
1466case 57:
1467YY_RULE_SETUP
1468#line 212 "sequoyah.l"
1469print_utf8 (0x13BE); /* CHEROKEE LETTER NA */
1470 YY_BREAK
1471case 58:
1472YY_RULE_SETUP
1473#line 213 "sequoyah.l"
1474print_utf8 (0x13BF); /* CHEROKEE LETTER HNA */
1475 YY_BREAK
1476case 59:
1477YY_RULE_SETUP
1478#line 214 "sequoyah.l"
1479print_utf8 (0x13BF); /* CHEROKEE LETTER HNA */
1480 YY_BREAK
1481case 60:
1482YY_RULE_SETUP
1483#line 215 "sequoyah.l"
1484print_utf8 (0x13C0); /* CHEROKEE LETTER NAH */
1485 YY_BREAK
1486case 61:
1487YY_RULE_SETUP
1488#line 216 "sequoyah.l"
1489print_utf8 (0x13C0); /* CHEROKEE LETTER NAH */
1490 YY_BREAK
1491case 62:
1492YY_RULE_SETUP
1493#line 217 "sequoyah.l"
1494print_utf8 (0x13C1); /* CHEROKEE LETTER NE */
1495 YY_BREAK
1496case 63:
1497YY_RULE_SETUP
1498#line 218 "sequoyah.l"
1499print_utf8 (0x13C1); /* CHEROKEE LETTER NE */
1500 YY_BREAK
1501case 64:
1502YY_RULE_SETUP
1503#line 219 "sequoyah.l"
1504print_utf8 (0x13C2); /* CHEROKEE LETTER NI */
1505 YY_BREAK
1506case 65:
1507YY_RULE_SETUP
1508#line 220 "sequoyah.l"
1509print_utf8 (0x13C2); /* CHEROKEE LETTER NI */
1510 YY_BREAK
1511case 66:
1512YY_RULE_SETUP
1513#line 221 "sequoyah.l"
1514print_utf8 (0x13C3); /* CHEROKEE LETTER NO */
1515 YY_BREAK
1516case 67:
1517YY_RULE_SETUP
1518#line 222 "sequoyah.l"
1519print_utf8 (0x13C3); /* CHEROKEE LETTER NO */
1520 YY_BREAK
1521case 68:
1522YY_RULE_SETUP
1523#line 223 "sequoyah.l"
1524print_utf8 (0x13C4); /* CHEROKEE LETTER NU */
1525 YY_BREAK
1526case 69:
1527YY_RULE_SETUP
1528#line 224 "sequoyah.l"
1529print_utf8 (0x13C4); /* CHEROKEE LETTER NU */
1530 YY_BREAK
1531case 70:
1532YY_RULE_SETUP
1533#line 225 "sequoyah.l"
1534print_utf8 (0x13C5); /* CHEROKEE LETTER NV */
1535 YY_BREAK
1536case 71:
1537YY_RULE_SETUP
1538#line 226 "sequoyah.l"
1539print_utf8 (0x13C5); /* CHEROKEE LETTER NV */
1540 YY_BREAK
1541case 72:
1542YY_RULE_SETUP
1543#line 227 "sequoyah.l"
1544print_utf8 (0x13C6); /* CHEROKEE LETTER QUA */
1545 YY_BREAK
1546case 73:
1547YY_RULE_SETUP
1548#line 228 "sequoyah.l"
1549print_utf8 (0x13C6); /* CHEROKEE LETTER QUA */
1550 YY_BREAK
1551case 74:
1552YY_RULE_SETUP
1553#line 229 "sequoyah.l"
1554print_utf8 (0x13C7); /* CHEROKEE LETTER QUE */
1555 YY_BREAK
1556case 75:
1557YY_RULE_SETUP
1558#line 230 "sequoyah.l"
1559print_utf8 (0x13C7); /* CHEROKEE LETTER QUE */
1560 YY_BREAK
1561case 76:
1562YY_RULE_SETUP
1563#line 231 "sequoyah.l"
1564print_utf8 (0x13C8); /* CHEROKEE LETTER QUI */
1565 YY_BREAK
1566case 77:
1567YY_RULE_SETUP
1568#line 232 "sequoyah.l"
1569print_utf8 (0x13C8); /* CHEROKEE LETTER QUI */
1570 YY_BREAK
1571case 78:
1572YY_RULE_SETUP
1573#line 233 "sequoyah.l"
1574print_utf8 (0x13C9); /* CHEROKEE LETTER QUO */
1575 YY_BREAK
1576case 79:
1577YY_RULE_SETUP
1578#line 234 "sequoyah.l"
1579print_utf8 (0x13C9); /* CHEROKEE LETTER QUO */
1580 YY_BREAK
1581case 80:
1582YY_RULE_SETUP
1583#line 235 "sequoyah.l"
1584print_utf8 (0x13CA); /* CHEROKEE LETTER QUU */
1585 YY_BREAK
1586case 81:
1587YY_RULE_SETUP
1588#line 236 "sequoyah.l"
1589print_utf8 (0x13CA); /* CHEROKEE LETTER QUU */
1590 YY_BREAK
1591case 82:
1592YY_RULE_SETUP
1593#line 237 "sequoyah.l"
1594print_utf8 (0x13CB); /* CHEROKEE LETTER QUV */
1595 YY_BREAK
1596case 83:
1597YY_RULE_SETUP
1598#line 238 "sequoyah.l"
1599print_utf8 (0x13CB); /* CHEROKEE LETTER QUV */
1600 YY_BREAK
1601case 84:
1602YY_RULE_SETUP
1603#line 239 "sequoyah.l"
1604print_utf8 (0x13CC); /* CHEROKEE LETTER SA */
1605 YY_BREAK
1606case 85:
1607YY_RULE_SETUP
1608#line 240 "sequoyah.l"
1609print_utf8 (0x13CC); /* CHEROKEE LETTER SA */
1610 YY_BREAK
1611case 86:
1612YY_RULE_SETUP
1613#line 241 "sequoyah.l"
1614print_utf8 (0x13CD); /* CHEROKEE LETTER S */
1615 YY_BREAK
1616case 87:
1617YY_RULE_SETUP
1618#line 242 "sequoyah.l"
1619print_utf8 (0x13CE); /* CHEROKEE LETTER SE */
1620 YY_BREAK
1621case 88:
1622YY_RULE_SETUP
1623#line 243 "sequoyah.l"
1624print_utf8 (0x13CE); /* CHEROKEE LETTER SE */
1625 YY_BREAK
1626case 89:
1627YY_RULE_SETUP
1628#line 244 "sequoyah.l"
1629print_utf8 (0x13CF); /* CHEROKEE LETTER SI */
1630 YY_BREAK
1631case 90:
1632YY_RULE_SETUP
1633#line 245 "sequoyah.l"
1634print_utf8 (0x13CF); /* CHEROKEE LETTER SI */
1635 YY_BREAK
1636case 91:
1637YY_RULE_SETUP
1638#line 246 "sequoyah.l"
1639print_utf8 (0x13D0); /* CHEROKEE LETTER SO */
1640 YY_BREAK
1641case 92:
1642YY_RULE_SETUP
1643#line 247 "sequoyah.l"
1644print_utf8 (0x13D0); /* CHEROKEE LETTER SO */
1645 YY_BREAK
1646case 93:
1647YY_RULE_SETUP
1648#line 248 "sequoyah.l"
1649print_utf8 (0x13D1); /* CHEROKEE LETTER SU */
1650 YY_BREAK
1651case 94:
1652YY_RULE_SETUP
1653#line 249 "sequoyah.l"
1654print_utf8 (0x13D1); /* CHEROKEE LETTER SU */
1655 YY_BREAK
1656case 95:
1657YY_RULE_SETUP
1658#line 250 "sequoyah.l"
1659print_utf8 (0x13D2); /* CHEROKEE LETTER SV */
1660 YY_BREAK
1661case 96:
1662YY_RULE_SETUP
1663#line 251 "sequoyah.l"
1664print_utf8 (0x13D2); /* CHEROKEE LETTER SV */
1665 YY_BREAK
1666case 97:
1667YY_RULE_SETUP
1668#line 252 "sequoyah.l"
1669print_utf8 (0x13D3); /* CHEROKEE LETTER DA */
1670 YY_BREAK
1671case 98:
1672YY_RULE_SETUP
1673#line 253 "sequoyah.l"
1674print_utf8 (0x13D3); /* CHEROKEE LETTER DA */
1675 YY_BREAK
1676case 99:
1677YY_RULE_SETUP
1678#line 254 "sequoyah.l"
1679print_utf8 (0x13D4); /* CHEROKEE LETTER TA */
1680 YY_BREAK
1681case 100:
1682YY_RULE_SETUP
1683#line 255 "sequoyah.l"
1684print_utf8 (0x13D4); /* CHEROKEE LETTER TA */
1685 YY_BREAK
1686case 101:
1687YY_RULE_SETUP
1688#line 256 "sequoyah.l"
1689print_utf8 (0x13D5); /* CHEROKEE LETTER DE */
1690 YY_BREAK
1691case 102:
1692YY_RULE_SETUP
1693#line 257 "sequoyah.l"
1694print_utf8 (0x13D5); /* CHEROKEE LETTER DE */
1695 YY_BREAK
1696case 103:
1697YY_RULE_SETUP
1698#line 258 "sequoyah.l"
1699print_utf8 (0x13D6); /* CHEROKEE LETTER TE */
1700 YY_BREAK
1701case 104:
1702YY_RULE_SETUP
1703#line 259 "sequoyah.l"
1704print_utf8 (0x13D6); /* CHEROKEE LETTER TE */
1705 YY_BREAK
1706case 105:
1707YY_RULE_SETUP
1708#line 260 "sequoyah.l"
1709print_utf8 (0x13D7); /* CHEROKEE LETTER DI */
1710 YY_BREAK
1711case 106:
1712YY_RULE_SETUP
1713#line 261 "sequoyah.l"
1714print_utf8 (0x13D7); /* CHEROKEE LETTER DI */
1715 YY_BREAK
1716case 107:
1717YY_RULE_SETUP
1718#line 262 "sequoyah.l"
1719print_utf8 (0x13D8); /* CHEROKEE LETTER TI */
1720 YY_BREAK
1721case 108:
1722YY_RULE_SETUP
1723#line 263 "sequoyah.l"
1724print_utf8 (0x13D8); /* CHEROKEE LETTER TI */
1725 YY_BREAK
1726case 109:
1727YY_RULE_SETUP
1728#line 264 "sequoyah.l"
1729print_utf8 (0x13D9); /* CHEROKEE LETTER DO */
1730 YY_BREAK
1731case 110:
1732YY_RULE_SETUP
1733#line 265 "sequoyah.l"
1734print_utf8 (0x13D9); /* CHEROKEE LETTER DO */
1735 YY_BREAK
1736case 111:
1737YY_RULE_SETUP
1738#line 266 "sequoyah.l"
1739print_utf8 (0x13DA); /* CHEROKEE LETTER DU */
1740 YY_BREAK
1741case 112:
1742YY_RULE_SETUP
1743#line 267 "sequoyah.l"
1744print_utf8 (0x13DA); /* CHEROKEE LETTER DU */
1745 YY_BREAK
1746case 113:
1747YY_RULE_SETUP
1748#line 268 "sequoyah.l"
1749print_utf8 (0x13DB); /* CHEROKEE LETTER DV */
1750 YY_BREAK
1751case 114:
1752YY_RULE_SETUP
1753#line 269 "sequoyah.l"
1754print_utf8 (0x13DB); /* CHEROKEE LETTER DV */
1755 YY_BREAK
1756case 115:
1757YY_RULE_SETUP
1758#line 270 "sequoyah.l"
1759print_utf8 (0x13DC); /* CHEROKEE LETTER DLA */
1760 YY_BREAK
1761case 116:
1762YY_RULE_SETUP
1763#line 271 "sequoyah.l"
1764print_utf8 (0x13DC); /* CHEROKEE LETTER DLA */
1765 YY_BREAK
1766case 117:
1767YY_RULE_SETUP
1768#line 272 "sequoyah.l"
1769print_utf8 (0x13DD); /* CHEROKEE LETTER TLA */
1770 YY_BREAK
1771case 118:
1772YY_RULE_SETUP
1773#line 273 "sequoyah.l"
1774print_utf8 (0x13DD); /* CHEROKEE LETTER TLA */
1775 YY_BREAK
1776case 119:
1777YY_RULE_SETUP
1778#line 274 "sequoyah.l"
1779print_utf8 (0x13DE); /* CHEROKEE LETTER TLE */
1780 YY_BREAK
1781case 120:
1782YY_RULE_SETUP
1783#line 275 "sequoyah.l"
1784print_utf8 (0x13DE); /* CHEROKEE LETTER TLE */
1785 YY_BREAK
1786case 121:
1787YY_RULE_SETUP
1788#line 276 "sequoyah.l"
1789print_utf8 (0x13DF); /* CHEROKEE LETTER TLI */
1790 YY_BREAK
1791case 122:
1792YY_RULE_SETUP
1793#line 277 "sequoyah.l"
1794print_utf8 (0x13DF); /* CHEROKEE LETTER TLI */
1795 YY_BREAK
1796case 123:
1797YY_RULE_SETUP
1798#line 278 "sequoyah.l"
1799print_utf8 (0x13E0); /* CHEROKEE LETTER TLO */
1800 YY_BREAK
1801case 124:
1802YY_RULE_SETUP
1803#line 279 "sequoyah.l"
1804print_utf8 (0x13E0); /* CHEROKEE LETTER TLO */
1805 YY_BREAK
1806case 125:
1807YY_RULE_SETUP
1808#line 280 "sequoyah.l"
1809print_utf8 (0x13E1); /* CHEROKEE LETTER TLU */
1810 YY_BREAK
1811case 126:
1812YY_RULE_SETUP
1813#line 281 "sequoyah.l"
1814print_utf8 (0x13E1); /* CHEROKEE LETTER TLU */
1815 YY_BREAK
1816case 127:
1817YY_RULE_SETUP
1818#line 282 "sequoyah.l"
1819print_utf8 (0x13E2); /* CHEROKEE LETTER TLV */
1820 YY_BREAK
1821case 128:
1822YY_RULE_SETUP
1823#line 283 "sequoyah.l"
1824print_utf8 (0x13E2); /* CHEROKEE LETTER TLV */
1825 YY_BREAK
1826case 129:
1827YY_RULE_SETUP
1828#line 284 "sequoyah.l"
1829print_utf8 (0x13E3); /* CHEROKEE LETTER TSA */
1830 YY_BREAK
1831case 130:
1832YY_RULE_SETUP
1833#line 285 "sequoyah.l"
1834print_utf8 (0x13E3); /* CHEROKEE LETTER TSA */
1835 YY_BREAK
1836case 131:
1837YY_RULE_SETUP
1838#line 286 "sequoyah.l"
1839print_utf8 (0x13E4); /* CHEROKEE LETTER TSE */
1840 YY_BREAK
1841case 132:
1842YY_RULE_SETUP
1843#line 287 "sequoyah.l"
1844print_utf8 (0x13E4); /* CHEROKEE LETTER TSE */
1845 YY_BREAK
1846case 133:
1847YY_RULE_SETUP
1848#line 288 "sequoyah.l"
1849print_utf8 (0x13E5); /* CHEROKEE LETTER TSI */
1850 YY_BREAK
1851case 134:
1852YY_RULE_SETUP
1853#line 289 "sequoyah.l"
1854print_utf8 (0x13E5); /* CHEROKEE LETTER TSI */
1855 YY_BREAK
1856case 135:
1857YY_RULE_SETUP
1858#line 290 "sequoyah.l"
1859print_utf8 (0x13E6); /* CHEROKEE LETTER TSO */
1860 YY_BREAK
1861case 136:
1862YY_RULE_SETUP
1863#line 291 "sequoyah.l"
1864print_utf8 (0x13E6); /* CHEROKEE LETTER TSO */
1865 YY_BREAK
1866case 137:
1867YY_RULE_SETUP
1868#line 292 "sequoyah.l"
1869print_utf8 (0x13E7); /* CHEROKEE LETTER TSU */
1870 YY_BREAK
1871case 138:
1872YY_RULE_SETUP
1873#line 293 "sequoyah.l"
1874print_utf8 (0x13E7); /* CHEROKEE LETTER TSU */
1875 YY_BREAK
1876case 139:
1877YY_RULE_SETUP
1878#line 294 "sequoyah.l"
1879print_utf8 (0x13E8); /* CHEROKEE LETTER TSV */
1880 YY_BREAK
1881case 140:
1882YY_RULE_SETUP
1883#line 295 "sequoyah.l"
1884print_utf8 (0x13E8); /* CHEROKEE LETTER TSV */
1885 YY_BREAK
1886case 141:
1887YY_RULE_SETUP
1888#line 296 "sequoyah.l"
1889print_utf8 (0x13E9); /* CHEROKEE LETTER WA */
1890 YY_BREAK
1891case 142:
1892YY_RULE_SETUP
1893#line 297 "sequoyah.l"
1894print_utf8 (0x13E9); /* CHEROKEE LETTER WA */
1895 YY_BREAK
1896case 143:
1897YY_RULE_SETUP
1898#line 298 "sequoyah.l"
1899print_utf8 (0x13EA); /* CHEROKEE LETTER WE */
1900 YY_BREAK
1901case 144:
1902YY_RULE_SETUP
1903#line 299 "sequoyah.l"
1904print_utf8 (0x13EA); /* CHEROKEE LETTER WE */
1905 YY_BREAK
1906case 145:
1907YY_RULE_SETUP
1908#line 300 "sequoyah.l"
1909print_utf8 (0x13EB); /* CHEROKEE LETTER WI */
1910 YY_BREAK
1911case 146:
1912YY_RULE_SETUP
1913#line 301 "sequoyah.l"
1914print_utf8 (0x13EB); /* CHEROKEE LETTER WI */
1915 YY_BREAK
1916case 147:
1917YY_RULE_SETUP
1918#line 302 "sequoyah.l"
1919print_utf8 (0x13EC); /* CHEROKEE LETTER WO */
1920 YY_BREAK
1921case 148:
1922YY_RULE_SETUP
1923#line 303 "sequoyah.l"
1924print_utf8 (0x13EC); /* CHEROKEE LETTER WO */
1925 YY_BREAK
1926case 149:
1927YY_RULE_SETUP
1928#line 304 "sequoyah.l"
1929print_utf8 (0x13ED); /* CHEROKEE LETTER WU */
1930 YY_BREAK
1931case 150:
1932YY_RULE_SETUP
1933#line 305 "sequoyah.l"
1934print_utf8 (0x13ED); /* CHEROKEE LETTER WU */
1935 YY_BREAK
1936case 151:
1937YY_RULE_SETUP
1938#line 306 "sequoyah.l"
1939print_utf8 (0x13EE); /* CHEROKEE LETTER WV */
1940 YY_BREAK
1941case 152:
1942YY_RULE_SETUP
1943#line 307 "sequoyah.l"
1944print_utf8 (0x13EE); /* CHEROKEE LETTER WV */
1945 YY_BREAK
1946case 153:
1947YY_RULE_SETUP
1948#line 308 "sequoyah.l"
1949print_utf8 (0x13EF); /* CHEROKEE LETTER YA */
1950 YY_BREAK
1951case 154:
1952YY_RULE_SETUP
1953#line 309 "sequoyah.l"
1954print_utf8 (0x13EF); /* CHEROKEE LETTER YA */
1955 YY_BREAK
1956case 155:
1957YY_RULE_SETUP
1958#line 310 "sequoyah.l"
1959print_utf8 (0x13F0); /* CHEROKEE LETTER YE */
1960 YY_BREAK
1961case 156:
1962YY_RULE_SETUP
1963#line 311 "sequoyah.l"
1964print_utf8 (0x13F0); /* CHEROKEE LETTER YE */
1965 YY_BREAK
1966case 157:
1967YY_RULE_SETUP
1968#line 312 "sequoyah.l"
1969print_utf8 (0x13F1); /* CHEROKEE LETTER YI */
1970 YY_BREAK
1971case 158:
1972YY_RULE_SETUP
1973#line 313 "sequoyah.l"
1974print_utf8 (0x13F1); /* CHEROKEE LETTER YI */
1975 YY_BREAK
1976case 159:
1977YY_RULE_SETUP
1978#line 314 "sequoyah.l"
1979print_utf8 (0x13F2); /* CHEROKEE LETTER YO */
1980 YY_BREAK
1981case 160:
1982YY_RULE_SETUP
1983#line 315 "sequoyah.l"
1984print_utf8 (0x13F2); /* CHEROKEE LETTER YO */
1985 YY_BREAK
1986case 161:
1987YY_RULE_SETUP
1988#line 316 "sequoyah.l"
1989print_utf8 (0x13F3); /* CHEROKEE LETTER YU */
1990 YY_BREAK
1991case 162:
1992YY_RULE_SETUP
1993#line 317 "sequoyah.l"
1994print_utf8 (0x13F3); /* CHEROKEE LETTER YU */
1995 YY_BREAK
1996case 163:
1997YY_RULE_SETUP
1998#line 318 "sequoyah.l"
1999print_utf8 (0x13F4); /* CHEROKEE LETTER YV */
2000 YY_BREAK
2001case 164:
2002YY_RULE_SETUP
2003#line 319 "sequoyah.l"
2004print_utf8 (0x13F4); /* CHEROKEE LETTER YV */
2005 YY_BREAK
2006case 165:
2007YY_RULE_SETUP
2008#line 320 "sequoyah.l"
2009print_utf8 (0x13F5); /* CHEROKEE LETTER MV */
2010 YY_BREAK
2011case 166:
2012YY_RULE_SETUP
2013#line 321 "sequoyah.l"
2014print_utf8 (0x13F5); /* CHEROKEE LETTER MV */
2015 YY_BREAK
2016case 167:
2017YY_RULE_SETUP
2018#line 322 "sequoyah.l"
2019print_utf8 (0x13F8); /* CHEROKEE SMALL LETTER YE */
2020 YY_BREAK
2021case 168:
2022YY_RULE_SETUP
2023#line 323 "sequoyah.l"
2024print_utf8 (0x13F9); /* CHEROKEE SMALL LETTER YI */
2025 YY_BREAK
2026case 169:
2027YY_RULE_SETUP
2028#line 324 "sequoyah.l"
2029print_utf8 (0x13FA); /* CHEROKEE SMALL LETTER YO */
2030 YY_BREAK
2031case 170:
2032YY_RULE_SETUP
2033#line 325 "sequoyah.l"
2034print_utf8 (0x13FB); /* CHEROKEE SMALL LETTER YU */
2035 YY_BREAK
2036case 171:
2037YY_RULE_SETUP
2038#line 326 "sequoyah.l"
2039print_utf8 (0x13FC); /* CHEROKEE SMALL LETTER YV */
2040 YY_BREAK
2041case 172:
2042YY_RULE_SETUP
2043#line 327 "sequoyah.l"
2044print_utf8 (0x13FD); /* CHEROKEE SMALL LETTER MV */
2045 YY_BREAK
2046case 173:
2047YY_RULE_SETUP
2048#line 328 "sequoyah.l"
2049print_utf8 (0xAB70); /* CHEROKEE SMALL LETTER A */
2050 YY_BREAK
2051case 174:
2052YY_RULE_SETUP
2053#line 329 "sequoyah.l"
2054print_utf8 (0xAB71); /* CHEROKEE SMALL LETTER E */
2055 YY_BREAK
2056case 175:
2057YY_RULE_SETUP
2058#line 330 "sequoyah.l"
2059print_utf8 (0xAB72); /* CHEROKEE SMALL LETTER I */
2060 YY_BREAK
2061case 176:
2062YY_RULE_SETUP
2063#line 331 "sequoyah.l"
2064print_utf8 (0xAB73); /* CHEROKEE SMALL LETTER O */
2065 YY_BREAK
2066case 177:
2067YY_RULE_SETUP
2068#line 332 "sequoyah.l"
2069print_utf8 (0xAB74); /* CHEROKEE SMALL LETTER U */
2070 YY_BREAK
2071case 178:
2072YY_RULE_SETUP
2073#line 333 "sequoyah.l"
2074print_utf8 (0xAB75); /* CHEROKEE SMALL LETTER V */
2075 YY_BREAK
2076case 179:
2077YY_RULE_SETUP
2078#line 334 "sequoyah.l"
2079print_utf8 (0xAB76); /* CHEROKEE SMALL LETTER GA */
2080 YY_BREAK
2081case 180:
2082YY_RULE_SETUP
2083#line 335 "sequoyah.l"
2084print_utf8 (0xAB77); /* CHEROKEE SMALL LETTER KA */
2085 YY_BREAK
2086case 181:
2087YY_RULE_SETUP
2088#line 336 "sequoyah.l"
2089print_utf8 (0xAB78); /* CHEROKEE SMALL LETTER GE */
2090 YY_BREAK
2091case 182:
2092YY_RULE_SETUP
2093#line 337 "sequoyah.l"
2094print_utf8 (0xAB79); /* CHEROKEE SMALL LETTER GI */
2095 YY_BREAK
2096case 183:
2097YY_RULE_SETUP
2098#line 338 "sequoyah.l"
2099print_utf8 (0xAB7A); /* CHEROKEE SMALL LETTER GO */
2100 YY_BREAK
2101case 184:
2102YY_RULE_SETUP
2103#line 339 "sequoyah.l"
2104print_utf8 (0xAB7B); /* CHEROKEE SMALL LETTER GU */
2105 YY_BREAK
2106case 185:
2107YY_RULE_SETUP
2108#line 340 "sequoyah.l"
2109print_utf8 (0xAB7C); /* CHEROKEE SMALL LETTER GV */
2110 YY_BREAK
2111case 186:
2112YY_RULE_SETUP
2113#line 341 "sequoyah.l"
2114print_utf8 (0xAB7D); /* CHEROKEE SMALL LETTER HA */
2115 YY_BREAK
2116case 187:
2117YY_RULE_SETUP
2118#line 342 "sequoyah.l"
2119print_utf8 (0xAB7E); /* CHEROKEE SMALL LETTER HE */
2120 YY_BREAK
2121case 188:
2122YY_RULE_SETUP
2123#line 343 "sequoyah.l"
2124print_utf8 (0xAB7F); /* CHEROKEE SMALL LETTER HI */
2125 YY_BREAK
2126case 189:
2127YY_RULE_SETUP
2128#line 344 "sequoyah.l"
2129print_utf8 (0xAB80); /* CHEROKEE SMALL LETTER HO */
2130 YY_BREAK
2131case 190:
2132YY_RULE_SETUP
2133#line 345 "sequoyah.l"
2134print_utf8 (0xAB81); /* CHEROKEE SMALL LETTER HU */
2135 YY_BREAK
2136case 191:
2137YY_RULE_SETUP
2138#line 346 "sequoyah.l"
2139print_utf8 (0xAB82); /* CHEROKEE SMALL LETTER HV */
2140 YY_BREAK
2141case 192:
2142YY_RULE_SETUP
2143#line 347 "sequoyah.l"
2144print_utf8 (0xAB83); /* CHEROKEE SMALL LETTER LA */
2145 YY_BREAK
2146case 193:
2147YY_RULE_SETUP
2148#line 348 "sequoyah.l"
2149print_utf8 (0xAB84); /* CHEROKEE SMALL LETTER LE */
2150 YY_BREAK
2151case 194:
2152YY_RULE_SETUP
2153#line 349 "sequoyah.l"
2154print_utf8 (0xAB85); /* CHEROKEE SMALL LETTER LI */
2155 YY_BREAK
2156case 195:
2157YY_RULE_SETUP
2158#line 350 "sequoyah.l"
2159print_utf8 (0xAB86); /* CHEROKEE SMALL LETTER LO */
2160 YY_BREAK
2161case 196:
2162YY_RULE_SETUP
2163#line 351 "sequoyah.l"
2164print_utf8 (0xAB87); /* CHEROKEE SMALL LETTER LU */
2165 YY_BREAK
2166case 197:
2167YY_RULE_SETUP
2168#line 352 "sequoyah.l"
2169print_utf8 (0xAB88); /* CHEROKEE SMALL LETTER LV */
2170 YY_BREAK
2171case 198:
2172YY_RULE_SETUP
2173#line 353 "sequoyah.l"
2174print_utf8 (0xAB89); /* CHEROKEE SMALL LETTER MA */
2175 YY_BREAK
2176case 199:
2177YY_RULE_SETUP
2178#line 354 "sequoyah.l"
2179print_utf8 (0xAB8A); /* CHEROKEE SMALL LETTER ME */
2180 YY_BREAK
2181case 200:
2182YY_RULE_SETUP
2183#line 355 "sequoyah.l"
2184print_utf8 (0xAB8B); /* CHEROKEE SMALL LETTER MI */
2185 YY_BREAK
2186case 201:
2187YY_RULE_SETUP
2188#line 356 "sequoyah.l"
2189print_utf8 (0xAB8C); /* CHEROKEE SMALL LETTER MO */
2190 YY_BREAK
2191case 202:
2192YY_RULE_SETUP
2193#line 357 "sequoyah.l"
2194print_utf8 (0xAB8D); /* CHEROKEE SMALL LETTER MU */
2195 YY_BREAK
2196case 203:
2197YY_RULE_SETUP
2198#line 358 "sequoyah.l"
2199print_utf8 (0xAB8E); /* CHEROKEE SMALL LETTER NA */
2200 YY_BREAK
2201case 204:
2202YY_RULE_SETUP
2203#line 359 "sequoyah.l"
2204print_utf8 (0xAB8F); /* CHEROKEE SMALL LETTER HNA */
2205 YY_BREAK
2206case 205:
2207YY_RULE_SETUP
2208#line 360 "sequoyah.l"
2209print_utf8 (0xAB90); /* CHEROKEE SMALL LETTER NAH */
2210 YY_BREAK
2211case 206:
2212YY_RULE_SETUP
2213#line 361 "sequoyah.l"
2214print_utf8 (0xAB91); /* CHEROKEE SMALL LETTER NE */
2215 YY_BREAK
2216case 207:
2217YY_RULE_SETUP
2218#line 362 "sequoyah.l"
2219print_utf8 (0xAB92); /* CHEROKEE SMALL LETTER NI */
2220 YY_BREAK
2221case 208:
2222YY_RULE_SETUP
2223#line 363 "sequoyah.l"
2224print_utf8 (0xAB93); /* CHEROKEE SMALL LETTER NO */
2225 YY_BREAK
2226case 209:
2227YY_RULE_SETUP
2228#line 364 "sequoyah.l"
2229print_utf8 (0xAB94); /* CHEROKEE SMALL LETTER NU */
2230 YY_BREAK
2231case 210:
2232YY_RULE_SETUP
2233#line 365 "sequoyah.l"
2234print_utf8 (0xAB95); /* CHEROKEE SMALL LETTER NV */
2235 YY_BREAK
2236case 211:
2237YY_RULE_SETUP
2238#line 366 "sequoyah.l"
2239print_utf8 (0xAB96); /* CHEROKEE SMALL LETTER QUA */
2240 YY_BREAK
2241case 212:
2242YY_RULE_SETUP
2243#line 367 "sequoyah.l"
2244print_utf8 (0xAB97); /* CHEROKEE SMALL LETTER QUE */
2245 YY_BREAK
2246case 213:
2247YY_RULE_SETUP
2248#line 368 "sequoyah.l"
2249print_utf8 (0xAB98); /* CHEROKEE SMALL LETTER QUI */
2250 YY_BREAK
2251case 214:
2252YY_RULE_SETUP
2253#line 369 "sequoyah.l"
2254print_utf8 (0xAB99); /* CHEROKEE SMALL LETTER QUO */
2255 YY_BREAK
2256case 215:
2257YY_RULE_SETUP
2258#line 370 "sequoyah.l"
2259print_utf8 (0xAB9A); /* CHEROKEE SMALL LETTER QUU */
2260 YY_BREAK
2261case 216:
2262YY_RULE_SETUP
2263#line 371 "sequoyah.l"
2264print_utf8 (0xAB9B); /* CHEROKEE SMALL LETTER QUV */
2265 YY_BREAK
2266case 217:
2267YY_RULE_SETUP
2268#line 372 "sequoyah.l"
2269print_utf8 (0xAB9C); /* CHEROKEE SMALL LETTER SA */
2270 YY_BREAK
2271case 218:
2272YY_RULE_SETUP
2273#line 373 "sequoyah.l"
2274print_utf8 (0xAB9D); /* CHEROKEE SMALL LETTER S */
2275 YY_BREAK
2276case 219:
2277YY_RULE_SETUP
2278#line 374 "sequoyah.l"
2279print_utf8 (0xAB9E); /* CHEROKEE SMALL LETTER SE */
2280 YY_BREAK
2281case 220:
2282YY_RULE_SETUP
2283#line 375 "sequoyah.l"
2284print_utf8 (0xAB9F); /* CHEROKEE SMALL LETTER SI */
2285 YY_BREAK
2286case 221:
2287YY_RULE_SETUP
2288#line 376 "sequoyah.l"
2289print_utf8 (0xABA0); /* CHEROKEE SMALL LETTER SO */
2290 YY_BREAK
2291case 222:
2292YY_RULE_SETUP
2293#line 377 "sequoyah.l"
2294print_utf8 (0xABA1); /* CHEROKEE SMALL LETTER SU */
2295 YY_BREAK
2296case 223:
2297YY_RULE_SETUP
2298#line 378 "sequoyah.l"
2299print_utf8 (0xABA2); /* CHEROKEE SMALL LETTER SV */
2300 YY_BREAK
2301case 224:
2302YY_RULE_SETUP
2303#line 379 "sequoyah.l"
2304print_utf8 (0xABA3); /* CHEROKEE SMALL LETTER DA */
2305 YY_BREAK
2306case 225:
2307YY_RULE_SETUP
2308#line 380 "sequoyah.l"
2309print_utf8 (0xABA4); /* CHEROKEE SMALL LETTER TA */
2310 YY_BREAK
2311case 226:
2312YY_RULE_SETUP
2313#line 381 "sequoyah.l"
2314print_utf8 (0xABA5); /* CHEROKEE SMALL LETTER DE */
2315 YY_BREAK
2316case 227:
2317YY_RULE_SETUP
2318#line 382 "sequoyah.l"
2319print_utf8 (0xABA6); /* CHEROKEE SMALL LETTER TE */
2320 YY_BREAK
2321case 228:
2322YY_RULE_SETUP
2323#line 383 "sequoyah.l"
2324print_utf8 (0xABA7); /* CHEROKEE SMALL LETTER DI */
2325 YY_BREAK
2326case 229:
2327YY_RULE_SETUP
2328#line 384 "sequoyah.l"
2329print_utf8 (0xABA8); /* CHEROKEE SMALL LETTER TI */
2330 YY_BREAK
2331case 230:
2332YY_RULE_SETUP
2333#line 385 "sequoyah.l"
2334print_utf8 (0xABA9); /* CHEROKEE SMALL LETTER DO */
2335 YY_BREAK
2336case 231:
2337YY_RULE_SETUP
2338#line 386 "sequoyah.l"
2339print_utf8 (0xABAA); /* CHEROKEE SMALL LETTER DU */
2340 YY_BREAK
2341case 232:
2342YY_RULE_SETUP
2343#line 387 "sequoyah.l"
2344print_utf8 (0xABAB); /* CHEROKEE SMALL LETTER DV */
2345 YY_BREAK
2346case 233:
2347YY_RULE_SETUP
2348#line 388 "sequoyah.l"
2349print_utf8 (0xABAC); /* CHEROKEE SMALL LETTER DLA */
2350 YY_BREAK
2351case 234:
2352YY_RULE_SETUP
2353#line 389 "sequoyah.l"
2354print_utf8 (0xABAD); /* CHEROKEE SMALL LETTER TLA */
2355 YY_BREAK
2356case 235:
2357YY_RULE_SETUP
2358#line 390 "sequoyah.l"
2359print_utf8 (0xABAE); /* CHEROKEE SMALL LETTER TLE */
2360 YY_BREAK
2361case 236:
2362YY_RULE_SETUP
2363#line 391 "sequoyah.l"
2364print_utf8 (0xABAF); /* CHEROKEE SMALL LETTER TLI */
2365 YY_BREAK
2366case 237:
2367YY_RULE_SETUP
2368#line 392 "sequoyah.l"
2369print_utf8 (0xABB0); /* CHEROKEE SMALL LETTER TLO */
2370 YY_BREAK
2371case 238:
2372YY_RULE_SETUP
2373#line 393 "sequoyah.l"
2374print_utf8 (0xABB1); /* CHEROKEE SMALL LETTER TLU */
2375 YY_BREAK
2376case 239:
2377YY_RULE_SETUP
2378#line 394 "sequoyah.l"
2379print_utf8 (0xABB2); /* CHEROKEE SMALL LETTER TLV */
2380 YY_BREAK
2381case 240:
2382YY_RULE_SETUP
2383#line 395 "sequoyah.l"
2384print_utf8 (0xABB3); /* CHEROKEE SMALL LETTER TSA */
2385 YY_BREAK
2386case 241:
2387YY_RULE_SETUP
2388#line 396 "sequoyah.l"
2389print_utf8 (0xABB4); /* CHEROKEE SMALL LETTER TSE */
2390 YY_BREAK
2391case 242:
2392YY_RULE_SETUP
2393#line 397 "sequoyah.l"
2394print_utf8 (0xABB5); /* CHEROKEE SMALL LETTER TSI */
2395 YY_BREAK
2396case 243:
2397YY_RULE_SETUP
2398#line 398 "sequoyah.l"
2399print_utf8 (0xABB6); /* CHEROKEE SMALL LETTER TSO */
2400 YY_BREAK
2401case 244:
2402YY_RULE_SETUP
2403#line 399 "sequoyah.l"
2404print_utf8 (0xABB7); /* CHEROKEE SMALL LETTER TSU */
2405 YY_BREAK
2406case 245:
2407YY_RULE_SETUP
2408#line 400 "sequoyah.l"
2409print_utf8 (0xABB8); /* CHEROKEE SMALL LETTER TSV */
2410 YY_BREAK
2411case 246:
2412YY_RULE_SETUP
2413#line 401 "sequoyah.l"
2414print_utf8 (0xABB9); /* CHEROKEE SMALL LETTER WA */
2415 YY_BREAK
2416case 247:
2417YY_RULE_SETUP
2418#line 402 "sequoyah.l"
2419print_utf8 (0xABBA); /* CHEROKEE SMALL LETTER WE */
2420 YY_BREAK
2421case 248:
2422YY_RULE_SETUP
2423#line 403 "sequoyah.l"
2424print_utf8 (0xABBB); /* CHEROKEE SMALL LETTER WI */
2425 YY_BREAK
2426case 249:
2427YY_RULE_SETUP
2428#line 404 "sequoyah.l"
2429print_utf8 (0xABBC); /* CHEROKEE SMALL LETTER WO */
2430 YY_BREAK
2431case 250:
2432YY_RULE_SETUP
2433#line 405 "sequoyah.l"
2434print_utf8 (0xABBD); /* CHEROKEE SMALL LETTER WU */
2435 YY_BREAK
2436case 251:
2437YY_RULE_SETUP
2438#line 406 "sequoyah.l"
2439print_utf8 (0xABBE); /* CHEROKEE SMALL LETTER WV */
2440 YY_BREAK
2441case 252:
2442YY_RULE_SETUP
2443#line 407 "sequoyah.l"
2444print_utf8 (0xABBF); /* CHEROKEE SMALL LETTER YA */
2445 YY_BREAK
2446/* Convert UTF-8 Cherokee to transliterated ASCII. */
2447case 253:
2448YY_RULE_SETUP
2449#line 410 "sequoyah.l"
2450fprintf (yyout, "A"); /* U+13A0 CHEROKEE LETTER A */
2451 YY_BREAK
2452case 254:
2453YY_RULE_SETUP
2454#line 411 "sequoyah.l"
2455fprintf (yyout, "E"); /* U+13A1 CHEROKEE LETTER E */
2456 YY_BREAK
2457case 255:
2458YY_RULE_SETUP
2459#line 412 "sequoyah.l"
2460fprintf (yyout, "I"); /* U+13A2 CHEROKEE LETTER I */
2461 YY_BREAK
2462case 256:
2463YY_RULE_SETUP
2464#line 413 "sequoyah.l"
2465fprintf (yyout, "O"); /* U+13A3 CHEROKEE LETTER O */
2466 YY_BREAK
2467case 257:
2468YY_RULE_SETUP
2469#line 414 "sequoyah.l"
2470fprintf (yyout, "U"); /* U+13A4 CHEROKEE LETTER U */
2471 YY_BREAK
2472case 258:
2473YY_RULE_SETUP
2474#line 415 "sequoyah.l"
2475fprintf (yyout, "V"); /* U+13A5 CHEROKEE LETTER V */
2476 YY_BREAK
2477case 259:
2478YY_RULE_SETUP
2479#line 416 "sequoyah.l"
2480fprintf (yyout, "GA"); /* U+13A6 CHEROKEE LETTER GA */
2481 YY_BREAK
2482case 260:
2483YY_RULE_SETUP
2484#line 417 "sequoyah.l"
2485fprintf (yyout, "KA"); /* U+13A7 CHEROKEE LETTER KA */
2486 YY_BREAK
2487case 261:
2488YY_RULE_SETUP
2489#line 418 "sequoyah.l"
2490fprintf (yyout, "GE"); /* U+13A8 CHEROKEE LETTER GE */
2491 YY_BREAK
2492case 262:
2493YY_RULE_SETUP
2494#line 419 "sequoyah.l"
2495fprintf (yyout, "GI"); /* U+13A9 CHEROKEE LETTER GI */
2496 YY_BREAK
2497case 263:
2498YY_RULE_SETUP
2499#line 420 "sequoyah.l"
2500fprintf (yyout, "GO"); /* U+13AA CHEROKEE LETTER GO */
2501 YY_BREAK
2502case 264:
2503YY_RULE_SETUP
2504#line 421 "sequoyah.l"
2505fprintf (yyout, "GU"); /* U+13AB CHEROKEE LETTER GU */
2506 YY_BREAK
2507case 265:
2508YY_RULE_SETUP
2509#line 422 "sequoyah.l"
2510fprintf (yyout, "GV"); /* U+13AC CHEROKEE LETTER GV */
2511 YY_BREAK
2512case 266:
2513YY_RULE_SETUP
2514#line 423 "sequoyah.l"
2515fprintf (yyout, "HA"); /* U+13AD CHEROKEE LETTER HA */
2516 YY_BREAK
2517case 267:
2518YY_RULE_SETUP
2519#line 424 "sequoyah.l"
2520fprintf (yyout, "HE"); /* U+13AE CHEROKEE LETTER HE */
2521 YY_BREAK
2522case 268:
2523YY_RULE_SETUP
2524#line 425 "sequoyah.l"
2525fprintf (yyout, "HI"); /* U+13AF CHEROKEE LETTER HI */
2526 YY_BREAK
2527case 269:
2528YY_RULE_SETUP
2529#line 426 "sequoyah.l"
2530fprintf (yyout, "HO"); /* U+13B0 CHEROKEE LETTER HO */
2531 YY_BREAK
2532case 270:
2533YY_RULE_SETUP
2534#line 427 "sequoyah.l"
2535fprintf (yyout, "HU"); /* U+13B1 CHEROKEE LETTER HU */
2536 YY_BREAK
2537case 271:
2538YY_RULE_SETUP
2539#line 428 "sequoyah.l"
2540fprintf (yyout, "HV"); /* U+13B2 CHEROKEE LETTER HV */
2541 YY_BREAK
2542case 272:
2543YY_RULE_SETUP
2544#line 429 "sequoyah.l"
2545fprintf (yyout, "LA"); /* U+13B3 CHEROKEE LETTER LA */
2546 YY_BREAK
2547case 273:
2548YY_RULE_SETUP
2549#line 430 "sequoyah.l"
2550fprintf (yyout, "LE"); /* U+13B4 CHEROKEE LETTER LE */
2551 YY_BREAK
2552case 274:
2553YY_RULE_SETUP
2554#line 431 "sequoyah.l"
2555fprintf (yyout, "LI"); /* U+13B5 CHEROKEE LETTER LI */
2556 YY_BREAK
2557case 275:
2558YY_RULE_SETUP
2559#line 432 "sequoyah.l"
2560fprintf (yyout, "LO"); /* U+13B6 CHEROKEE LETTER LO */
2561 YY_BREAK
2562case 276:
2563YY_RULE_SETUP
2564#line 433 "sequoyah.l"
2565fprintf (yyout, "LU"); /* U+13B7 CHEROKEE LETTER LU */
2566 YY_BREAK
2567case 277:
2568YY_RULE_SETUP
2569#line 434 "sequoyah.l"
2570fprintf (yyout, "LV"); /* U+13B8 CHEROKEE LETTER LV */
2571 YY_BREAK
2572case 278:
2573YY_RULE_SETUP
2574#line 435 "sequoyah.l"
2575fprintf (yyout, "MA"); /* U+13B9 CHEROKEE LETTER MA */
2576 YY_BREAK
2577case 279:
2578YY_RULE_SETUP
2579#line 436 "sequoyah.l"
2580fprintf (yyout, "ME"); /* U+13BA CHEROKEE LETTER ME */
2581 YY_BREAK
2582case 280:
2583YY_RULE_SETUP
2584#line 437 "sequoyah.l"
2585fprintf (yyout, "MI"); /* U+13BB CHEROKEE LETTER MI */
2586 YY_BREAK
2587case 281:
2588YY_RULE_SETUP
2589#line 438 "sequoyah.l"
2590fprintf (yyout, "MO"); /* U+13BC CHEROKEE LETTER MO */
2591 YY_BREAK
2592case 282:
2593YY_RULE_SETUP
2594#line 439 "sequoyah.l"
2595fprintf (yyout, "MU"); /* U+13BD CHEROKEE LETTER MU */
2596 YY_BREAK
2597case 283:
2598YY_RULE_SETUP
2599#line 440 "sequoyah.l"
2600fprintf (yyout, "NA"); /* U+13BE CHEROKEE LETTER NA */
2601 YY_BREAK
2602case 284:
2603YY_RULE_SETUP
2604#line 441 "sequoyah.l"
2605fprintf (yyout, "HNA"); /* U+13BF CHEROKEE LETTER HNA */
2606 YY_BREAK
2607case 285:
2608YY_RULE_SETUP
2609#line 442 "sequoyah.l"
2610fprintf (yyout, "NAH"); /* U+13C0 CHEROKEE LETTER NAH */
2611 YY_BREAK
2612case 286:
2613YY_RULE_SETUP
2614#line 443 "sequoyah.l"
2615fprintf (yyout, "NE"); /* U+13C1 CHEROKEE LETTER NE */
2616 YY_BREAK
2617case 287:
2618YY_RULE_SETUP
2619#line 444 "sequoyah.l"
2620fprintf (yyout, "NI"); /* U+13C2 CHEROKEE LETTER NI */
2621 YY_BREAK
2622case 288:
2623YY_RULE_SETUP
2624#line 445 "sequoyah.l"
2625fprintf (yyout, "NO"); /* U+13C3 CHEROKEE LETTER NO */
2626 YY_BREAK
2627case 289:
2628YY_RULE_SETUP
2629#line 446 "sequoyah.l"
2630fprintf (yyout, "NU"); /* U+13C4 CHEROKEE LETTER NU */
2631 YY_BREAK
2632case 290:
2633YY_RULE_SETUP
2634#line 447 "sequoyah.l"
2635fprintf (yyout, "NV"); /* U+13C5 CHEROKEE LETTER NV */
2636 YY_BREAK
2637case 291:
2638YY_RULE_SETUP
2639#line 448 "sequoyah.l"
2640fprintf (yyout, "QUA"); /* U+13C6 CHEROKEE LETTER QUA */
2641 YY_BREAK
2642case 292:
2643YY_RULE_SETUP
2644#line 449 "sequoyah.l"
2645fprintf (yyout, "QUE"); /* U+13C7 CHEROKEE LETTER QUE */
2646 YY_BREAK
2647case 293:
2648YY_RULE_SETUP
2649#line 450 "sequoyah.l"
2650fprintf (yyout, "QUI"); /* U+13C8 CHEROKEE LETTER QUI */
2651 YY_BREAK
2652case 294:
2653YY_RULE_SETUP
2654#line 451 "sequoyah.l"
2655fprintf (yyout, "QUO"); /* U+13C9 CHEROKEE LETTER QUO */
2656 YY_BREAK
2657case 295:
2658YY_RULE_SETUP
2659#line 452 "sequoyah.l"
2660fprintf (yyout, "QUU"); /* U+13CA CHEROKEE LETTER QUU */
2661 YY_BREAK
2662case 296:
2663YY_RULE_SETUP
2664#line 453 "sequoyah.l"
2665fprintf (yyout, "QUV"); /* U+13CB CHEROKEE LETTER QUV */
2666 YY_BREAK
2667case 297:
2668YY_RULE_SETUP
2669#line 454 "sequoyah.l"
2670fprintf (yyout, "SA"); /* U+13CC CHEROKEE LETTER SA */
2671 YY_BREAK
2672case 298:
2673YY_RULE_SETUP
2674#line 455 "sequoyah.l"
2675fprintf (yyout, "S"); /* U+13CD CHEROKEE LETTER S */
2676 YY_BREAK
2677case 299:
2678YY_RULE_SETUP
2679#line 456 "sequoyah.l"
2680fprintf (yyout, "SE"); /* U+13CE CHEROKEE LETTER SE */
2681 YY_BREAK
2682case 300:
2683YY_RULE_SETUP
2684#line 457 "sequoyah.l"
2685fprintf (yyout, "SI"); /* U+13CF CHEROKEE LETTER SI */
2686 YY_BREAK
2687case 301:
2688YY_RULE_SETUP
2689#line 458 "sequoyah.l"
2690fprintf (yyout, "SO"); /* U+13D0 CHEROKEE LETTER SO */
2691 YY_BREAK
2692case 302:
2693YY_RULE_SETUP
2694#line 459 "sequoyah.l"
2695fprintf (yyout, "SU"); /* U+13D1 CHEROKEE LETTER SU */
2696 YY_BREAK
2697case 303:
2698YY_RULE_SETUP
2699#line 460 "sequoyah.l"
2700fprintf (yyout, "SV"); /* U+13D2 CHEROKEE LETTER SV */
2701 YY_BREAK
2702case 304:
2703YY_RULE_SETUP
2704#line 461 "sequoyah.l"
2705fprintf (yyout, "DA"); /* U+13D3 CHEROKEE LETTER DA */
2706 YY_BREAK
2707case 305:
2708YY_RULE_SETUP
2709#line 462 "sequoyah.l"
2710fprintf (yyout, "TA"); /* U+13D4 CHEROKEE LETTER TA */
2711 YY_BREAK
2712case 306:
2713YY_RULE_SETUP
2714#line 463 "sequoyah.l"
2715fprintf (yyout, "DE"); /* U+13D5 CHEROKEE LETTER DE */
2716 YY_BREAK
2717case 307:
2718YY_RULE_SETUP
2719#line 464 "sequoyah.l"
2720fprintf (yyout, "TE"); /* U+13D6 CHEROKEE LETTER TE */
2721 YY_BREAK
2722case 308:
2723YY_RULE_SETUP
2724#line 465 "sequoyah.l"
2725fprintf (yyout, "DI"); /* U+13D7 CHEROKEE LETTER DI */
2726 YY_BREAK
2727case 309:
2728YY_RULE_SETUP
2729#line 466 "sequoyah.l"
2730fprintf (yyout, "TI"); /* U+13D8 CHEROKEE LETTER TI */
2731 YY_BREAK
2732case 310:
2733YY_RULE_SETUP
2734#line 467 "sequoyah.l"
2735fprintf (yyout, "DO"); /* U+13D9 CHEROKEE LETTER DO */
2736 YY_BREAK
2737case 311:
2738YY_RULE_SETUP
2739#line 468 "sequoyah.l"
2740fprintf (yyout, "DU"); /* U+13DA CHEROKEE LETTER DU */
2741 YY_BREAK
2742case 312:
2743YY_RULE_SETUP
2744#line 469 "sequoyah.l"
2745fprintf (yyout, "DV"); /* U+13DB CHEROKEE LETTER DV */
2746 YY_BREAK
2747case 313:
2748YY_RULE_SETUP
2749#line 470 "sequoyah.l"
2750fprintf (yyout, "DLA"); /* U+13DC CHEROKEE LETTER DLA */
2751 YY_BREAK
2752case 314:
2753YY_RULE_SETUP
2754#line 471 "sequoyah.l"
2755fprintf (yyout, "TLA"); /* U+13DD CHEROKEE LETTER TLA */
2756 YY_BREAK
2757case 315:
2758YY_RULE_SETUP
2759#line 472 "sequoyah.l"
2760fprintf (yyout, "TLE"); /* U+13DE CHEROKEE LETTER TLE */
2761 YY_BREAK
2762case 316:
2763YY_RULE_SETUP
2764#line 473 "sequoyah.l"
2765fprintf (yyout, "TLI"); /* U+13DF CHEROKEE LETTER TLI */
2766 YY_BREAK
2767case 317:
2768YY_RULE_SETUP
2769#line 474 "sequoyah.l"
2770fprintf (yyout, "TLO"); /* U+13E0 CHEROKEE LETTER TLO */
2771 YY_BREAK
2772case 318:
2773YY_RULE_SETUP
2774#line 475 "sequoyah.l"
2775fprintf (yyout, "TLU"); /* U+13E1 CHEROKEE LETTER TLU */
2776 YY_BREAK
2777case 319:
2778YY_RULE_SETUP
2779#line 476 "sequoyah.l"
2780fprintf (yyout, "TLV"); /* U+13E2 CHEROKEE LETTER TLV */
2781 YY_BREAK
2782case 320:
2783YY_RULE_SETUP
2784#line 477 "sequoyah.l"
2785fprintf (yyout, "TSA"); /* U+13E3 CHEROKEE LETTER TSA */
2786 YY_BREAK
2787case 321:
2788YY_RULE_SETUP
2789#line 478 "sequoyah.l"
2790fprintf (yyout, "TSE"); /* U+13E4 CHEROKEE LETTER TSE */
2791 YY_BREAK
2792case 322:
2793YY_RULE_SETUP
2794#line 479 "sequoyah.l"
2795fprintf (yyout, "TSI"); /* U+13E5 CHEROKEE LETTER TSI */
2796 YY_BREAK
2797case 323:
2798YY_RULE_SETUP
2799#line 480 "sequoyah.l"
2800fprintf (yyout, "TSO"); /* U+13E6 CHEROKEE LETTER TSO */
2801 YY_BREAK
2802case 324:
2803YY_RULE_SETUP
2804#line 481 "sequoyah.l"
2805fprintf (yyout, "TSU"); /* U+13E7 CHEROKEE LETTER TSU */
2806 YY_BREAK
2807case 325:
2808YY_RULE_SETUP
2809#line 482 "sequoyah.l"
2810fprintf (yyout, "TSV"); /* U+13E8 CHEROKEE LETTER TSV */
2811 YY_BREAK
2812case 326:
2813YY_RULE_SETUP
2814#line 483 "sequoyah.l"
2815fprintf (yyout, "WA"); /* U+13E9 CHEROKEE LETTER WA */
2816 YY_BREAK
2817case 327:
2818YY_RULE_SETUP
2819#line 484 "sequoyah.l"
2820fprintf (yyout, "WE"); /* U+13EA CHEROKEE LETTER WE */
2821 YY_BREAK
2822case 328:
2823YY_RULE_SETUP
2824#line 485 "sequoyah.l"
2825fprintf (yyout, "WI"); /* U+13EB CHEROKEE LETTER WI */
2826 YY_BREAK
2827case 329:
2828YY_RULE_SETUP
2829#line 486 "sequoyah.l"
2830fprintf (yyout, "WO"); /* U+13EC CHEROKEE LETTER WO */
2831 YY_BREAK
2832case 330:
2833YY_RULE_SETUP
2834#line 487 "sequoyah.l"
2835fprintf (yyout, "WU"); /* U+13ED CHEROKEE LETTER WU */
2836 YY_BREAK
2837case 331:
2838YY_RULE_SETUP
2839#line 488 "sequoyah.l"
2840fprintf (yyout, "WV"); /* U+13EE CHEROKEE LETTER WV */
2841 YY_BREAK
2842case 332:
2843YY_RULE_SETUP
2844#line 489 "sequoyah.l"
2845fprintf (yyout, "YA"); /* U+13EF CHEROKEE LETTER YA */
2846 YY_BREAK
2847case 333:
2848YY_RULE_SETUP
2849#line 490 "sequoyah.l"
2850fprintf (yyout, "YE"); /* U+13F0 CHEROKEE LETTER YE */
2851 YY_BREAK
2852case 334:
2853YY_RULE_SETUP
2854#line 491 "sequoyah.l"
2855fprintf (yyout, "YI"); /* U+13F1 CHEROKEE LETTER YI */
2856 YY_BREAK
2857case 335:
2858YY_RULE_SETUP
2859#line 492 "sequoyah.l"
2860fprintf (yyout, "YO"); /* U+13F2 CHEROKEE LETTER YO */
2861 YY_BREAK
2862case 336:
2863YY_RULE_SETUP
2864#line 493 "sequoyah.l"
2865fprintf (yyout, "YU"); /* U+13F3 CHEROKEE LETTER YU */
2866 YY_BREAK
2867case 337:
2868YY_RULE_SETUP
2869#line 494 "sequoyah.l"
2870fprintf (yyout, "YV"); /* U+13F4 CHEROKEE LETTER YV */
2871 YY_BREAK
2872case 338:
2873YY_RULE_SETUP
2874#line 495 "sequoyah.l"
2875fprintf (yyout, "MV"); /* U+13F5 CHEROKEE LETTER MV */
2876 YY_BREAK
2877case 339:
2878YY_RULE_SETUP
2879#line 496 "sequoyah.l"
2880fprintf (yyout, "ye"); /* U+13F8 CHEROKEE SMALL LETTER YE */
2881 YY_BREAK
2882case 340:
2883YY_RULE_SETUP
2884#line 497 "sequoyah.l"
2885fprintf (yyout, "yi"); /* U+13F9 CHEROKEE SMALL LETTER YI */
2886 YY_BREAK
2887case 341:
2888YY_RULE_SETUP
2889#line 498 "sequoyah.l"
2890fprintf (yyout, "yo"); /* U+13FA CHEROKEE SMALL LETTER YO */
2891 YY_BREAK
2892case 342:
2893YY_RULE_SETUP
2894#line 499 "sequoyah.l"
2895fprintf (yyout, "yu"); /* U+13FB CHEROKEE SMALL LETTER YU */
2896 YY_BREAK
2897case 343:
2898YY_RULE_SETUP
2899#line 500 "sequoyah.l"
2900fprintf (yyout, "yv"); /* U+13FC CHEROKEE SMALL LETTER YV */
2901 YY_BREAK
2902case 344:
2903YY_RULE_SETUP
2904#line 501 "sequoyah.l"
2905fprintf (yyout, "mv"); /* U+13FD CHEROKEE SMALL LETTER MV */
2906 YY_BREAK
2907case 345:
2908YY_RULE_SETUP
2909#line 502 "sequoyah.l"
2910fprintf (yyout, "a"); /* U+AB70 CHEROKEE SMALL LETTER A */
2911 YY_BREAK
2912case 346:
2913YY_RULE_SETUP
2914#line 503 "sequoyah.l"
2915fprintf (yyout, "e"); /* U+AB71 CHEROKEE SMALL LETTER E */
2916 YY_BREAK
2917case 347:
2918YY_RULE_SETUP
2919#line 504 "sequoyah.l"
2920fprintf (yyout, "i"); /* U+AB72 CHEROKEE SMALL LETTER I */
2921 YY_BREAK
2922case 348:
2923YY_RULE_SETUP
2924#line 505 "sequoyah.l"
2925fprintf (yyout, "o"); /* U+AB73 CHEROKEE SMALL LETTER O */
2926 YY_BREAK
2927case 349:
2928YY_RULE_SETUP
2929#line 506 "sequoyah.l"
2930fprintf (yyout, "u"); /* U+AB74 CHEROKEE SMALL LETTER U */
2931 YY_BREAK
2932case 350:
2933YY_RULE_SETUP
2934#line 507 "sequoyah.l"
2935fprintf (yyout, "v"); /* U+AB75 CHEROKEE SMALL LETTER V */
2936 YY_BREAK
2937case 351:
2938YY_RULE_SETUP
2939#line 508 "sequoyah.l"
2940fprintf (yyout, "ga"); /* U+AB76 CHEROKEE SMALL LETTER GA */
2941 YY_BREAK
2942case 352:
2943YY_RULE_SETUP
2944#line 509 "sequoyah.l"
2945fprintf (yyout, "ka"); /* U+AB77 CHEROKEE SMALL LETTER KA */
2946 YY_BREAK
2947case 353:
2948YY_RULE_SETUP
2949#line 510 "sequoyah.l"
2950fprintf (yyout, "ge"); /* U+AB78 CHEROKEE SMALL LETTER GE */
2951 YY_BREAK
2952case 354:
2953YY_RULE_SETUP
2954#line 511 "sequoyah.l"
2955fprintf (yyout, "gi"); /* U+AB79 CHEROKEE SMALL LETTER GI */
2956 YY_BREAK
2957case 355:
2958YY_RULE_SETUP
2959#line 512 "sequoyah.l"
2960fprintf (yyout, "go"); /* U+AB7A CHEROKEE SMALL LETTER GO */
2961 YY_BREAK
2962case 356:
2963YY_RULE_SETUP
2964#line 513 "sequoyah.l"
2965fprintf (yyout, "gu"); /* U+AB7B CHEROKEE SMALL LETTER GU */
2966 YY_BREAK
2967case 357:
2968YY_RULE_SETUP
2969#line 514 "sequoyah.l"
2970fprintf (yyout, "gv"); /* U+AB7C CHEROKEE SMALL LETTER GV */
2971 YY_BREAK
2972case 358:
2973YY_RULE_SETUP
2974#line 515 "sequoyah.l"
2975fprintf (yyout, "ha"); /* U+AB7D CHEROKEE SMALL LETTER HA */
2976 YY_BREAK
2977case 359:
2978YY_RULE_SETUP
2979#line 516 "sequoyah.l"
2980fprintf (yyout, "he"); /* U+AB7E CHEROKEE SMALL LETTER HE */
2981 YY_BREAK
2982case 360:
2983YY_RULE_SETUP
2984#line 517 "sequoyah.l"
2985fprintf (yyout, "hi"); /* U+AB7F CHEROKEE SMALL LETTER HI */
2986 YY_BREAK
2987case 361:
2988YY_RULE_SETUP
2989#line 518 "sequoyah.l"
2990fprintf (yyout, "ho"); /* U+AB80 CHEROKEE SMALL LETTER HO */
2991 YY_BREAK
2992case 362:
2993YY_RULE_SETUP
2994#line 519 "sequoyah.l"
2995fprintf (yyout, "hu"); /* U+AB81 CHEROKEE SMALL LETTER HU */
2996 YY_BREAK
2997case 363:
2998YY_RULE_SETUP
2999#line 520 "sequoyah.l"
3000fprintf (yyout, "hv"); /* U+AB82 CHEROKEE SMALL LETTER HV */
3001 YY_BREAK
3002case 364:
3003YY_RULE_SETUP
3004#line 521 "sequoyah.l"
3005fprintf (yyout, "la"); /* U+AB83 CHEROKEE SMALL LETTER LA */
3006 YY_BREAK
3007case 365:
3008YY_RULE_SETUP
3009#line 522 "sequoyah.l"
3010fprintf (yyout, "le"); /* U+AB84 CHEROKEE SMALL LETTER LE */
3011 YY_BREAK
3012case 366:
3013YY_RULE_SETUP
3014#line 523 "sequoyah.l"
3015fprintf (yyout, "li"); /* U+AB85 CHEROKEE SMALL LETTER LI */
3016 YY_BREAK
3017case 367:
3018YY_RULE_SETUP
3019#line 524 "sequoyah.l"
3020fprintf (yyout, "lo"); /* U+AB86 CHEROKEE SMALL LETTER LO */
3021 YY_BREAK
3022case 368:
3023YY_RULE_SETUP
3024#line 525 "sequoyah.l"
3025fprintf (yyout, "lu"); /* U+AB87 CHEROKEE SMALL LETTER LU */
3026 YY_BREAK
3027case 369:
3028YY_RULE_SETUP
3029#line 526 "sequoyah.l"
3030fprintf (yyout, "lv"); /* U+AB88 CHEROKEE SMALL LETTER LV */
3031 YY_BREAK
3032case 370:
3033YY_RULE_SETUP
3034#line 527 "sequoyah.l"
3035fprintf (yyout, "ma"); /* U+AB89 CHEROKEE SMALL LETTER MA */
3036 YY_BREAK
3037case 371:
3038YY_RULE_SETUP
3039#line 528 "sequoyah.l"
3040fprintf (yyout, "me"); /* U+AB8A CHEROKEE SMALL LETTER ME */
3041 YY_BREAK
3042case 372:
3043YY_RULE_SETUP
3044#line 529 "sequoyah.l"
3045fprintf (yyout, "mi"); /* U+AB8B CHEROKEE SMALL LETTER MI */
3046 YY_BREAK
3047case 373:
3048YY_RULE_SETUP
3049#line 530 "sequoyah.l"
3050fprintf (yyout, "mo"); /* U+AB8C CHEROKEE SMALL LETTER MO */
3051 YY_BREAK
3052case 374:
3053YY_RULE_SETUP
3054#line 531 "sequoyah.l"
3055fprintf (yyout, "mu"); /* U+AB8D CHEROKEE SMALL LETTER MU */
3056 YY_BREAK
3057case 375:
3058YY_RULE_SETUP
3059#line 532 "sequoyah.l"
3060fprintf (yyout, "na"); /* U+AB8E CHEROKEE SMALL LETTER NA */
3061 YY_BREAK
3062case 376:
3063YY_RULE_SETUP
3064#line 533 "sequoyah.l"
3065fprintf (yyout, "hna"); /* U+AB8F CHEROKEE SMALL LETTER HNA */
3066 YY_BREAK
3067case 377:
3068YY_RULE_SETUP
3069#line 534 "sequoyah.l"
3070fprintf (yyout, "nah"); /* U+AB90 CHEROKEE SMALL LETTER NAH */
3071 YY_BREAK
3072case 378:
3073YY_RULE_SETUP
3074#line 535 "sequoyah.l"
3075fprintf (yyout, "ne"); /* U+AB91 CHEROKEE SMALL LETTER NE */
3076 YY_BREAK
3077case 379:
3078YY_RULE_SETUP
3079#line 536 "sequoyah.l"
3080fprintf (yyout, "ni"); /* U+AB92 CHEROKEE SMALL LETTER NI */
3081 YY_BREAK
3082case 380:
3083YY_RULE_SETUP
3084#line 537 "sequoyah.l"
3085fprintf (yyout, "no"); /* U+AB93 CHEROKEE SMALL LETTER NO */
3086 YY_BREAK
3087case 381:
3088YY_RULE_SETUP
3089#line 538 "sequoyah.l"
3090fprintf (yyout, "nu"); /* U+AB94 CHEROKEE SMALL LETTER NU */
3091 YY_BREAK
3092case 382:
3093YY_RULE_SETUP
3094#line 539 "sequoyah.l"
3095fprintf (yyout, "nv"); /* U+AB95 CHEROKEE SMALL LETTER NV */
3096 YY_BREAK
3097case 383:
3098YY_RULE_SETUP
3099#line 540 "sequoyah.l"
3100fprintf (yyout, "qua"); /* U+AB96 CHEROKEE SMALL LETTER QUA */
3101 YY_BREAK
3102case 384:
3103YY_RULE_SETUP
3104#line 541 "sequoyah.l"
3105fprintf (yyout, "que"); /* U+AB97 CHEROKEE SMALL LETTER QUE */
3106 YY_BREAK
3107case 385:
3108YY_RULE_SETUP
3109#line 542 "sequoyah.l"
3110fprintf (yyout, "qui"); /* U+AB98 CHEROKEE SMALL LETTER QUI */
3111 YY_BREAK
3112case 386:
3113YY_RULE_SETUP
3114#line 543 "sequoyah.l"
3115fprintf (yyout, "quo"); /* U+AB99 CHEROKEE SMALL LETTER QUO */
3116 YY_BREAK
3117case 387:
3118YY_RULE_SETUP
3119#line 544 "sequoyah.l"
3120fprintf (yyout, "quu"); /* U+AB9A CHEROKEE SMALL LETTER QUU */
3121 YY_BREAK
3122case 388:
3123YY_RULE_SETUP
3124#line 545 "sequoyah.l"
3125fprintf (yyout, "quv"); /* U+AB9B CHEROKEE SMALL LETTER QUV */
3126 YY_BREAK
3127case 389:
3128YY_RULE_SETUP
3129#line 546 "sequoyah.l"
3130fprintf (yyout, "sa"); /* U+AB9C CHEROKEE SMALL LETTER SA */
3131 YY_BREAK
3132case 390:
3133YY_RULE_SETUP
3134#line 547 "sequoyah.l"
3135fprintf (yyout, "s"); /* U+AB9D CHEROKEE SMALL LETTER S */
3136 YY_BREAK
3137case 391:
3138YY_RULE_SETUP
3139#line 548 "sequoyah.l"
3140fprintf (yyout, "se"); /* U+AB9E CHEROKEE SMALL LETTER SE */
3141 YY_BREAK
3142case 392:
3143YY_RULE_SETUP
3144#line 549 "sequoyah.l"
3145fprintf (yyout, "si"); /* U+AB9F CHEROKEE SMALL LETTER SI */
3146 YY_BREAK
3147case 393:
3148YY_RULE_SETUP
3149#line 550 "sequoyah.l"
3150fprintf (yyout, "so"); /* U+ABA0 CHEROKEE SMALL LETTER SO */
3151 YY_BREAK
3152case 394:
3153YY_RULE_SETUP
3154#line 551 "sequoyah.l"
3155fprintf (yyout, "su"); /* U+ABA1 CHEROKEE SMALL LETTER SU */
3156 YY_BREAK
3157case 395:
3158YY_RULE_SETUP
3159#line 552 "sequoyah.l"
3160fprintf (yyout, "sv"); /* U+ABA2 CHEROKEE SMALL LETTER SV */
3161 YY_BREAK
3162case 396:
3163YY_RULE_SETUP
3164#line 553 "sequoyah.l"
3165fprintf (yyout, "da"); /* U+ABA3 CHEROKEE SMALL LETTER DA */
3166 YY_BREAK
3167case 397:
3168YY_RULE_SETUP
3169#line 554 "sequoyah.l"
3170fprintf (yyout, "ta"); /* U+ABA4 CHEROKEE SMALL LETTER TA */
3171 YY_BREAK
3172case 398:
3173YY_RULE_SETUP
3174#line 555 "sequoyah.l"
3175fprintf (yyout, "de"); /* U+ABA5 CHEROKEE SMALL LETTER DE */
3176 YY_BREAK
3177case 399:
3178YY_RULE_SETUP
3179#line 556 "sequoyah.l"
3180fprintf (yyout, "te"); /* U+ABA6 CHEROKEE SMALL LETTER TE */
3181 YY_BREAK
3182case 400:
3183YY_RULE_SETUP
3184#line 557 "sequoyah.l"
3185fprintf (yyout, "di"); /* U+ABA7 CHEROKEE SMALL LETTER DI */
3186 YY_BREAK
3187case 401:
3188YY_RULE_SETUP
3189#line 558 "sequoyah.l"
3190fprintf (yyout, "ti"); /* U+ABA8 CHEROKEE SMALL LETTER TI */
3191 YY_BREAK
3192case 402:
3193YY_RULE_SETUP
3194#line 559 "sequoyah.l"
3195fprintf (yyout, "do"); /* U+ABA9 CHEROKEE SMALL LETTER DO */
3196 YY_BREAK
3197case 403:
3198YY_RULE_SETUP
3199#line 560 "sequoyah.l"
3200fprintf (yyout, "du"); /* U+ABAA CHEROKEE SMALL LETTER DU */
3201 YY_BREAK
3202case 404:
3203YY_RULE_SETUP
3204#line 561 "sequoyah.l"
3205fprintf (yyout, "dv"); /* U+ABAB CHEROKEE SMALL LETTER DV */
3206 YY_BREAK
3207case 405:
3208YY_RULE_SETUP
3209#line 562 "sequoyah.l"
3210fprintf (yyout, "dla"); /* U+ABAC CHEROKEE SMALL LETTER DLA */
3211 YY_BREAK
3212case 406:
3213YY_RULE_SETUP
3214#line 563 "sequoyah.l"
3215fprintf (yyout, "tla"); /* U+ABAD CHEROKEE SMALL LETTER TLA */
3216 YY_BREAK
3217case 407:
3218YY_RULE_SETUP
3219#line 564 "sequoyah.l"
3220fprintf (yyout, "tle"); /* U+ABAE CHEROKEE SMALL LETTER TLE */
3221 YY_BREAK
3222case 408:
3223YY_RULE_SETUP
3224#line 565 "sequoyah.l"
3225fprintf (yyout, "tli"); /* U+ABAF CHEROKEE SMALL LETTER TLI */
3226 YY_BREAK
3227case 409:
3228YY_RULE_SETUP
3229#line 566 "sequoyah.l"
3230fprintf (yyout, "tlo"); /* U+ABB0 CHEROKEE SMALL LETTER TLO */
3231 YY_BREAK
3232case 410:
3233YY_RULE_SETUP
3234#line 567 "sequoyah.l"
3235fprintf (yyout, "tlu"); /* U+ABB1 CHEROKEE SMALL LETTER TLU */
3236 YY_BREAK
3237case 411:
3238YY_RULE_SETUP
3239#line 568 "sequoyah.l"
3240fprintf (yyout, "tlv"); /* U+ABB2 CHEROKEE SMALL LETTER TLV */
3241 YY_BREAK
3242case 412:
3243YY_RULE_SETUP
3244#line 569 "sequoyah.l"
3245fprintf (yyout, "tsa"); /* U+ABB3 CHEROKEE SMALL LETTER TSA */
3246 YY_BREAK
3247case 413:
3248YY_RULE_SETUP
3249#line 570 "sequoyah.l"
3250fprintf (yyout, "tse"); /* U+ABB4 CHEROKEE SMALL LETTER TSE */
3251 YY_BREAK
3252case 414:
3253YY_RULE_SETUP
3254#line 571 "sequoyah.l"
3255fprintf (yyout, "tsi"); /* U+ABB5 CHEROKEE SMALL LETTER TSI */
3256 YY_BREAK
3257case 415:
3258YY_RULE_SETUP
3259#line 572 "sequoyah.l"
3260fprintf (yyout, "tso"); /* U+ABB6 CHEROKEE SMALL LETTER TSO */
3261 YY_BREAK
3262case 416:
3263YY_RULE_SETUP
3264#line 573 "sequoyah.l"
3265fprintf (yyout, "tsu"); /* U+ABB7 CHEROKEE SMALL LETTER TSU */
3266 YY_BREAK
3267case 417:
3268YY_RULE_SETUP
3269#line 574 "sequoyah.l"
3270fprintf (yyout, "tsv"); /* U+ABB8 CHEROKEE SMALL LETTER TSV */
3271 YY_BREAK
3272case 418:
3273YY_RULE_SETUP
3274#line 575 "sequoyah.l"
3275fprintf (yyout, "wa"); /* U+ABB9 CHEROKEE SMALL LETTER WA */
3276 YY_BREAK
3277case 419:
3278YY_RULE_SETUP
3279#line 576 "sequoyah.l"
3280fprintf (yyout, "we"); /* U+ABBA CHEROKEE SMALL LETTER WE */
3281 YY_BREAK
3282case 420:
3283YY_RULE_SETUP
3284#line 577 "sequoyah.l"
3285fprintf (yyout, "wi"); /* U+ABBB CHEROKEE SMALL LETTER WI */
3286 YY_BREAK
3287case 421:
3288YY_RULE_SETUP
3289#line 578 "sequoyah.l"
3290fprintf (yyout, "wo"); /* U+ABBC CHEROKEE SMALL LETTER WO */
3291 YY_BREAK
3292case 422:
3293YY_RULE_SETUP
3294#line 579 "sequoyah.l"
3295fprintf (yyout, "wu"); /* U+ABBD CHEROKEE SMALL LETTER WU */
3296 YY_BREAK
3297case 423:
3298YY_RULE_SETUP
3299#line 580 "sequoyah.l"
3300fprintf (yyout, "wv"); /* U+ABBE CHEROKEE SMALL LETTER WV */
3301 YY_BREAK
3302case 424:
3303YY_RULE_SETUP
3304#line 581 "sequoyah.l"
3305fprintf (yyout, "ya"); /* U+ABBF CHEROKEE SMALL LETTER YA */
3306 YY_BREAK
3307case 425:
3308YY_RULE_SETUP
3309#line 582 "sequoyah.l"
3310ECHO;
3311 YY_BREAK
3312#line 3312 "<stdout>"
3313case YY_STATE_EOF(INITIAL):
3314 yyterminate();
3315
3316 case YY_END_OF_BUFFER:
3317 {
3318 /* Amount of text matched not including the EOB char. */
3319 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3320
3321 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3322 *yy_cp = (yy_hold_char);
3323 YY_RESTORE_YY_MORE_OFFSET
3324
3325 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3326 {
3327 /* We're scanning a new file or input source. It's
3328 * possible that this happened because the user
3329 * just pointed yyin at a new source and called
3330 * yylex(). If so, then we have to assure
3331 * consistency between YY_CURRENT_BUFFER and our
3332 * globals. Here is the right place to do so, because
3333 * this is the first action (other than possibly a
3334 * back-up) that will match for the new input source.
3335 */
3336 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3337 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3338 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3339 }
3340
3341 /* Note that here we test for yy_c_buf_p "<=" to the position
3342 * of the first EOB in the buffer, since yy_c_buf_p will
3343 * already have been incremented past the NUL character
3344 * (since all states make transitions on EOB to the
3345 * end-of-buffer state). Contrast this with the test
3346 * in input().
3347 */
3348 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3349 { /* This was really a NUL. */
3350 yy_state_type yy_next_state;
3351
3352 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3353
3354 yy_current_state = yy_get_previous_state( );
3355
3356 /* Okay, we're now positioned to make the NUL
3357 * transition. We couldn't have
3358 * yy_get_previous_state() go ahead and do it
3359 * for us because it doesn't know how to deal
3360 * with the possibility of jamming (and we don't
3361 * want to build jamming into it because then it
3362 * will run more slowly).
3363 */
3364
3365 yy_next_state = yy_try_NUL_trans( yy_current_state );
3366
3367 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3368
3369 if ( yy_next_state )
3370 {
3371 /* Consume the NUL. */
3372 yy_cp = ++(yy_c_buf_p);
3373 yy_current_state = yy_next_state;
3374 goto yy_match;
3375 }
3376
3377 else
3378 {
3379 yy_cp = (yy_c_buf_p);
3380 goto yy_find_action;
3381 }
3382 }
3383
3384 else switch ( yy_get_next_buffer( ) )
3385 {
3386 case EOB_ACT_END_OF_FILE:
3387 {
3388 (yy_did_buffer_switch_on_eof) = 0;
3389
3390 if ( yywrap( ) )
3391 {
3392 /* Note: because we've taken care in
3393 * yy_get_next_buffer() to have set up
3394 * yytext, we can now set up
3395 * yy_c_buf_p so that if some total
3396 * hoser (like flex itself) wants to
3397 * call the scanner after we return the
3398 * YY_NULL, it'll still work - another
3399 * YY_NULL will get returned.
3400 */
3401 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3402
3403 yy_act = YY_STATE_EOF(YY_START);
3404 goto do_action;
3405 }
3406
3407 else
3408 {
3409 if ( ! (yy_did_buffer_switch_on_eof) )
3410 YY_NEW_FILE;
3411 }
3412 break;
3413 }
3414
3415 case EOB_ACT_CONTINUE_SCAN:
3416 (yy_c_buf_p) =
3417 (yytext_ptr) + yy_amount_of_matched_text;
3418
3419 yy_current_state = yy_get_previous_state( );
3420
3421 yy_cp = (yy_c_buf_p);
3422 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3423 goto yy_match;
3424
3425 case EOB_ACT_LAST_MATCH:
3426 (yy_c_buf_p) =
3427 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3428
3429 yy_current_state = yy_get_previous_state( );
3430
3431 yy_cp = (yy_c_buf_p);
3432 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3433 goto yy_find_action;
3434 }
3435 break;
3436 }
3437
3438 default:
3439 YY_FATAL_ERROR(
3440 "fatal flex scanner internal error--no action found" );
3441 } /* end of action switch */
3442 } /* end of scanning one token */
3443 } /* end of user's declarations */
3444} /* end of yylex */
3445
3446/* yy_get_next_buffer - try to read in a new buffer
3447 *
3448 * Returns a code representing an action:
3449 * EOB_ACT_LAST_MATCH -
3450 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3451 * EOB_ACT_END_OF_FILE - end of file
3452 */
3453static int yy_get_next_buffer (void)
3454{
3455 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3456 char *source = (yytext_ptr);
3457 int number_to_move, i;
3458 int ret_val;
3459
3460 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3461 YY_FATAL_ERROR(
3462 "fatal flex scanner internal error--end of buffer missed" );
3463
3464 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3465 { /* Don't try to fill the buffer, so this is an EOF. */
3466 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3467 {
3468 /* We matched a single character, the EOB, so
3469 * treat this as a final EOF.
3470 */
3471 return EOB_ACT_END_OF_FILE;
3472 }
3473
3474 else
3475 {
3476 /* We matched some text prior to the EOB, first
3477 * process it.
3478 */
3479 return EOB_ACT_LAST_MATCH;
3480 }
3481 }
3482
3483 /* Try to read more data. */
3484
3485 /* First move last chars to start of buffer. */
3486 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
3487
3488 for ( i = 0; i < number_to_move; ++i )
3489 *(dest++) = *(source++);
3490
3491 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3492 /* don't do the read, it's not guaranteed to return an EOF,
3493 * just force an EOF
3494 */
3495 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3496
3497 else
3498 {
3499 yy_size_t num_to_read =
3500 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3501
3502 while ( num_to_read <= 0 )
3503 { /* Not enough room in the buffer - grow it. */
3504
3505 /* just a shorter name for the current buffer */
3506 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3507
3508 int yy_c_buf_p_offset =
3509 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3510
3511 if ( b->yy_is_our_buffer )
3512 {
3513 yy_size_t new_size = b->yy_buf_size * 2;
3514
3515 if ( new_size <= 0 )
3516 b->yy_buf_size += b->yy_buf_size / 8;
3517 else
3518 b->yy_buf_size *= 2;
3519
3520 b->yy_ch_buf = (char *)
3521 /* Include room in for 2 EOB chars. */
3522 yyrealloc( (void *) b->yy_ch_buf,
3523 (yy_size_t) (b->yy_buf_size + 2) );
3524 }
3525 else
3526 /* Can't grow it, we don't own it. */
3527 b->yy_ch_buf = NULL;
3528
3529 if ( ! b->yy_ch_buf )
3530 YY_FATAL_ERROR(
3531 "fatal error - scanner input buffer overflow" );
3532
3533 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3534
3535 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3536 number_to_move - 1;
3537
3538 }
3539
3540 if ( num_to_read > YY_READ_BUF_SIZE )
3541 num_to_read = YY_READ_BUF_SIZE;
3542
3543 /* Read in more data. */
3544 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3545 (yy_n_chars), num_to_read );
3546
3547 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3548 }
3549
3550 if ( (yy_n_chars) == 0 )
3551 {
3552 if ( number_to_move == YY_MORE_ADJ )
3553 {
3554 ret_val = EOB_ACT_END_OF_FILE;
3555 yyrestart( yyin );
3556 }
3557
3558 else
3559 {
3560 ret_val = EOB_ACT_LAST_MATCH;
3561 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3562 YY_BUFFER_EOF_PENDING;
3563 }
3564 }
3565
3566 else
3567 ret_val = EOB_ACT_CONTINUE_SCAN;
3568
3569 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3570 /* Extend the array by 50%, plus the number we really need. */
3571 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3572 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
3573 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
3574 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3575 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3576 /* "- 2" to take care of EOB's */
3577 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
3578 }
3579
3580 (yy_n_chars) += number_to_move;
3581 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3582 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3583
3584 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3585
3586 return ret_val;
3587}
3588
3589/* yy_get_previous_state - get the state just before the EOB char was reached */
3590
3591 static yy_state_type yy_get_previous_state (void)
3592{
3593 yy_state_type yy_current_state;
3594 char *yy_cp;
3595
3596 yy_current_state = (yy_start);
3597
3598 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3599 {
3600 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3601 if ( yy_accept[yy_current_state] )
3602 {
3603 (yy_last_accepting_state) = yy_current_state;
3604 (yy_last_accepting_cpos) = yy_cp;
3605 }
3606 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3607 {
3608 yy_current_state = (int) yy_def[yy_current_state];
3609 if ( yy_current_state >= 475 )
3610 yy_c = yy_meta[yy_c];
3611 }
3612 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
3613 }
3614
3615 return yy_current_state;
3616}
3617
3618/* yy_try_NUL_trans - try to make a transition on the NUL character
3619 *
3620 * synopsis
3621 * next_state = yy_try_NUL_trans( current_state );
3622 */
3623 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3624{
3625 int yy_is_jam;
3626 char *yy_cp = (yy_c_buf_p);
3627
3628 YY_CHAR yy_c = 1;
3629 if ( yy_accept[yy_current_state] )
3630 {
3631 (yy_last_accepting_state) = yy_current_state;
3632 (yy_last_accepting_cpos) = yy_cp;
3633 }
3634 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3635 {
3636 yy_current_state = (int) yy_def[yy_current_state];
3637 if ( yy_current_state >= 475 )
3638 yy_c = yy_meta[yy_c];
3639 }
3640 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
3641 yy_is_jam = (yy_current_state == 474);
3642
3643 return yy_is_jam ? 0 : yy_current_state;
3644}
3645
3646#ifndef YY_NO_UNPUT
3647
3648 static void yyunput (int c, char * yy_bp )
3649{
3650 char *yy_cp;
3651
3652 yy_cp = (yy_c_buf_p);
3653
3654 /* undo effects of setting up yytext */
3655 *yy_cp = (yy_hold_char);
3656
3657 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3658 { /* need to shift things up to make room */
3659 /* +2 for EOB chars. */
3660 yy_size_t number_to_move = (yy_n_chars) + 2;
3661 char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3662 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3663 char *source =
3664 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3665
3666 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3667 *--dest = *--source;
3668
3669 yy_cp += (int) (dest - source);
3670 yy_bp += (int) (dest - source);
3671 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3672 (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3673
3674 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3675 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3676 }
3677
3678 *--yy_cp = (char) c;
3679
3680 (yytext_ptr) = yy_bp;
3681 (yy_hold_char) = *yy_cp;
3682 (yy_c_buf_p) = yy_cp;
3683}
3684
3685#endif
3686
3687#ifndef YY_NO_INPUT
3688#ifdef __cplusplus
3689 static int yyinput (void)
3690#else
3691 static int input (void)
3692#endif
3693
3694{
3695 int c;
3696
3697 *(yy_c_buf_p) = (yy_hold_char);
3698
3699 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3700 {
3701 /* yy_c_buf_p now points to the character we want to return.
3702 * If this occurs *before* the EOB characters, then it's a
3703 * valid NUL; if not, then we've hit the end of the buffer.
3704 */
3705 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3706 /* This was really a NUL. */
3707 *(yy_c_buf_p) = '\0';
3708
3709 else
3710 { /* need more input */
3711 yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
3712 ++(yy_c_buf_p);
3713
3714 switch ( yy_get_next_buffer( ) )
3715 {
3716 case EOB_ACT_LAST_MATCH:
3717 /* This happens because yy_g_n_b()
3718 * sees that we've accumulated a
3719 * token and flags that we need to
3720 * try matching the token before
3721 * proceeding. But for input(),
3722 * there's no matching to consider.
3723 * So convert the EOB_ACT_LAST_MATCH
3724 * to EOB_ACT_END_OF_FILE.
3725 */
3726
3727 /* Reset buffer status. */
3728 yyrestart( yyin );
3729
3730 /*FALLTHROUGH*/
3731
3732 case EOB_ACT_END_OF_FILE:
3733 {
3734 if ( yywrap( ) )
3735 return 0;
3736
3737 if ( ! (yy_did_buffer_switch_on_eof) )
3738 YY_NEW_FILE;
3739#ifdef __cplusplus
3740 return yyinput();
3741#else
3742 return input();
3743#endif
3744 }
3745
3746 case EOB_ACT_CONTINUE_SCAN:
3747 (yy_c_buf_p) = (yytext_ptr) + offset;
3748 break;
3749 }
3750 }
3751 }
3752
3753 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3754 *(yy_c_buf_p) = '\0'; /* preserve yytext */
3755 (yy_hold_char) = *++(yy_c_buf_p);
3756
3757 return c;
3758}
3759#endif /* ifndef YY_NO_INPUT */
3760
3766 void yyrestart (FILE * input_file )
3767{
3768
3769 if ( ! YY_CURRENT_BUFFER ){
3770 yyensure_buffer_stack ();
3771 YY_CURRENT_BUFFER_LVALUE =
3772 yy_create_buffer( yyin, YY_BUF_SIZE );
3773 }
3774
3775 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
3776 yy_load_buffer_state( );
3777}
3778
3783 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
3784{
3785
3786 /* TODO. We should be able to replace this entire function body
3787 * with
3788 * yypop_buffer_state();
3789 * yypush_buffer_state(new_buffer);
3790 */
3791 yyensure_buffer_stack ();
3792 if ( YY_CURRENT_BUFFER == new_buffer )
3793 return;
3794
3795 if ( YY_CURRENT_BUFFER )
3796 {
3797 /* Flush out information for old buffer. */
3798 *(yy_c_buf_p) = (yy_hold_char);
3799 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3800 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3801 }
3802
3803 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3804 yy_load_buffer_state( );
3805
3806 /* We don't actually know whether we did this switch during
3807 * EOF (yywrap()) processing, but the only time this flag
3808 * is looked at is after yywrap() is called, so it's safe
3809 * to go ahead and always set it.
3810 */
3811 (yy_did_buffer_switch_on_eof) = 1;
3812}
3813
3814static void yy_load_buffer_state (void)
3815{
3816 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3817 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3818 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3819 (yy_hold_char) = *(yy_c_buf_p);
3820}
3821
3828 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
3829{
3831
3832 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
3833 if ( ! b )
3834 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3835
3836 b->yy_buf_size = size;
3837
3838 /* yy_ch_buf has to be 2 characters longer than the size given because
3839 * we need to put in 2 end-of-buffer characters.
3840 */
3841 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
3842 if ( ! b->yy_ch_buf )
3843 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3844
3845 b->yy_is_our_buffer = 1;
3846
3847 yy_init_buffer( b, file );
3848
3849 return b;
3850}
3851
3856 void yy_delete_buffer (YY_BUFFER_STATE b )
3857{
3858
3859 if ( ! b )
3860 return;
3861
3862 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3863 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3864
3865 if ( b->yy_is_our_buffer )
3866 yyfree( (void *) b->yy_ch_buf );
3867
3868 yyfree( (void *) b );
3869}
3870
3871/* Initializes or reinitializes a buffer.
3872 * This function is sometimes called more than once on the same buffer,
3873 * such as during a yyrestart() or at EOF.
3874 */
3875 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
3876
3877{
3878 int oerrno = errno;
3879
3880 yy_flush_buffer( b );
3881
3882 b->yy_input_file = file;
3883 b->yy_fill_buffer = 1;
3884
3885 /* If b is the current buffer, then yy_init_buffer was _probably_
3886 * called from yyrestart() or through yy_get_next_buffer.
3887 * In that case, we don't want to reset the lineno or column.
3888 */
3889 if (b != YY_CURRENT_BUFFER){
3890 b->yy_bs_lineno = 1;
3891 b->yy_bs_column = 0;
3892 }
3893
3894 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3895
3896 errno = oerrno;
3897}
3898
3903 void yy_flush_buffer (YY_BUFFER_STATE b )
3904{
3905 if ( ! b )
3906 return;
3907
3908 b->yy_n_chars = 0;
3909
3910 /* We always need two end-of-buffer characters. The first causes
3911 * a transition to the end-of-buffer state. The second causes
3912 * a jam in that state.
3913 */
3914 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3915 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3916
3917 b->yy_buf_pos = &b->yy_ch_buf[0];
3918
3919 b->yy_at_bol = 1;
3920 b->yy_buffer_status = YY_BUFFER_NEW;
3921
3922 if ( b == YY_CURRENT_BUFFER )
3923 yy_load_buffer_state( );
3924}
3925
3932void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3933{
3934 if (new_buffer == NULL)
3935 return;
3936
3937 yyensure_buffer_stack();
3938
3939 /* This block is copied from yy_switch_to_buffer. */
3940 if ( YY_CURRENT_BUFFER )
3941 {
3942 /* Flush out information for old buffer. */
3943 *(yy_c_buf_p) = (yy_hold_char);
3944 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3945 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3946 }
3947
3948 /* Only push if top exists. Otherwise, replace top. */
3949 if (YY_CURRENT_BUFFER)
3950 (yy_buffer_stack_top)++;
3951 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3952
3953 /* copied from yy_switch_to_buffer. */
3954 yy_load_buffer_state( );
3955 (yy_did_buffer_switch_on_eof) = 1;
3956}
3957
3962void yypop_buffer_state (void)
3963{
3964 if (!YY_CURRENT_BUFFER)
3965 return;
3966
3967 yy_delete_buffer(YY_CURRENT_BUFFER );
3968 YY_CURRENT_BUFFER_LVALUE = NULL;
3969 if ((yy_buffer_stack_top) > 0)
3970 --(yy_buffer_stack_top);
3971
3972 if (YY_CURRENT_BUFFER) {
3973 yy_load_buffer_state( );
3974 (yy_did_buffer_switch_on_eof) = 1;
3975 }
3976}
3977
3978/* Allocates the stack if it does not exist.
3979 * Guarantees space for at least one push.
3980 */
3981static void yyensure_buffer_stack (void)
3982{
3983 yy_size_t num_to_alloc;
3984
3985 if (!(yy_buffer_stack)) {
3986
3987 /* First allocation is just for 2 elements, since we don't know if this
3988 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3989 * immediate realloc on the next call.
3990 */
3991 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
3992 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3993 (num_to_alloc * sizeof(struct yy_buffer_state*)
3994 );
3995 if ( ! (yy_buffer_stack) )
3996 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3997
3998 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3999
4000 (yy_buffer_stack_max) = num_to_alloc;
4001 (yy_buffer_stack_top) = 0;
4002 return;
4003 }
4004
4005 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4006
4007 /* Increase the buffer to prepare for a possible push. */
4008 yy_size_t grow_size = 8 /* arbitrary grow size */;
4009
4010 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4011 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4012 ((yy_buffer_stack),
4013 num_to_alloc * sizeof(struct yy_buffer_state*)
4014 );
4015 if ( ! (yy_buffer_stack) )
4016 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4017
4018 /* zero only the new slots.*/
4019 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4020 (yy_buffer_stack_max) = num_to_alloc;
4021 }
4022}
4023
4030YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
4031{
4033
4034 if ( size < 2 ||
4035 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4036 base[size-1] != YY_END_OF_BUFFER_CHAR )
4037 /* They forgot to leave room for the EOB's. */
4038 return NULL;
4039
4040 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
4041 if ( ! b )
4042 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4043
4044 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
4045 b->yy_buf_pos = b->yy_ch_buf = base;
4046 b->yy_is_our_buffer = 0;
4047 b->yy_input_file = NULL;
4048 b->yy_n_chars = b->yy_buf_size;
4049 b->yy_is_interactive = 0;
4050 b->yy_at_bol = 1;
4051 b->yy_fill_buffer = 0;
4052 b->yy_buffer_status = YY_BUFFER_NEW;
4053
4054 yy_switch_to_buffer( b );
4055
4056 return b;
4057}
4058
4067YY_BUFFER_STATE yy_scan_string (const char * yystr )
4068{
4069
4070 return yy_scan_bytes( yystr, (int) strlen(yystr) );
4071}
4072
4080YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, yy_size_t _yybytes_len )
4081{
4083 char *buf;
4084 yy_size_t n;
4085 yy_size_t i;
4086
4087 /* Get memory for full buffer, including space for trailing EOB's. */
4088 n = (yy_size_t) (_yybytes_len + 2);
4089 buf = (char *) yyalloc( n );
4090 if ( ! buf )
4091 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4092
4093 for ( i = 0; i < _yybytes_len; ++i )
4094 buf[i] = yybytes[i];
4095
4096 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4097
4098 b = yy_scan_buffer( buf, n );
4099 if ( ! b )
4100 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4101
4102 /* It's okay to grow etc. this buffer, and we should throw it
4103 * away when we're done.
4104 */
4105 b->yy_is_our_buffer = 1;
4106
4107 return b;
4108}
4109
4110#ifndef YY_EXIT_FAILURE
4111#define YY_EXIT_FAILURE 2
4112#endif
4113
4114static void yynoreturn yy_fatal_error (const char* msg )
4115{
4116 fprintf( stderr, "%s\n", msg );
4117 exit( YY_EXIT_FAILURE );
4118}
4119
4120/* Redefine yyless() so it works in section 3 code. */
4121
4122#undef yyless
4123#define yyless(n) \
4124 do \
4125 { \
4126 /* Undo effects of setting up yytext. */ \
4127 yy_size_t yyless_macro_arg = (n); \
4128 YY_LESS_LINENO(yyless_macro_arg);\
4129 yytext[yyleng] = (yy_hold_char); \
4130 (yy_c_buf_p) = yytext + yyless_macro_arg; \
4131 (yy_hold_char) = *(yy_c_buf_p); \
4132 *(yy_c_buf_p) = '\0'; \
4133 yyleng = yyless_macro_arg; \
4134 } \
4135 while ( 0 )
4136
4137/* Accessor methods (get/set functions) to struct members. */
4138
4142int yyget_lineno (void)
4143{
4144
4145 return yylineno;
4146}
4147
4151FILE *yyget_in (void)
4152{
4153 return yyin;
4154}
4155
4159FILE *yyget_out (void)
4160{
4161 return yyout;
4162}
4163
4167yy_size_t yyget_leng (void)
4168{
4169 return yyleng;
4170}
4171
4176char *yyget_text (void)
4177{
4178 return yytext;
4179}
4180
4185void yyset_lineno (int _line_number )
4186{
4187
4188 yylineno = _line_number;
4189}
4190
4197void yyset_in (FILE * _in_str )
4198{
4199 yyin = _in_str ;
4200}
4201
4202void yyset_out (FILE * _out_str )
4203{
4204 yyout = _out_str ;
4205}
4206
4207int yyget_debug (void)
4208{
4209 return yy_flex_debug;
4210}
4211
4212void yyset_debug (int _bdebug )
4213{
4214 yy_flex_debug = _bdebug ;
4215}
4216
4217static int yy_init_globals (void)
4218{
4219 /* Initialization is the same as for the non-reentrant scanner.
4220 * This function is called from yylex_destroy(), so don't allocate here.
4221 */
4222
4223 (yy_buffer_stack) = NULL;
4224 (yy_buffer_stack_top) = 0;
4225 (yy_buffer_stack_max) = 0;
4226 (yy_c_buf_p) = NULL;
4227 (yy_init) = 0;
4228 (yy_start) = 0;
4229
4230/* Defined in main.c */
4231#ifdef YY_STDINIT
4232 yyin = stdin;
4233 yyout = stdout;
4234#else
4235 yyin = NULL;
4236 yyout = NULL;
4237#endif
4238
4239 /* For future reference: Set errno on error, since we are called by
4240 * yylex_init()
4241 */
4242 return 0;
4243}
4244
4245/* yylex_destroy is for both reentrant and non-reentrant scanners. */
4246int yylex_destroy (void)
4247{
4248
4249 /* Pop the buffer stack, destroying each element. */
4250 while(YY_CURRENT_BUFFER){
4251 yy_delete_buffer( YY_CURRENT_BUFFER );
4252 YY_CURRENT_BUFFER_LVALUE = NULL;
4253 yypop_buffer_state();
4254 }
4255
4256 /* Destroy the stack itself. */
4257 yyfree((yy_buffer_stack) );
4258 (yy_buffer_stack) = NULL;
4259
4260 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4261 * yylex() is called, initialization will occur. */
4262 yy_init_globals( );
4263
4264 return 0;
4265}
4266
4267/*
4268 * Internal utility routines.
4269 */
4270
4271#ifndef yytext_ptr
4272static void yy_flex_strncpy (char* s1, const char * s2, int n )
4273{
4274
4275 int i;
4276 for ( i = 0; i < n; ++i )
4277 s1[i] = s2[i];
4278}
4279#endif
4280
4281#ifdef YY_NEED_STRLEN
4282static int yy_flex_strlen (const char * s )
4283{
4284 int n;
4285 for ( n = 0; s[n]; ++n )
4286 ;
4287
4288 return n;
4289}
4290#endif
4291
4292void *yyalloc (yy_size_t size )
4293{
4294 return malloc(size);
4295}
4296
4297void *yyrealloc (void * ptr, yy_size_t size )
4298{
4299
4300 /* The cast to (char *) in the following accommodates both
4301 * implementations that use char* generic pointers, and those
4302 * that use void* generic pointers. It works with the latter
4303 * because both ANSI C and C++ allow castless assignment from
4304 * any pointer type to void*, and deal with argument conversions
4305 * as though doing an assignment.
4306 */
4307 return realloc(ptr, size);
4308}
4309
4310void yyfree (void * ptr )
4311{
4312 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
4313}
4314
4315#define YYTABLES_NAME "yytables"
4316
4317#line 582 "sequoyah.l"
4318
4319
4320int
4321main (int argc, char *argv[])
4322{
4323 int i; /* loop variable */
4324 int exit_status; /* program exit status */
4325
4326 void print_help (char *);
4327
4328 exit_status = EXIT_SUCCESS;
4329 yyin = stdin;
4330 yyout = stdout;
4331
4332 for (i = 1; i < argc; i++) {
4333 /*
4334 Parse options. If an invalid command line argument
4335 was given, print a help menu and exit with error status.
4336 */
4337 if (argv[i][0] == '-') {
4338 switch (argv[i][1]) {
4339 /* Check for "--version" */
4340 case '-': if (strncmp (argv[i], "--version", 9) == 0) {
4341 printf ("sequoyah Version %s\n", VERSION);
4342 exit (EXIT_SUCCESS);
4343 }
4344 /* Begin output with Byte Order Mark, U+FFFE */
4345 case 'b': bom_out = 1;
4346 break;
4347 /*
4348 input file format; file name follows
4349 in next parameter, so increment i
4350 */
4351 case 'i': yyin = fopen (argv[++i], "r");
4352 break;
4353 /*
4354 output file format; file name follows
4355 in next parameter, so increment i
4356 */
4357 case 'o': yyout = fopen (argv[++i], "w");
4358 break;
4359 /* Check for "-v" */
4360 case 'v': printf ("sequoyah Version %s\n", VERSION);
4361 exit (EXIT_SUCCESS);
4362 /* quote mark style for open & close quotes */
4363 default: print_help (argv[0]);
4364 exit_status = EXIT_FAILURE;
4365 break;
4366 }
4367 }
4368 else {
4369 print_help (argv[0]);
4370 exit_status = EXIT_FAILURE;
4371 }
4372 }
4373
4374 if (exit_status == EXIT_SUCCESS) {
4375 if (bom_out != 0) {
4376 print_utf8 (0xFFFE); /* Unicode Byte Order Mark */
4377 }
4378
4379 yylex ();
4380 }
4381
4382 exit (exit_status);
4383}
4384
4385
4386/*
4387 Print a help message. The parameter is the program name,
4388 taken from argv[0].
4389*/
4390void
4391print_help (char * progname)
4392{
4393
4394 fprintf (stderr, "\nUnknown command line parameter.\n\n");
4395 fprintf (stderr, "Syntax: %s [-b] [-i input_file] [-o output_file]\n\n",
4396 progname);
4397 fprintf (stderr, " -b: begin output with UTF-8 Byte Order Mark\n\n");
4398 fprintf (stderr, " -i: specify input file name\n\n");
4399 fprintf (stderr, " -o: specify output file name\n\n");
4400
4401 return;
4402}
4403
4404
4405/*
4406 Print a pattern that was read as ASCII if in Latin mode.
4407 Otherwise, print the UTF-8 code point.
4408*/
4409void
4410print_pattern (char *intext, uint32_t codept)
4411{
4412
4413 void print_ascii (char *);
4414 void print_utf8 (uint32_t);
4415
4416 if (lang_type == LANG_LATIN)
4417 print_ascii (intext);
4418 else
4419 print_utf8 (codept);
4420
4421 return;
4422}
4423
4424
4425/*
4426 Print an ASCII sequence that appeared inside braces, '{'...'}'.
4427*/
4428void
4429print_ascii (char *intext)
4430{
4431 int i, j, k; /* loop variables */
4432 char unicode_string[7]; /* up to six hexadecimal digits, null-terminated */
4433
4434 for (i = 0; intext[i] != '\0'; i++) {
4435 /*
4436 Scan for a backslash, looking for an escape sequence.
4437 At present, the only recognized escape sequence is "\u"
4438 to represent a Unicode hexadecimal code point of the
4439 form "\uX...X", where "X...X" is a string of one to six
4440 hexadecimal digits that specify a valid Unicode code point.
4441 */
4442 for (j = i;
4443 intext[j] != '\0' && intext[j] != '\\';
4444 j++);
4445
4446 if (intext [j] == '\0') { /* this is probably the most frequent case */
4447 fprintf (yyout, "%s", &intext [i]);
4448 i = j-1; /* so the outer i loop will terminate */
4449 }
4450 /*
4451 Found a backslash, so look for a following 'u'.
4452 */
4453 else if (intext [j+1] == 'u') {
4454 /* print the string up to but not including the backslash */
4455 intext[j] = '\0';
4456 fprintf (yyout, "%s", &intext[i]);
4457 i = j + 2; /* i points to first digit in Unicode code point */
4458 unicode_string [0] = '\0'; /* start building the Unicode code point string */
4459 /*
4460 scan to end of hexadecimal digits, up to six digits
4461 */
4462 for (k = 0;
4463 k < 6 && /* allow up to six hexadecimal digits */
4464 (isdigit (intext [i]) ||
4465 (intext [i] >= 'A' && intext [i] <= 'F') ||
4466 (intext [i] >= 'a' && intext [i] <= 'f'));
4467 k++) {
4468
4469 unicode_string [k] = intext[i];
4470 unicode_string [k + 1] = '\0'; /* make sure string stays null-terminated */
4471 i++;
4472 }
4473 print_unicode (unicode_string);
4474 /* intext [i] points to the remainder of the input string */
4475 i--; /* it will be incremented again next i loop iteration */
4476 } /* intext [j+1] == 'u' */
4477 /*
4478 Otherwise, this was not a recognized '\' sequence,
4479 so print string up to the backslash and keep going.
4480 */
4481 else {
4482 intext [j] = '\0'; /* replace '\\' with null to print up to this location */
4483 fprintf (yyout, "%s\\", &intext [i]);
4484 i = j; /* keep scanning intext[i] until the end is reached */
4485 }
4486 }
4487
4488 return;
4489}
4490
4491
4492/*
4493 Print a Unicode code point in the form "X...X",
4494 where "X...X" is a string of one to six hexadeimcal
4495 digits that describe a valid Unicode code point.
4496*/
4497void
4498print_unicode (char *intext)
4499{
4500 int i; /* loop variable */
4501 uint32_t this_digit; /* current ASCII hexadecimal digit being converted */
4502 uint32_t codept; /* the Unicode code point to output */
4503
4504 void print_utf8 (uint32_t);
4505
4506 codept = 0;
4507 for (i = 0; intext[i] != '\0'; i++) {
4508 codept <<= 4; /* shift one hexadecimal digit to the left */
4509 this_digit = intext[i];
4510 if (this_digit >= 'a')
4511 this_digit = this_digit - 'a' + 10;
4512 else if (this_digit >= 'A')
4513 this_digit = this_digit - 'A' + 10;
4514 else
4515 this_digit -= '0';
4516
4517 codept |= this_digit;
4518 } /* for i */
4519
4520 print_utf8 (codept);
4521
4522 return;
4523}
4524
4525
4526/*
4527 Print an open or close quote dependent on language mode.
4528
4529 intext character string starting with '"'
4530 or "`" or "'".
4531*/
4532void
4533print_quote (char *intext)
4534{
4535
4536 void print_utf8 (uint32_t);
4537
4538 /* Double qoute, the most common case */
4539 if (intext[0] == '"') {
4540 if (quote_state[doubleq_style] == 0) { /* print opening quote */
4541 print_utf8 (quote_open[doubleq_style]);
4542 quote_state[doubleq_style] = 1; /* now entering a quote style */
4543 }
4544 else { /* print closing quote */
4545 print_utf8 (quote_close[doubleq_style]);
4546 quote_state[doubleq_style] = 0; /* now leaving a quote style */
4547 }
4548 }
4549 else { /* open ("`") or close ("'") single quote */
4550 if (intext[0] == '`') { /* open quote */
4551 if (singleq_style == 0) /* Latin */
4552 print_utf8 (0x02BB);
4553 else if (singleq_style == 4) /* Hebrew */
4554 print_utf8 (0x201A);
4555 else /* Greek, Coptic, or Demotic */
4556 print_utf8 (0x02BB);
4557 }
4558 else { /* close quote, "'" */
4559 if (singleq_style == 0) /* Latin */
4560 print_utf8 (0x02BC);
4561 else if (singleq_style == 4) /* Hebrew */
4562 print_utf8 (0x2018);
4563 else /* Greek, Coptic, or Demotic */
4564 print_utf8 (0x02BC);
4565 }
4566 }
4567
4568 return;
4569}
4570
4571
4572/*
4573 Print Greek, Latin, Coptic, or Hebrew capital letter.
4574
4575 This is passed yytext, so the first character in the
4576 input string is a '*'; skip over it for indexing.
4577*/
4578void
4579print_capital (char *intext)
4580{
4581 int test_char; /* character to test */
4582
4583 test_char = intext[1] & 0x7F;
4584
4585 switch (lang_type) {
4586 case LANG_GREEK:
4587 /* First check for Greek varia (grave accent) on vowel */
4588 if (intext[2] == '\\') { /* intext[2] should either be '\\' or '\0' */
4589 test_char = tolower (test_char);
4590 switch (test_char) {
4591 case 'a':
4592 print_utf8 (0x1FBA); /* GREEK CAPITAL LETTER ALPHA WITH VARIA */
4593 break;
4594 case 'e':
4595 print_utf8 (0x1FC8); /* GREEK CAPITAL LETTER EPSILON WITH VARIA */
4596 break;
4597 case 'h':
4598 print_utf8 (0x1FCA); /* GREEK CAPITAL LETTER ETA WITH VARIA */
4599 break;
4600 case 'i':
4601 print_utf8 (0x1FDA); /* GREEK CAPITAL LETTER IOTA WITH VARIA */
4602 break;
4603 case 'o':
4604 print_utf8 (0x1FEA); /* GREEK CAPITAL LETTER UPSILON WITH VARIA */
4605 break;
4606 case 'u':
4607 print_utf8 (0x1FF8); /* GREEK CAPITAL LETTER OMICRON WITH VARIA */
4608 break;
4609 case 'w':
4610 print_utf8 (0x1FFA); /* GREEK CAPITAL LETTER OMEGA WITH VARIA */
4611 break;
4612 default:
4613 fprintf (yyout, "%s", intext); /* unexpected combination */
4614 break;
4615 }
4616 }
4617 else {
4618 /*
4619 ascii2greek_cap contains Unicode encodings for
4620 capital Greek letters.
4621 */
4622 print_utf8 (ascii2greek_capital[test_char]);
4623 }
4624 break;
4625 case LANG_COPTIC:
4626 print_utf8 (ascii2coptic[test_char]);
4627 /* Now check for Coptic jinkim (grave accent) on letter */
4628 if (intext[2] == '\\')
4629 print_utf8 (0x0300); /* COMBINING GRAVE ACCENT */
4630 break;
4631 case LANG_HEBREW: /* Hebrew Beta Code doesn't use '*'; we should not reach this point */
4632 break;
4633 case LANG_LATIN:
4634 fprintf (yyout, "%s", intext);
4635 break;
4636 default:
4637 break;
4638 }
4639
4640 return;
4641}
4642
4643
4644/*
4645 Print Greek, Latin, Coptic, or Hebrew small letter.
4646*/
4647void
4648print_small (char *intext)
4649{
4650 int test_char; /* character to test */
4651 int letter_form; /* =1 if letter is the final form, 2 if not; for Hebrew */
4652
4653 test_char = intext[0] & 0x7F;
4654
4655 switch (lang_type) {
4656 case LANG_GREEK:
4657 /* First check for varia (grave accent) on vowel */
4658 if (intext[1] == '\\') { /* intext[1] should either be '\\' or '\0' */
4659 test_char = tolower (test_char);
4660 switch (test_char) {
4661 case 'a':
4662 print_utf8 (0x1F70); /* GREEK SMALL LETTER ALPHA WITH VARIA */
4663 break;
4664 case 'e':
4665 print_utf8 (0x1F72); /* GREEK SMALL LETTER EPSILON WITH VARIA */
4666 break;
4667 case 'h':
4668 print_utf8 (0x1F74); /* GREEK SMALL LETTER ETA WITH VARIA */
4669 break;
4670 case 'i':
4671 print_utf8 (0x1F76); /* GREEK SMALL LETTER IOTA WITH VARIA */
4672 break;
4673 case 'o':
4674 print_utf8 (0x1F78); /* GREEK SMALL LETTER OMICRON WITH VARIA */
4675 break;
4676 case 'u':
4677 print_utf8 (0x1F7A); /* GREEK SMALL LETTER UPSILON WITH VARIA */
4678 break;
4679 case 'w':
4680 print_utf8 (0x1F7C); /* GREEK SMALL LETTER OMEGA WITH VARIA */
4681 break;
4682 default:
4683 fprintf (yyout, "%s", intext); /* unexpected combination */
4684 break;
4685 }
4686 }
4687 else {
4688 print_utf8 (ascii2greek_small[test_char]);
4689 }
4690 break;
4691 case LANG_COPTIC:
4692 /*
4693 Small Coptic letters are one code point above
4694 the corresponding capital letter contained in
4695 the ascii2coptic array, so add one for print_utf8.
4696 */
4697 print_utf8 (ascii2coptic[test_char] + 1);
4698 if (intext[1] == '\\')
4699 print_utf8 (0x0300); /* COMBINING GRAVE ACCENT */
4700 break;
4701 case LANG_HEBREW:
4702 test_char = intext[0];
4703 /*
4704 If this is a letter that has middle and final forms,
4705 look at next character for the digit '1' (final form)
4706 or '2' (middle form).
4707 */
4708 if (test_char == 'k' || test_char == 'm' || test_char == 'n' ||
4709 test_char == 'p' || test_char == 'T') {
4710 letter_form = yytext[1];
4711 if (letter_form == '2') {
4712 switch (test_char) {
4713 case 'k':
4714 print_utf8 (0x5DA); /* HEBREW LETTER FINAL KAF */
4715 break;
4716 case 'm':
4717 print_utf8 (0x5DD); /* HEBREW LETTER FINAL MEM */
4718 break;
4719 case 'n':
4720 print_utf8 (0x5DF); /* HEBREW LETTER FINAL NUN */
4721 break;
4722 case 'p':
4723 print_utf8 (0x5E3); /* HEBREW LETTER FINAL PE */
4724 break;
4725 case 'T':
4726 print_utf8 (0x5E5); /* HEBREW LETTER FINAL TSADI */
4727 break;
4728 default:
4729 fprintf (yyout, "%s", intext);
4730 break;
4731 }
4732 }
4733 else { /* a '2' was not the next character, so not final form */
4734 /*
4735 Print the middle form of the letter, even if
4736 it was not given correctly with a '1' appended.
4737 */
4738 switch (test_char) {
4739 case 'k':
4740 print_utf8 (0x5DB); /* HEBREW LETTER KAF */
4741 break;
4742 case 'm':
4743 print_utf8 (0x5DE); /* HEBREW LETTER MEM */
4744 break;
4745 case 'n':
4746 print_utf8 (0x5E0); /* HEBREW LETTER NUN */
4747 break;
4748 case 'p':
4749 print_utf8 (0x5E4); /* HEBREW LETTER PE */
4750 break;
4751 case 'T':
4752 print_utf8 (0x5E6); /* HEBREW LETTER TSADI */
4753 break;
4754 default:
4755 fprintf (yyout, "%s", intext);
4756 break;
4757 }
4758 }
4759 }
4760 else { /* it's a Hebrew letter that only has one form */
4761 print_utf8 (ascii2hebrew[test_char]);
4762 }
4763 break;
4764 case LANG_LATIN:
4765 fprintf (yyout, "%s", intext);
4766 break;
4767 default:
4768 break;
4769 }
4770
4771 return;
4772}
4773
4774
4775/*
4776 Print one of four letter choices depending on whether the
4777 language mode is Latin, Greek, Coptic, or Hebrew, respectively.
4778*/
4779void
4780print_letter (uint32_t latin, uint32_t greek,
4781 uint32_t coptic, uint32_t hebrew)
4782{
4783
4784 switch (lang_type) {
4785 case LANG_LATIN:
4786 print_utf8 (latin);
4787 break;
4788 case LANG_GREEK:
4789 print_utf8 (greek);
4790 break;
4791 case LANG_COPTIC:
4792 print_utf8 (coptic);
4793 break;
4794 case LANG_HEBREW:
4795 print_utf8 (hebrew);
4796 break;
4797 default:
4798 print_utf8 (greek);
4799 break;
4800 }
4801
4802 return;
4803}
4804
4805
4806/*
4807 Convert a UTF-32 code point to a UTF-8 string.
4808*/
4809void
4810print_utf8 (uint32_t codept)
4811{
4812 int i; /* loop variable */
4813 int bin_length; /* number of binary digits, for forming UTF-8 */
4814 int byte_length; /* numberof bytes of UTF-8 */
4815 char utf8_bytes[4]; /* temporary array of UTF-8 output bytes */
4816
4817 int bin_digits (uint32_t);
4818
4819 byte_length = 0;
4820
4821 /*
4822 If within valid 0x2039Unicode range of U+0000..U+10FFFF, proceed
4823 */
4824 if (codept <= 0x10FFFF) {
4825 bin_length = bin_digits (codept);
4826 if (bin_length < 8) { /* U+0000..U+007F */
4827 byte_length = 1;
4828 utf8_bytes [0] = codept;
4829 }
4830 else if (bin_length < 12) { /* U+0080..U+07FF */
4831 byte_length = 2;
4832 utf8_bytes [0] = 0xC0 | ((codept >> 6) & 0x1F);
4833 utf8_bytes [1] = 0x80 | ( codept & 0x3F);
4834 }
4835 else if (bin_length < 17) { /* U+0800..U+FFFF */
4836 byte_length = 3;
4837 utf8_bytes [0] = 0xE0 | ((codept >> 12) & 0x0F);
4838 utf8_bytes [1] = 0x80 | ((codept >> 6) & 0x3F);
4839 utf8_bytes [2] = 0x80 | ( codept & 0x3F);
4840 }
4841 else if (bin_length < 22) { /* U+010000..U+10FFFF */
4842 byte_length = 4;
4843 utf8_bytes [0] = 0xF0 | ((codept >> 18) & 0x07);
4844 utf8_bytes [1] = 0x80 | ((codept >> 12) & 0x3F);
4845 utf8_bytes [2] = 0x80 | ((codept >> 6) & 0x3F);
4846 utf8_bytes [3] = 0x80 | ( codept & 0x3F);
4847 }
4848 else {
4849 fprintf (stderr,
4850 "Internal error forming UTF-8 in print_utf8() for U+%04X\n",
4851 codept);
4852 }
4853
4854 for (i = 0; i < byte_length; i++) fputc (utf8_bytes [i], yyout);
4855 }
4856 else {
4857 fprintf (stderr,
4858 "print_utf8() called with illegal Unicode code point U+%06X\n",
4859 codept);
4860 }
4861
4862 return;
4863}
4864
4865
4866/*
4867 Return the number of significant binary digits in an unsigned number.
4868*/
4869int
4870bin_digits (uint32_t itest)
4871{
4872 uint32_t i;
4873 int result;
4874
4875 i = 0x80000000; /* mask highest uint32_t bit */
4876 result = 32;
4877 while ( (i != 0) && ((itest & i) == 0) ) {
4878 i >>= 1;
4879 result--;
4880 }
4881
4882 return result;
4883}
4884
4885
Header information for the sequoyah program.
#define LANG_HEBREW
Define for Hebrew output (unused).
Definition: sequoyah.l:58
#define LANG_CHEROKEE
Define for Cherokee output (default).
Definition: sequoyah.l:60
#define LANG_GREEK
Define for Greek output (unused).
Definition: sequoyah.l:54
#define LANG_LATIN
Define for Latin output (unused).
Definition: sequoyah.l:55
#define LANG_COPTIC
Define for Coptic output (unused).
Definition: sequoyah.l:56