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