nss: upgrade to release 3.73
[LibreOffice.git] / hwpfilter / source / lexer.cxx
blob2cf76bf3e49ffbc430a59f58cb24afc1328c45bc
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 /* A lexical scanner generated by flex */
22 /* Scanner skeleton version:
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
37 #include <stdio.h>
39 #include <stdlib.h>
40 #ifndef _WIN32
41 #include <unistd.h>
42 #else
43 #include <io.h>
44 #endif
47 /* Use prototypes in function declarations. */
48 #define YY_USE_PROTOS
50 /* The "const" storage-class-modifier is valid. */
51 #define YY_USE_CONST
53 #ifdef YY_USE_CONST
54 #define yyconst const
55 #else
56 #define yyconst
57 #endif
60 #ifdef YY_USE_PROTOS
61 #define YY_PROTO(proto) proto
62 #else
63 #define YY_PROTO(proto) ()
64 #endif
66 /* Returned upon end-of-file. */
67 #define YY_NULL 0
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.
74 #define YY_SC_TO_UI(c) (static_cast<unsigned int>(static_cast<unsigned char>(c)))
76 /* Translate the current start state into a value that can be later handed
77 * to BEGIN to return to the state.
79 #define YY_START ((yy_start - 1) / 2)
81 /* Action number for EOF rule of a given start state. */
82 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
84 /* Special action meaning "start processing a new file". */
85 #define YY_NEW_FILE yyrestart( yyin )
87 #define YY_END_OF_BUFFER_CHAR 0
89 /* Size of default input buffer. */
90 #define YY_BUF_SIZE 16384
92 namespace {
94 typedef struct yy_buffer_state *YY_BUFFER_STATE;
98 #define EOB_ACT_CONTINUE_SCAN 0
99 #define EOB_ACT_END_OF_FILE 1
100 #define EOB_ACT_LAST_MATCH 2
102 //#define unput(c) yyunput( c, yytext_ptr )
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).
108 typedef unsigned int yy_size_t;
110 namespace {
112 struct yy_buffer_state
114 FILE *yy_input_file;
116 char *yy_ch_buf; /* input buffer */
117 char *yy_buf_pos; /* current position in input buffer */
119 /* Size of input buffer in bytes, not including room for EOB
120 * characters.
122 yy_size_t yy_buf_size;
124 /* Number of characters read into yy_ch_buf, not including EOB
125 * characters.
127 int yy_n_chars;
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.
133 int yy_is_our_buffer;
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.
140 bool yy_is_interactive;
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.
146 int yy_at_bol;
148 /* Whether to try to fill the input buffer when we reach the
149 * end of it.
151 int yy_fill_buffer;
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.
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.
166 #define YY_BUFFER_EOF_PENDING 2
171 static YY_BUFFER_STATE yy_current_buffer = nullptr;
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".
177 #define YY_CURRENT_BUFFER yy_current_buffer
180 /* yy_hold_char holds the character lost when yytext is formed. */
181 static char yy_hold_char;
183 static int yy_n_chars; /* number of characters read into yy_ch_buf */
186 static int yyleng;
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 */
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 ...
196 static int yy_did_buffer_switch_on_eof;
198 static void yyrestart YY_PROTO(( FILE *input_file ));
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 ));
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 ));
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 * ));
215 typedef unsigned char YY_CHAR;
216 static FILE *yyin = nullptr, *yyout = nullptr;
217 typedef int yy_state_type;
218 #define yytext_ptr yytext
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[] ));
225 /* Done after the current pattern has been matched and before the
226 * corresponding action - sets up yytext.
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;
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,
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,
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,
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,
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,
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,
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,
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,
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,
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
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,
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,
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
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
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,
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,
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,
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,
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,
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,
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,
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,
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,
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
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,
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,
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,
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,
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,
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,
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,
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,
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,
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
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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
934 static yy_state_type yy_last_accepting_state;
935 static char *yy_last_accepting_cpos;
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"
944 #ifdef _WIN32
945 #define strdup _strdup
946 #define fileno _fileno
947 #define isatty _isatty
948 #endif
950 extern "C" {
951 #include "grammar.h"
952 static int yywrap();
955 #ifdef TOKEN_DEBUG
956 #define token_debug printf
957 #else
958 static int token_debug(const char *format, ...);
959 #endif
961 /* Macros after this point can all be overridden by user definitions in
962 * section 1.
965 #ifndef YY_NO_UNPUT
966 //static void yyunput YY_PROTO(( int c, char *buf_ptr ));
967 #endif
969 #ifndef yytext_ptr
970 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
971 #endif
973 #ifdef YY_NEED_STRLEN
974 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
975 #endif
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
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
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).
1005 #endif
1006 #endif
1008 #include "lexer.hxx"
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
1015 /* Copy whatever the last rule matched to the standard output. */
1017 #ifndef ECHO
1018 /* This used to be an fputs(), but since the string might contain NUL's,
1019 * we now use fwrite().
1021 #define ECHO do { fwrite( yytext, yyleng, 1, yyout ); } while (false)
1022 #endif
1024 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1025 * is returned in "result".
1027 #ifndef YY_INPUT
1028 #define YY_INPUT(buf,result,max_size) \
1029 if ( yy_current_buffer->yy_is_interactive ) \
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; \
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
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.
1050 #ifndef yyterminate
1051 #define yyterminate() return YY_NULL
1052 #endif
1054 /* Report a fatal error. */
1055 #ifndef YY_FATAL_ERROR
1056 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1057 #endif
1059 /* Default declaration of generated scanner - a define so the user can
1060 * easily add parameters.
1062 #ifndef YY_DECL
1063 #define YY_DECL int yylex YY_PROTO(( void ))
1064 #endif
1066 /* Code executed at the beginning of each rule, after yytext and yyleng
1067 * have been set up.
1069 #ifndef YY_USER_ACTION
1070 #define YY_USER_ACTION
1071 #endif
1073 /* Code executed at the end of each rule. */
1074 #ifndef YY_BREAK
1075 #define YY_BREAK break;
1076 #endif
1078 #define YY_RULE_SETUP \
1079 YY_USER_ACTION
1081 YY_DECL
1083 yy_state_type yy_current_state;
1084 char *yy_cp, *yy_bp;
1085 int yy_act;
1087 if ( yy_init )
1089 yy_init = 0;
1091 #ifdef YY_USER_INIT
1092 YY_USER_INIT;
1093 #endif
1095 if ( ! yy_start )
1096 yy_start = 1; /* first start state */
1098 if ( ! yyin )
1099 yyin = stdin;
1101 if ( ! yyout )
1102 yyout = stdout;
1104 if ( ! yy_current_buffer )
1105 yy_current_buffer =
1106 yy_create_buffer( yyin, YY_BUF_SIZE );
1108 yy_load_buffer_state();
1111 while ( true ) /* loops until end-of-file is reached */
1113 yy_cp = yy_c_buf_p;
1115 /* Support of yytext. */
1116 *yy_cp = yy_hold_char;
1118 /* yy_bp points to the position in yy_ch_buf of the start of
1119 * the current run.
1121 yy_bp = yy_cp;
1123 yy_current_state = yy_start;
1124 yy_match:
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] )
1130 yy_last_accepting_state = yy_current_state;
1131 yy_last_accepting_cpos = yy_cp;
1133 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
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)]);
1139 yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1140 ++yy_cp;
1142 while ( yy_base[yy_current_state] != 1315 );
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];
1153 YY_DO_BEFORE_ACTION;
1156 do_action: /* This label is used only to access EOF actions. */
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;
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
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();
1355 case YY_END_OF_BUFFER:
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;
1360 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1361 *yy_cp = yy_hold_char;
1362 YY_RESTORE_YY_MORE_OFFSET
1364 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
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.
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;
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().
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;
1391 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1393 yy_current_state = yy_get_previous_state();
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).
1404 yy_next_state = yy_try_NUL_trans( yy_current_state );
1406 yy_bp = yytext_ptr + YY_MORE_ADJ;
1408 if ( yy_next_state )
1410 /* Consume the NUL. */
1411 yy_cp = ++yy_c_buf_p;
1412 yy_current_state = yy_next_state;
1413 goto yy_match;
1416 else
1418 yy_cp = yy_c_buf_p;
1419 goto yy_find_action;
1423 else switch ( yy_get_next_buffer() )
1425 case EOB_ACT_END_OF_FILE:
1427 yy_did_buffer_switch_on_eof = 0;
1429 if ( yywrap() )
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.
1440 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1442 yy_act = YY_STATE_EOF(YY_START);
1443 goto do_action;
1446 else
1448 if ( ! yy_did_buffer_switch_on_eof )
1449 YY_NEW_FILE;
1452 break;
1454 case EOB_ACT_CONTINUE_SCAN:
1455 yy_c_buf_p =
1456 yytext_ptr + yy_amount_of_matched_text;
1458 yy_current_state = yy_get_previous_state();
1460 yy_cp = yy_c_buf_p;
1461 yy_bp = yytext_ptr + YY_MORE_ADJ;
1462 goto yy_match;
1463 break;
1465 case EOB_ACT_LAST_MATCH:
1466 yy_c_buf_p =
1467 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1469 yy_current_state = yy_get_previous_state();
1471 yy_cp = yy_c_buf_p;
1472 yy_bp = yytext_ptr + YY_MORE_ADJ;
1473 goto yy_find_action;
1474 break;
1476 break;
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 */
1487 /* yy_get_next_buffer - try to read in a new buffer
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
1495 static int yy_get_next_buffer()
1497 char *dest = yy_current_buffer->yy_ch_buf;
1498 char *source = yytext_ptr;
1499 int number_to_move, i;
1500 int ret_val;
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" );
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 )
1510 /* We matched a single character, the EOB, so
1511 * treat this as a final EOF.
1513 return EOB_ACT_END_OF_FILE;
1516 else
1518 /* We matched some text prior to the EOB, first
1519 * process it.
1521 return EOB_ACT_LAST_MATCH;
1525 /* Try to read more data. */
1527 /* First move last chars to start of buffer. */
1528 number_to_move = static_cast<int>(yy_c_buf_p - yytext_ptr) - 1;
1530 for ( i = 0; i < number_to_move; ++i )
1531 *(dest++) = *(source++);
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
1537 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1539 else
1541 int num_to_read =
1542 yy_current_buffer->yy_buf_size - number_to_move - 1;
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
1551 /* just a shorter name for the current buffer */
1552 YY_BUFFER_STATE b = yy_current_buffer;
1554 int yy_c_buf_p_offset =
1555 static_cast<int>(yy_c_buf_p - b->yy_ch_buf);
1557 if ( b->yy_is_our_buffer )
1559 int new_size = b->yy_buf_size * 2;
1561 if ( new_size <= 0 )
1562 b->yy_buf_size += b->yy_buf_size / 8;
1563 else
1564 b->yy_buf_size *= 2;
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 ));
1571 else
1572 /* Can't grow it, we don't own it. */
1573 b->yy_ch_buf = nullptr;
1575 if ( ! b->yy_ch_buf )
1576 YY_FATAL_ERROR(
1577 "fatal error - scanner input buffer overflow" );
1579 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1581 num_to_read = yy_current_buffer->yy_buf_size -
1582 number_to_move - 1;
1583 #endif
1586 if ( num_to_read > YY_READ_BUF_SIZE )
1587 num_to_read = YY_READ_BUF_SIZE;
1589 /* Read in more data. */
1590 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1591 yy_n_chars, num_to_read );
1593 yy_current_buffer->yy_n_chars = yy_n_chars;
1596 if ( yy_n_chars == 0 )
1598 if ( number_to_move == YY_MORE_ADJ )
1600 ret_val = EOB_ACT_END_OF_FILE;
1601 yyrestart( yyin );
1604 else
1606 ret_val = EOB_ACT_LAST_MATCH;
1607 yy_current_buffer->yy_buffer_status =
1608 YY_BUFFER_EOF_PENDING;
1612 else
1613 ret_val = EOB_ACT_CONTINUE_SCAN;
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;
1619 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1621 return ret_val;
1625 /* yy_get_previous_state - get the state just before the EOB char was reached */
1627 static yy_state_type yy_get_previous_state()
1629 yy_state_type yy_current_state;
1630 char *yy_cp;
1632 yy_current_state = yy_start;
1634 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
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] )
1639 yy_last_accepting_state = yy_current_state;
1640 yy_last_accepting_cpos = yy_cp;
1642 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
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)]);
1648 yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1651 return yy_current_state;
1655 /* yy_try_NUL_trans - try to make a transition on the NUL character
1657 * synopsis
1658 * next_state = yy_try_NUL_trans( current_state );
1661 #ifdef YY_USE_PROTOS
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
1668 bool yy_is_jam;
1669 char *yy_cp = yy_c_buf_p;
1671 YY_CHAR yy_c = 1;
1672 if ( yy_accept[yy_current_state] )
1674 yy_last_accepting_state = yy_current_state;
1675 yy_last_accepting_cpos = yy_cp;
1677 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
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)]);
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);
1686 return yy_is_jam ? 0 : yy_current_state;
1689 #ifdef YY_USE_PROTOS
1690 void yyrestart( FILE *input_file )
1691 #else
1692 void yyrestart( input_file )
1693 FILE *input_file;
1694 #endif
1696 if ( ! yy_current_buffer )
1697 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1699 yy_init_buffer( yy_current_buffer, input_file );
1700 yy_load_buffer_state();
1704 #ifdef YY_USE_PROTOS
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
1711 if ( yy_current_buffer == new_buffer )
1712 return;
1714 if ( yy_current_buffer )
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;
1722 yy_current_buffer = new_buffer;
1723 yy_load_buffer_state();
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.
1730 yy_did_buffer_switch_on_eof = 1;
1734 #ifdef YY_USE_PROTOS
1735 void yy_load_buffer_state()
1736 #else
1737 void yy_load_buffer_state()
1738 #endif
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;
1747 #ifdef YY_USE_PROTOS
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
1755 YY_BUFFER_STATE b;
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()" );
1761 b->yy_buf_size = size;
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.
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()" );
1770 b->yy_is_our_buffer = 1;
1772 yy_init_buffer( b, file );
1774 return b;
1778 #ifdef YY_USE_PROTOS
1779 void yy_delete_buffer( YY_BUFFER_STATE b )
1780 #else
1781 void yy_delete_buffer( b )
1782 YY_BUFFER_STATE b;
1783 #endif
1785 if ( ! b )
1786 return;
1788 if ( b == yy_current_buffer )
1789 yy_current_buffer = nullptr;
1791 if ( b->yy_is_our_buffer )
1792 yy_flex_free( static_cast<void *>(b->yy_ch_buf) );
1794 yy_flex_free( static_cast<void *>(b) );
1798 #ifndef YY_ALWAYS_INTERACTIVE
1799 #ifndef YY_NEVER_INTERACTIVE
1800 extern int isatty YY_PROTO(( int ));
1801 #endif
1802 #endif
1804 #ifdef YY_USE_PROTOS
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
1814 yy_flush_buffer( b );
1816 b->yy_input_file = file;
1817 b->yy_fill_buffer = 1;
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
1831 #ifdef YY_USE_PROTOS
1832 void yy_flush_buffer( YY_BUFFER_STATE b )
1833 #else
1834 void yy_flush_buffer( b )
1835 YY_BUFFER_STATE b;
1836 #endif
1839 if ( ! b )
1840 return;
1842 b->yy_n_chars = 0;
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.
1848 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1849 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1851 b->yy_buf_pos = &b->yy_ch_buf[0];
1853 b->yy_at_bol = 1;
1854 b->yy_buffer_status = YY_BUFFER_NEW;
1856 if ( b == yy_current_buffer )
1857 yy_load_buffer_state();
1861 #ifndef YY_NO_SCAN_BUFFER
1862 #ifdef YY_USE_PROTOS
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
1870 YY_BUFFER_STATE b;
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;
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()" );
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;
1892 yy_switch_to_buffer( b );
1894 return b;
1896 #endif
1899 #ifndef YY_NO_SCAN_STRING
1900 #ifdef YY_USE_PROTOS
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
1907 int len;
1908 for ( len = 0; yy_str[len]; ++len )
1911 return yy_scan_bytes( yy_str, len );
1913 #endif
1916 #ifndef YY_NO_SCAN_BYTES
1917 #ifdef YY_USE_PROTOS
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
1925 YY_BUFFER_STATE b;
1926 char *buf;
1927 yy_size_t n;
1928 int i;
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()" );
1936 for ( i = 0; i < len; ++i )
1937 buf[i] = bytes[i];
1939 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
1941 b = yy_scan_buffer( buf, n );
1942 if ( ! b )
1943 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1945 /* It's okay to grow etc. this buffer, and we should throw it
1946 * away when we're done.
1948 b->yy_is_our_buffer = 1;
1950 return b;
1952 #endif
1955 #ifndef YY_NO_PUSH_STATE
1956 #ifdef YY_USE_PROTOS
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
1963 if ( yy_start_stack_ptr >= yy_start_stack_depth )
1965 yy_size_t new_size;
1967 yy_start_stack_depth += YY_START_STACK_INCR;
1968 new_size = yy_start_stack_depth * sizeof( int );
1970 if ( ! yy_start_stack )
1971 yy_start_stack = (int *) yy_flex_alloc( new_size );
1973 else
1974 yy_start_stack = (int *) yy_flex_realloc(
1975 (void *) yy_start_stack, new_size );
1977 if ( ! yy_start_stack )
1978 YY_FATAL_ERROR(
1979 "out of memory expanding start-condition stack" );
1982 yy_start_stack[yy_start_stack_ptr++] = YY_START;
1984 BEGIN(new_state);
1986 #endif
1989 #ifndef YY_NO_POP_STATE
1990 static void yy_pop_state()
1992 if ( --yy_start_stack_ptr < 0 )
1993 YY_FATAL_ERROR( "start-condition stack underflow" );
1995 BEGIN(yy_start_stack[yy_start_stack_ptr]);
1997 #endif
2000 #ifndef YY_NO_TOP_STATE
2001 static int yy_top_state()
2003 return yy_start_stack[yy_start_stack_ptr - 1];
2005 #endif
2007 #ifndef YY_EXIT_FAILURE
2008 #define YY_EXIT_FAILURE 2
2009 #endif
2011 #ifdef YY_USE_PROTOS
2012 static void yy_fatal_error( yyconst char msg[] )
2013 #else
2014 static void yy_fatal_error( msg )
2015 char msg[];
2016 #endif
2018 (void) fprintf( stderr, "%s\n", msg );
2019 exit( YY_EXIT_FAILURE );
2023 /* Internal utility routines. */
2025 #ifndef yytext_ptr
2026 #ifdef YY_USE_PROTOS
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
2035 int i;
2036 for ( i = 0; i < n; ++i )
2037 s1[i] = s2[i];
2039 #endif
2041 #ifdef YY_NEED_STRLEN
2042 #ifdef YY_USE_PROTOS
2043 static int yy_flex_strlen( yyconst char *s )
2044 #else
2045 static int yy_flex_strlen( s )
2046 yyconst char *s;
2047 #endif
2049 int n;
2050 for ( n = 0; s[n]; ++n )
2053 return n;
2055 #endif
2058 #ifdef YY_USE_PROTOS
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
2065 return malloc( size );
2068 #ifdef YY_USE_PROTOS
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
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.
2083 return realloc( ptr, size );
2086 #ifdef YY_USE_PROTOS
2087 static void yy_flex_free( void *ptr )
2088 #else
2089 static void yy_flex_free( ptr )
2090 void *ptr;
2091 #endif
2093 free( ptr );
2096 #if YY_MAIN
2097 int main()
2099 yylex();
2100 return 0;
2102 #endif
2105 void initFlex(const char *_code )
2107 yy_switch_to_buffer( yy_scan_string(_code) );
2110 int yywrap()
2112 yy_delete_buffer( YY_CURRENT_BUFFER );
2113 return 1;
2116 #ifndef TOKEN_DEBUG
2117 int token_debug(const char * /*format*/, ...)
2119 return 0;
2121 #endif
2123 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */