1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 /* A lexical scanner generated by flex */
21 
22 /* Scanner skeleton version:
23  */
24 #ifndef YY_STACK_USED
25 #define YY_STACK_USED 0
26 #endif
27 #ifndef YY_ALWAYS_INTERACTIVE
28 #define YY_ALWAYS_INTERACTIVE 0
29 #endif
30 #ifndef YY_NEVER_INTERACTIVE
31 #define YY_NEVER_INTERACTIVE 0
32 #endif
33 #ifndef YY_MAIN
34 #define YY_MAIN 0
35 #endif
36 
37 #include <stdio.h>
38 
39 #include <stdlib.h>
40 #ifndef _WIN32
41 #include <unistd.h>
42 #else
43 #include <io.h>
44 #endif
45 
46 
47 /* Use prototypes in function declarations. */
48 #define YY_USE_PROTOS
49 
50 /* The "const" storage-class-modifier is valid. */
51 #define YY_USE_CONST
52 
53 #ifdef YY_USE_CONST
54 #define yyconst const
55 #else
56 #define yyconst
57 #endif
58 
59 
60 #ifdef YY_USE_PROTOS
61 #define YY_PROTO(proto) proto
62 #else
63 #define YY_PROTO(proto) ()
64 #endif
65 
66 /* Returned upon end-of-file. */
67 #define YY_NULL 0
68 
69 /* Promotes a possibly negative, possibly signed char to an unsigned
70  * integer for use as an array index.  If the signed char is negative,
71  * we want to instead treat it as an 8-bit unsigned char, hence the
72  * double cast.
73  */
74 #define YY_SC_TO_UI(c) (static_cast<unsigned int>(static_cast<unsigned char>(c)))
75 
76 /* Translate the current start state into a value that can be later handed
77  * to BEGIN to return to the state.
78  */
79 #define YY_START ((yy_start - 1) / 2)
80 
81 /* Action number for EOF rule of a given start state. */
82 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
83 
84 /* Special action meaning "start processing a new file". */
85 #define YY_NEW_FILE yyrestart( yyin )
86 
87 #define YY_END_OF_BUFFER_CHAR 0
88 
89 /* Size of default input buffer. */
90 #define YY_BUF_SIZE 16384
91 
92 namespace {
93 
94 typedef struct yy_buffer_state *YY_BUFFER_STATE;
95 
96 }
97 
98 #define EOB_ACT_CONTINUE_SCAN 0
99 #define EOB_ACT_END_OF_FILE 1
100 #define EOB_ACT_LAST_MATCH 2
101 
102 //#define unput(c) yyunput( c, yytext_ptr )
103 
104 /* The following is because we cannot portably get our hands on size_t
105  * (without autoconf's help, which isn't available because we want
106  * flex-generated scanners to compile on their own).
107  */
108 typedef unsigned int yy_size_t;
109 
110 namespace {
111 
112 struct yy_buffer_state
113     {
114     FILE *yy_input_file;
115 
116     char *yy_ch_buf;        /* input buffer */
117     char *yy_buf_pos;       /* current position in input buffer */
118 
119     /* Size of input buffer in bytes, not including room for EOB
120      * characters.
121      */
122     yy_size_t yy_buf_size;
123 
124     /* Number of characters read into yy_ch_buf, not including EOB
125      * characters.
126      */
127     int yy_n_chars;
128 
129     /* Whether we "own" the buffer - i.e., we know we created it,
130      * and can realloc() it to grow it, and should free() it to
131      * delete it.
132      */
133     int yy_is_our_buffer;
134 
135     /* Whether this is an "interactive" input source; if so, and
136      * if we're using stdio for input, then we want to use getc()
137      * instead of fread(), to make sure we stop fetching input after
138      * each newline.
139      */
140     bool yy_is_interactive;
141 
142     /* Whether we're considered to be at the beginning of a line.
143      * If so, '^' rules will be active on the next match, otherwise
144      * not.
145      */
146     int yy_at_bol;
147 
148     /* Whether to try to fill the input buffer when we reach the
149      * end of it.
150      */
151     int yy_fill_buffer;
152 
153     int yy_buffer_status;
154 #define YY_BUFFER_NEW 0
155 #define YY_BUFFER_NORMAL 1
156     /* When an EOF's been seen but there's still some text to process
157      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
158      * shouldn't try reading from the input source any more.  We might
159      * still have a bunch of tokens to match, though, because of
160      * possible backing-up.
161      *
162      * When we actually see the EOF, we change the status to "new"
163      * (via yyrestart()), so that the user can continue scanning by
164      * just pointing yyin at a new input file.
165      */
166 #define YY_BUFFER_EOF_PENDING 2
167     };
168 
169 }
170 
171 static YY_BUFFER_STATE yy_current_buffer = nullptr;
172 
173 /* We provide macros for accessing buffer states in case in the
174  * future we want to put the buffer states in a more general
175  * "scanner state".
176  */
177 #define YY_CURRENT_BUFFER yy_current_buffer
178 
179 
180 /* yy_hold_char holds the character lost when yytext is formed. */
181 static char yy_hold_char;
182 
183 static int yy_n_chars;      /* number of characters read into yy_ch_buf */
184 
185 
186 static int yyleng;
187 
188 /* Points to current character in buffer. */
189 static char *yy_c_buf_p = nullptr;
190 static int yy_init = 1;     /* whether we need to initialize */
191 static int yy_start = 0;    /* start state number */
192 
193 /* Flag which is used to allow yywrap()'s to do buffer switches
194  * instead of setting up a fresh yyin.  A bit of a hack ...
195  */
196 static int yy_did_buffer_switch_on_eof;
197 
198 static void yyrestart YY_PROTO(( FILE *input_file ));
199 
200 static void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
201 static void yy_load_buffer_state YY_PROTO(( ));
202 static YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
203 static void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
204 static void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
205 static void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
206 
207 static YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
208 static YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
209 static YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
210 
211 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
212 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
213 static void yy_flex_free YY_PROTO(( void * ));
214 
215 typedef unsigned char YY_CHAR;
216 static FILE *yyin = nullptr, *yyout = nullptr;
217 typedef int yy_state_type;
218 #define yytext_ptr yytext
219 
220 static yy_state_type yy_get_previous_state YY_PROTO(( ));
221 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
222 static int yy_get_next_buffer YY_PROTO(( ));
223 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
224 
225 /* Done after the current pattern has been matched and before the
226  * corresponding action - sets up yytext.
227  */
228 #define YY_DO_BEFORE_ACTION \
229     yytext_ptr = yy_bp; \
230     yyleng = static_cast<int>(yy_cp - yy_bp); \
231     yy_hold_char = *yy_cp; \
232     *yy_cp = '\0'; \
233     yy_c_buf_p = yy_cp;
234 
235 #define YY_END_OF_BUFFER 46
236 yyconst short int yy_accept[994] =
237     {   0,
238         0,    0,   46,   44,   41,   41,   44,   42,   39,   37,
239        37,   36,   39,   39,   44,   44,   38,   40,   35,   43,
240        13,   21,   36,   36,   22,   16,   17,    0,   34,    0,
241         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
242         0,    0,   24,    0,   24,    0,    0,    0,    0,    0,
243         7,    0,    0,    0,    0,    0,    0,    0,    0,    0,
244         0,    0,    0,    0,   42,    0,    0,    0,    0,    0,
245         0,    0,    0,    0,    0,    0,    4,   31,    5,   43,
246        36,   20,   14,   15,    0,    0,    0,    0,    0,    0,
247         0,    0,    0,    0,    0,    0,   24,    0,    0,    0,
248 
249         0,    0,    0,   10,    0,    0,   27,    0,    0,    0,
250         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
251         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
252         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
253         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
254         0,    0,    0,    0,    0,    0,   12,   12,    0,    0,
255         0,    0,    0,    0,    0,   12,    0,    0,    0,    0,
256         0,    0,    0,    0,   12,    0,   27,    0,    0,    0,
257         0,    0,    0,    0,    0,   11,    0,    9,    0,    0,
258         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
259 
260         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
261         0,    0,    0,   23,    0,    0,    0,    0,    0,    0,
262         0,    0,    0,    0,    0,    0,    0,    0,   19,    0,
263         0,    0,    0,    0,    0,    0,    0,    0,    0,   18,
264         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
265         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
266         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
267         0,    0,    0,    0,    8,    0,    0,    0,    0,    0,
268         0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
269        27,    0,    0,    0,    0,   12,    0,    0,    8,    0,
270 
271         0,    0,    2,    0,    0,    0,    0,    0,    0,    0,
272         0,    0,    0,    0,    0,    0,    0,   27,   26,    0,
273         0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
274         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
275         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
276         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
277         0,    0,    0,    0,    0,    0,    0,    0,   12,   27,
278         0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
279         0,    0,   27,    0,    0,    0,    0,    0,    0,    0,
280         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
281 
282         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
283         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
284         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
285         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
286         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
287         0,   11,    0,    0,    0,    0,    0,    0,    8,    0,
288         0,    0,    0,    0,    0,    0,    0,    0,    0,   29,
289         0,    0,    0,    0,    0,    0,   24,    0,    0,    0,
290         0,    0,    0,    0,    0,    3,    0,    0,    0,    0,
291         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
292 
293         0,    0,    0,    0,    0,    0,    0,   30,    0,    0,
294        12,    0,    0,    0,    0,    0,    0,    0,    0,    0,
295         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
296         0,    0,    0,   28,    0,    0,   12,    0,    0,    0,
297         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
298         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
299        19,    0,    0,    0,    0,    0,    0,    0,    0,    0,
300         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
301         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
302         1,    0,    0,    0,    0,    0,    0,    0,    0,    0,
303 
304         0,    0,    0,    0,    0,    0,   25,    0,    0,    0,
305         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
306         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
307         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
308         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
309         0,    0,    0,    0,    0,    6,    0,    0,    0,    0,
310         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
311         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
312         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
313         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
314 
315         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
316         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
317         0,    0,    0,    0,    0,    0,    0,    0,   32,    0,
318         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
319         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
320         0,    0,    0,    0,    0,   12,    0,   12,    0,    0,
321         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
322         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
323         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
324         0,    0,    0,    0,    0,    0,   11,    0,    0,    0,
325 
326         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
327         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
328         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
329         0,    0,    0,    0,    0,   33,    0,    0,    0,    0,
330         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
331         0,    0,    0,    0,    0,   19,    0,    0,    0,    0,
332         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
333         0,    0,   12,   12,    0,   24,    0,    0,    0,    0,
334         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
335         0,    0,   19,    0,    0,    0,    0,    0,    0,    0,
336 
337         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
338         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
339         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
340         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
341         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
342         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
343         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
344         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
345         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
346         0,    0,    0
347 
348     } ;
349 
350 yyconst int yy_ec[256] =
351     {   0,
352         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
353         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
354         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
355         1,    1,    4,    1,    1,    1,    1,    5,    1,    6,
356         7,    8,    8,    9,   10,   11,    8,   12,   12,   12,
357        12,   12,   12,   12,   12,   12,   12,   13,   14,   15,
358        16,   17,    1,    1,   18,   19,   20,   21,   22,    1,
359        23,    1,   24,   25,   26,   27,   28,   29,   30,   31,
360         1,   32,   33,   34,   35,   36,    1,   37,    1,   38,
361        39,   40,   41,   42,   42,    1,   43,   44,   45,   46,
362 
363        47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
364        57,   58,   59,   60,   61,   62,   63,   64,   65,   66,
365        67,   68,   69,   70,   71,   72,    1,    1,    1,    1,
366         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
367         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
368         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
369        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
370        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
371        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
372        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
373 
374        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
375        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
376        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
377        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
378        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
379        73,   73,   73,   73,    1
380     } ;
381 
382 yyconst int yy_meta[74] =
383     {   0,
384         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
385         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
386         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
387         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
388         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
389         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
390         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
391         1,    1,    1
392     } ;
393 
394 yyconst short int yy_base[995] =
395     {   0,
396         0,   72, 1314, 1315, 1315, 1315, 1297, 1315, 1315, 1315,
397      1295,    2,    8, 1294, 1281,  142, 1315, 1315, 1315, 1236,
398      1315, 1315, 1296,    8, 1290, 1291, 1288, 1274, 1315,    0,
399         0, 1253,    1,    1, 1259,    7, 1244, 1257,    8, 1236,
400      1235, 1242,   35,   43, 1245,    0, 1237, 1251, 1242, 1245,
401      1315,   46,   72,  171,   79,   62,   77,  184,  192,   92,
402      1236,    2,  207,  216,  225,  234,  250,   46,  269,  278,
403       295,   10,  111,  255,   10, 1243, 1315, 1315, 1315, 1216,
404      1276, 1315, 1315, 1315, 1253, 1228, 1225, 1222, 1217, 1231,
405      1227, 1237, 1214, 1217, 1234, 1221, 1315, 1213, 1223, 1215,
406 
407      1217, 1223, 1214, 1315,  168, 1218, 1315, 1217, 1210, 1217,
408      1216, 1201, 1216,  177, 1202, 1199, 1197,   34, 1216, 1209,
409      1199,  181,   36,  164,  198, 1207,  119,  199, 1201, 1196,
410      1196,  218, 1192, 1188,  225, 1205, 1191,   78,   40,  245,
411       280, 1197,  175, 1184, 1192, 1187, 1198, 1182, 1179, 1198,
412       101, 1197, 1179,  227, 1183, 1191, 1177, 1315, 1192, 1172,
413      1190, 1189,   53, 1184, 1187,  260, 1167, 1171, 1184, 1168,
414      1165,  248, 1177, 1166,  291, 1168, 1161, 1174, 1164, 1161,
415       222,  268, 1160,    0, 1170, 1315, 1172, 1315,  247,  299,
416      1152, 1170, 1155, 1155,  300, 1156, 1155, 1157, 1160, 1146,
417 
418      1145, 1153,  302, 1152, 1139, 1158, 1144, 1152, 1147, 1143,
419      1136,  308, 1146, 1137, 1150, 1136,  317, 1148,  308,  318,
420      1147,  311, 1146,  322, 1145,  312, 1140,  319, 1128, 1134,
421       324,  340, 1124,  333,  340, 1137, 1136, 1121, 1118, 1315,
422      1129, 1121, 1134, 1114, 1120, 1118, 1122, 1117, 1128, 1114,
423      1111, 1124, 1105, 1117, 1116, 1119, 1113, 1107, 1099, 1100,
424      1102, 1107,  344, 1114, 1094, 1097, 1104, 1099,  327, 1092,
425       347, 1094, 1095, 1096, 1315, 1105, 1096, 1103,  350, 1083,
426      1099, 1079, 1088, 1079, 1095, 1094, 1094, 1088, 1076, 1085,
427      1084, 1084, 1082, 1082, 1068, 1067, 1073, 1071, 1079, 1069,
428 
429      1069, 1061, 1315, 1071, 1070, 1059, 1057, 1075, 1072, 1051,
430      1060, 1050, 1053, 1052, 1058, 1054,  348, 1047, 1315, 1065,
431      1045, 1048, 1061, 1055, 1052, 1040, 1039, 1043, 1042,  338,
432      1035, 1048, 1035, 1048, 1038, 1039, 1029, 1031,  276, 1030,
433      1027, 1026, 1038,  371, 1023, 1042, 1029, 1023,  355, 1024,
434      1036, 1025,  372, 1036, 1032, 1028, 1025, 1020, 1017, 1016,
435      1022, 1008, 1014, 1020, 1008, 1012, 1006, 1010, 1017, 1013,
436      1008, 1007, 1014,  360,  997,  995,  997,  995, 1010,  372,
437      1008,  993, 1002,  156, 1005, 1003, 1006, 1001,  997,  996,
438       985,  987,  980,  991,  374,  980,  978,  977,  989,  990,
439 
440       993,  992,  969,  990,  975,  988,  976,  986,  985,  981,
441       379,  191,  983,  965,  962,  980,  979,  961,  955,  965,
442       960,  374,  967,  965,  965,  967,  963,  969,  962,  963,
443       947,  951,  950,  955,  962,  939,  945,  941,  938,  944,
444       377,  383,  940,  938,  939,  949,  948,  943,  946,  945,
445       944,  929,  936,  927,  930,  939,  921,  935,  922,  939,
446       924,  933,  920,  935,  910,  922,  911,  912,  919, 1315,
447       916,  928,  923,  907,  388,  906,  920,  916,  898,  914,
448       920,  916,  907,  906,  898,  400,  901,  894,  900,  892,
449       893,  392,  891,  898,  902,  907,  889,  888,  891,  895,
450 
451       885,  901,  883,  879,  880,  879,  892,  405,  884,  886,
452       889,  888,  872,  887,  878,  877,  887,  872,  865,  865,
453       865,  876,  870,  863,  871,  863,  877,  860,  864,  870,
454       869,  857,  856, 1315,  400,  866,  865,  851,  863,  849,
455       861,  864,  859,  844,  848,  843,  856,  855,  840,  834,
456       837,  843,  838,  403,  845,  843,  843,  834,  841,  829,
457      1315,  842,  401,  824,  831,  826,  828,  841,  823,  831,
458       834,  829,  822,  835,  820,  820,  818,  813,  822,  815,
459       822,  823,  809,  802,  806,  810,  809,  800,  809,  801,
460      1315,  803,  800,  801,  404,  807,  803,  805,  810,  803,
461 
462       799,  805,  805,  803,  785,  786, 1315,  784,  800,  785,
463       797,  787,  782,  780,  783,  778,  784,  776,  789,  784,
464       783,  790,  785,  771,  787,  778,  768,  769,  778,  767,
465       762,  776,  779,  770,  763,  758,  764,  774,  759,   93,
466       126,  187,  225,  269,  333,  415,  345,  372,  388,  397,
467       400,  417,  418,  408,  411,  427,  409,  418,  426,  417,
468       419,  415,  417,  418,  419,  419,  423,  422,  422,  428,
469       438,  438,  444,  432,  434,  434,  431,  442,  437,  446,
470       449,  436,  456,  449,  454,  456,  443,  448,  445,  457,
471       459,  459,  453,  450,  446,  469,  457,  463,  460,  454,
472 
473       460,  471,  476,  473,  476,  458,  461,  468,  462,  471,
474       484,  485,  466,  481,  484,  481,  473,  488,  475,  489,
475       481,  475,  491,  491,  496,  482,  483,  495, 1315,  502,
476       498,  490,  500,  503,  497,  487,  488,  498,  512,  508,
477       501,  509,  512,  506,  514,  502,  520,  521,  518,  501,
478       504,  505,  506,  523,  524,  525,  526,  527,  510,  519,
479       523,  518,  528,  515,  538,  526,  532,  529,  523,  535,
480       525,  534,  529,  533,  534,  542,  531,  544,  535,  536,
481       543,  555,  556,  545,  541,  541,  540,  543,  558,  548,
482       549,  552,  548,  563,  551,  550,  552,  557,  553,  565,
483 
484       555,  568,  576,  563,  563,  572,  578,  562,  564,  576,
485       582,  566,  582,  580,  577,  572,  573,  589,  574,  581,
486       586,  576,  577,  581,  579,  583,  583,  597,  602,  590,
487       587,  594,  606,  607,  597, 1315,  606,  591,  589,  590,
488       594,  614,  596,  602,  600,  604,  600,  613,  603,  604,
489       617,  605,  605,  604,  608,  628,  610,  619,  610,  619,
490       615,  628,  636,  618,  619,  635,  640,  622,  628,  628,
491       637,  626,  642,  643,  644,  646,  648,  647,  635,  640,
492       641,  652,  658,  642,  652,  661,  640,  650,  652,  655,
493       659,  651,  669,  656,  671,  668,  656,  666,  661,  676,
494 
495       660,  678,  657,  666,  677,  666,  667,  680,  677,  682,
496       673,  675,  676,  673,  674,  686,  676,  672,  691,  677,
497       680,  681,  686,  683,  684,  696,  686,  687,  688,  692,
498       702,  702,  687,  693,  697,  705,  696,  711,  701,  699,
499       714,  701,  705,  713,  704,  708,  706,  711,  706,  719,
500       713,  706,  710,  716,  718,  718,  713,  722,  723,  723,
501       725,  718,  722,  728,  721,  730,  742,  727,  725,  748,
502       727,  728,  729,  730,  731,  754,  733,  734,  743,  743,
503       742,  747,  748,  746,  742,  748,  749,  754,  754,  755,
504       748,  749, 1315,  814
505 
506     } ;
507 
508 yyconst short int yy_def[995] =
509     {   0,
510       994,  994,  993,  993,  993,  993,  993,  993,  993,  993,
511       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
512       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
513       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
514       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
515       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
516       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
517       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
518       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
519       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
520 
521       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
522       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
523       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
524       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
525       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
526       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
527       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
528       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
529       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
530       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
531 
532       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
533       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
534       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
535       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
536       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
537       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
538       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
539       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
540       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
541       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
542 
543       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
544       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
545       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
546       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
547       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
548       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
549       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
550       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
551       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
552       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
553 
554       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
555       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
556       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
557       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
558       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
559       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
560       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
561       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
562       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
563       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
564 
565       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
566       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
567       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
568       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
569       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
570       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
571       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
572       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
573       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
574       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
575 
576       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
577       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
578       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
579       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
580       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
581       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
582       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
583       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
584       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
585       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
586 
587       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
588       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
589       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
590       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
591       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
592       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
593       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
594       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
595       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
596       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
597 
598       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
599       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
600       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
601       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
602       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
603       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
604       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
605       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
606       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
607       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
608 
609       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
610       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
611       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
612       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
613       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
614       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
615       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
616       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
617       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
618       993,  993,    0,  993
619 
620     } ;
621 
622 yyconst short int yy_nxt[1389] =
623     {   0,
624       993,    5,    6,    7,    8,    9,    9,   10,  993,   11,
625       993,   12,   23,   24,   13,   10,   14,   25,   23,   24,
626       993,  993,   26,  993,  993,  993,   15,  993,  993,  993,
627       993,  993,  993,  993,  993,  993,  993,  993,    9,   16,
628         9,   17,  112,  993,  170,  158,   88,   91,  171,  113,
629       101,   92,  993,   86,  102,  107,   89,   93,   94,   87,
630       188,   97,   95,   98,  103,  231,  238,  232,    9,   18,
631         9,   19,   20,    5,    6,    7,    8,    9,    9,   10,
632       266,   11,  294,   12,  106,  104,   13,   10,   14,   97,
633       117,  267,  109,  110,  107,  108,  295,  186,   15,  118,
634 
635       119,  120,  273,  121,  205,  122,  123,  107,  206,  315,
636         9,   16,    9,   17,  124,  145,  146,  147,  125,  148,
637       149,  138,  126,  150,  139,  140,  292,  151,  127,  141,
638       152,  128,  142,  153,  129,  143,  154,  164,  293,  144,
639         9,   18,    9,   19,   20,   29,  165,  166,  167,  737,
640        29,  306,  168,  233,   29,   29,  234,  235,  107,   30,
641        31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
642        41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
643        97,   51,  738,  280,   52,   53,   54,   55,   56,   57,
644        58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
645 
646        68,   69,   70,   71,   72,   73,   74,   75,  274,   76,
647        77,   78,   79,  130,  255,  541,  131,  542,  256,  260,
648       132,  133,  261,  275,  134,  271,  155,  135,  156,  107,
649       157,  136,  158,  137,  160,  161,  299,  262,  162,  300,
650       272,  281,  276,  159,  571,  282,  277,  186,  163,  172,
651       572,  173,  174,  175,  176,  177,  178,  179,  182,  278,
652       158,  180,  107,  181,  285,  183,  184,  189,  188,  309,
653       107,  190,  185,  186,  186,  158,  187,  332,  188,  193,
654       288,  191,  289,  310,  194,  290,  291,  188,  195,  192,
655       336,  196,  200,  107,  197,  198,  201,  199,  296,  202,
656 
657       188,  236,  323,  324,  186,  237,  107,  318,  337,  203,
658       204,  207,   97,  208,  186,  209,  210,  211,  212,  213,
659       216,  319,  297,  214,  217,  333,  499,  218,  219,  186,
660       215,  500,  220,  107,  107,  221,  222,  226,  327,  223,
661       224,  338,  225,  186,  227,  228,  343,   97,  351,  158,
662       344,  229,  352,  186,  230,  374,  368,  158,  353,  365,
663       371,  107,  369,  370,  188,  378,  379,  383,  372,  388,
664       375,  376,  385,  386,  188,  396,  319,  389,  366,  380,
665       430,  381,  391,  390,  275,  392,  186,  431,  489,  397,
666       421,  433,  739,  393,  441,  742,  477,  509,  490,  398,
667 
668       394,  422,  532,  423,  424,  425,  442,  434,  435,  478,
669       443,  444,  445,  446,  447,  503,  510,  319,  538,  592,
670       553,  569,  533,  579,  104,  743,  504,  593,  595,  513,
671       744,  554,  539,  555,  556,  557,  558,  596,  570,  594,
672       597,  619,  624,  664,  598,  632,  633,  620,  645,  625,
673       683,  634,  678,  188,  706,  158,  158,  665,  646,  626,
674       707,  740,  684,   79,  647,  741,  745,   79,  729,  746,
675       748,  749,   97,  750,  751,  752,  747,  753,  754,  755,
676       756,  158,  757,  758,  759,  760,  761,  762,  764,  765,
677       766,  767,  188,  188,  768,  769,  770,  763,  771,  772,
678 
679       773,   97,  774,  104,  775,  776,  777,  778,  104,  779,
680       561,  780,  104,  781,  782,  783,  784,  785,  786,  158,
681       186,  319,  319,  787,  788,  789,  790,  792,  793,  794,
682       795,  796,  186,  797,  798,  799,  188,  800,  801,  802,
683       803,  804,  805,  806,  807,  808,  791,  809,  810,   97,
684        97,  561,  561,  188,  811,  812,  813,  814,  815,   97,
685       158,  816,  817,  818,   97,  561,  819,  820,  821,  822,
686       823,  824,  825,  826,  561,  827,  828,  829,  830,  561,
687       831,  188,  832,  833,  834,  835,  836,  837,  838,  839,
688       840,  841,  842,  843,  844,  845,  846,  104,  104,   97,
689 
690       847,  848,  849,  319,  850,  319,  319,  851,  319,  319,
691       852,   97,  853,  854,   97,  855,  856,  857,  858,  859,
692       860,  861,  862,  863,  864,  865,  866,  867,  836,  868,
693       158,  869,  870,  871,  186,  319,  872,  873,  874,  158,
694       158,  158,  875,  876,  877,  878,  879,  880,  188,  188,
695       881,  882,  729,  561,  561,  883,  884,  886,  887,  888,
696       889,  729,   78,  319,  319,  890,  729,  891,  561,   97,
697       892,  893,  158,  885,  561,  894,  895,  896,  897,  899,
698       900,  836,  901,  902,  903,  904,  905,   97,  906,  907,
699       158,   97,  910,  836,  911,  898,  912,  913,  836,  908,
700 
701       914,  915,  916,  917,  561,  909,  918,  104,  919,  920,
702       921,  922,  923,  924,  729,  925,  926,  561,  927,  928,
703       929,  561,  930,  729,  158,  158,  931,  932,  836,  933,
704       188,  188,  934,  935,  936,  937,  561,  938,   97,  939,
705       940,  941,  942,  943,  944,  945,  946,  947,  948,  949,
706       950,  561,  951,  952,  953,  954,  955,  957,  958,  959,
707       961,  962,  963,  964,  965,  966,  967,  186,  968,  969,
708       561,  970,  971,  956,  972,  186,  960,  561,  973,  974,
709       561,  975,  561,  976,  977,  836,  978,  979,  186,  561,
710       981,  561,  982,  561,  983,  561,  984,  561,  836,  985,
711 
712       561,  986,  186,  561,  980,  987,  988,  989,  990,  561,
713       991,  992,  561,  561,    4,  736,  735,  734,  158,  561,
714       733,  732,  731,  730,  107,  107,  729,   77,  728,  727,
715       726,   77,  188,  725,  724,  723,  722,   97,   97,  721,
716       720,  719,  718,  717,  186,  319,  716,  186,  715,  158,
717       714,  319,  713,  712,  711,  710,  709,  708,  319,  705,
718       319,  704,  703,  702,  107,  107,  107,  158,  701,  700,
719       699,  104,  104,  698,  697,  696,  695,  694,  693,  692,
720       691,  690,  689,  104,  688,  687,  686,  685,  186,  607,
721       158,  682,  681,  680,  679,  677,  676,  186,  675,  674,
722 
723       186,  186,  673,  672,  186,  275,  188,  671,  670,  669,
724       668,  667,  666,  186,  186,  663,  158,  662,  158,  188,
725        97,  661,  660,  659,  658,  657,  656,  655,  654,  653,
726        79,  652,   29,  651,   97,  650,  649,  648,  644,  643,
727       186,  642,  641,  188,  640,  158,  158,  639,  638,   97,
728       637,  636,  635,  631,  630,  629,  628,  627,  607,   77,
729       623,  622,  188,   97,  607,   97,  158,  621,  618,  275,
730       188,  158,  617,  616,  158,  615,  614,  613,  158,  561,
731       612,  188,  607,  611,  158,  610,  609,  608,  275,  607,
732       606,  275,  605,  604,  603,  602,  601,  600,  599,  591,
733 
734       590,  589,  158,  588,  587,  586,  585,  584,  583,   97,
735       186,  188,   97,  275,  582,  581,  580,  578,  577,  576,
736       575,  104,  104,  574,  573,  104,  568,  104,  104,  567,
737       566,  565,  104,  564,  104,  188,  563,  562,  561,  560,
738       559,  552,  551,  550,  549,  548,  547,  546,  545,  544,
739       543,  107,  540,   97,  537,  536,  186,  535,  534,  531,
740       530,  529,  107,  528,  527,  526,  525,  524,  523,  522,
741       521,  520,  519,  518,  517,  516,  515,   29,  514,  512,
742       511,  158,  508,  507,  506,  505,  502,  319,  186,  501,
743       498,  497,  496,  495,  494,  493,  492,  491,  488,  487,
744 
745       486,  485,  484,  483,  482,  481,  480,  188,  479,  476,
746       475,  474,   97,  473,  472,  471,  470,  469,   97,  468,
747       467,  466,  465,  186,  464,  463,  462,  461,  460,  459,
748       458,  457,  456,  107,  107,  455,  158,  454,  186,  453,
749       452,  451,  450,  449,  448,  188,  440,  439,  438,  437,
750       436,  432,  429,  428,  427,  426,  104,  420,  419,  418,
751       417,  416,  415,  414,  413,  412,  411,  410,  409,  158,
752       104,  408,  407,  406,  405,  404,  104,  403,  402,  401,
753       158,  400,  399,  395,  387,   97,  384,  382,  377,  373,
754       367,  364,  363,  362,  361,  360,  359,  358,  357,  356,
755 
756       355,  354,  188,  188,  350,  349,  348,  347,  346,  345,
757       342,  341,  340,  339,  335,  334,   97,  331,  330,  186,
758       329,  328,  326,  325,  107,  322,  321,  158,  320,  317,
759       316,  314,  313,  275,  312,  158,  107,  311,  308,  307,
760       188,  305,  304,  303,  302,   97,  301,  298,  186,  107,
761       287,  286,  284,  186,  283,  279,  270,  269,  268,  265,
762       264,  263,  259,  104,  258,  257,  104,  104,  104,  254,
763       253,  252,  251,  250,  249,  248,  104,  247,  246,  245,
764       244,  104,   97,  243,  242,  241,  240,   81,   80,  239,
765       169,  116,  104,  115,  114,  111,  105,  104,  104,  100,
766 
767        99,   96,   90,   85,   84,   83,   82,   81,   80,   28,
768        27,   22,   21,  993,    3,  993,  993,  993,  993,  993,
769       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
770       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
771       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
772       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
773       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
774       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
775       993,  993,  993,  993,  993,  993,  993,  993
776     } ;
777 
778 yyconst short int yy_chk[1389] =
779     {   0,
780         0,    1,    1,    1,    1,    1,    1,    1,    0,    1,
781         0,    1,   12,   12,    1,    1,    1,   13,   24,   24,
782         0,    0,   13,    0,    0,    0,    1,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    1,    1,
784         1,    1,   46,    0,   62,  184,   31,   33,   62,   46,
785        39,   33,    0,   30,   39,  184,   31,   33,   34,   30,
786        75,   36,   34,   36,   39,   72,   75,   72,    1,    1,
787         1,    1,    1,    2,    2,    2,    2,    2,    2,    2,
788       118,    2,  139,    2,   43,   43,    2,    2,    2,   44,
789        52,  118,   44,   44,   43,   43,  139,  123,    2,   52,
790 
791        52,   52,  123,   52,   68,   52,   52,  163,   68,  163,
792         2,    2,    2,    2,   53,   56,   56,   56,   53,   56,
793        56,   55,   53,   56,   55,   55,  138,   56,   53,   55,
794        57,   53,   55,   57,   53,   55,   57,   60,  138,   55,
795         2,    2,    2,    2,    2,   16,   60,   60,   60,  640,
796        16,  151,   60,   73,   16,   16,   73,   73,  151,   16,
797        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
798        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
799       127,   16,  641,  127,   16,   16,   16,   16,   16,   16,
800        16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
801 
802        16,   16,   16,   16,   16,   16,   16,   16,  124,   16,
803        16,   16,   16,   54,  105,  384,   54,  384,  105,  114,
804        54,   54,  114,  124,   54,  122,   58,   54,   58,  122,
805        58,   54,   58,   54,   59,   59,  143,  114,   59,  143,
806       122,  128,  125,   58,  412,  128,  125,  642,   59,   63,
807       412,   63,   63,   63,   63,   63,   63,   63,   64,  125,
808        63,   63,   63,   63,  132,   64,   64,   65,  132,  154,
809       181,   65,   64,   64,  643,   65,   64,  181,   64,   66,
810       135,   65,  135,  154,   66,  135,  135,   65,   66,   65,
811       189,   66,   67,  140,   66,   66,   67,   66,  140,   67,
812 
813        67,   74,  172,  172,   67,   74,  140,  166,  189,   67,
814        67,   69,   74,   69,   74,   69,   69,   69,   69,   69,
815        70,  166,  141,   69,   70,  182,  339,   70,   70,  644,
816        69,  339,   70,  182,  141,   70,   70,   71,  175,   70,
817        70,  190,   70,  141,   71,   71,  195,  190,  203,  175,
818       195,   71,  203,  212,   71,  222,  219,  190,  203,  217,
819       220,  217,  219,  219,  212,  224,  224,  226,  220,  231,
820       222,  222,  228,  228,  226,  234,  224,  231,  217,  224,
821       269,  224,  232,  231,  235,  232,  235,  269,  330,  234,
822       263,  271,  645,  232,  279,  647,  317,  349,  330,  235,
823 
824       232,  263,  374,  263,  263,  263,  279,  271,  271,  317,
825       279,  279,  279,  279,  279,  344,  349,  353,  380,  441,
826       395,  411,  374,  422,  422,  648,  344,  441,  442,  353,
827       649,  395,  380,  395,  395,  395,  395,  442,  411,  441,
828       442,  475,  486,  535,  442,  492,  492,  475,  508,  486,
829       563,  492,  554,  554,  595,  650,  651,  535,  508,  486,
830       595,  646,  563,  652,  508,  646,  653,  654,  655,  656,
831       657,  658,  659,  660,  661,  662,  656,  663,  664,  665,
832       666,  667,  668,  669,  670,  671,  672,  673,  674,  675,
833       676,  677,  678,  679,  680,  681,  682,  673,  683,  684,
834 
835       685,  686,  687,  688,  689,  690,  691,  692,  693,  694,
836       695,  696,  697,  698,  699,  700,  701,  702,  703,  704,
837       705,  706,  707,  708,  709,  710,  711,  712,  713,  714,
838       715,  716,  717,  718,  719,  720,  721,  722,  723,  724,
839       725,  726,  727,  728,  730,  731,  711,  732,  733,  734,
840       735,  736,  737,  738,  739,  740,  741,  742,  743,  744,
841       745,  746,  747,  748,  749,  750,  751,  752,  753,  754,
842       755,  756,  757,  758,  759,  760,  761,  762,  763,  764,
843       765,  766,  767,  768,  769,  770,  771,  772,  773,  774,
844       775,  776,  777,  778,  779,  780,  781,  782,  783,  784,
845 
846       785,  786,  787,  788,  789,  790,  791,  792,  793,  794,
847       795,  796,  797,  798,  799,  800,  801,  802,  803,  804,
848       805,  806,  807,  808,  809,  810,  811,  812,  813,  814,
849       815,  816,  817,  818,  819,  820,  821,  822,  823,  824,
850       825,  826,  827,  828,  829,  830,  831,  832,  833,  834,
851       835,  837,  838,  839,  840,  841,  842,  843,  844,  845,
852       846,  847,  848,  849,  850,  851,  852,  853,  854,  855,
853       856,  857,  858,  842,  859,  860,  861,  862,  863,  864,
854       865,  866,  867,  868,  869,  870,  871,  872,  873,  874,
855       875,  876,  877,  878,  879,  863,  880,  881,  882,  876,
856 
857       883,  884,  885,  886,  887,  876,  888,  889,  890,  891,
858       892,  893,  894,  895,  896,  897,  898,  899,  900,  901,
859       902,  903,  904,  905,  906,  907,  908,  909,  910,  911,
860       912,  913,  914,  915,  916,  917,  918,  919,  920,  921,
861       922,  923,  924,  925,  926,  927,  928,  929,  930,  931,
862       932,  933,  934,  935,  936,  937,  938,  939,  940,  941,
863       942,  943,  944,  945,  946,  947,  948,  949,  950,  951,
864       952,  953,  954,  938,  955,  956,  941,  957,  958,  959,
865       960,  961,  962,  963,  964,  965,  966,  967,  968,  969,
866       970,  971,  972,  973,  974,  975,  976,  977,  978,  979,
867 
868       980,  981,  982,  983,  967,  984,  985,  986,  987,  988,
869       989,  990,  991,  992,  994,  639,  638,  637,  636,  635,
870       634,  633,  632,  631,  630,  629,  628,  627,  626,  625,
871       624,  623,  622,  621,  620,  619,  618,  617,  616,  615,
872       614,  613,  612,  611,  610,  609,  608,  606,  605,  604,
873       603,  602,  601,  600,  599,  598,  597,  596,  594,  593,
874       592,  590,  589,  588,  587,  586,  585,  584,  583,  582,
875       581,  580,  579,  578,  577,  576,  575,  574,  573,  572,
876       571,  570,  569,  568,  567,  566,  565,  564,  562,  560,
877       559,  558,  557,  556,  555,  553,  552,  551,  550,  549,
878 
879       548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
880       538,  537,  536,  533,  532,  531,  530,  529,  528,  527,
881       526,  525,  524,  523,  522,  521,  520,  519,  518,  517,
882       516,  515,  514,  513,  512,  511,  510,  509,  507,  506,
883       505,  504,  503,  502,  501,  500,  499,  498,  497,  496,
884       495,  494,  493,  491,  490,  489,  488,  487,  485,  484,
885       483,  482,  481,  480,  479,  478,  477,  476,  474,  473,
886       472,  471,  469,  468,  467,  466,  465,  464,  463,  462,
887       461,  460,  459,  458,  457,  456,  455,  454,  453,  452,
888       451,  450,  449,  448,  447,  446,  445,  444,  443,  440,
889 
890       439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
891       429,  428,  427,  426,  425,  424,  423,  421,  420,  419,
892       418,  417,  416,  415,  414,  413,  410,  409,  408,  407,
893       406,  405,  404,  403,  402,  401,  400,  399,  398,  397,
894       396,  394,  393,  392,  391,  390,  389,  388,  387,  386,
895       385,  383,  382,  381,  379,  378,  377,  376,  375,  373,
896       372,  371,  370,  369,  368,  367,  366,  365,  364,  363,
897       362,  361,  360,  359,  358,  357,  356,  355,  354,  352,
898       351,  350,  348,  347,  346,  345,  343,  342,  341,  340,
899       338,  337,  336,  335,  334,  333,  332,  331,  329,  328,
900 
901       327,  326,  325,  324,  323,  322,  321,  320,  318,  316,
902       315,  314,  313,  312,  311,  310,  309,  308,  307,  306,
903       305,  304,  302,  301,  300,  299,  298,  297,  296,  295,
904       294,  293,  292,  291,  290,  289,  288,  287,  286,  285,
905       284,  283,  282,  281,  280,  278,  277,  276,  274,  273,
906       272,  270,  268,  267,  266,  265,  264,  262,  261,  260,
907       259,  258,  257,  256,  255,  254,  253,  252,  251,  250,
908       249,  248,  247,  246,  245,  244,  243,  242,  241,  239,
909       238,  237,  236,  233,  230,  229,  227,  225,  223,  221,
910       218,  216,  215,  214,  213,  211,  210,  209,  208,  207,
911 
912       206,  205,  204,  202,  201,  200,  199,  198,  197,  196,
913       194,  193,  192,  191,  187,  185,  183,  180,  179,  178,
914       177,  176,  174,  173,  171,  170,  169,  168,  167,  165,
915       164,  162,  161,  160,  159,  157,  156,  155,  153,  152,
916       150,  149,  148,  147,  146,  145,  144,  142,  137,  136,
917       134,  133,  131,  130,  129,  126,  121,  120,  119,  117,
918       116,  115,  113,  112,  111,  110,  109,  108,  106,  103,
919       102,  101,  100,   99,   98,   96,   95,   94,   93,   92,
920        91,   90,   89,   88,   87,   86,   85,   81,   80,   76,
921        61,   50,   49,   48,   47,   45,   42,   41,   40,   38,
922 
923        37,   35,   32,   28,   27,   26,   25,   23,   20,   15,
924        14,   11,    7,    3,  993,  993,  993,  993,  993,  993,
925       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
926       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
927       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
928       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
929       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
930       993,  993,  993,  993,  993,  993,  993,  993,  993,  993,
931       993,  993,  993,  993,  993,  993,  993,  993
932     } ;
933 
934 static yy_state_type yy_last_accepting_state;
935 static char *yy_last_accepting_cpos;
936 
937 #define YY_MORE_ADJ 0
938 #define YY_RESTORE_YY_MORE_OFFSET
939 static char *yytext;
940 #define INITIAL 0
941 #include <string.h>
942 #include "nodes.h"
943 
944 #ifdef _WIN32
945 #define strdup _strdup
946 #define fileno _fileno
947 #define isatty _isatty
948 #endif
949 
950 extern "C" {
951 #include "grammar.h"
952 static int yywrap();
953 }
954 
955 #ifdef TOKEN_DEBUG
956 #define token_debug printf
957 #else
958 static int token_debug(const char *format, ...);
959 #endif
960 
961 /* Macros after this point can all be overridden by user definitions in
962  * section 1.
963  */
964 
965 #ifndef YY_NO_UNPUT
966 //static void yyunput YY_PROTO(( int c, char *buf_ptr ));
967 #endif
968 
969 #ifndef yytext_ptr
970 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
971 #endif
972 
973 #ifdef YY_NEED_STRLEN
974 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
975 #endif
976 
977 #if YY_STACK_USED
978 static int yy_start_stack_ptr = 0;
979 static int yy_start_stack_depth = 0;
980 static int *yy_start_stack = 0;
981 #ifndef YY_NO_PUSH_STATE
982 static void yy_push_state YY_PROTO(( int new_state ));
983 #endif
984 #ifndef YY_NO_POP_STATE
985 static void yy_pop_state YY_PROTO(( void ));
986 #endif
987 #ifndef YY_NO_TOP_STATE
988 static int yy_top_state YY_PROTO(( void ));
989 #endif
990 
991 #else
992 #define YY_NO_PUSH_STATE 1
993 #define YY_NO_POP_STATE 1
994 #define YY_NO_TOP_STATE 1
995 #endif
996 
997 #ifdef YY_MALLOC_DECL
998 YY_MALLOC_DECL
999 #else
1000 #if !(defined __STDC__ && __STDC__)
1001 /* Just try to get by without declaring the routines.  This will fail
1002  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1003  * or sizeof(void*) != sizeof(int).
1004  */
1005 #endif
1006 #endif
1007 
1008 #include "lexer.hxx"
1009 
1010 /* Amount of stuff to slurp up with each read. */
1011 #ifndef YY_READ_BUF_SIZE
1012 #define YY_READ_BUF_SIZE 8192
1013 #endif
1014 
1015 /* Copy whatever the last rule matched to the standard output. */
1016 
1017 #ifndef ECHO
1018 /* This used to be an fputs(), but since the string might contain NUL's,
1019  * we now use fwrite().
1020  */
1021 #define ECHO do { fwrite( yytext, yyleng, 1, yyout ); } while (false)
1022 #endif
1023 
1024 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1025  * is returned in "result".
1026  */
1027 #ifndef YY_INPUT
1028 #define YY_INPUT(buf,result,max_size) \
1029     if ( yy_current_buffer->yy_is_interactive ) \
1030         { \
1031         int c = '*', n; \
1032         for ( n = 0; n < max_size && \
1033                  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1034             buf[n] = static_cast<char>(c); \
1035         if ( c == '\n' ) \
1036             buf[n++] = static_cast<char>(c); \
1037         if ( c == EOF && ferror( yyin ) ) \
1038             YY_FATAL_ERROR( "input in flex scanner failed" ); \
1039         result = n; \
1040         } \
1041     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1042           && ferror( yyin ) ) \
1043         YY_FATAL_ERROR( "input in flex scanner failed" );
1044 #endif
1045 
1046 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1047  * we don't want an extra ';' after the "return" because that will cause
1048  * some compilers to complain about unreachable statements.
1049  */
1050 #ifndef yyterminate
1051 #define yyterminate() return YY_NULL
1052 #endif
1053 
1054 /* Report a fatal error. */
1055 #ifndef YY_FATAL_ERROR
1056 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1057 #endif
1058 
1059 /* Default declaration of generated scanner - a define so the user can
1060  * easily add parameters.
1061  */
1062 #ifndef YY_DECL
1063 #define YY_DECL int yylex YY_PROTO(( void ))
1064 #endif
1065 
1066 /* Code executed at the beginning of each rule, after yytext and yyleng
1067  * have been set up.
1068  */
1069 #ifndef YY_USER_ACTION
1070 #define YY_USER_ACTION
1071 #endif
1072 
1073 /* Code executed at the end of each rule. */
1074 #ifndef YY_BREAK
1075 #define YY_BREAK break;
1076 #endif
1077 
1078 #define YY_RULE_SETUP \
1079     YY_USER_ACTION
1080 
1081 YY_DECL
1082     {
1083     yy_state_type yy_current_state;
1084     char *yy_cp, *yy_bp;
1085     int yy_act;
1086 
1087     if ( yy_init )
1088         {
1089         yy_init = 0;
1090 
1091 #ifdef YY_USER_INIT
1092         YY_USER_INIT;
1093 #endif
1094 
1095         if ( ! yy_start )
1096             yy_start = 1;   /* first start state */
1097 
1098         if ( ! yyin )
1099             yyin = stdin;
1100 
1101         if ( ! yyout )
1102             yyout = stdout;
1103 
1104         if ( ! yy_current_buffer )
1105             yy_current_buffer =
1106                 yy_create_buffer( yyin, YY_BUF_SIZE );
1107 
1108         yy_load_buffer_state();
1109         }
1110 
1111     while ( true )     /* loops until end-of-file is reached */
1112         {
1113         yy_cp = yy_c_buf_p;
1114 
1115         /* Support of yytext. */
1116         *yy_cp = yy_hold_char;
1117 
1118         /* yy_bp points to the position in yy_ch_buf of the start of
1119          * the current run.
1120          */
1121         yy_bp = yy_cp;
1122 
1123         yy_current_state = yy_start;
1124 yy_match:
1125         do
1126             {
1127             YY_CHAR yy_c = sal::static_int_cast<YY_CHAR>(yy_ec[YY_SC_TO_UI(*yy_cp)]);
1128             if ( yy_accept[yy_current_state] )
1129                 {
1130                 yy_last_accepting_state = yy_current_state;
1131                 yy_last_accepting_cpos = yy_cp;
1132                 }
1133             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1134                 {
1135                 yy_current_state = static_cast<int>(yy_def[yy_current_state]);
1136                 if ( yy_current_state >= 994 )
1137                     yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[static_cast<unsigned int>(yy_c)]);
1138                 }
1139             yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1140             ++yy_cp;
1141             }
1142         while ( yy_base[yy_current_state] != 1315 );
1143 
1144 yy_find_action:
1145         yy_act = yy_accept[yy_current_state];
1146         if ( yy_act == 0 )
1147             { /* have to back up */
1148             yy_cp = yy_last_accepting_cpos;
1149             yy_current_state = yy_last_accepting_state;
1150             yy_act = yy_accept[yy_current_state];
1151             }
1152 
1153         YY_DO_BEFORE_ACTION;
1154 
1155 
1156 do_action:  /* This label is used only to access EOF actions. */
1157 
1158 
1159         switch ( yy_act )
1160     { /* beginning of action switch */
1161             case 0: /* must back up */
1162             /* undo the effects of YY_DO_BEFORE_ACTION */
1163             *yy_cp = yy_hold_char;
1164             yy_cp = yy_last_accepting_cpos;
1165             yy_current_state = yy_last_accepting_state;
1166             goto yy_find_action;
1167 
1168 case 1:
1169 YY_RULE_SETUP
1170 { yylval.str = yytext+1; token_debug("  ==>Begin[%s]\n",yytext+1); return EQBEGIN; }
1171     //YY_BREAK
1172 case 2:
1173 YY_RULE_SETUP
1174 { yylval.str = yytext+1; token_debug("  ==>End[%s]\n",yytext+1); return EQEND; }
1175     //YY_BREAK
1176 case 3:
1177 YY_RULE_SETUP
1178 { yylval.str = yytext+1; token_debug("  ==>Left[%s]\n",yytext+1); return EQLEFT; }
1179     //YY_BREAK
1180 case 4:
1181 YY_RULE_SETUP
1182 { yylval.str = yytext+1; token_debug("  ==>LeftDelim[%s]\n",yytext+1); return LEFT_DELIM; }
1183     //YY_BREAK
1184 case 5:
1185 YY_RULE_SETUP
1186 { yylval.str = yytext+1; token_debug("  ==>RightDelim[%s]\n",yytext+1); return RIGHT_DELIM; }
1187     //YY_BREAK
1188 case 6:
1189 YY_RULE_SETUP
1190 { yylval.str = yytext+1; token_debug("  ==>Right[%s]\n",yytext+1); return EQRIGHT; }
1191     //YY_BREAK
1192 case 7:
1193 YY_RULE_SETUP
1194 { yylval.str = yytext;   token_debug("  ==>NewLine[%s]\n",yytext); return NEWLINE; }
1195     //YY_BREAK
1196 case 8:
1197 YY_RULE_SETUP
1198 { yylval.str = yytext+1; token_debug("  ==>Accent[%s]\n",yytext+1); return ACCENT; }
1199     //YY_BREAK
1200 case 9:
1201 YY_RULE_SETUP
1202 { yylval.str = yytext+1; token_debug("  ==>Small_Greek[%s]\n",yytext+1); return SMALL_GREEK; }
1203     //YY_BREAK
1204 case 10:
1205 YY_RULE_SETUP
1206 { yylval.str = yytext+1; token_debug("  ==>Capital_Greek[%s]\n",yytext+1); return CAPITAL_GREEK; }
1207     //YY_BREAK
1208 case 11:
1209 YY_RULE_SETUP
1210 { yylval.str = yytext+1; token_debug("  ==>Binary_Operator[%s]\n",yytext+1); return BINARY_OPERATOR; }
1211     //YY_BREAK
1212 case 12:
1213 YY_RULE_SETUP
1214 { yylval.str = yytext+1; token_debug("  ==>Relation_Symbol[%s]\n",yytext+1); return RELATION_OPERATOR; }
1215     //YY_BREAK
1216 case 13:
1217 YY_RULE_SETUP
1218 { yylval.str = strdup("neq"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1219     //YY_BREAK
1220 case 14:
1221 YY_RULE_SETUP
1222 { yylval.str = strdup("vmlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1223     //YY_BREAK
1224 case 15:
1225 YY_RULE_SETUP
1226 { yylval.str = strdup("vmgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1227     //YY_BREAK
1228 case 16:
1229 YY_RULE_SETUP
1230 { yylval.str = strdup("mlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1231     //YY_BREAK
1232 case 17:
1233 YY_RULE_SETUP
1234 { yylval.str = strdup("mgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1235     //YY_BREAK
1236 case 18:
1237 YY_RULE_SETUP
1238 { yylval.str = yytext; token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1239     //YY_BREAK
1240 case 19:
1241 YY_RULE_SETUP
1242 { yylval.str = yytext+1; token_debug("  ==>Arrow[%s]\n",yytext+1); return ARROW; }
1243     //YY_BREAK
1244 case 20:
1245 YY_RULE_SETUP
1246 { yylval.str = strdup("leftrightarrow"); token_debug("  ==>Arrow[leftrightarrow]\n"); return ARROW; }
1247     //YY_BREAK
1248 case 21:
1249 YY_RULE_SETUP
1250 { yylval.str = strdup("rightarrow"); token_debug("  ==>Arrow[rightarrow]\n"); return ARROW; }
1251     //YY_BREAK
1252 case 22:
1253 YY_RULE_SETUP
1254 { yylval.str = strdup("leftarrow"); token_debug("   ==>Arrow[leftarrow]\n"); return ARROW; }
1255     //YY_BREAK
1256 
1257 case 23:
1258 YY_RULE_SETUP
1259 { token_debug(" ==>Ignore[\\rm]\n"); }
1260     //YY_BREAK
1261 [[fallthrough]];
1262 case 24:
1263 YY_RULE_SETUP
1264 { yylval.str = yytext+1; token_debug("  ==>General_Iden[%s]\n",yytext+1); return GENERAL_IDEN; }
1265     //YY_BREAK
1266 case 25:
1267 YY_RULE_SETUP
1268 { yylval.str = yytext+1; token_debug("  ==>General_Oper[%s]\n",yytext+1); return GENERAL_OPER; }
1269     //YY_BREAK
1270 case 26:
1271 YY_RULE_SETUP
1272 { yylval.str = yytext+1; token_debug("  ==>Big_Symbol[%s]\n",yytext+1); return BIG_SYMBOL; }
1273     //YY_BREAK
1274 case 27:
1275 YY_RULE_SETUP
1276 { yylval.str = yytext+1; token_debug("  ==>Function[%s]\n",yytext+1); return FUNCTION; }
1277     //YY_BREAK
1278 case 28:
1279 YY_RULE_SETUP
1280 { yylval.str = yytext+1; token_debug("  ==>Root[%s]\n",yytext+1); return ROOT; }
1281     //YY_BREAK
1282 case 29:
1283 YY_RULE_SETUP
1284 { yylval.str = yytext+1; token_debug("  ==>Fraction[%s]\n",yytext+1); return FRACTION; }
1285     //YY_BREAK
1286 case 30:
1287 YY_RULE_SETUP
1288 { yylval.str = yytext+1; token_debug("  ==>Over[%s]\n",yytext+1); return EQOVER; }
1289     //YY_BREAK
1290 case 31:
1291 YY_RULE_SETUP
1292 { yylval.str = yytext+1; token_debug("  ==>Delimeter[%s]\n",yytext+1); return DELIMETER; }
1293     //YY_BREAK
1294 case 32:
1295 YY_RULE_SETUP
1296 { yylval.str = yytext+1; token_debug("  ==>Large_Delim[%s]\n",yytext+1); return LARGE_DELIM; }
1297     //YY_BREAK
1298 case 33:
1299 YY_RULE_SETUP
1300 { yylval.str = yytext+1; token_debug("  ==>Decoration[%s]\n",yytext+1); return DECORATION; }
1301     //YY_BREAK
1302 case 34:
1303 YY_RULE_SETUP
1304 { yylval.str = yytext+1; token_debug("  ==>Space_Symbol[%s]\n",yytext+1); /*return SPACE_SYMBOL;*/ }
1305     //YY_BREAK
1306 [[fallthrough]];
1307 case 35:
1308 YY_RULE_SETUP
1309 { yylval.str = strdup("quad"); token_debug("    ==>Space_Symbol[quad]\n"); /* return SPACE_SYMBOL;*/ }
1310     //YY_BREAK
1311 [[fallthrough]];
1312 case 36:
1313 YY_RULE_SETUP
1314 { yylval.dval = yytext;  token_debug("  ==>Digit[%s]\n",yytext); return DIGIT; }
1315     //YY_BREAK
1316 case 37:
1317 YY_RULE_SETUP
1318 { yylval.str = yytext;   token_debug("  ==>Operator[%s]\n",yytext); return OPERATOR; }
1319     //YY_BREAK
1320 case 38:
1321 YY_RULE_SETUP
1322 { token_debug(" ==>SubSup[%s]\n",yytext); return yytext[0]; }
1323     //YY_BREAK
1324 case 39:
1325 YY_RULE_SETUP
1326 { token_debug(" ==>Paren[%s]\n",yytext); return yytext[0];}
1327     //YY_BREAK
1328 case 40:
1329 YY_RULE_SETUP
1330 { token_debug(" ==>Abs[%s]\n",yytext); return yytext[0];}
1331     //YY_BREAK
1332 case 41:
1333 YY_RULE_SETUP
1334 { token_debug("   ==>Space[0x%2x]\n",yytext[0]); }
1335     YY_BREAK
1336 case 42:
1337 YY_RULE_SETUP
1338 { token_debug("   ==>Ignore[0x%2x]\n",yytext[0]); }
1339     YY_BREAK
1340 case 43:
1341 YY_RULE_SETUP
1342 { yylval.str = yytext;  token_debug("   ==>String[%s]\n",yytext); return STRING; }
1343     //YY_BREAK
1344 case 44:
1345 YY_RULE_SETUP
1346 { yylval.str = yytext;  token_debug("   ==>Else[%s]\n",yytext); return CHARACTER; }
1347     //YY_BREAK
1348 case 45:
1349 YY_RULE_SETUP
1350 ECHO;
1351     YY_BREAK
1352 case YY_STATE_EOF(INITIAL):
1353     yyterminate();
1354 
1355     case YY_END_OF_BUFFER:
1356         {
1357         /* Amount of text matched not including the EOB char. */
1358         int yy_amount_of_matched_text = static_cast<int>(yy_cp - yytext_ptr) - 1;
1359 
1360         /* Undo the effects of YY_DO_BEFORE_ACTION. */
1361         *yy_cp = yy_hold_char;
1362         YY_RESTORE_YY_MORE_OFFSET
1363 
1364         if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1365             {
1366             /* We're scanning a new file or input source.  It's
1367              * possible that this happened because the user
1368              * just pointed yyin at a new source and called
1369              * yylex().  If so, then we have to assure
1370              * consistency between yy_current_buffer and our
1371              * globals.  Here is the right place to do so, because
1372              * this is the first action (other than possibly a
1373              * back-up) that will match for the new input source.
1374              */
1375             yy_n_chars = yy_current_buffer->yy_n_chars;
1376             yy_current_buffer->yy_input_file = yyin;
1377             yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1378             }
1379 
1380         /* Note that here we test for yy_c_buf_p "<=" to the position
1381          * of the first EOB in the buffer, since yy_c_buf_p will
1382          * already have been incremented past the NUL character
1383          * (since all states make transitions on EOB to the
1384          * end-of-buffer state).  Contrast this with the test
1385          * in input().
1386          */
1387         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1388             { /* This was really a NUL. */
1389             yy_state_type yy_next_state;
1390 
1391             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1392 
1393             yy_current_state = yy_get_previous_state();
1394 
1395             /* Okay, we're now positioned to make the NUL
1396              * transition.  We couldn't have
1397              * yy_get_previous_state() go ahead and do it
1398              * for us because it doesn't know how to deal
1399              * with the possibility of jamming (and we don't
1400              * want to build jamming into it because then it
1401              * will run more slowly).
1402              */
1403 
1404             yy_next_state = yy_try_NUL_trans( yy_current_state );
1405 
1406             yy_bp = yytext_ptr + YY_MORE_ADJ;
1407 
1408             if ( yy_next_state )
1409                 {
1410                 /* Consume the NUL. */
1411                 yy_cp = ++yy_c_buf_p;
1412                 yy_current_state = yy_next_state;
1413                 goto yy_match;
1414                 }
1415 
1416             else
1417                 {
1418                 yy_cp = yy_c_buf_p;
1419                 goto yy_find_action;
1420                 }
1421             }
1422 
1423         else switch ( yy_get_next_buffer() )
1424             {
1425             case EOB_ACT_END_OF_FILE:
1426                 {
1427                 yy_did_buffer_switch_on_eof = 0;
1428 
1429                 if ( yywrap() )
1430                     {
1431                     /* Note: because we've taken care in
1432                      * yy_get_next_buffer() to have set up
1433                      * yytext, we can now set up
1434                      * yy_c_buf_p so that if some total
1435                      * hoser (like flex itself) wants to
1436                      * call the scanner after we return the
1437                      * YY_NULL, it'll still work - another
1438                      * YY_NULL will get returned.
1439                      */
1440                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1441 
1442                     yy_act = YY_STATE_EOF(YY_START);
1443                     goto do_action;
1444                     }
1445 
1446                 else
1447                     {
1448                     if ( ! yy_did_buffer_switch_on_eof )
1449                         YY_NEW_FILE;
1450                     }
1451                 }
1452                 break;
1453 
1454             case EOB_ACT_CONTINUE_SCAN:
1455                 yy_c_buf_p =
1456                     yytext_ptr + yy_amount_of_matched_text;
1457 
1458                 yy_current_state = yy_get_previous_state();
1459 
1460                 yy_cp = yy_c_buf_p;
1461                 yy_bp = yytext_ptr + YY_MORE_ADJ;
1462                 goto yy_match;
1463                 break;
1464 
1465             case EOB_ACT_LAST_MATCH:
1466                 yy_c_buf_p =
1467                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1468 
1469                 yy_current_state = yy_get_previous_state();
1470 
1471                 yy_cp = yy_c_buf_p;
1472                 yy_bp = yytext_ptr + YY_MORE_ADJ;
1473                 goto yy_find_action;
1474                 break;
1475             }
1476         break;
1477         }
1478 
1479     default:
1480         YY_FATAL_ERROR(
1481             "fatal flex scanner internal error--no action found" );
1482     } /* end of action switch */
1483         } /* end of scanning one token */
1484     } /* end of yylex */
1485 
1486 
1487 /* yy_get_next_buffer - try to read in a new buffer
1488  *
1489  * Returns a code representing an action:
1490  *  EOB_ACT_LAST_MATCH -
1491  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1492  *  EOB_ACT_END_OF_FILE - end of file
1493  */
1494 
1495 static int yy_get_next_buffer()
1496     {
1497     char *dest = yy_current_buffer->yy_ch_buf;
1498     char *source = yytext_ptr;
1499     int number_to_move, i;
1500     int ret_val;
1501 
1502     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1503         YY_FATAL_ERROR(
1504         "fatal flex scanner internal error--end of buffer missed" );
1505 
1506     if ( yy_current_buffer->yy_fill_buffer == 0 )
1507         { /* Don't try to fill the buffer, so this is an EOF. */
1508         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1509             {
1510             /* We matched a single character, the EOB, so
1511              * treat this as a final EOF.
1512              */
1513             return EOB_ACT_END_OF_FILE;
1514             }
1515 
1516         else
1517             {
1518             /* We matched some text prior to the EOB, first
1519              * process it.
1520              */
1521             return EOB_ACT_LAST_MATCH;
1522             }
1523         }
1524 
1525     /* Try to read more data. */
1526 
1527     /* First move last chars to start of buffer. */
1528     number_to_move = static_cast<int>(yy_c_buf_p - yytext_ptr) - 1;
1529 
1530     for ( i = 0; i < number_to_move; ++i )
1531         *(dest++) = *(source++);
1532 
1533     if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1534         /* don't do the read, it's not guaranteed to return an EOF,
1535          * just force an EOF
1536          */
1537         yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1538 
1539     else
1540         {
1541         int num_to_read =
1542             yy_current_buffer->yy_buf_size - number_to_move - 1;
1543 
1544         while ( num_to_read <= 0 )
1545             { /* Not enough room in the buffer - grow it. */
1546 #ifdef YY_USES_REJECT
1547             YY_FATAL_ERROR(
1548 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1549 #else
1550 
1551             /* just a shorter name for the current buffer */
1552             YY_BUFFER_STATE b = yy_current_buffer;
1553 
1554             int yy_c_buf_p_offset =
1555                 static_cast<int>(yy_c_buf_p - b->yy_ch_buf);
1556 
1557             if ( b->yy_is_our_buffer )
1558                 {
1559                 int new_size = b->yy_buf_size * 2;
1560 
1561                 if ( new_size <= 0 )
1562                     b->yy_buf_size += b->yy_buf_size / 8;
1563                 else
1564                     b->yy_buf_size *= 2;
1565 
1566                 b->yy_ch_buf = static_cast<char *>(
1567                     /* Include room in for 2 EOB chars. */
1568                     yy_flex_realloc( static_cast<void *>(b->yy_ch_buf),
1569                              b->yy_buf_size + 2 ));
1570                 }
1571             else
1572                 /* Can't grow it, we don't own it. */
1573                 b->yy_ch_buf = nullptr;
1574 
1575             if ( ! b->yy_ch_buf )
1576                 YY_FATAL_ERROR(
1577                 "fatal error - scanner input buffer overflow" );
1578 
1579             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1580 
1581             num_to_read = yy_current_buffer->yy_buf_size -
1582                         number_to_move - 1;
1583 #endif
1584             }
1585 
1586         if ( num_to_read > YY_READ_BUF_SIZE )
1587             num_to_read = YY_READ_BUF_SIZE;
1588 
1589         /* Read in more data. */
1590         YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1591             yy_n_chars, num_to_read );
1592 
1593         yy_current_buffer->yy_n_chars = yy_n_chars;
1594         }
1595 
1596     if ( yy_n_chars == 0 )
1597         {
1598         if ( number_to_move == YY_MORE_ADJ )
1599             {
1600             ret_val = EOB_ACT_END_OF_FILE;
1601             yyrestart( yyin );
1602             }
1603 
1604         else
1605             {
1606             ret_val = EOB_ACT_LAST_MATCH;
1607             yy_current_buffer->yy_buffer_status =
1608                 YY_BUFFER_EOF_PENDING;
1609             }
1610         }
1611 
1612     else
1613         ret_val = EOB_ACT_CONTINUE_SCAN;
1614 
1615     yy_n_chars += number_to_move;
1616     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1617     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1618 
1619     yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1620 
1621     return ret_val;
1622     }
1623 
1624 
1625 /* yy_get_previous_state - get the state just before the EOB char was reached */
1626 
yy_get_previous_state()1627 static yy_state_type yy_get_previous_state()
1628     {
1629     yy_state_type yy_current_state;
1630     char *yy_cp;
1631 
1632     yy_current_state = yy_start;
1633 
1634     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
1635         {
1636         YY_CHAR yy_c = sal::static_int_cast<YY_CHAR>(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1637         if ( yy_accept[yy_current_state] )
1638             {
1639             yy_last_accepting_state = yy_current_state;
1640             yy_last_accepting_cpos = yy_cp;
1641             }
1642         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1643             {
1644             yy_current_state = static_cast<int>(yy_def[yy_current_state]);
1645             if ( yy_current_state >= 994 )
1646                 yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[static_cast<unsigned int>(yy_c)]);
1647             }
1648         yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1649         }
1650 
1651     return yy_current_state;
1652     }
1653 
1654 
1655 /* yy_try_NUL_trans - try to make a transition on the NUL character
1656  *
1657  * synopsis
1658  *  next_state = yy_try_NUL_trans( current_state );
1659  */
1660 
1661 #ifdef YY_USE_PROTOS
yy_try_NUL_trans(yy_state_type yy_current_state)1662 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1663 #else
1664 static yy_state_type yy_try_NUL_trans( yy_current_state )
1665 yy_state_type yy_current_state;
1666 #endif
1667     {
1668     bool yy_is_jam;
1669     char *yy_cp = yy_c_buf_p;
1670 
1671     YY_CHAR yy_c = 1;
1672     if ( yy_accept[yy_current_state] )
1673         {
1674         yy_last_accepting_state = yy_current_state;
1675         yy_last_accepting_cpos = yy_cp;
1676         }
1677     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1678         {
1679         yy_current_state = static_cast<int>(yy_def[yy_current_state]);
1680         if ( yy_current_state >= 994 )
1681             yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[static_cast<unsigned int>(yy_c)]);
1682         }
1683     yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1684     yy_is_jam = (yy_current_state == 993);
1685 
1686     return yy_is_jam ? 0 : yy_current_state;
1687     }
1688 
1689 #ifdef YY_USE_PROTOS
yyrestart(FILE * input_file)1690 void yyrestart( FILE *input_file )
1691 #else
1692 void yyrestart( input_file )
1693 FILE *input_file;
1694 #endif
1695     {
1696     if ( ! yy_current_buffer )
1697         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1698 
1699     yy_init_buffer( yy_current_buffer, input_file );
1700     yy_load_buffer_state();
1701     }
1702 
1703 
1704 #ifdef YY_USE_PROTOS
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)1705 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1706 #else
1707 void yy_switch_to_buffer( new_buffer )
1708 YY_BUFFER_STATE new_buffer;
1709 #endif
1710     {
1711     if ( yy_current_buffer == new_buffer )
1712         return;
1713 
1714     if ( yy_current_buffer )
1715         {
1716         /* Flush out information for old buffer. */
1717         *yy_c_buf_p = yy_hold_char;
1718         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1719         yy_current_buffer->yy_n_chars = yy_n_chars;
1720         }
1721 
1722     yy_current_buffer = new_buffer;
1723     yy_load_buffer_state();
1724 
1725     /* We don't actually know whether we did this switch during
1726      * EOF (yywrap()) processing, but the only time this flag
1727      * is looked at is after yywrap() is called, so it's safe
1728      * to go ahead and always set it.
1729      */
1730     yy_did_buffer_switch_on_eof = 1;
1731     }
1732 
1733 
1734 #ifdef YY_USE_PROTOS
yy_load_buffer_state()1735 void yy_load_buffer_state()
1736 #else
1737 void yy_load_buffer_state()
1738 #endif
1739     {
1740     yy_n_chars = yy_current_buffer->yy_n_chars;
1741     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
1742     yyin = yy_current_buffer->yy_input_file;
1743     yy_hold_char = *yy_c_buf_p;
1744     }
1745 
1746 
1747 #ifdef YY_USE_PROTOS
yy_create_buffer(FILE * file,int size)1748 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
1749 #else
1750 YY_BUFFER_STATE yy_create_buffer( file, size )
1751 FILE *file;
1752 int size;
1753 #endif
1754     {
1755     YY_BUFFER_STATE b;
1756 
1757     b = static_cast<YY_BUFFER_STATE>(yy_flex_alloc( sizeof( struct yy_buffer_state ) ));
1758     if ( ! b )
1759         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1760 
1761     b->yy_buf_size = size;
1762 
1763     /* yy_ch_buf has to be 2 characters longer than the size given because
1764      * we need to put in 2 end-of-buffer characters.
1765      */
1766     b->yy_ch_buf = static_cast<char *>(yy_flex_alloc( b->yy_buf_size + 2 ));
1767     if ( ! b->yy_ch_buf )
1768         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1769 
1770     b->yy_is_our_buffer = 1;
1771 
1772     yy_init_buffer( b, file );
1773 
1774     return b;
1775     }
1776 
1777 
1778 #ifdef YY_USE_PROTOS
yy_delete_buffer(YY_BUFFER_STATE b)1779 void yy_delete_buffer( YY_BUFFER_STATE b )
1780 #else
1781 void yy_delete_buffer( b )
1782 YY_BUFFER_STATE b;
1783 #endif
1784     {
1785     if ( ! b )
1786         return;
1787 
1788     if ( b == yy_current_buffer )
1789         yy_current_buffer = nullptr;
1790 
1791     if ( b->yy_is_our_buffer )
1792         yy_flex_free( static_cast<void *>(b->yy_ch_buf) );
1793 
1794     yy_flex_free( static_cast<void *>(b) );
1795     }
1796 
1797 
1798 #ifndef YY_ALWAYS_INTERACTIVE
1799 #ifndef YY_NEVER_INTERACTIVE
1800 extern int isatty YY_PROTO(( int ));
1801 #endif
1802 #endif
1803 
1804 #ifdef YY_USE_PROTOS
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)1805 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
1806 #else
1807 void yy_init_buffer( b, file )
1808 YY_BUFFER_STATE b;
1809 FILE *file;
1810 #endif
1811 
1812 
1813     {
1814     yy_flush_buffer( b );
1815 
1816     b->yy_input_file = file;
1817     b->yy_fill_buffer = 1;
1818 
1819 #if YY_ALWAYS_INTERACTIVE
1820     b->yy_is_interactive = true;
1821 #else
1822 #if YY_NEVER_INTERACTIVE
1823     b->yy_is_interactive = false;
1824 #else
1825     b->yy_is_interactive = file && isatty( fileno(file) ) > 0;
1826 #endif
1827 #endif
1828     }
1829 
1830 
1831 #ifdef YY_USE_PROTOS
yy_flush_buffer(YY_BUFFER_STATE b)1832 void yy_flush_buffer( YY_BUFFER_STATE b )
1833 #else
1834 void yy_flush_buffer( b )
1835 YY_BUFFER_STATE b;
1836 #endif
1837 
1838     {
1839     if ( ! b )
1840         return;
1841 
1842     b->yy_n_chars = 0;
1843 
1844     /* We always need two end-of-buffer characters.  The first causes
1845      * a transition to the end-of-buffer state.  The second causes
1846      * a jam in that state.
1847      */
1848     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1849     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1850 
1851     b->yy_buf_pos = &b->yy_ch_buf[0];
1852 
1853     b->yy_at_bol = 1;
1854     b->yy_buffer_status = YY_BUFFER_NEW;
1855 
1856     if ( b == yy_current_buffer )
1857         yy_load_buffer_state();
1858     }
1859 
1860 
1861 #ifndef YY_NO_SCAN_BUFFER
1862 #ifdef YY_USE_PROTOS
yy_scan_buffer(char * base,yy_size_t size)1863 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
1864 #else
1865 YY_BUFFER_STATE yy_scan_buffer( base, size )
1866 char *base;
1867 yy_size_t size;
1868 #endif
1869     {
1870     YY_BUFFER_STATE b;
1871 
1872     if ( size < 2 ||
1873          base[size-2] != YY_END_OF_BUFFER_CHAR ||
1874          base[size-1] != YY_END_OF_BUFFER_CHAR )
1875         /* They forgot to leave room for the EOB's. */
1876         return nullptr;
1877 
1878     b = static_cast<YY_BUFFER_STATE>(yy_flex_alloc( sizeof( struct yy_buffer_state ) ));
1879     if ( ! b )
1880         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1881 
1882     b->yy_buf_size = size - 2;  /* "- 2" to take care of EOB's */
1883     b->yy_buf_pos = b->yy_ch_buf = base;
1884     b->yy_is_our_buffer = 0;
1885     b->yy_input_file = nullptr;
1886     b->yy_n_chars = b->yy_buf_size;
1887     b->yy_is_interactive = false;
1888     b->yy_at_bol = 1;
1889     b->yy_fill_buffer = 0;
1890     b->yy_buffer_status = YY_BUFFER_NEW;
1891 
1892     yy_switch_to_buffer( b );
1893 
1894     return b;
1895     }
1896 #endif
1897 
1898 
1899 #ifndef YY_NO_SCAN_STRING
1900 #ifdef YY_USE_PROTOS
yy_scan_string(yyconst char * yy_str)1901 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
1902 #else
1903 YY_BUFFER_STATE yy_scan_string( yy_str )
1904 yyconst char *yy_str;
1905 #endif
1906     {
1907     int len;
1908     for ( len = 0; yy_str[len]; ++len )
1909         ;
1910 
1911     return yy_scan_bytes( yy_str, len );
1912     }
1913 #endif
1914 
1915 
1916 #ifndef YY_NO_SCAN_BYTES
1917 #ifdef YY_USE_PROTOS
yy_scan_bytes(yyconst char * bytes,int len)1918 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
1919 #else
1920 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
1921 yyconst char *bytes;
1922 int len;
1923 #endif
1924     {
1925     YY_BUFFER_STATE b;
1926     char *buf;
1927     yy_size_t n;
1928     int i;
1929 
1930     /* Get memory for full buffer, including space for trailing EOB's. */
1931     n = len + 2;
1932     buf = static_cast<char *>(yy_flex_alloc( n ));
1933     if ( ! buf )
1934         YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1935 
1936     for ( i = 0; i < len; ++i )
1937         buf[i] = bytes[i];
1938 
1939     buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
1940 
1941     b = yy_scan_buffer( buf, n );
1942     if ( ! b )
1943         YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1944 
1945     /* It's okay to grow etc. this buffer, and we should throw it
1946      * away when we're done.
1947      */
1948     b->yy_is_our_buffer = 1;
1949 
1950     return b;
1951     }
1952 #endif
1953 
1954 
1955 #ifndef YY_NO_PUSH_STATE
1956 #ifdef YY_USE_PROTOS
yy_push_state(int new_state)1957 static void yy_push_state( int new_state )
1958 #else
1959 static void yy_push_state( new_state )
1960 int new_state;
1961 #endif
1962     {
1963     if ( yy_start_stack_ptr >= yy_start_stack_depth )
1964         {
1965         yy_size_t new_size;
1966 
1967         yy_start_stack_depth += YY_START_STACK_INCR;
1968         new_size = yy_start_stack_depth * sizeof( int );
1969 
1970         if ( ! yy_start_stack )
1971             yy_start_stack = (int *) yy_flex_alloc( new_size );
1972 
1973         else
1974             yy_start_stack = (int *) yy_flex_realloc(
1975                     (void *) yy_start_stack, new_size );
1976 
1977         if ( ! yy_start_stack )
1978             YY_FATAL_ERROR(
1979             "out of memory expanding start-condition stack" );
1980         }
1981 
1982     yy_start_stack[yy_start_stack_ptr++] = YY_START;
1983 
1984     BEGIN(new_state);
1985     }
1986 #endif
1987 
1988 
1989 #ifndef YY_NO_POP_STATE
yy_pop_state()1990 static void yy_pop_state()
1991     {
1992     if ( --yy_start_stack_ptr < 0 )
1993         YY_FATAL_ERROR( "start-condition stack underflow" );
1994 
1995     BEGIN(yy_start_stack[yy_start_stack_ptr]);
1996     }
1997 #endif
1998 
1999 
2000 #ifndef YY_NO_TOP_STATE
yy_top_state()2001 static int yy_top_state()
2002     {
2003     return yy_start_stack[yy_start_stack_ptr - 1];
2004     }
2005 #endif
2006 
2007 #ifndef YY_EXIT_FAILURE
2008 #define YY_EXIT_FAILURE 2
2009 #endif
2010 
2011 #ifdef YY_USE_PROTOS
yy_fatal_error(yyconst char msg[])2012 static void yy_fatal_error( yyconst char msg[] )
2013 #else
2014 static void yy_fatal_error( msg )
2015 char msg[];
2016 #endif
2017     {
2018     (void) fprintf( stderr, "%s\n", msg );
2019     exit( YY_EXIT_FAILURE );
2020     }
2021 
2022 
2023 /* Internal utility routines. */
2024 
2025 #ifndef yytext_ptr
2026 #ifdef YY_USE_PROTOS
yy_flex_strncpy(char * s1,yyconst char * s2,int n)2027 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2028 #else
2029 static void yy_flex_strncpy( s1, s2, n )
2030 char *s1;
2031 yyconst char *s2;
2032 int n;
2033 #endif
2034     {
2035     int i;
2036     for ( i = 0; i < n; ++i )
2037         s1[i] = s2[i];
2038     }
2039 #endif
2040 
2041 #ifdef YY_NEED_STRLEN
2042 #ifdef YY_USE_PROTOS
yy_flex_strlen(yyconst char * s)2043 static int yy_flex_strlen( yyconst char *s )
2044 #else
2045 static int yy_flex_strlen( s )
2046 yyconst char *s;
2047 #endif
2048     {
2049     int n;
2050     for ( n = 0; s[n]; ++n )
2051         ;
2052 
2053     return n;
2054     }
2055 #endif
2056 
2057 
2058 #ifdef YY_USE_PROTOS
yy_flex_alloc(yy_size_t size)2059 static void *yy_flex_alloc( yy_size_t size )
2060 #else
2061 static void *yy_flex_alloc( size )
2062 yy_size_t size;
2063 #endif
2064     {
2065     return malloc( size );
2066     }
2067 
2068 #ifdef YY_USE_PROTOS
yy_flex_realloc(void * ptr,yy_size_t size)2069 static void *yy_flex_realloc( void *ptr, yy_size_t size )
2070 #else
2071 static void *yy_flex_realloc( ptr, size )
2072 void *ptr;
2073 yy_size_t size;
2074 #endif
2075     {
2076     /* The cast to (char *) in the following accommodates both
2077      * implementations that use char* generic pointers, and those
2078      * that use void* generic pointers.  It works with the latter
2079      * because both ANSI C and C++ allow castless assignment from
2080      * any pointer type to void*, and deal with argument conversions
2081      * as though doing an assignment.
2082      */
2083     return realloc( ptr, size );
2084     }
2085 
2086 #ifdef YY_USE_PROTOS
yy_flex_free(void * ptr)2087 static void yy_flex_free( void *ptr )
2088 #else
2089 static void yy_flex_free( ptr )
2090 void *ptr;
2091 #endif
2092     {
2093     free( ptr );
2094     }
2095 
2096 #if YY_MAIN
main()2097 int main()
2098     {
2099     yylex();
2100     return 0;
2101     }
2102 #endif
2103 
2104 
initFlex(const char * _code)2105 void initFlex(const char *_code )
2106 {
2107     yy_switch_to_buffer( yy_scan_string(_code) );
2108 }
2109 
yywrap()2110 int yywrap()
2111 {
2112     yy_delete_buffer( YY_CURRENT_BUFFER );
2113     return 1;
2114 }
2115 
2116 #ifndef TOKEN_DEBUG
token_debug(const char *,...)2117 int token_debug(const char * /*format*/, ...)
2118 {
2119    return 0;
2120 }
2121 #endif
2122 
2123 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
2124