Bug Summary

File:home/maarten/src/libreoffice/core/hwpfilter/source/lexer.cxx
Warning:line 1330, column 3
Use of memory after it is freed

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-unknown-linux-gnu -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name lexer.cxx -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -mframe-pointer=all -fmath-errno -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -fno-split-dwarf-inlining -debugger-tuning=gdb -resource-dir /usr/lib64/clang/11.0.0 -D BOOST_ERROR_CODE_HEADER_ONLY -D BOOST_SYSTEM_NO_DEPRECATED -D CPPU_ENV=gcc3 -D LINUX -D OSL_DEBUG_LEVEL=1 -D SAL_LOG_INFO -D SAL_LOG_WARN -D UNIX -D UNX -D X86_64 -D _PTHREADS -D _REENTRANT -D SYSTEM_ZLIB -D EXCEPTIONS_ON -D LIBO_INTERNAL_ONLY -I /home/maarten/src/libreoffice/core/external/boost/include -I /home/maarten/src/libreoffice/core/workdir/UnpackedTarball/boost -I /home/maarten/src/libreoffice/core/include -I /usr/lib/jvm/java-11-openjdk-11.0.9.10-0.0.ea.fc33.x86_64/include -I /usr/lib/jvm/java-11-openjdk-11.0.9.10-0.0.ea.fc33.x86_64/include/linux -I /home/maarten/src/libreoffice/core/config_host -I /home/maarten/src/libreoffice/core/workdir/UnoApiHeadersTarget/udkapi/normal -I /home/maarten/src/libreoffice/core/workdir/UnoApiHeadersTarget/offapi/normal -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10 -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/x86_64-redhat-linux -internal-isystem /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib64/clang/11.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O0 -Wno-missing-braces -std=c++17 -fdeprecated-macro -fdebug-compilation-dir /home/maarten/src/libreoffice/core -ferror-limit 19 -fvisibility hidden -fvisibility-inlines-hidden -stack-protector 2 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -debug-info-kind=constructor -analyzer-output=html -faddrsig -o /home/maarten/tmp/wis/scan-build-libreoffice/output/report/2020-10-07-141433-9725-1 -x c++ /home/maarten/src/libreoffice/core/hwpfilter/source/lexer.cxx
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_USED0
25#define YY_STACK_USED0 0
26#endif
27#ifndef YY_ALWAYS_INTERACTIVE0
28#define YY_ALWAYS_INTERACTIVE0 0
29#endif
30#ifndef YY_NEVER_INTERACTIVE0
31#define YY_NEVER_INTERACTIVE0 0
32#endif
33#ifndef YY_MAIN0
34#define YY_MAIN0 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 yyconstconst const
55#else
56#define yyconstconst
57#endif
58
59
60#ifdef YY_USE_PROTOS
61#define YY_PROTO(proto)proto proto
62#else
63#define YY_PROTO(proto)proto ()
64#endif
65
66/* Returned upon end-of-file. */
67#define YY_NULL0 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)))
(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) ((yy_start - 1) / 2)
80
81/* Action number for EOF rule of a given start state. */
82#define YY_STATE_EOF(state)(46 + state + 1) (YY_END_OF_BUFFER46 + state + 1)
83
84/* Special action meaning "start processing a new file". */
85#define YY_NEW_FILEyyrestart( yyin ) yyrestart( yyin )
86
87#define YY_END_OF_BUFFER_CHAR0 0
88
89/* Size of default input buffer. */
90#define YY_BUF_SIZE16384 16384
91
92namespace {
93
94typedef struct yy_buffer_state *YY_BUFFER_STATE;
95
96}
97
98#define EOB_ACT_CONTINUE_SCAN0 0
99#define EOB_ACT_END_OF_FILE1 1
100#define EOB_ACT_LAST_MATCH2 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 */
108typedef unsigned int yy_size_t;
109
110namespace {
111
112struct 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_NEW0 0
155#define YY_BUFFER_NORMAL1 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_PENDING2 2
167 };
168
169}
170
171static 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_BUFFERyy_current_buffer yy_current_buffer
178
179
180/* yy_hold_char holds the character lost when yytext is formed. */
181static char yy_hold_char;
182
183static int yy_n_chars; /* number of characters read into yy_ch_buf */
184
185
186static int yyleng;
187
188/* Points to current character in buffer. */
189static char *yy_c_buf_p = nullptr;
190static int yy_init = 1; /* whether we need to initialize */
191static 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 */
196static int yy_did_buffer_switch_on_eof;
197
198static void yyrestart YY_PROTO(( FILE *input_file ))( FILE *input_file );
199
200static void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ))( YY_BUFFER_STATE new_buffer );
201static void yy_load_buffer_state YY_PROTO(( ))( );
202static YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ))( FILE *file, int size );
203static void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ))( YY_BUFFER_STATE b );
204static void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ))( YY_BUFFER_STATE b, FILE *file );
205static void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ))( YY_BUFFER_STATE b );
206
207static YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ))( char *base, yy_size_t size );
208static YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ))( const char *yy_str );
209static YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ))( const char *bytes, int len );
210
211static void *yy_flex_alloc YY_PROTO(( yy_size_t ))( yy_size_t );
212static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ))( void *, yy_size_t );
213static void yy_flex_free YY_PROTO(( void * ))( void * );
214
215typedef unsigned char YY_CHAR;
216static FILE *yyin = nullptr, *yyout = nullptr;
217typedef int yy_state_type;
218#define yytext_ptryytext yytext
219
220static yy_state_type yy_get_previous_state YY_PROTO(( ))( );
221static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ))( yy_state_type current_state );
222static int yy_get_next_buffer YY_PROTO(( ))( );
223static void yy_fatal_error YY_PROTO(( yyconst char msg[] ))( const 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_ACTIONyytext = yy_bp; yyleng = static_cast<int>(yy_cp - yy_bp
); yy_hold_char = *yy_cp; *yy_cp = '\0'; yy_c_buf_p = yy_cp;
\
229 yytext_ptryytext = 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_BUFFER46 46
236yyconstconst 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
350yyconstconst 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
382yyconstconst 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
394yyconstconst 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
508yyconstconst 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
622yyconstconst 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
778yyconstconst 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
934static yy_state_type yy_last_accepting_state;
935static char *yy_last_accepting_cpos;
936
937#define YY_MORE_ADJ0 0
938#define YY_RESTORE_YY_MORE_OFFSET
939static char *yytext;
940#define INITIAL0 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
950extern "C" {
951#include "grammar.h"
952static int yywrap();
953}
954
955#ifdef TOKEN_DEBUG
956#define token_debug printf
957#else
958static 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_ptryytext
970static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ))( char *, const char *, int );
971#endif
972
973#ifdef YY_NEED_STRLEN
974static int yy_flex_strlen YY_PROTO(( yyconst char * ))( const char * );
975#endif
976
977#if YY_STACK_USED0
978static int yy_start_stack_ptr = 0;
979static int yy_start_stack_depth = 0;
980static int *yy_start_stack = 0;
981#ifndef YY_NO_PUSH_STATE1
982static void yy_push_state YY_PROTO(( int new_state ))( int new_state );
983#endif
984#ifndef YY_NO_POP_STATE1
985static void yy_pop_state YY_PROTO(( void ))( void );
986#endif
987#ifndef YY_NO_TOP_STATE1
988static int yy_top_state YY_PROTO(( void ))( void );
989#endif
990
991#else
992#define YY_NO_PUSH_STATE1 1
993#define YY_NO_POP_STATE1 1
994#define YY_NO_TOP_STATE1 1
995#endif
996
997#ifdef YY_MALLOC_DECL
998YY_MALLOC_DECL
999#else
1000#if !(defined __STDC__1 && __STDC__1)
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_SIZE8192
1012#define YY_READ_BUF_SIZE8192 8192
1013#endif
1014
1015/* Copy whatever the last rule matched to the standard output. */
1016
1017#ifndef ECHOdo { fwrite( yytext, yyleng, 1, yyout ); } while (false)
1018/* This used to be an fputs(), but since the string might contain NUL's,
1019 * we now use fwrite().
1020 */
1021#define ECHOdo { fwrite( yytext, yyleng, 1, yyout ); } while (false) 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)if ( yy_current_buffer->yy_is_interactive ) { int c = '*',
n; for ( n = 0; n < max_size && (c = getc( yyin )
) != (-1) && c != '\n'; ++n ) buf[n] = static_cast<
char>(c); if ( c == '\n' ) buf[n++] = static_cast<char>
(c); if ( c == (-1) && ferror( yyin ) ) yy_fatal_error
( "input in flex scanner failed" ); result = n; } else if ( (
(result = fread( buf, 1, max_size, yyin )) == 0) && ferror
( yyin ) ) yy_fatal_error( "input in flex scanner failed" );
\
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(-1) && 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(-1) && ferror( yyin ) ) \
1038 YY_FATAL_ERROR( "input in flex scanner failed" )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" )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 0 return YY_NULL0
1052#endif
1053
1054/* Report a fatal error. */
1055#ifndef YY_FATAL_ERROR
1056#define YY_FATAL_ERROR(msg)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_DECLint yylex ( void )
1063#define YY_DECLint yylex ( void ) int yylex YY_PROTO(( void ))( 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_BREAKbreak;
1075#define YY_BREAKbreak; break;
1076#endif
1077
1078#define YY_RULE_SETUP \
1079 YY_USER_ACTION
1080
1081YY_DECLint yylex ( void )
1082 {
1083 yy_state_type yy_current_state;
1084 char *yy_cp, *yy_bp;
1085 int yy_act;
1086
1087 if ( yy_init )
1
Assuming 'yy_init' is 0
2
Taking false branch
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 = stdinstdin;
1100
1101 if ( ! yyout )
1102 yyout = stdoutstdout;
1103
1104 if ( ! yy_current_buffer )
1105 yy_current_buffer =
1106 yy_create_buffer( yyin, YY_BUF_SIZE16384 );
1107
1108 yy_load_buffer_state();
1109 }
1110
1111 while ( true ) /* loops until end-of-file is reached */
3
Loop condition is true. Entering loop body
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;
1124yy_match:
1125 do
7
Loop condition is false. Exiting loop
1126 {
1127 YY_CHAR yy_c = sal::static_int_cast<YY_CHAR>(yy_ec[YY_SC_TO_UI(*yy_cp)(static_cast<unsigned int>(static_cast<unsigned char
>(*yy_cp)))
]);
1128 if ( yy_accept[yy_current_state] )
4
Assuming the condition is false
5
Taking false branch
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 )
6
Loop condition is false. Execution continues on line 1139
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
1144yy_find_action:
1145 yy_act = yy_accept[yy_current_state];
1146 if ( yy_act == 0 )
8
Assuming 'yy_act' is not equal to 0
9
Taking false branch
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_ACTIONyytext = yy_bp; yyleng = static_cast<int>(yy_cp - yy_bp
); yy_hold_char = *yy_cp; *yy_cp = '\0'; yy_c_buf_p = yy_cp;
;
1154
1155
1156do_action: /* This label is used only to access EOF actions. */
1157
1158
1159 switch ( yy_act )
10
Control jumps to 'case 46:' at line 1355
29
Control jumps to 'case 40:' at line 1328
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
1168case 1:
1169YY_RULE_SETUP
1170{ yylval.str = yytext+1; token_debug(" ==>Begin[%s]\n",yytext+1); return EQBEGIN278; }
1171 //YY_BREAK
1172case 2:
1173YY_RULE_SETUP
1174{ yylval.str = yytext+1; token_debug(" ==>End[%s]\n",yytext+1); return EQEND279; }
1175 //YY_BREAK
1176case 3:
1177YY_RULE_SETUP
1178{ yylval.str = yytext+1; token_debug(" ==>Left[%s]\n",yytext+1); return EQLEFT280; }
1179 //YY_BREAK
1180case 4:
1181YY_RULE_SETUP
1182{ yylval.str = yytext+1; token_debug(" ==>LeftDelim[%s]\n",yytext+1); return LEFT_DELIM283; }
1183 //YY_BREAK
1184case 5:
1185YY_RULE_SETUP
1186{ yylval.str = yytext+1; token_debug(" ==>RightDelim[%s]\n",yytext+1); return RIGHT_DELIM284; }
1187 //YY_BREAK
1188case 6:
1189YY_RULE_SETUP
1190{ yylval.str = yytext+1; token_debug(" ==>Right[%s]\n",yytext+1); return EQRIGHT281; }
1191 //YY_BREAK
1192case 7:
1193YY_RULE_SETUP
1194{ yylval.str = yytext; token_debug(" ==>NewLine[%s]\n",yytext); return NEWLINE282; }
1195 //YY_BREAK
1196case 8:
1197YY_RULE_SETUP
1198{ yylval.str = yytext+1; token_debug(" ==>Accent[%s]\n",yytext+1); return ACCENT257; }
1199 //YY_BREAK
1200case 9:
1201YY_RULE_SETUP
1202{ yylval.str = yytext+1; token_debug(" ==>Small_Greek[%s]\n",yytext+1); return SMALL_GREEK258; }
1203 //YY_BREAK
1204case 10:
1205YY_RULE_SETUP
1206{ yylval.str = yytext+1; token_debug(" ==>Capital_Greek[%s]\n",yytext+1); return CAPITAL_GREEK259; }
1207 //YY_BREAK
1208case 11:
1209YY_RULE_SETUP
1210{ yylval.str = yytext+1; token_debug(" ==>Binary_Operator[%s]\n",yytext+1); return BINARY_OPERATOR260; }
1211 //YY_BREAK
1212case 12:
1213YY_RULE_SETUP
1214{ yylval.str = yytext+1; token_debug(" ==>Relation_Symbol[%s]\n",yytext+1); return RELATION_OPERATOR261; }
1215 //YY_BREAK
1216case 13:
1217YY_RULE_SETUP
1218{ yylval.str = strdup("neq"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR261; }
1219 //YY_BREAK
1220case 14:
1221YY_RULE_SETUP
1222{ yylval.str = strdup("vmlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR261; }
1223 //YY_BREAK
1224case 15:
1225YY_RULE_SETUP
1226{ yylval.str = strdup("vmgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR261; }
1227 //YY_BREAK
1228case 16:
1229YY_RULE_SETUP
1230{ yylval.str = strdup("mlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR261; }
1231 //YY_BREAK
1232case 17:
1233YY_RULE_SETUP
1234{ yylval.str = strdup("mgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR261; }
1235 //YY_BREAK
1236case 18:
1237YY_RULE_SETUP
1238{ yylval.str = yytext; token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR261; }
1239 //YY_BREAK
1240case 19:
1241YY_RULE_SETUP
1242{ yylval.str = yytext+1; token_debug(" ==>Arrow[%s]\n",yytext+1); return ARROW262; }
1243 //YY_BREAK
1244case 20:
1245YY_RULE_SETUP
1246{ yylval.str = strdup("leftrightarrow"); token_debug(" ==>Arrow[leftrightarrow]\n"); return ARROW262; }
1247 //YY_BREAK
1248case 21:
1249YY_RULE_SETUP
1250{ yylval.str = strdup("rightarrow"); token_debug(" ==>Arrow[rightarrow]\n"); return ARROW262; }
1251 //YY_BREAK
1252case 22:
1253YY_RULE_SETUP
1254{ yylval.str = strdup("leftarrow"); token_debug(" ==>Arrow[leftarrow]\n"); return ARROW262; }
1255 //YY_BREAK
1256
1257case 23:
1258YY_RULE_SETUP
1259{ token_debug(" ==>Ignore[\\rm]\n"); }
1260 //YY_BREAK
1261[[fallthrough]];
1262case 24:
1263YY_RULE_SETUP
1264{ yylval.str = yytext+1; token_debug(" ==>General_Iden[%s]\n",yytext+1); return GENERAL_IDEN263; }
1265 //YY_BREAK
1266case 25:
1267YY_RULE_SETUP
1268{ yylval.str = yytext+1; token_debug(" ==>General_Oper[%s]\n",yytext+1); return GENERAL_OPER264; }
1269 //YY_BREAK
1270case 26:
1271YY_RULE_SETUP
1272{ yylval.str = yytext+1; token_debug(" ==>Big_Symbol[%s]\n",yytext+1); return BIG_SYMBOL265; }
1273 //YY_BREAK
1274case 27:
1275YY_RULE_SETUP
1276{ yylval.str = yytext+1; token_debug(" ==>Function[%s]\n",yytext+1); return FUNCTION266; }
1277 //YY_BREAK
1278case 28:
1279YY_RULE_SETUP
1280{ yylval.str = yytext+1; token_debug(" ==>Root[%s]\n",yytext+1); return ROOT267; }
1281 //YY_BREAK
1282case 29:
1283YY_RULE_SETUP
1284{ yylval.str = yytext+1; token_debug(" ==>Fraction[%s]\n",yytext+1); return FRACTION268; }
1285 //YY_BREAK
1286case 30:
1287YY_RULE_SETUP
1288{ yylval.str = yytext+1; token_debug(" ==>Over[%s]\n",yytext+1); return EQOVER270; }
1289 //YY_BREAK
1290case 31:
1291YY_RULE_SETUP
1292{ yylval.str = yytext+1; token_debug(" ==>Delimeter[%s]\n",yytext+1); return DELIMETER271; }
1293 //YY_BREAK
1294case 32:
1295YY_RULE_SETUP
1296{ yylval.str = yytext+1; token_debug(" ==>Large_Delim[%s]\n",yytext+1); return LARGE_DELIM272; }
1297 //YY_BREAK
1298case 33:
1299YY_RULE_SETUP
1300{ yylval.str = yytext+1; token_debug(" ==>Decoration[%s]\n",yytext+1); return DECORATION273; }
1301 //YY_BREAK
1302case 34:
1303YY_RULE_SETUP
1304{ yylval.str = yytext+1; token_debug(" ==>Space_Symbol[%s]\n",yytext+1); /*return SPACE_SYMBOL;*/ }
1305 //YY_BREAK
1306[[fallthrough]];
1307case 35:
1308YY_RULE_SETUP
1309{ yylval.str = strdup("quad"); token_debug(" ==>Space_Symbol[quad]\n"); /* return SPACE_SYMBOL;*/ }
1310 //YY_BREAK
1311[[fallthrough]];
1312case 36:
1313YY_RULE_SETUP
1314{ yylval.dval = yytext; token_debug(" ==>Digit[%s]\n",yytext); return DIGIT285; }
1315 //YY_BREAK
1316case 37:
1317YY_RULE_SETUP
1318{ yylval.str = yytext; token_debug(" ==>Operator[%s]\n",yytext); return OPERATOR277; }
1319 //YY_BREAK
1320case 38:
1321YY_RULE_SETUP
1322{ token_debug(" ==>SubSup[%s]\n",yytext); return yytext[0]; }
1323 //YY_BREAK
1324case 39:
1325YY_RULE_SETUP
1326{ token_debug(" ==>Paren[%s]\n",yytext); return yytext[0];}
1327 //YY_BREAK
1328case 40:
1329YY_RULE_SETUP
1330{ token_debug(" ==>Abs[%s]\n",yytext); return yytext[0];}
30
Use of memory after it is freed
1331 //YY_BREAK
1332case 41:
1333YY_RULE_SETUP
1334{ token_debug(" ==>Space[0x%2x]\n",yytext[0]); }
1335 YY_BREAKbreak;
1336case 42:
1337YY_RULE_SETUP
1338{ token_debug(" ==>Ignore[0x%2x]\n",yytext[0]); }
1339 YY_BREAKbreak;
1340case 43:
1341YY_RULE_SETUP
1342{ yylval.str = yytext; token_debug(" ==>String[%s]\n",yytext); return STRING276; }
1343 //YY_BREAK
1344case 44:
1345YY_RULE_SETUP
1346{ yylval.str = yytext; token_debug(" ==>Else[%s]\n",yytext); return CHARACTER275; }
1347 //YY_BREAK
1348case 45:
1349YY_RULE_SETUP
1350ECHOdo { fwrite( yytext, yyleng, 1, yyout ); } while (false);
1351 YY_BREAKbreak;
1352case YY_STATE_EOF(INITIAL)(46 + 0 + 1):
1353 yyterminate()return 0;
1354
1355 case YY_END_OF_BUFFER46:
1356 {
1357 /* Amount of text matched not including the EOB char. */
1358 int yy_amount_of_matched_text = static_cast<int>(yy_cp - yytext_ptryytext) - 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_NEW0 )
11
Assuming field 'yy_buffer_status' is not equal to YY_BUFFER_NEW
12
Taking false branch
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_NORMAL1;
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] )
13
Assuming the condition is false
14
Taking false branch
1388 { /* This was really a NUL. */
1389 yy_state_type yy_next_state;
1390
1391 yy_c_buf_p = yytext_ptryytext + 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_ptryytext + YY_MORE_ADJ0;
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() )
15
Control jumps to 'case 1:' at line 1425
1424 {
1425 case EOB_ACT_END_OF_FILE1:
1426 {
1427 yy_did_buffer_switch_on_eof = 0;
1428
1429 if ( yywrap() )
16
Calling 'yywrap'
26
Returning; memory was released
27
Taking true branch
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_ptryytext + YY_MORE_ADJ0;
1441
1442 yy_act = YY_STATE_EOF(YY_START)(46 + ((yy_start - 1) / 2) + 1);
1443 goto do_action;
28
Control jumps to line 1159
1444 }
1445
1446 else
1447 {
1448 if ( ! yy_did_buffer_switch_on_eof )
1449 YY_NEW_FILEyyrestart( yyin );
1450 }
1451 }
1452 break;
1453
1454 case EOB_ACT_CONTINUE_SCAN0:
1455 yy_c_buf_p =
1456 yytext_ptryytext + 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_ptryytext + YY_MORE_ADJ0;
1462 goto yy_match;
1463 break;
1464
1465 case EOB_ACT_LAST_MATCH2:
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_ptryytext + YY_MORE_ADJ0;
1473 goto yy_find_action;
1474 break;
1475 }
1476 break;
1477 }
1478
1479 default:
1480 YY_FATAL_ERROR(yy_fatal_error( "fatal flex scanner internal error--no action found"
)
1481 "fatal flex scanner internal error--no action found" )yy_fatal_error( "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
1495static int yy_get_next_buffer()
1496 {
1497 char *dest = yy_current_buffer->yy_ch_buf;
1498 char *source = yytext_ptryytext;
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(yy_fatal_error( "fatal flex scanner internal error--end of buffer missed"
)
1504 "fatal flex scanner internal error--end of buffer missed" )yy_fatal_error( "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_ptryytext - YY_MORE_ADJ0 == 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_FILE1;
1514 }
1515
1516 else
1517 {
1518 /* We matched some text prior to the EOB, first
1519 * process it.
1520 */
1521 return EOB_ACT_LAST_MATCH2;
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_ptryytext) - 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_PENDING2 )
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(yy_fatal_error( "input buffer overflow, can't enlarge buffer because scanner uses REJECT"
)
1548"input buffer overflow, can't enlarge buffer because scanner uses REJECT" )yy_fatal_error( "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(yy_fatal_error( "fatal error - scanner input buffer overflow"
)
1577 "fatal error - scanner input buffer overflow" )yy_fatal_error( "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_SIZE8192 )
1587 num_to_read = YY_READ_BUF_SIZE8192;
1588
1589 /* Read in more data. */
1590 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),if ( yy_current_buffer->yy_is_interactive ) { int c = '*',
n; for ( n = 0; n < num_to_read && (c = getc( yyin
)) != (-1) && c != '\n'; ++n ) (&yy_current_buffer
->yy_ch_buf[number_to_move])[n] = static_cast<char>(
c); if ( c == '\n' ) (&yy_current_buffer->yy_ch_buf[number_to_move
])[n++] = static_cast<char>(c); if ( c == (-1) &&
ferror( yyin ) ) yy_fatal_error( "input in flex scanner failed"
); yy_n_chars = n; } else if ( ((yy_n_chars = fread( (&yy_current_buffer
->yy_ch_buf[number_to_move]), 1, num_to_read, yyin )) == 0
) && ferror( yyin ) ) yy_fatal_error( "input in flex scanner failed"
);
1591 yy_n_chars, num_to_read )if ( yy_current_buffer->yy_is_interactive ) { int c = '*',
n; for ( n = 0; n < num_to_read && (c = getc( yyin
)) != (-1) && c != '\n'; ++n ) (&yy_current_buffer
->yy_ch_buf[number_to_move])[n] = static_cast<char>(
c); if ( c == '\n' ) (&yy_current_buffer->yy_ch_buf[number_to_move
])[n++] = static_cast<char>(c); if ( c == (-1) &&
ferror( yyin ) ) yy_fatal_error( "input in flex scanner failed"
); yy_n_chars = n; } else if ( ((yy_n_chars = fread( (&yy_current_buffer
->yy_ch_buf[number_to_move]), 1, num_to_read, yyin )) == 0
) && ferror( yyin ) ) yy_fatal_error( "input in flex scanner failed"
);
;
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_ADJ0 )
1599 {
1600 ret_val = EOB_ACT_END_OF_FILE1;
1601 yyrestart( yyin );
1602 }
1603
1604 else
1605 {
1606 ret_val = EOB_ACT_LAST_MATCH2;
1607 yy_current_buffer->yy_buffer_status =
1608 YY_BUFFER_EOF_PENDING2;
1609 }
1610 }
1611
1612 else
1613 ret_val = EOB_ACT_CONTINUE_SCAN0;
1614
1615 yy_n_chars += number_to_move;
1616 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR0;
1617 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR0;
1618
1619 yytext_ptryytext = &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
1627static 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_ptryytext + YY_MORE_ADJ0; 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)(static_cast<unsigned int>(static_cast<unsigned char
>(*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
1662static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1663#else
1664static yy_state_type yy_try_NUL_trans( yy_current_state )
1665yy_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
1690void yyrestart( FILE *input_file )
1691#else
1692void yyrestart( input_file )
1693FILE *input_file;
1694#endif
1695 {
1696 if ( ! yy_current_buffer )
1697 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE16384 );
1698
1699 yy_init_buffer( yy_current_buffer, input_file );
1700 yy_load_buffer_state();
1701 }
1702
1703
1704#ifdef YY_USE_PROTOS
1705void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1706#else
1707void yy_switch_to_buffer( new_buffer )
1708YY_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
1735void yy_load_buffer_state()
1736#else
1737void yy_load_buffer_state()
1738#endif
1739 {
1740 yy_n_chars = yy_current_buffer->yy_n_chars;
1741 yytext_ptryytext = 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
1748YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
1749#else
1750YY_BUFFER_STATE yy_create_buffer( file, size )
1751FILE *file;
1752int 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()" )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()" )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
1779void yy_delete_buffer( YY_BUFFER_STATE b )
1780#else
1781void yy_delete_buffer( b )
1782YY_BUFFER_STATE b;
1783#endif
1784 {
1785 if ( ! b
17.1
'b' is non-null
)
18
Taking false branch
1786 return;
1787
1788 if ( b
18.1
'b' is equal to 'yy_current_buffer'
== yy_current_buffer )
19
Taking true branch
1789 yy_current_buffer = nullptr;
1790
1791 if ( b->yy_is_our_buffer )
20
Assuming field 'yy_is_our_buffer' is not equal to 0
21
Taking true branch
1792 yy_flex_free( static_cast<void *>(b->yy_ch_buf) );
22
Calling 'yy_flex_free'
24
Returning; memory was released via 1st parameter
1793
1794 yy_flex_free( static_cast<void *>(b) );
1795 }
1796
1797
1798#ifndef YY_ALWAYS_INTERACTIVE0
1799#ifndef YY_NEVER_INTERACTIVE0
1800extern int isatty YY_PROTO(( int ))( int );
1801#endif
1802#endif
1803
1804#ifdef YY_USE_PROTOS
1805void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
1806#else
1807void yy_init_buffer( b, file )
1808YY_BUFFER_STATE b;
1809FILE *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_INTERACTIVE0
1820 b->yy_is_interactive = true;
1821#else
1822#if YY_NEVER_INTERACTIVE0
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
1832void yy_flush_buffer( YY_BUFFER_STATE b )
1833#else
1834void yy_flush_buffer( b )
1835YY_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_CHAR0;
1849 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR0;
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_NEW0;
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
1863YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
1864#else
1865YY_BUFFER_STATE yy_scan_buffer( base, size )
1866char *base;
1867yy_size_t size;
1868#endif
1869 {
1870 YY_BUFFER_STATE b;
1871
1872 if ( size < 2 ||
1873 base[size-2] != YY_END_OF_BUFFER_CHAR0 ||
1874 base[size-1] != YY_END_OF_BUFFER_CHAR0 )
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()" )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_NEW0;
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
1901YY_BUFFER_STATE yy_scan_string( yyconstconst char *yy_str )
1902#else
1903YY_BUFFER_STATE yy_scan_string( yy_str )
1904yyconstconst 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
1918YY_BUFFER_STATE yy_scan_bytes( yyconstconst char *bytes, int len )
1919#else
1920YY_BUFFER_STATE yy_scan_bytes( bytes, len )
1921yyconstconst char *bytes;
1922int 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()" )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_CHAR0;
1940
1941 b = yy_scan_buffer( buf, n );
1942 if ( ! b )
1943 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" )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_STATE1
1956#ifdef YY_USE_PROTOS
1957static void yy_push_state( int new_state )
1958#else
1959static void yy_push_state( new_state )
1960int 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(yy_fatal_error( "out of memory expanding start-condition stack"
)
1979 "out of memory expanding start-condition stack" )yy_fatal_error( "out of memory expanding start-condition stack"
)
;
1980 }
1981
1982 yy_start_stack[yy_start_stack_ptr++] = YY_START((yy_start - 1) / 2);
1983
1984 BEGIN(new_state);
1985 }
1986#endif
1987
1988
1989#ifndef YY_NO_POP_STATE1
1990static void yy_pop_state()
1991 {
1992 if ( --yy_start_stack_ptr < 0 )
1993 YY_FATAL_ERROR( "start-condition stack underflow" )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_STATE1
2001static int yy_top_state()
2002 {
2003 return yy_start_stack[yy_start_stack_ptr - 1];
2004 }
2005#endif
2006
2007#ifndef YY_EXIT_FAILURE2
2008#define YY_EXIT_FAILURE2 2
2009#endif
2010
2011#ifdef YY_USE_PROTOS
2012static void yy_fatal_error( yyconstconst char msg[] )
2013#else
2014static void yy_fatal_error( msg )
2015char msg[];
2016#endif
2017 {
2018 (void) fprintf( stderrstderr, "%s\n", msg );
2019 exit( YY_EXIT_FAILURE2 );
2020 }
2021
2022
2023/* Internal utility routines. */
2024
2025#ifndef yytext_ptryytext
2026#ifdef YY_USE_PROTOS
2027static void yy_flex_strncpy( char *s1, yyconstconst char *s2, int n )
2028#else
2029static void yy_flex_strncpy( s1, s2, n )
2030char *s1;
2031yyconstconst char *s2;
2032int 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
2043static int yy_flex_strlen( yyconstconst char *s )
2044#else
2045static int yy_flex_strlen( s )
2046yyconstconst 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
2059static void *yy_flex_alloc( yy_size_t size )
2060#else
2061static void *yy_flex_alloc( size )
2062yy_size_t size;
2063#endif
2064 {
2065 return malloc( size );
2066 }
2067
2068#ifdef YY_USE_PROTOS
2069static void *yy_flex_realloc( void *ptr, yy_size_t size )
2070#else
2071static void *yy_flex_realloc( ptr, size )
2072void *ptr;
2073yy_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
2087static void yy_flex_free( void *ptr )
2088#else
2089static void yy_flex_free( ptr )
2090void *ptr;
2091#endif
2092 {
2093 free( ptr );
23
Memory is released
2094 }
2095
2096#if YY_MAIN0
2097int main()
2098 {
2099 yylex();
2100 return 0;
2101 }
2102#endif
2103
2104
2105void initFlex(const char *_code )
2106{
2107 yy_switch_to_buffer( yy_scan_string(_code) );
2108}
2109
2110int yywrap()
2111{
2112 yy_delete_buffer( YY_CURRENT_BUFFERyy_current_buffer );
17
Calling 'yy_delete_buffer'
25
Returning; memory was released
2113 return 1;
2114}
2115
2116#ifndef TOKEN_DEBUG
2117int token_debug(const char * /*format*/, ...)
2118{
2119 return 0;
2120}
2121#endif
2122
2123/* vim:set shiftwidth=4 softtabstop=4 expandtab: */