lex.c revision 1.1.1.1 1 1.1 christos /* $NetBSD: lex.c,v 1.1.1.1 2019/12/15 22:45:40 christos Exp $ */
2 1.1 christos
3 1.1 christos
4 1.1 christos #line 3 "lex.c"
5 1.1 christos
6 1.1 christos #define YY_INT_ALIGNED short int
7 1.1 christos
8 1.1 christos /* A lexical scanner generated by flex */
9 1.1 christos
10 1.1 christos #define FLEX_SCANNER
11 1.1 christos #define YY_FLEX_MAJOR_VERSION 2
12 1.1 christos #define YY_FLEX_MINOR_VERSION 5
13 1.1 christos #define YY_FLEX_SUBMINOR_VERSION 35
14 1.1 christos #if YY_FLEX_SUBMINOR_VERSION > 0
15 1.1 christos #define FLEX_BETA
16 1.1 christos #endif
17 1.1 christos
18 1.1 christos /* First, we deal with platform-specific or compiler-specific issues. */
19 1.1 christos
20 1.1 christos /* begin standard C headers. */
21 1.1 christos #include <stdio.h>
22 1.1 christos #include <string.h>
23 1.1 christos #include <errno.h>
24 1.1 christos #include <stdlib.h>
25 1.1 christos
26 1.1 christos /* end standard C headers. */
27 1.1 christos
28 1.1 christos /* flex integer type definitions */
29 1.1 christos
30 1.1 christos #ifndef FLEXINT_H
31 1.1 christos #define FLEXINT_H
32 1.1 christos
33 1.1 christos /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
34 1.1 christos
35 1.1 christos #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
36 1.1 christos
37 1.1 christos /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
38 1.1 christos * if you want the limit (max/min) macros for int types.
39 1.1 christos */
40 1.1 christos #ifndef __STDC_LIMIT_MACROS
41 1.1 christos #define __STDC_LIMIT_MACROS 1
42 1.1 christos #endif
43 1.1 christos
44 1.1 christos #include <inttypes.h>
45 1.1 christos typedef int8_t flex_int8_t;
46 1.1 christos typedef uint8_t flex_uint8_t;
47 1.1 christos typedef int16_t flex_int16_t;
48 1.1 christos typedef uint16_t flex_uint16_t;
49 1.1 christos typedef int32_t flex_int32_t;
50 1.1 christos typedef uint32_t flex_uint32_t;
51 1.1 christos typedef uint64_t flex_uint64_t;
52 1.1 christos #else
53 1.1 christos typedef signed char flex_int8_t;
54 1.1 christos typedef short int flex_int16_t;
55 1.1 christos typedef int flex_int32_t;
56 1.1 christos typedef unsigned char flex_uint8_t;
57 1.1 christos typedef unsigned short int flex_uint16_t;
58 1.1 christos typedef unsigned int flex_uint32_t;
59 1.1 christos #endif /* ! C99 */
60 1.1 christos
61 1.1 christos /* Limits of integral types. */
62 1.1 christos #ifndef INT8_MIN
63 1.1 christos #define INT8_MIN (-128)
64 1.1 christos #endif
65 1.1 christos #ifndef INT16_MIN
66 1.1 christos #define INT16_MIN (-32767-1)
67 1.1 christos #endif
68 1.1 christos #ifndef INT32_MIN
69 1.1 christos #define INT32_MIN (-2147483647-1)
70 1.1 christos #endif
71 1.1 christos #ifndef INT8_MAX
72 1.1 christos #define INT8_MAX (127)
73 1.1 christos #endif
74 1.1 christos #ifndef INT16_MAX
75 1.1 christos #define INT16_MAX (32767)
76 1.1 christos #endif
77 1.1 christos #ifndef INT32_MAX
78 1.1 christos #define INT32_MAX (2147483647)
79 1.1 christos #endif
80 1.1 christos #ifndef UINT8_MAX
81 1.1 christos #define UINT8_MAX (255U)
82 1.1 christos #endif
83 1.1 christos #ifndef UINT16_MAX
84 1.1 christos #define UINT16_MAX (65535U)
85 1.1 christos #endif
86 1.1 christos #ifndef UINT32_MAX
87 1.1 christos #define UINT32_MAX (4294967295U)
88 1.1 christos #endif
89 1.1 christos
90 1.1 christos #endif /* ! FLEXINT_H */
91 1.1 christos
92 1.1 christos #ifdef __cplusplus
93 1.1 christos
94 1.1 christos /* The "const" storage-class-modifier is valid. */
95 1.1 christos #define YY_USE_CONST
96 1.1 christos
97 1.1 christos #else /* ! __cplusplus */
98 1.1 christos
99 1.1 christos /* C99 requires __STDC__ to be defined as 1. */
100 1.1 christos #if defined (__STDC__)
101 1.1 christos
102 1.1 christos #define YY_USE_CONST
103 1.1 christos
104 1.1 christos #endif /* defined (__STDC__) */
105 1.1 christos #endif /* ! __cplusplus */
106 1.1 christos
107 1.1 christos #ifdef YY_USE_CONST
108 1.1 christos #define yyconst const
109 1.1 christos #else
110 1.1 christos #define yyconst
111 1.1 christos #endif
112 1.1 christos
113 1.1 christos /* Returned upon end-of-file. */
114 1.1 christos #define YY_NULL 0
115 1.1 christos
116 1.1 christos /* Promotes a possibly negative, possibly signed char to an unsigned
117 1.1 christos * integer for use as an array index. If the signed char is negative,
118 1.1 christos * we want to instead treat it as an 8-bit unsigned char, hence the
119 1.1 christos * double cast.
120 1.1 christos */
121 1.1 christos #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
122 1.1 christos
123 1.1 christos /* Enter a start condition. This macro really ought to take a parameter,
124 1.1 christos * but we do it the disgusting crufty way forced on us by the ()-less
125 1.1 christos * definition of BEGIN.
126 1.1 christos */
127 1.1 christos #define BEGIN (yy_start) = 1 + 2 *
128 1.1 christos
129 1.1 christos /* Translate the current start state into a value that can be later handed
130 1.1 christos * to BEGIN to return to the state. The YYSTATE alias is for lex
131 1.1 christos * compatibility.
132 1.1 christos */
133 1.1 christos #define YY_START (((yy_start) - 1) / 2)
134 1.1 christos #define YYSTATE YY_START
135 1.1 christos
136 1.1 christos /* Action number for EOF rule of a given start state. */
137 1.1 christos #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
138 1.1 christos
139 1.1 christos /* Special action meaning "start processing a new file". */
140 1.1 christos #define YY_NEW_FILE yyrestart(yyin )
141 1.1 christos
142 1.1 christos #define YY_END_OF_BUFFER_CHAR 0
143 1.1 christos
144 1.1 christos /* Size of default input buffer. */
145 1.1 christos #ifndef YY_BUF_SIZE
146 1.1 christos #define YY_BUF_SIZE 16384
147 1.1 christos #endif
148 1.1 christos
149 1.1 christos /* The state buf must be large enough to hold one state per character in the main buffer.
150 1.1 christos */
151 1.1 christos #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
152 1.1 christos
153 1.1 christos #ifndef YY_TYPEDEF_YY_BUFFER_STATE
154 1.1 christos #define YY_TYPEDEF_YY_BUFFER_STATE
155 1.1 christos typedef struct yy_buffer_state *YY_BUFFER_STATE;
156 1.1 christos #endif
157 1.1 christos
158 1.1 christos #ifndef YY_TYPEDEF_YY_SIZE_T
159 1.1 christos #define YY_TYPEDEF_YY_SIZE_T
160 1.1 christos typedef size_t yy_size_t;
161 1.1 christos #endif
162 1.1 christos
163 1.1 christos extern yy_size_t yyleng;
164 1.1 christos
165 1.1 christos extern FILE *yyin, *yyout;
166 1.1 christos
167 1.1 christos #define EOB_ACT_CONTINUE_SCAN 0
168 1.1 christos #define EOB_ACT_END_OF_FILE 1
169 1.1 christos #define EOB_ACT_LAST_MATCH 2
170 1.1 christos
171 1.1 christos #define YY_LESS_LINENO(n)
172 1.1 christos
173 1.1 christos /* Return all but the first "n" matched characters back to the input stream. */
174 1.1 christos #define yyless(n) \
175 1.1 christos do \
176 1.1 christos { \
177 1.1 christos /* Undo effects of setting up yytext. */ \
178 1.1 christos int yyless_macro_arg = (n); \
179 1.1 christos YY_LESS_LINENO(yyless_macro_arg);\
180 1.1 christos *yy_cp = (yy_hold_char); \
181 1.1 christos YY_RESTORE_YY_MORE_OFFSET \
182 1.1 christos (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
183 1.1 christos YY_DO_BEFORE_ACTION; /* set up yytext again */ \
184 1.1 christos } \
185 1.1 christos while ( 0 )
186 1.1 christos
187 1.1 christos #define unput(c) yyunput( c, (yytext_ptr) )
188 1.1 christos
189 1.1 christos #ifndef YY_STRUCT_YY_BUFFER_STATE
190 1.1 christos #define YY_STRUCT_YY_BUFFER_STATE
191 1.1 christos struct yy_buffer_state
192 1.1 christos {
193 1.1 christos FILE *yy_input_file;
194 1.1 christos
195 1.1 christos char *yy_ch_buf; /* input buffer */
196 1.1 christos char *yy_buf_pos; /* current position in input buffer */
197 1.1 christos
198 1.1 christos /* Size of input buffer in bytes, not including room for EOB
199 1.1 christos * characters.
200 1.1 christos */
201 1.1 christos yy_size_t yy_buf_size;
202 1.1 christos
203 1.1 christos /* Number of characters read into yy_ch_buf, not including EOB
204 1.1 christos * characters.
205 1.1 christos */
206 1.1 christos yy_size_t yy_n_chars;
207 1.1 christos
208 1.1 christos /* Whether we "own" the buffer - i.e., we know we created it,
209 1.1 christos * and can realloc() it to grow it, and should free() it to
210 1.1 christos * delete it.
211 1.1 christos */
212 1.1 christos int yy_is_our_buffer;
213 1.1 christos
214 1.1 christos /* Whether this is an "interactive" input source; if so, and
215 1.1 christos * if we're using stdio for input, then we want to use getc()
216 1.1 christos * instead of fread(), to make sure we stop fetching input after
217 1.1 christos * each newline.
218 1.1 christos */
219 1.1 christos int yy_is_interactive;
220 1.1 christos
221 1.1 christos /* Whether we're considered to be at the beginning of a line.
222 1.1 christos * If so, '^' rules will be active on the next match, otherwise
223 1.1 christos * not.
224 1.1 christos */
225 1.1 christos int yy_at_bol;
226 1.1 christos
227 1.1 christos int yy_bs_lineno; /**< The line count. */
228 1.1 christos int yy_bs_column; /**< The column count. */
229 1.1 christos
230 1.1 christos /* Whether to try to fill the input buffer when we reach the
231 1.1 christos * end of it.
232 1.1 christos */
233 1.1 christos int yy_fill_buffer;
234 1.1 christos
235 1.1 christos int yy_buffer_status;
236 1.1 christos
237 1.1 christos #define YY_BUFFER_NEW 0
238 1.1 christos #define YY_BUFFER_NORMAL 1
239 1.1 christos /* When an EOF's been seen but there's still some text to process
240 1.1 christos * then we mark the buffer as YY_EOF_PENDING, to indicate that we
241 1.1 christos * shouldn't try reading from the input source any more. We might
242 1.1 christos * still have a bunch of tokens to match, though, because of
243 1.1 christos * possible backing-up.
244 1.1 christos *
245 1.1 christos * When we actually see the EOF, we change the status to "new"
246 1.1 christos * (via yyrestart()), so that the user can continue scanning by
247 1.1 christos * just pointing yyin at a new input file.
248 1.1 christos */
249 1.1 christos #define YY_BUFFER_EOF_PENDING 2
250 1.1 christos
251 1.1 christos };
252 1.1 christos #endif /* !YY_STRUCT_YY_BUFFER_STATE */
253 1.1 christos
254 1.1 christos /* Stack of input buffers. */
255 1.1 christos static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
256 1.1 christos static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
257 1.1 christos static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
258 1.1 christos
259 1.1 christos /* We provide macros for accessing buffer states in case in the
260 1.1 christos * future we want to put the buffer states in a more general
261 1.1 christos * "scanner state".
262 1.1 christos *
263 1.1 christos * Returns the top of the stack, or NULL.
264 1.1 christos */
265 1.1 christos #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
266 1.1 christos ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
267 1.1 christos : NULL)
268 1.1 christos
269 1.1 christos /* Same as previous macro, but useful when we know that the buffer stack is not
270 1.1 christos * NULL or when we need an lvalue. For internal use only.
271 1.1 christos */
272 1.1 christos #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
273 1.1 christos
274 1.1 christos /* yy_hold_char holds the character lost when yytext is formed. */
275 1.1 christos static char yy_hold_char;
276 1.1 christos static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
277 1.1 christos yy_size_t yyleng;
278 1.1 christos
279 1.1 christos /* Points to current character in buffer. */
280 1.1 christos static char *yy_c_buf_p = (char *) 0;
281 1.1 christos static int yy_init = 0; /* whether we need to initialize */
282 1.1 christos static int yy_start = 0; /* start state number */
283 1.1 christos
284 1.1 christos /* Flag which is used to allow yywrap()'s to do buffer switches
285 1.1 christos * instead of setting up a fresh yyin. A bit of a hack ...
286 1.1 christos */
287 1.1 christos static int yy_did_buffer_switch_on_eof;
288 1.1 christos
289 1.1 christos void yyrestart (FILE *input_file );
290 1.1 christos void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
291 1.1 christos YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
292 1.1 christos void yy_delete_buffer (YY_BUFFER_STATE b );
293 1.1 christos void yy_flush_buffer (YY_BUFFER_STATE b );
294 1.1 christos void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
295 1.1 christos void yypop_buffer_state (void );
296 1.1 christos
297 1.1 christos static void yyensure_buffer_stack (void );
298 1.1 christos static void yy_load_buffer_state (void );
299 1.1 christos static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
300 1.1 christos
301 1.1 christos #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
302 1.1 christos
303 1.1 christos YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
304 1.1 christos YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
305 1.1 christos YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
306 1.1 christos
307 1.1 christos void *yyalloc (yy_size_t );
308 1.1 christos void *yyrealloc (void *,yy_size_t );
309 1.1 christos void yyfree (void * );
310 1.1 christos
311 1.1 christos #define yy_new_buffer yy_create_buffer
312 1.1 christos
313 1.1 christos #define yy_set_interactive(is_interactive) \
314 1.1 christos { \
315 1.1 christos if ( ! YY_CURRENT_BUFFER ){ \
316 1.1 christos yyensure_buffer_stack (); \
317 1.1 christos YY_CURRENT_BUFFER_LVALUE = \
318 1.1 christos yy_create_buffer(yyin,YY_BUF_SIZE ); \
319 1.1 christos } \
320 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
321 1.1 christos }
322 1.1 christos
323 1.1 christos #define yy_set_bol(at_bol) \
324 1.1 christos { \
325 1.1 christos if ( ! YY_CURRENT_BUFFER ){\
326 1.1 christos yyensure_buffer_stack (); \
327 1.1 christos YY_CURRENT_BUFFER_LVALUE = \
328 1.1 christos yy_create_buffer(yyin,YY_BUF_SIZE ); \
329 1.1 christos } \
330 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
331 1.1 christos }
332 1.1 christos
333 1.1 christos #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
334 1.1 christos
335 1.1 christos /* Begin user sect3 */
336 1.1 christos
337 1.1 christos typedef unsigned char YY_CHAR;
338 1.1 christos
339 1.1 christos FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
340 1.1 christos
341 1.1 christos typedef int yy_state_type;
342 1.1 christos
343 1.1 christos extern int yylineno;
344 1.1 christos
345 1.1 christos int yylineno = 1;
346 1.1 christos
347 1.1 christos extern char *yytext;
348 1.1 christos #define yytext_ptr yytext
349 1.1 christos
350 1.1 christos static yy_state_type yy_get_previous_state (void );
351 1.1 christos static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
352 1.1 christos static int yy_get_next_buffer (void );
353 1.1 christos static void yy_fatal_error (yyconst char msg[] );
354 1.1 christos
355 1.1 christos /* Done after the current pattern has been matched and before the
356 1.1 christos * corresponding action - sets up yytext.
357 1.1 christos */
358 1.1 christos #define YY_DO_BEFORE_ACTION \
359 1.1 christos (yytext_ptr) = yy_bp; \
360 1.1 christos yyleng = (yy_size_t) (yy_cp - yy_bp); \
361 1.1 christos (yy_hold_char) = *yy_cp; \
362 1.1 christos *yy_cp = '\0'; \
363 1.1 christos (yy_c_buf_p) = yy_cp;
364 1.1 christos
365 1.1 christos #define YY_NUM_RULES 95
366 1.1 christos #define YY_END_OF_BUFFER 96
367 1.1 christos /* This struct is not used in this scanner,
368 1.1 christos but its presence is necessary. */
369 1.1 christos struct yy_trans_info
370 1.1 christos {
371 1.1 christos flex_int32_t yy_verify;
372 1.1 christos flex_int32_t yy_nxt;
373 1.1 christos };
374 1.1 christos static yyconst flex_int16_t yy_accept[568] =
375 1.1 christos { 0,
376 1.1 christos 0, 0, 96, 94, 90, 91, 87, 81, 81, 94,
377 1.1 christos 94, 88, 88, 94, 89, 89, 89, 89, 89, 89,
378 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
379 1.1 christos 89, 89, 89, 82, 83, 85, 88, 88, 93, 86,
380 1.1 christos 0, 0, 89, 89, 89, 89, 89, 89, 89, 89,
381 1.1 christos 89, 10, 89, 89, 89, 89, 89, 89, 89, 89,
382 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
383 1.1 christos 89, 89, 89, 89, 51, 89, 89, 89, 89, 89,
384 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
385 1.1 christos 89, 89, 89, 89, 89, 89, 89, 92, 88, 84,
386 1.1 christos
387 1.1 christos 89, 3, 89, 89, 89, 7, 89, 89, 89, 89,
388 1.1 christos 89, 89, 89, 89, 89, 89, 22, 89, 89, 89,
389 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
390 1.1 christos 89, 89, 44, 45, 89, 89, 89, 89, 89, 89,
391 1.1 christos 89, 55, 89, 89, 89, 89, 89, 89, 89, 63,
392 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
393 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
394 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
395 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 30, 89,
396 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
397 1.1 christos
398 1.1 christos 47, 89, 89, 89, 89, 89, 89, 89, 89, 89,
399 1.1 christos 89, 60, 89, 89, 64, 89, 89, 89, 68, 69,
400 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
401 1.1 christos 80, 89, 89, 89, 89, 6, 89, 89, 89, 89,
402 1.1 christos 13, 89, 89, 89, 89, 89, 89, 89, 89, 89,
403 1.1 christos 89, 89, 89, 89, 29, 89, 89, 89, 89, 89,
404 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 50,
405 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
406 1.1 christos 89, 89, 89, 89, 72, 89, 89, 89, 89, 89,
407 1.1 christos 89, 89, 1, 89, 89, 89, 89, 89, 89, 12,
408 1.1 christos
409 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 24, 89,
410 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
411 1.1 christos 89, 89, 89, 89, 89, 89, 89, 49, 89, 89,
412 1.1 christos 89, 89, 89, 89, 89, 89, 89, 65, 66, 89,
413 1.1 christos 89, 89, 73, 89, 89, 89, 89, 89, 89, 89,
414 1.1 christos 89, 89, 89, 9, 89, 89, 89, 89, 18, 89,
415 1.1 christos 89, 21, 89, 89, 26, 89, 89, 89, 89, 89,
416 1.1 christos 89, 89, 37, 38, 89, 89, 41, 89, 89, 89,
417 1.1 christos 89, 89, 89, 54, 89, 57, 58, 89, 89, 89,
418 1.1 christos 89, 89, 89, 89, 75, 89, 89, 89, 89, 89,
419 1.1 christos
420 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 20, 89,
421 1.1 christos 25, 89, 28, 89, 89, 89, 89, 89, 36, 39,
422 1.1 christos 40, 89, 89, 89, 89, 52, 89, 89, 89, 89,
423 1.1 christos 62, 89, 89, 89, 89, 89, 89, 89, 89, 89,
424 1.1 christos 89, 5, 8, 11, 14, 89, 89, 89, 89, 89,
425 1.1 christos 89, 89, 89, 34, 89, 89, 89, 89, 89, 89,
426 1.1 christos 89, 89, 89, 67, 89, 89, 74, 89, 89, 89,
427 1.1 christos 89, 89, 89, 15, 89, 17, 89, 23, 89, 89,
428 1.1 christos 89, 89, 35, 89, 89, 89, 89, 89, 89, 89,
429 1.1 christos 89, 89, 89, 76, 89, 89, 89, 89, 4, 16,
430 1.1 christos
431 1.1 christos 19, 89, 89, 89, 89, 89, 89, 89, 89, 89,
432 1.1 christos 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
433 1.1 christos 89, 89, 89, 42, 43, 89, 89, 89, 89, 89,
434 1.1 christos 61, 89, 89, 89, 89, 89, 89, 27, 31, 89,
435 1.1 christos 33, 89, 48, 89, 56, 89, 89, 71, 89, 89,
436 1.1 christos 79, 89, 89, 46, 89, 89, 89, 89, 78, 2,
437 1.1 christos 32, 89, 59, 70, 77, 53, 0
438 1.1 christos } ;
439 1.1 christos
440 1.1 christos static yyconst flex_int32_t yy_ec[256] =
441 1.1 christos { 0,
442 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
443 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
445 1.1 christos 1, 2, 1, 4, 1, 1, 1, 1, 1, 5,
446 1.1 christos 5, 6, 1, 5, 7, 8, 9, 10, 11, 12,
447 1.1 christos 12, 13, 14, 15, 12, 16, 12, 17, 5, 1,
448 1.1 christos 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
449 1.1 christos 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
450 1.1 christos 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
451 1.1 christos 45, 1, 46, 1, 47, 1, 48, 49, 50, 51,
452 1.1 christos
453 1.1 christos 52, 53, 54, 55, 56, 57, 29, 58, 59, 60,
454 1.1 christos 61, 62, 29, 63, 64, 65, 66, 67, 29, 68,
455 1.1 christos 29, 69, 5, 5, 5, 1, 1, 1, 1, 1,
456 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
458 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
461 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
462 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463 1.1 christos
464 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
465 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
466 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
467 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
468 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469 1.1 christos 1, 1, 1, 1, 1
470 1.1 christos } ;
471 1.1 christos
472 1.1 christos static yyconst flex_int32_t yy_meta[70] =
473 1.1 christos { 0,
474 1.1 christos 1, 1, 1, 1, 1, 1, 2, 1, 1, 3,
475 1.1 christos 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
476 1.1 christos 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
477 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
478 1.1 christos 2, 2, 2, 2, 1, 1, 2, 3, 3, 3,
479 1.1 christos 3, 3, 3, 2, 2, 2, 2, 2, 2, 2,
480 1.1 christos 2, 2, 2, 2, 2, 2, 2, 2, 2
481 1.1 christos } ;
482 1.1 christos
483 1.1 christos static yyconst flex_int16_t yy_base[570] =
484 1.1 christos { 0,
485 1.1 christos 0, 0, 636, 637, 637, 637, 637, 637, 63, 627,
486 1.1 christos 628, 70, 77, 616, 74, 72, 76, 609, 65, 81,
487 1.1 christos 49, 0, 92, 91, 32, 101, 97, 608, 103, 113,
488 1.1 christos 99, 574, 602, 637, 637, 637, 156, 163, 620, 637,
489 1.1 christos 0, 609, 0, 589, 595, 590, 585, 597, 583, 586,
490 1.1 christos 586, 0, 101, 599, 108, 593, 596, 122, 124, 585,
491 1.1 christos 581, 553, 564, 597, 587, 575, 115, 575, 565, 574,
492 1.1 christos 575, 545, 575, 564, 0, 563, 543, 561, 558, 558,
493 1.1 christos 124, 540, 161, 119, 551, 558, 561, 581, 566, 551,
494 1.1 christos 555, 530, 560, 160, 530, 91, 547, 637, 0, 637,
495 1.1 christos
496 1.1 christos 125, 0, 554, 550, 555, 0, 544, 550, 543, 551,
497 1.1 christos 540, 542, 145, 166, 552, 541, 0, 542, 549, 156,
498 1.1 christos 548, 533, 538, 516, 505, 529, 533, 157, 534, 525,
499 1.1 christos 539, 546, 0, 521, 529, 506, 534, 533, 528, 502,
500 1.1 christos 515, 0, 515, 514, 510, 489, 518, 528, 507, 0,
501 1.1 christos 522, 517, 505, 505, 504, 517, 516, 486, 159, 499,
502 1.1 christos 520, 468, 482, 477, 506, 499, 494, 502, 497, 495,
503 1.1 christos 461, 502, 505, 502, 485, 488, 482, 500, 479, 485,
504 1.1 christos 494, 493, 491, 479, 485, 475, 164, 487, 0, 446,
505 1.1 christos 453, 442, 468, 478, 468, 464, 483, 170, 488, 463,
506 1.1 christos
507 1.1 christos 0, 436, 477, 459, 463, 445, 471, 486, 469, 472,
508 1.1 christos 425, 0, 451, 465, 0, 455, 467, 420, 0, 0,
509 1.1 christos 477, 418, 450, 442, 457, 423, 441, 425, 415, 426,
510 1.1 christos 0, 436, 454, 451, 452, 0, 407, 450, 447, 444,
511 1.1 christos 0, 434, 429, 437, 433, 435, 439, 437, 423, 420,
512 1.1 christos 436, 418, 418, 422, 0, 405, 396, 388, 423, 180,
513 1.1 christos 411, 426, 415, 423, 408, 429, 436, 386, 403, 0,
514 1.1 christos 408, 374, 402, 410, 404, 397, 386, 406, 400, 406,
515 1.1 christos 388, 366, 401, 375, 0, 403, 389, 365, 358, 359,
516 1.1 christos 356, 362, 0, 398, 399, 379, 360, 383, 376, 0,
517 1.1 christos
518 1.1 christos 390, 393, 379, 372, 371, 385, 385, 387, 0, 378,
519 1.1 christos 367, 376, 383, 343, 350, 343, 374, 370, 374, 358,
520 1.1 christos 371, 372, 356, 368, 353, 362, 338, 0, 368, 364,
521 1.1 christos 353, 352, 345, 359, 332, 340, 358, 0, 0, 322,
522 1.1 christos 355, 308, 0, 338, 322, 310, 308, 319, 318, 331,
523 1.1 christos 330, 340, 306, 0, 342, 332, 336, 335, 0, 334,
524 1.1 christos 338, 0, 321, 320, 0, 337, 326, 151, 318, 294,
525 1.1 christos 326, 314, 0, 0, 314, 327, 0, 328, 283, 315,
526 1.1 christos 309, 315, 292, 0, 319, 0, 0, 284, 318, 317,
527 1.1 christos 279, 315, 300, 317, 0, 279, 286, 265, 295, 324,
528 1.1 christos
529 1.1 christos 303, 308, 274, 291, 288, 293, 292, 290, 0, 299,
530 1.1 christos 0, 294, 0, 255, 250, 253, 263, 293, 0, 0,
531 1.1 christos 0, 277, 251, 289, 247, 0, 247, 283, 257, 261,
532 1.1 christos 0, 253, 274, 240, 274, 243, 244, 264, 235, 262,
533 1.1 christos 265, 0, 0, 0, 260, 273, 270, 262, 271, 262,
534 1.1 christos 228, 238, 226, 0, 252, 260, 230, 258, 221, 233,
535 1.1 christos 250, 244, 247, 0, 241, 215, 0, 223, 239, 210,
536 1.1 christos 211, 230, 240, 0, 249, 0, 233, 0, 242, 212,
537 1.1 christos 216, 210, 0, 232, 204, 231, 206, 198, 233, 194,
538 1.1 christos 231, 230, 200, 0, 190, 191, 197, 220, 0, 0,
539 1.1 christos
540 1.1 christos 0, 213, 190, 211, 188, 215, 192, 218, 184, 187,
541 1.1 christos 204, 178, 218, 215, 178, 174, 180, 175, 196, 190,
542 1.1 christos 178, 175, 176, 0, 0, 191, 174, 165, 180, 166,
543 1.1 christos 0, 194, 166, 163, 158, 163, 197, 0, 0, 156,
544 1.1 christos 0, 171, 0, 148, 0, 152, 188, 0, 150, 155,
545 1.1 christos 0, 166, 153, 0, 143, 148, 162, 143, 0, 0,
546 1.1 christos 0, 101, 0, 0, 0, 0, 637, 223, 69
547 1.1 christos } ;
548 1.1 christos
549 1.1 christos static yyconst flex_int16_t yy_def[570] =
550 1.1 christos { 0,
551 1.1 christos 567, 1, 567, 567, 567, 567, 567, 567, 567, 567,
552 1.1 christos 567, 567, 567, 567, 568, 568, 568, 568, 568, 568,
553 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
554 1.1 christos 568, 568, 568, 567, 567, 567, 567, 567, 567, 567,
555 1.1 christos 569, 567, 568, 568, 568, 568, 568, 568, 568, 568,
556 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
557 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
558 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
559 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
560 1.1 christos 568, 568, 568, 568, 568, 568, 568, 567, 569, 567,
561 1.1 christos
562 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
563 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
564 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
565 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
566 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
567 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
568 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
569 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
570 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
571 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
572 1.1 christos
573 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
574 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
575 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
576 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
577 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
578 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
579 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
580 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
581 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
582 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
583 1.1 christos
584 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
585 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
586 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
587 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
588 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
589 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
590 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
591 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
592 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
593 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
594 1.1 christos
595 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
596 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
597 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
598 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
599 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
600 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
601 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
602 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
603 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
604 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
605 1.1 christos
606 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
607 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
608 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
609 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
610 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
611 1.1 christos 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
612 1.1 christos 568, 568, 568, 568, 568, 568, 0, 567, 567
613 1.1 christos } ;
614 1.1 christos
615 1.1 christos static yyconst flex_int16_t yy_nxt[707] =
616 1.1 christos { 0,
617 1.1 christos 4, 5, 6, 7, 8, 4, 9, 10, 11, 12,
618 1.1 christos 13, 13, 13, 13, 13, 13, 14, 4, 15, 16,
619 1.1 christos 17, 18, 19, 20, 21, 22, 23, 22, 22, 22,
620 1.1 christos 24, 25, 26, 27, 22, 28, 29, 30, 31, 32,
621 1.1 christos 33, 22, 22, 22, 34, 35, 4, 22, 22, 22,
622 1.1 christos 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
623 1.1 christos 22, 22, 22, 22, 22, 22, 22, 22, 22, 36,
624 1.1 christos 71, 99, 37, 38, 38, 38, 38, 38, 38, 38,
625 1.1 christos 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
626 1.1 christos 38, 38, 38, 44, 48, 57, 58, 72, 49, 60,
627 1.1 christos
628 1.1 christos 62, 53, 50, 45, 51, 54, 59, 46, 55, 69,
629 1.1 christos 64, 63, 47, 65, 52, 78, 61, 70, 79, 109,
630 1.1 christos 73, 74, 66, 67, 75, 84, 80, 88, 68, 85,
631 1.1 christos 93, 89, 81, 110, 76, 129, 94, 41, 112, 113,
632 1.1 christos 86, 163, 116, 117, 119, 87, 144, 166, 90, 77,
633 1.1 christos 145, 130, 131, 149, 164, 91, 150, 120, 95, 82,
634 1.1 christos 118, 121, 167, 566, 92, 38, 38, 38, 38, 38,
635 1.1 christos 38, 38, 38, 38, 38, 38, 38, 38, 38, 147,
636 1.1 christos 160, 177, 178, 161, 179, 185, 194, 414, 186, 195,
637 1.1 christos 148, 223, 180, 224, 264, 253, 565, 564, 225, 254,
638 1.1 christos
639 1.1 christos 318, 563, 319, 562, 561, 265, 415, 560, 559, 558,
640 1.1 christos 557, 556, 555, 554, 553, 552, 551, 550, 549, 548,
641 1.1 christos 547, 546, 545, 41, 43, 43, 544, 543, 542, 541,
642 1.1 christos 540, 539, 538, 537, 536, 535, 534, 533, 532, 531,
643 1.1 christos 530, 529, 528, 527, 526, 525, 524, 523, 522, 521,
644 1.1 christos 520, 519, 518, 517, 516, 515, 514, 513, 512, 511,
645 1.1 christos 510, 509, 508, 507, 506, 505, 504, 503, 502, 501,
646 1.1 christos 500, 499, 498, 497, 496, 495, 494, 493, 492, 491,
647 1.1 christos 490, 489, 488, 487, 486, 485, 484, 483, 482, 481,
648 1.1 christos 480, 479, 478, 477, 476, 475, 474, 473, 472, 471,
649 1.1 christos
650 1.1 christos 470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
651 1.1 christos 460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
652 1.1 christos 450, 449, 448, 447, 446, 445, 444, 443, 442, 441,
653 1.1 christos 440, 439, 438, 437, 436, 435, 434, 433, 432, 431,
654 1.1 christos 430, 429, 428, 427, 426, 425, 424, 423, 422, 421,
655 1.1 christos 420, 419, 418, 417, 416, 413, 412, 411, 410, 409,
656 1.1 christos 408, 407, 406, 405, 404, 403, 402, 401, 400, 399,
657 1.1 christos 398, 397, 396, 395, 394, 393, 392, 391, 390, 389,
658 1.1 christos 388, 387, 386, 385, 384, 383, 382, 381, 380, 379,
659 1.1 christos 378, 377, 376, 375, 374, 373, 372, 371, 370, 369,
660 1.1 christos
661 1.1 christos 368, 367, 366, 365, 364, 363, 362, 361, 360, 359,
662 1.1 christos 358, 357, 356, 355, 354, 353, 352, 351, 350, 349,
663 1.1 christos 348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
664 1.1 christos 338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
665 1.1 christos 328, 327, 326, 325, 324, 323, 322, 321, 320, 317,
666 1.1 christos 316, 315, 314, 313, 312, 311, 310, 309, 308, 307,
667 1.1 christos 306, 305, 304, 303, 302, 301, 300, 299, 298, 297,
668 1.1 christos 296, 295, 294, 293, 292, 291, 290, 289, 288, 287,
669 1.1 christos 286, 285, 284, 283, 282, 281, 280, 279, 278, 277,
670 1.1 christos 276, 275, 274, 273, 272, 271, 270, 269, 268, 267,
671 1.1 christos
672 1.1 christos 266, 263, 262, 261, 260, 259, 258, 257, 256, 255,
673 1.1 christos 252, 251, 250, 249, 248, 247, 246, 245, 244, 243,
674 1.1 christos 242, 241, 240, 239, 238, 237, 236, 235, 234, 233,
675 1.1 christos 232, 231, 230, 229, 228, 227, 226, 222, 221, 220,
676 1.1 christos 219, 218, 217, 216, 215, 214, 213, 212, 211, 210,
677 1.1 christos 209, 208, 207, 206, 205, 204, 203, 202, 201, 200,
678 1.1 christos 199, 198, 197, 196, 193, 192, 191, 190, 189, 188,
679 1.1 christos 187, 184, 183, 182, 181, 176, 175, 174, 173, 172,
680 1.1 christos 171, 170, 169, 168, 165, 162, 159, 158, 157, 156,
681 1.1 christos 155, 154, 153, 152, 151, 146, 143, 142, 141, 140,
682 1.1 christos
683 1.1 christos 139, 138, 137, 136, 135, 134, 133, 132, 128, 127,
684 1.1 christos 126, 125, 124, 123, 122, 115, 114, 111, 108, 107,
685 1.1 christos 106, 105, 104, 103, 102, 101, 100, 98, 97, 96,
686 1.1 christos 83, 56, 42, 40, 39, 567, 3, 567, 567, 567,
687 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
688 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
689 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
690 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
691 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
692 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
693 1.1 christos
694 1.1 christos 567, 567, 567, 567, 567, 567
695 1.1 christos } ;
696 1.1 christos
697 1.1 christos static yyconst flex_int16_t yy_chk[707] =
698 1.1 christos { 0,
699 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
700 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
701 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
702 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
703 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
705 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 9,
706 1.1 christos 25, 569, 9, 9, 9, 9, 9, 9, 9, 12,
707 1.1 christos 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
708 1.1 christos 13, 13, 13, 15, 16, 19, 19, 25, 16, 20,
709 1.1 christos
710 1.1 christos 21, 17, 16, 15, 16, 17, 19, 15, 17, 24,
711 1.1 christos 23, 21, 15, 23, 16, 27, 20, 24, 27, 53,
712 1.1 christos 26, 26, 23, 23, 26, 29, 27, 30, 23, 29,
713 1.1 christos 31, 30, 27, 53, 26, 67, 31, 12, 55, 55,
714 1.1 christos 29, 96, 58, 58, 59, 29, 81, 101, 30, 26,
715 1.1 christos 81, 67, 67, 84, 96, 30, 84, 59, 31, 27,
716 1.1 christos 58, 59, 101, 562, 30, 37, 37, 37, 37, 37,
717 1.1 christos 37, 37, 38, 38, 38, 38, 38, 38, 38, 83,
718 1.1 christos 94, 113, 113, 94, 114, 120, 128, 368, 120, 128,
719 1.1 christos 83, 159, 114, 159, 198, 187, 558, 557, 159, 187,
720 1.1 christos
721 1.1 christos 260, 556, 260, 555, 553, 198, 368, 552, 550, 549,
722 1.1 christos 547, 546, 544, 542, 540, 537, 536, 535, 534, 533,
723 1.1 christos 532, 530, 529, 37, 568, 568, 528, 527, 526, 523,
724 1.1 christos 522, 521, 520, 519, 518, 517, 516, 515, 514, 513,
725 1.1 christos 512, 511, 510, 509, 508, 507, 506, 505, 504, 503,
726 1.1 christos 502, 498, 497, 496, 495, 493, 492, 491, 490, 489,
727 1.1 christos 488, 487, 486, 485, 484, 482, 481, 480, 479, 477,
728 1.1 christos 475, 473, 472, 471, 470, 469, 468, 466, 465, 463,
729 1.1 christos 462, 461, 460, 459, 458, 457, 456, 455, 453, 452,
730 1.1 christos 451, 450, 449, 448, 447, 446, 445, 441, 440, 439,
731 1.1 christos
732 1.1 christos 438, 437, 436, 435, 434, 433, 432, 430, 429, 428,
733 1.1 christos 427, 425, 424, 423, 422, 418, 417, 416, 415, 414,
734 1.1 christos 412, 410, 408, 407, 406, 405, 404, 403, 402, 401,
735 1.1 christos 400, 399, 398, 397, 396, 394, 393, 392, 391, 390,
736 1.1 christos 389, 388, 385, 383, 382, 381, 380, 379, 378, 376,
737 1.1 christos 375, 372, 371, 370, 369, 367, 366, 364, 363, 361,
738 1.1 christos 360, 358, 357, 356, 355, 353, 352, 351, 350, 349,
739 1.1 christos 348, 347, 346, 345, 344, 342, 341, 340, 337, 336,
740 1.1 christos 335, 334, 333, 332, 331, 330, 329, 327, 326, 325,
741 1.1 christos 324, 323, 322, 321, 320, 319, 318, 317, 316, 315,
742 1.1 christos
743 1.1 christos 314, 313, 312, 311, 310, 308, 307, 306, 305, 304,
744 1.1 christos 303, 302, 301, 299, 298, 297, 296, 295, 294, 292,
745 1.1 christos 291, 290, 289, 288, 287, 286, 284, 283, 282, 281,
746 1.1 christos 280, 279, 278, 277, 276, 275, 274, 273, 272, 271,
747 1.1 christos 269, 268, 267, 266, 265, 264, 263, 262, 261, 259,
748 1.1 christos 258, 257, 256, 254, 253, 252, 251, 250, 249, 248,
749 1.1 christos 247, 246, 245, 244, 243, 242, 240, 239, 238, 237,
750 1.1 christos 235, 234, 233, 232, 230, 229, 228, 227, 226, 225,
751 1.1 christos 224, 223, 222, 221, 218, 217, 216, 214, 213, 211,
752 1.1 christos 210, 209, 208, 207, 206, 205, 204, 203, 202, 200,
753 1.1 christos
754 1.1 christos 199, 197, 196, 195, 194, 193, 192, 191, 190, 188,
755 1.1 christos 186, 185, 184, 183, 182, 181, 180, 179, 178, 177,
756 1.1 christos 176, 175, 174, 173, 172, 171, 170, 169, 168, 167,
757 1.1 christos 166, 165, 164, 163, 162, 161, 160, 158, 157, 156,
758 1.1 christos 155, 154, 153, 152, 151, 149, 148, 147, 146, 145,
759 1.1 christos 144, 143, 141, 140, 139, 138, 137, 136, 135, 134,
760 1.1 christos 132, 131, 130, 129, 127, 126, 125, 124, 123, 122,
761 1.1 christos 121, 119, 118, 116, 115, 112, 111, 110, 109, 108,
762 1.1 christos 107, 105, 104, 103, 97, 95, 93, 92, 91, 90,
763 1.1 christos 89, 88, 87, 86, 85, 82, 80, 79, 78, 77,
764 1.1 christos
765 1.1 christos 76, 74, 73, 72, 71, 70, 69, 68, 66, 65,
766 1.1 christos 64, 63, 62, 61, 60, 57, 56, 54, 51, 50,
767 1.1 christos 49, 48, 47, 46, 45, 44, 42, 39, 33, 32,
768 1.1 christos 28, 18, 14, 11, 10, 3, 567, 567, 567, 567,
769 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
770 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
771 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
772 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
773 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
774 1.1 christos 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
775 1.1 christos
776 1.1 christos 567, 567, 567, 567, 567, 567
777 1.1 christos } ;
778 1.1 christos
779 1.1 christos static yy_state_type yy_last_accepting_state;
780 1.1 christos static char *yy_last_accepting_cpos;
781 1.1 christos
782 1.1 christos extern int yy_flex_debug;
783 1.1 christos int yy_flex_debug = 0;
784 1.1 christos
785 1.1 christos /* The intent behind this definition is that it'll catch
786 1.1 christos * any uses of REJECT which flex missed.
787 1.1 christos */
788 1.1 christos #define REJECT reject_used_but_not_detected
789 1.1 christos #define yymore() yymore_used_but_not_detected
790 1.1 christos #define YY_MORE_ADJ 0
791 1.1 christos #define YY_RESTORE_YY_MORE_OFFSET
792 1.1 christos char *yytext;
793 1.1 christos #line 1 "lex.l"
794 1.1 christos #line 2 "lex.l"
795 1.1 christos /*
796 1.1 christos * Copyright (c) 1997 - 2017 Kungliga Tekniska Hgskolan
797 1.1 christos * (Royal Institute of Technology, Stockholm, Sweden).
798 1.1 christos * All rights reserved.
799 1.1 christos *
800 1.1 christos * Redistribution and use in source and binary forms, with or without
801 1.1 christos * modification, are permitted provided that the following conditions
802 1.1 christos * are met:
803 1.1 christos *
804 1.1 christos * 1. Redistributions of source code must retain the above copyright
805 1.1 christos * notice, this list of conditions and the following disclaimer.
806 1.1 christos *
807 1.1 christos * 2. Redistributions in binary form must reproduce the above copyright
808 1.1 christos * notice, this list of conditions and the following disclaimer in the
809 1.1 christos * documentation and/or other materials provided with the distribution.
810 1.1 christos *
811 1.1 christos * 3. Neither the name of the Institute nor the names of its contributors
812 1.1 christos * may be used to endorse or promote products derived from this software
813 1.1 christos * without specific prior written permission.
814 1.1 christos *
815 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
816 1.1 christos * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
817 1.1 christos * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
818 1.1 christos * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
819 1.1 christos * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
820 1.1 christos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
821 1.1 christos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
822 1.1 christos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
823 1.1 christos * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
824 1.1 christos * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
825 1.1 christos * SUCH DAMAGE.
826 1.1 christos */
827 1.1 christos
828 1.1 christos /* Id */
829 1.1 christos
830 1.1 christos #ifdef HAVE_CONFIG_H
831 1.1 christos #include <config.h>
832 1.1 christos #endif
833 1.1 christos #include <stdio.h>
834 1.1 christos #include <stdarg.h>
835 1.1 christos #include <stdlib.h>
836 1.1 christos #include <stdint.h>
837 1.1 christos #include <string.h>
838 1.1 christos #ifdef HAVE_UNISTD_H
839 1.1 christos #include <unistd.h>
840 1.1 christos #endif
841 1.1 christos #undef ECHO
842 1.1 christos #include "symbol.h"
843 1.1 christos #include "asn1parse.h"
844 1.1 christos #include "lex.h"
845 1.1 christos #include "gen_locl.h"
846 1.1 christos
847 1.1 christos static unsigned lineno = 1;
848 1.1 christos
849 1.1 christos #undef ECHO
850 1.1 christos
851 1.1 christos static void unterminated(const char *, unsigned);
852 1.1 christos
853 1.1 christos /* This is for broken old lexes (solaris 10 and hpux) */
854 1.1 christos #line 853 "lex.c"
855 1.1 christos
856 1.1 christos #define INITIAL 0
857 1.1 christos
858 1.1 christos #ifndef YY_NO_UNISTD_H
859 1.1 christos /* Special case for "unistd.h", since it is non-ANSI. We include it way
860 1.1 christos * down here because we want the user's section 1 to have been scanned first.
861 1.1 christos * The user has a chance to override it with an option.
862 1.1 christos */
863 1.1 christos #include <unistd.h>
864 1.1 christos #endif
865 1.1 christos
866 1.1 christos #ifndef YY_EXTRA_TYPE
867 1.1 christos #define YY_EXTRA_TYPE void *
868 1.1 christos #endif
869 1.1 christos
870 1.1 christos static int yy_init_globals (void );
871 1.1 christos
872 1.1 christos /* Accessor methods to globals.
873 1.1 christos These are made visible to non-reentrant scanners for convenience. */
874 1.1 christos
875 1.1 christos int yylex_destroy (void );
876 1.1 christos
877 1.1 christos int yyget_debug (void );
878 1.1 christos
879 1.1 christos void yyset_debug (int debug_flag );
880 1.1 christos
881 1.1 christos YY_EXTRA_TYPE yyget_extra (void );
882 1.1 christos
883 1.1 christos void yyset_extra (YY_EXTRA_TYPE user_defined );
884 1.1 christos
885 1.1 christos FILE *yyget_in (void );
886 1.1 christos
887 1.1 christos void yyset_in (FILE * in_str );
888 1.1 christos
889 1.1 christos FILE *yyget_out (void );
890 1.1 christos
891 1.1 christos void yyset_out (FILE * out_str );
892 1.1 christos
893 1.1 christos yy_size_t yyget_leng (void );
894 1.1 christos
895 1.1 christos char *yyget_text (void );
896 1.1 christos
897 1.1 christos int yyget_lineno (void );
898 1.1 christos
899 1.1 christos void yyset_lineno (int line_number );
900 1.1 christos
901 1.1 christos /* Macros after this point can all be overridden by user definitions in
902 1.1 christos * section 1.
903 1.1 christos */
904 1.1 christos
905 1.1 christos #ifndef YY_SKIP_YYWRAP
906 1.1 christos #ifdef __cplusplus
907 1.1 christos extern "C" int yywrap (void );
908 1.1 christos #else
909 1.1 christos extern int yywrap (void );
910 1.1 christos #endif
911 1.1 christos #endif
912 1.1 christos
913 1.1 christos static void yyunput (int c,char *buf_ptr );
914 1.1 christos
915 1.1 christos #ifndef yytext_ptr
916 1.1 christos static void yy_flex_strncpy (char *,yyconst char *,int );
917 1.1 christos #endif
918 1.1 christos
919 1.1 christos #ifdef YY_NEED_STRLEN
920 1.1 christos static int yy_flex_strlen (yyconst char * );
921 1.1 christos #endif
922 1.1 christos
923 1.1 christos #ifndef YY_NO_INPUT
924 1.1 christos
925 1.1 christos #ifdef __cplusplus
926 1.1 christos static int yyinput (void );
927 1.1 christos #else
928 1.1 christos static int input (void );
929 1.1 christos #endif
930 1.1 christos
931 1.1 christos #endif
932 1.1 christos
933 1.1 christos /* Amount of stuff to slurp up with each read. */
934 1.1 christos #ifndef YY_READ_BUF_SIZE
935 1.1 christos #define YY_READ_BUF_SIZE 8192
936 1.1 christos #endif
937 1.1 christos
938 1.1 christos /* Copy whatever the last rule matched to the standard output. */
939 1.1 christos #ifndef ECHO
940 1.1 christos /* This used to be an fputs(), but since the string might contain NUL's,
941 1.1 christos * we now use fwrite().
942 1.1 christos */
943 1.1 christos #define ECHO fwrite( yytext, yyleng, 1, yyout )
944 1.1 christos #endif
945 1.1 christos
946 1.1 christos /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
947 1.1 christos * is returned in "result".
948 1.1 christos */
949 1.1 christos #ifndef YY_INPUT
950 1.1 christos #define YY_INPUT(buf,result,max_size) \
951 1.1 christos if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
952 1.1 christos { \
953 1.1 christos int c = '*'; \
954 1.1 christos yy_size_t n; \
955 1.1 christos for ( n = 0; n < max_size && \
956 1.1 christos (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
957 1.1 christos buf[n] = (char) c; \
958 1.1 christos if ( c == '\n' ) \
959 1.1 christos buf[n++] = (char) c; \
960 1.1 christos if ( c == EOF && ferror( yyin ) ) \
961 1.1 christos YY_FATAL_ERROR( "input in flex scanner failed" ); \
962 1.1 christos result = n; \
963 1.1 christos } \
964 1.1 christos else \
965 1.1 christos { \
966 1.1 christos errno=0; \
967 1.1 christos while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
968 1.1 christos { \
969 1.1 christos if( errno != EINTR) \
970 1.1 christos { \
971 1.1 christos YY_FATAL_ERROR( "input in flex scanner failed" ); \
972 1.1 christos break; \
973 1.1 christos } \
974 1.1 christos errno=0; \
975 1.1 christos clearerr(yyin); \
976 1.1 christos } \
977 1.1 christos }\
978 1.1 christos \
979 1.1 christos
980 1.1 christos #endif
981 1.1 christos
982 1.1 christos /* No semi-colon after return; correct usage is to write "yyterminate();" -
983 1.1 christos * we don't want an extra ';' after the "return" because that will cause
984 1.1 christos * some compilers to complain about unreachable statements.
985 1.1 christos */
986 1.1 christos #ifndef yyterminate
987 1.1 christos #define yyterminate() return YY_NULL
988 1.1 christos #endif
989 1.1 christos
990 1.1 christos /* Number of entries by which start-condition stack grows. */
991 1.1 christos #ifndef YY_START_STACK_INCR
992 1.1 christos #define YY_START_STACK_INCR 25
993 1.1 christos #endif
994 1.1 christos
995 1.1 christos /* Report a fatal error. */
996 1.1 christos #ifndef YY_FATAL_ERROR
997 1.1 christos #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
998 1.1 christos #endif
999 1.1 christos
1000 1.1 christos /* end tables serialization structures and prototypes */
1001 1.1 christos
1002 1.1 christos /* Default declaration of generated scanner - a define so the user can
1003 1.1 christos * easily add parameters.
1004 1.1 christos */
1005 1.1 christos #ifndef YY_DECL
1006 1.1 christos #define YY_DECL_IS_OURS 1
1007 1.1 christos
1008 1.1 christos extern int yylex (void);
1009 1.1 christos
1010 1.1 christos #define YY_DECL int yylex (void)
1011 1.1 christos #endif /* !YY_DECL */
1012 1.1 christos
1013 1.1 christos /* Code executed at the beginning of each rule, after yytext and yyleng
1014 1.1 christos * have been set up.
1015 1.1 christos */
1016 1.1 christos #ifndef YY_USER_ACTION
1017 1.1 christos #define YY_USER_ACTION
1018 1.1 christos #endif
1019 1.1 christos
1020 1.1 christos /* Code executed at the end of each rule. */
1021 1.1 christos #ifndef YY_BREAK
1022 1.1 christos #define YY_BREAK break;
1023 1.1 christos #endif
1024 1.1 christos
1025 1.1 christos #define YY_RULE_SETUP \
1026 1.1 christos YY_USER_ACTION
1027 1.1 christos
1028 1.1 christos /** The main scanner function which does all the work.
1029 1.1 christos */
1030 1.1 christos YY_DECL
1031 1.1 christos {
1032 1.1 christos register yy_state_type yy_current_state;
1033 1.1 christos register char *yy_cp, *yy_bp;
1034 1.1 christos register int yy_act;
1035 1.1 christos
1036 1.1 christos #line 69 "lex.l"
1037 1.1 christos
1038 1.1 christos #line 1037 "lex.c"
1039 1.1 christos
1040 1.1 christos if ( !(yy_init) )
1041 1.1 christos {
1042 1.1 christos (yy_init) = 1;
1043 1.1 christos
1044 1.1 christos #ifdef YY_USER_INIT
1045 1.1 christos YY_USER_INIT;
1046 1.1 christos #endif
1047 1.1 christos
1048 1.1 christos if ( ! (yy_start) )
1049 1.1 christos (yy_start) = 1; /* first start state */
1050 1.1 christos
1051 1.1 christos if ( ! yyin )
1052 1.1 christos yyin = stdin;
1053 1.1 christos
1054 1.1 christos if ( ! yyout )
1055 1.1 christos yyout = stdout;
1056 1.1 christos
1057 1.1 christos if ( ! YY_CURRENT_BUFFER ) {
1058 1.1 christos yyensure_buffer_stack ();
1059 1.1 christos YY_CURRENT_BUFFER_LVALUE =
1060 1.1 christos yy_create_buffer(yyin,YY_BUF_SIZE );
1061 1.1 christos }
1062 1.1 christos
1063 1.1 christos yy_load_buffer_state( );
1064 1.1 christos }
1065 1.1 christos
1066 1.1 christos while ( 1 ) /* loops until end-of-file is reached */
1067 1.1 christos {
1068 1.1 christos yy_cp = (yy_c_buf_p);
1069 1.1 christos
1070 1.1 christos /* Support of yytext. */
1071 1.1 christos *yy_cp = (yy_hold_char);
1072 1.1 christos
1073 1.1 christos /* yy_bp points to the position in yy_ch_buf of the start of
1074 1.1 christos * the current run.
1075 1.1 christos */
1076 1.1 christos yy_bp = yy_cp;
1077 1.1 christos
1078 1.1 christos yy_current_state = (yy_start);
1079 1.1 christos yy_match:
1080 1.1 christos do
1081 1.1 christos {
1082 1.1 christos register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1083 1.1 christos if ( yy_accept[yy_current_state] )
1084 1.1 christos {
1085 1.1 christos (yy_last_accepting_state) = yy_current_state;
1086 1.1 christos (yy_last_accepting_cpos) = yy_cp;
1087 1.1 christos }
1088 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1089 1.1 christos {
1090 1.1 christos yy_current_state = (int) yy_def[yy_current_state];
1091 1.1 christos if ( yy_current_state >= 568 )
1092 1.1 christos yy_c = yy_meta[(unsigned int) yy_c];
1093 1.1 christos }
1094 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1095 1.1 christos ++yy_cp;
1096 1.1 christos }
1097 1.1 christos while ( yy_base[yy_current_state] != 637 );
1098 1.1 christos
1099 1.1 christos yy_find_action:
1100 1.1 christos yy_act = yy_accept[yy_current_state];
1101 1.1 christos if ( yy_act == 0 )
1102 1.1 christos { /* have to back up */
1103 1.1 christos yy_cp = (yy_last_accepting_cpos);
1104 1.1 christos yy_current_state = (yy_last_accepting_state);
1105 1.1 christos yy_act = yy_accept[yy_current_state];
1106 1.1 christos }
1107 1.1 christos
1108 1.1 christos YY_DO_BEFORE_ACTION;
1109 1.1 christos
1110 1.1 christos do_action: /* This label is used only to access EOF actions. */
1111 1.1 christos
1112 1.1 christos switch ( yy_act )
1113 1.1 christos { /* beginning of action switch */
1114 1.1 christos case 0: /* must back up */
1115 1.1 christos /* undo the effects of YY_DO_BEFORE_ACTION */
1116 1.1 christos *yy_cp = (yy_hold_char);
1117 1.1 christos yy_cp = (yy_last_accepting_cpos);
1118 1.1 christos yy_current_state = (yy_last_accepting_state);
1119 1.1 christos goto yy_find_action;
1120 1.1 christos
1121 1.1 christos case 1:
1122 1.1 christos YY_RULE_SETUP
1123 1.1 christos #line 70 "lex.l"
1124 1.1 christos { return kw_ABSENT; }
1125 1.1 christos YY_BREAK
1126 1.1 christos case 2:
1127 1.1 christos YY_RULE_SETUP
1128 1.1 christos #line 71 "lex.l"
1129 1.1 christos { return kw_ABSTRACT_SYNTAX; }
1130 1.1 christos YY_BREAK
1131 1.1 christos case 3:
1132 1.1 christos YY_RULE_SETUP
1133 1.1 christos #line 72 "lex.l"
1134 1.1 christos { return kw_ALL; }
1135 1.1 christos YY_BREAK
1136 1.1 christos case 4:
1137 1.1 christos YY_RULE_SETUP
1138 1.1 christos #line 73 "lex.l"
1139 1.1 christos { return kw_APPLICATION; }
1140 1.1 christos YY_BREAK
1141 1.1 christos case 5:
1142 1.1 christos YY_RULE_SETUP
1143 1.1 christos #line 74 "lex.l"
1144 1.1 christos { return kw_AUTOMATIC; }
1145 1.1 christos YY_BREAK
1146 1.1 christos case 6:
1147 1.1 christos YY_RULE_SETUP
1148 1.1 christos #line 75 "lex.l"
1149 1.1 christos { return kw_BEGIN; }
1150 1.1 christos YY_BREAK
1151 1.1 christos case 7:
1152 1.1 christos YY_RULE_SETUP
1153 1.1 christos #line 76 "lex.l"
1154 1.1 christos { return kw_BIT; }
1155 1.1 christos YY_BREAK
1156 1.1 christos case 8:
1157 1.1 christos YY_RULE_SETUP
1158 1.1 christos #line 77 "lex.l"
1159 1.1 christos { return kw_BMPString; }
1160 1.1 christos YY_BREAK
1161 1.1 christos case 9:
1162 1.1 christos YY_RULE_SETUP
1163 1.1 christos #line 78 "lex.l"
1164 1.1 christos { return kw_BOOLEAN; }
1165 1.1 christos YY_BREAK
1166 1.1 christos case 10:
1167 1.1 christos YY_RULE_SETUP
1168 1.1 christos #line 79 "lex.l"
1169 1.1 christos { return kw_BY; }
1170 1.1 christos YY_BREAK
1171 1.1 christos case 11:
1172 1.1 christos YY_RULE_SETUP
1173 1.1 christos #line 80 "lex.l"
1174 1.1 christos { return kw_CHARACTER; }
1175 1.1 christos YY_BREAK
1176 1.1 christos case 12:
1177 1.1 christos YY_RULE_SETUP
1178 1.1 christos #line 81 "lex.l"
1179 1.1 christos { return kw_CHOICE; }
1180 1.1 christos YY_BREAK
1181 1.1 christos case 13:
1182 1.1 christos YY_RULE_SETUP
1183 1.1 christos #line 82 "lex.l"
1184 1.1 christos { return kw_CLASS; }
1185 1.1 christos YY_BREAK
1186 1.1 christos case 14:
1187 1.1 christos YY_RULE_SETUP
1188 1.1 christos #line 83 "lex.l"
1189 1.1 christos { return kw_COMPONENT; }
1190 1.1 christos YY_BREAK
1191 1.1 christos case 15:
1192 1.1 christos YY_RULE_SETUP
1193 1.1 christos #line 84 "lex.l"
1194 1.1 christos { return kw_COMPONENTS; }
1195 1.1 christos YY_BREAK
1196 1.1 christos case 16:
1197 1.1 christos YY_RULE_SETUP
1198 1.1 christos #line 85 "lex.l"
1199 1.1 christos { return kw_CONSTRAINED; }
1200 1.1 christos YY_BREAK
1201 1.1 christos case 17:
1202 1.1 christos YY_RULE_SETUP
1203 1.1 christos #line 86 "lex.l"
1204 1.1 christos { return kw_CONTAINING; }
1205 1.1 christos YY_BREAK
1206 1.1 christos case 18:
1207 1.1 christos YY_RULE_SETUP
1208 1.1 christos #line 87 "lex.l"
1209 1.1 christos { return kw_DEFAULT; }
1210 1.1 christos YY_BREAK
1211 1.1 christos case 19:
1212 1.1 christos YY_RULE_SETUP
1213 1.1 christos #line 88 "lex.l"
1214 1.1 christos { return kw_DEFINITIONS; }
1215 1.1 christos YY_BREAK
1216 1.1 christos case 20:
1217 1.1 christos YY_RULE_SETUP
1218 1.1 christos #line 89 "lex.l"
1219 1.1 christos { return kw_EMBEDDED; }
1220 1.1 christos YY_BREAK
1221 1.1 christos case 21:
1222 1.1 christos YY_RULE_SETUP
1223 1.1 christos #line 90 "lex.l"
1224 1.1 christos { return kw_ENCODED; }
1225 1.1 christos YY_BREAK
1226 1.1 christos case 22:
1227 1.1 christos YY_RULE_SETUP
1228 1.1 christos #line 91 "lex.l"
1229 1.1 christos { return kw_END; }
1230 1.1 christos YY_BREAK
1231 1.1 christos case 23:
1232 1.1 christos YY_RULE_SETUP
1233 1.1 christos #line 92 "lex.l"
1234 1.1 christos { return kw_ENUMERATED; }
1235 1.1 christos YY_BREAK
1236 1.1 christos case 24:
1237 1.1 christos YY_RULE_SETUP
1238 1.1 christos #line 93 "lex.l"
1239 1.1 christos { return kw_EXCEPT; }
1240 1.1 christos YY_BREAK
1241 1.1 christos case 25:
1242 1.1 christos YY_RULE_SETUP
1243 1.1 christos #line 94 "lex.l"
1244 1.1 christos { return kw_EXPLICIT; }
1245 1.1 christos YY_BREAK
1246 1.1 christos case 26:
1247 1.1 christos YY_RULE_SETUP
1248 1.1 christos #line 95 "lex.l"
1249 1.1 christos { return kw_EXPORTS; }
1250 1.1 christos YY_BREAK
1251 1.1 christos case 27:
1252 1.1 christos YY_RULE_SETUP
1253 1.1 christos #line 96 "lex.l"
1254 1.1 christos { return kw_EXTENSIBILITY; }
1255 1.1 christos YY_BREAK
1256 1.1 christos case 28:
1257 1.1 christos YY_RULE_SETUP
1258 1.1 christos #line 97 "lex.l"
1259 1.1 christos { return kw_EXTERNAL; }
1260 1.1 christos YY_BREAK
1261 1.1 christos case 29:
1262 1.1 christos YY_RULE_SETUP
1263 1.1 christos #line 98 "lex.l"
1264 1.1 christos { return kw_FALSE; }
1265 1.1 christos YY_BREAK
1266 1.1 christos case 30:
1267 1.1 christos YY_RULE_SETUP
1268 1.1 christos #line 99 "lex.l"
1269 1.1 christos { return kw_FROM; }
1270 1.1 christos YY_BREAK
1271 1.1 christos case 31:
1272 1.1 christos YY_RULE_SETUP
1273 1.1 christos #line 100 "lex.l"
1274 1.1 christos { return kw_GeneralString; }
1275 1.1 christos YY_BREAK
1276 1.1 christos case 32:
1277 1.1 christos YY_RULE_SETUP
1278 1.1 christos #line 101 "lex.l"
1279 1.1 christos { return kw_GeneralizedTime; }
1280 1.1 christos YY_BREAK
1281 1.1 christos case 33:
1282 1.1 christos YY_RULE_SETUP
1283 1.1 christos #line 102 "lex.l"
1284 1.1 christos { return kw_GraphicString; }
1285 1.1 christos YY_BREAK
1286 1.1 christos case 34:
1287 1.1 christos YY_RULE_SETUP
1288 1.1 christos #line 103 "lex.l"
1289 1.1 christos { return kw_IA5String; }
1290 1.1 christos YY_BREAK
1291 1.1 christos case 35:
1292 1.1 christos YY_RULE_SETUP
1293 1.1 christos #line 104 "lex.l"
1294 1.1 christos { return kw_IDENTIFIER; }
1295 1.1 christos YY_BREAK
1296 1.1 christos case 36:
1297 1.1 christos YY_RULE_SETUP
1298 1.1 christos #line 105 "lex.l"
1299 1.1 christos { return kw_IMPLICIT; }
1300 1.1 christos YY_BREAK
1301 1.1 christos case 37:
1302 1.1 christos YY_RULE_SETUP
1303 1.1 christos #line 106 "lex.l"
1304 1.1 christos { return kw_IMPLIED; }
1305 1.1 christos YY_BREAK
1306 1.1 christos case 38:
1307 1.1 christos YY_RULE_SETUP
1308 1.1 christos #line 107 "lex.l"
1309 1.1 christos { return kw_IMPORTS; }
1310 1.1 christos YY_BREAK
1311 1.1 christos case 39:
1312 1.1 christos YY_RULE_SETUP
1313 1.1 christos #line 108 "lex.l"
1314 1.1 christos { return kw_INCLUDES; }
1315 1.1 christos YY_BREAK
1316 1.1 christos case 40:
1317 1.1 christos YY_RULE_SETUP
1318 1.1 christos #line 109 "lex.l"
1319 1.1 christos { return kw_INSTANCE; }
1320 1.1 christos YY_BREAK
1321 1.1 christos case 41:
1322 1.1 christos YY_RULE_SETUP
1323 1.1 christos #line 110 "lex.l"
1324 1.1 christos { return kw_INTEGER; }
1325 1.1 christos YY_BREAK
1326 1.1 christos case 42:
1327 1.1 christos YY_RULE_SETUP
1328 1.1 christos #line 111 "lex.l"
1329 1.1 christos { return kw_INTERSECTION; }
1330 1.1 christos YY_BREAK
1331 1.1 christos case 43:
1332 1.1 christos YY_RULE_SETUP
1333 1.1 christos #line 112 "lex.l"
1334 1.1 christos { return kw_ISO646String; }
1335 1.1 christos YY_BREAK
1336 1.1 christos case 44:
1337 1.1 christos YY_RULE_SETUP
1338 1.1 christos #line 113 "lex.l"
1339 1.1 christos { return kw_MAX; }
1340 1.1 christos YY_BREAK
1341 1.1 christos case 45:
1342 1.1 christos YY_RULE_SETUP
1343 1.1 christos #line 114 "lex.l"
1344 1.1 christos { return kw_MIN; }
1345 1.1 christos YY_BREAK
1346 1.1 christos case 46:
1347 1.1 christos YY_RULE_SETUP
1348 1.1 christos #line 115 "lex.l"
1349 1.1 christos { return kw_MINUS_INFINITY; }
1350 1.1 christos YY_BREAK
1351 1.1 christos case 47:
1352 1.1 christos YY_RULE_SETUP
1353 1.1 christos #line 116 "lex.l"
1354 1.1 christos { return kw_NULL; }
1355 1.1 christos YY_BREAK
1356 1.1 christos case 48:
1357 1.1 christos YY_RULE_SETUP
1358 1.1 christos #line 117 "lex.l"
1359 1.1 christos { return kw_NumericString; }
1360 1.1 christos YY_BREAK
1361 1.1 christos case 49:
1362 1.1 christos YY_RULE_SETUP
1363 1.1 christos #line 118 "lex.l"
1364 1.1 christos { return kw_OBJECT; }
1365 1.1 christos YY_BREAK
1366 1.1 christos case 50:
1367 1.1 christos YY_RULE_SETUP
1368 1.1 christos #line 119 "lex.l"
1369 1.1 christos { return kw_OCTET; }
1370 1.1 christos YY_BREAK
1371 1.1 christos case 51:
1372 1.1 christos YY_RULE_SETUP
1373 1.1 christos #line 120 "lex.l"
1374 1.1 christos { return kw_OF; }
1375 1.1 christos YY_BREAK
1376 1.1 christos case 52:
1377 1.1 christos YY_RULE_SETUP
1378 1.1 christos #line 121 "lex.l"
1379 1.1 christos { return kw_OPTIONAL; }
1380 1.1 christos YY_BREAK
1381 1.1 christos case 53:
1382 1.1 christos YY_RULE_SETUP
1383 1.1 christos #line 122 "lex.l"
1384 1.1 christos { return kw_ObjectDescriptor; }
1385 1.1 christos YY_BREAK
1386 1.1 christos case 54:
1387 1.1 christos YY_RULE_SETUP
1388 1.1 christos #line 123 "lex.l"
1389 1.1 christos { return kw_PATTERN; }
1390 1.1 christos YY_BREAK
1391 1.1 christos case 55:
1392 1.1 christos YY_RULE_SETUP
1393 1.1 christos #line 124 "lex.l"
1394 1.1 christos { return kw_PDV; }
1395 1.1 christos YY_BREAK
1396 1.1 christos case 56:
1397 1.1 christos YY_RULE_SETUP
1398 1.1 christos #line 125 "lex.l"
1399 1.1 christos { return kw_PLUS_INFINITY; }
1400 1.1 christos YY_BREAK
1401 1.1 christos case 57:
1402 1.1 christos YY_RULE_SETUP
1403 1.1 christos #line 126 "lex.l"
1404 1.1 christos { return kw_PRESENT; }
1405 1.1 christos YY_BREAK
1406 1.1 christos case 58:
1407 1.1 christos YY_RULE_SETUP
1408 1.1 christos #line 127 "lex.l"
1409 1.1 christos { return kw_PRIVATE; }
1410 1.1 christos YY_BREAK
1411 1.1 christos case 59:
1412 1.1 christos YY_RULE_SETUP
1413 1.1 christos #line 128 "lex.l"
1414 1.1 christos { return kw_PrintableString; }
1415 1.1 christos YY_BREAK
1416 1.1 christos case 60:
1417 1.1 christos YY_RULE_SETUP
1418 1.1 christos #line 129 "lex.l"
1419 1.1 christos { return kw_REAL; }
1420 1.1 christos YY_BREAK
1421 1.1 christos case 61:
1422 1.1 christos YY_RULE_SETUP
1423 1.1 christos #line 130 "lex.l"
1424 1.1 christos { return kw_RELATIVE_OID; }
1425 1.1 christos YY_BREAK
1426 1.1 christos case 62:
1427 1.1 christos YY_RULE_SETUP
1428 1.1 christos #line 131 "lex.l"
1429 1.1 christos { return kw_SEQUENCE; }
1430 1.1 christos YY_BREAK
1431 1.1 christos case 63:
1432 1.1 christos YY_RULE_SETUP
1433 1.1 christos #line 132 "lex.l"
1434 1.1 christos { return kw_SET; }
1435 1.1 christos YY_BREAK
1436 1.1 christos case 64:
1437 1.1 christos YY_RULE_SETUP
1438 1.1 christos #line 133 "lex.l"
1439 1.1 christos { return kw_SIZE; }
1440 1.1 christos YY_BREAK
1441 1.1 christos case 65:
1442 1.1 christos YY_RULE_SETUP
1443 1.1 christos #line 134 "lex.l"
1444 1.1 christos { return kw_STRING; }
1445 1.1 christos YY_BREAK
1446 1.1 christos case 66:
1447 1.1 christos YY_RULE_SETUP
1448 1.1 christos #line 135 "lex.l"
1449 1.1 christos { return kw_SYNTAX; }
1450 1.1 christos YY_BREAK
1451 1.1 christos case 67:
1452 1.1 christos YY_RULE_SETUP
1453 1.1 christos #line 136 "lex.l"
1454 1.1 christos { return kw_T61String; }
1455 1.1 christos YY_BREAK
1456 1.1 christos case 68:
1457 1.1 christos YY_RULE_SETUP
1458 1.1 christos #line 137 "lex.l"
1459 1.1 christos { return kw_TAGS; }
1460 1.1 christos YY_BREAK
1461 1.1 christos case 69:
1462 1.1 christos YY_RULE_SETUP
1463 1.1 christos #line 138 "lex.l"
1464 1.1 christos { return kw_TRUE; }
1465 1.1 christos YY_BREAK
1466 1.1 christos case 70:
1467 1.1 christos YY_RULE_SETUP
1468 1.1 christos #line 139 "lex.l"
1469 1.1 christos { return kw_TYPE_IDENTIFIER; }
1470 1.1 christos YY_BREAK
1471 1.1 christos case 71:
1472 1.1 christos YY_RULE_SETUP
1473 1.1 christos #line 140 "lex.l"
1474 1.1 christos { return kw_TeletexString; }
1475 1.1 christos YY_BREAK
1476 1.1 christos case 72:
1477 1.1 christos YY_RULE_SETUP
1478 1.1 christos #line 141 "lex.l"
1479 1.1 christos { return kw_UNION; }
1480 1.1 christos YY_BREAK
1481 1.1 christos case 73:
1482 1.1 christos YY_RULE_SETUP
1483 1.1 christos #line 142 "lex.l"
1484 1.1 christos { return kw_UNIQUE; }
1485 1.1 christos YY_BREAK
1486 1.1 christos case 74:
1487 1.1 christos YY_RULE_SETUP
1488 1.1 christos #line 143 "lex.l"
1489 1.1 christos { return kw_UNIVERSAL; }
1490 1.1 christos YY_BREAK
1491 1.1 christos case 75:
1492 1.1 christos YY_RULE_SETUP
1493 1.1 christos #line 144 "lex.l"
1494 1.1 christos { return kw_UTCTime; }
1495 1.1 christos YY_BREAK
1496 1.1 christos case 76:
1497 1.1 christos YY_RULE_SETUP
1498 1.1 christos #line 145 "lex.l"
1499 1.1 christos { return kw_UTF8String; }
1500 1.1 christos YY_BREAK
1501 1.1 christos case 77:
1502 1.1 christos YY_RULE_SETUP
1503 1.1 christos #line 146 "lex.l"
1504 1.1 christos { return kw_UniversalString; }
1505 1.1 christos YY_BREAK
1506 1.1 christos case 78:
1507 1.1 christos YY_RULE_SETUP
1508 1.1 christos #line 147 "lex.l"
1509 1.1 christos { return kw_VideotexString; }
1510 1.1 christos YY_BREAK
1511 1.1 christos case 79:
1512 1.1 christos YY_RULE_SETUP
1513 1.1 christos #line 148 "lex.l"
1514 1.1 christos { return kw_VisibleString; }
1515 1.1 christos YY_BREAK
1516 1.1 christos case 80:
1517 1.1 christos YY_RULE_SETUP
1518 1.1 christos #line 149 "lex.l"
1519 1.1 christos { return kw_WITH; }
1520 1.1 christos YY_BREAK
1521 1.1 christos case 81:
1522 1.1 christos YY_RULE_SETUP
1523 1.1 christos #line 150 "lex.l"
1524 1.1 christos { return *yytext; }
1525 1.1 christos YY_BREAK
1526 1.1 christos case 82:
1527 1.1 christos YY_RULE_SETUP
1528 1.1 christos #line 151 "lex.l"
1529 1.1 christos { return *yytext; }
1530 1.1 christos YY_BREAK
1531 1.1 christos case 83:
1532 1.1 christos YY_RULE_SETUP
1533 1.1 christos #line 152 "lex.l"
1534 1.1 christos { return *yytext; }
1535 1.1 christos YY_BREAK
1536 1.1 christos case 84:
1537 1.1 christos YY_RULE_SETUP
1538 1.1 christos #line 153 "lex.l"
1539 1.1 christos { return EEQUAL; }
1540 1.1 christos YY_BREAK
1541 1.1 christos case 85:
1542 1.1 christos YY_RULE_SETUP
1543 1.1 christos #line 154 "lex.l"
1544 1.1 christos {
1545 1.1 christos int c, start_lineno = lineno;
1546 1.1 christos int f = 0;
1547 1.1 christos while((c = input()) != EOF) {
1548 1.1 christos if(f && c == '-')
1549 1.1 christos break;
1550 1.1 christos if(c == '-') {
1551 1.1 christos f = 1;
1552 1.1 christos continue;
1553 1.1 christos }
1554 1.1 christos if(c == '\n') {
1555 1.1 christos lineno++;
1556 1.1 christos break;
1557 1.1 christos }
1558 1.1 christos f = 0;
1559 1.1 christos }
1560 1.1 christos if(c == EOF)
1561 1.1 christos unterminated("comment", start_lineno);
1562 1.1 christos }
1563 1.1 christos YY_BREAK
1564 1.1 christos case 86:
1565 1.1 christos YY_RULE_SETUP
1566 1.1 christos #line 173 "lex.l"
1567 1.1 christos {
1568 1.1 christos int c, start_lineno = lineno;
1569 1.1 christos int level = 1;
1570 1.1 christos int seen_star = 0;
1571 1.1 christos int seen_slash = 0;
1572 1.1 christos while((c = input()) != EOF) {
1573 1.1 christos if(c == '/') {
1574 1.1 christos if(seen_star) {
1575 1.1 christos if(--level == 0)
1576 1.1 christos break;
1577 1.1 christos seen_star = 0;
1578 1.1 christos continue;
1579 1.1 christos }
1580 1.1 christos seen_slash = 1;
1581 1.1 christos continue;
1582 1.1 christos }
1583 1.1 christos if(seen_star && c == '/') {
1584 1.1 christos if(--level == 0)
1585 1.1 christos break;
1586 1.1 christos seen_star = 0;
1587 1.1 christos continue;
1588 1.1 christos }
1589 1.1 christos if(c == '*') {
1590 1.1 christos if(seen_slash) {
1591 1.1 christos level++;
1592 1.1 christos seen_star = seen_slash = 0;
1593 1.1 christos continue;
1594 1.1 christos }
1595 1.1 christos seen_star = 1;
1596 1.1 christos continue;
1597 1.1 christos }
1598 1.1 christos seen_star = seen_slash = 0;
1599 1.1 christos if(c == '\n') {
1600 1.1 christos lineno++;
1601 1.1 christos continue;
1602 1.1 christos }
1603 1.1 christos }
1604 1.1 christos if(c == EOF)
1605 1.1 christos unterminated("comment", start_lineno);
1606 1.1 christos }
1607 1.1 christos YY_BREAK
1608 1.1 christos case 87:
1609 1.1 christos YY_RULE_SETUP
1610 1.1 christos #line 213 "lex.l"
1611 1.1 christos {
1612 1.1 christos int start_lineno = lineno;
1613 1.1 christos int c;
1614 1.1 christos char buf[1024];
1615 1.1 christos char *p = buf;
1616 1.1 christos int f = 0;
1617 1.1 christos int skip_ws = 0;
1618 1.1 christos
1619 1.1 christos while((c = input()) != EOF) {
1620 1.1 christos if(isspace(c) && skip_ws) {
1621 1.1 christos if(c == '\n')
1622 1.1 christos lineno++;
1623 1.1 christos continue;
1624 1.1 christos }
1625 1.1 christos skip_ws = 0;
1626 1.1 christos
1627 1.1 christos if(c == '"') {
1628 1.1 christos if(f) {
1629 1.1 christos *p++ = '"';
1630 1.1 christos f = 0;
1631 1.1 christos } else
1632 1.1 christos f = 1;
1633 1.1 christos continue;
1634 1.1 christos }
1635 1.1 christos if(f == 1) {
1636 1.1 christos unput(c);
1637 1.1 christos break;
1638 1.1 christos }
1639 1.1 christos if(c == '\n') {
1640 1.1 christos lineno++;
1641 1.1 christos while(p > buf && isspace((unsigned char)p[-1]))
1642 1.1 christos p--;
1643 1.1 christos skip_ws = 1;
1644 1.1 christos continue;
1645 1.1 christos }
1646 1.1 christos *p++ = c;
1647 1.1 christos }
1648 1.1 christos if(c == EOF)
1649 1.1 christos unterminated("string", start_lineno);
1650 1.1 christos *p++ = '\0';
1651 1.1 christos fprintf(stderr, "string -- %s\n", buf);
1652 1.1 christos yylval.name = estrdup(buf);
1653 1.1 christos return STRING;
1654 1.1 christos }
1655 1.1 christos YY_BREAK
1656 1.1 christos case 88:
1657 1.1 christos YY_RULE_SETUP
1658 1.1 christos #line 258 "lex.l"
1659 1.1 christos { char *e, *y = yytext;
1660 1.1 christos yylval.constant = strtoll((const char *)yytext,
1661 1.1 christos &e, 0);
1662 1.1 christos if(e == y)
1663 1.1 christos lex_error_message("malformed constant (%s)", yytext);
1664 1.1 christos else
1665 1.1 christos return NUMBER;
1666 1.1 christos }
1667 1.1 christos YY_BREAK
1668 1.1 christos case 89:
1669 1.1 christos YY_RULE_SETUP
1670 1.1 christos #line 266 "lex.l"
1671 1.1 christos {
1672 1.1 christos yylval.name = estrdup ((const char *)yytext);
1673 1.1 christos return IDENTIFIER;
1674 1.1 christos }
1675 1.1 christos YY_BREAK
1676 1.1 christos case 90:
1677 1.1 christos YY_RULE_SETUP
1678 1.1 christos #line 270 "lex.l"
1679 1.1 christos ;
1680 1.1 christos YY_BREAK
1681 1.1 christos case 91:
1682 1.1 christos /* rule 91 can match eol */
1683 1.1 christos YY_RULE_SETUP
1684 1.1 christos #line 271 "lex.l"
1685 1.1 christos { ++lineno; }
1686 1.1 christos YY_BREAK
1687 1.1 christos case 92:
1688 1.1 christos YY_RULE_SETUP
1689 1.1 christos #line 272 "lex.l"
1690 1.1 christos { return ELLIPSIS; }
1691 1.1 christos YY_BREAK
1692 1.1 christos case 93:
1693 1.1 christos YY_RULE_SETUP
1694 1.1 christos #line 273 "lex.l"
1695 1.1 christos { return RANGE; }
1696 1.1 christos YY_BREAK
1697 1.1 christos case 94:
1698 1.1 christos YY_RULE_SETUP
1699 1.1 christos #line 274 "lex.l"
1700 1.1 christos { lex_error_message("Ignoring char(%c)\n", *yytext); }
1701 1.1 christos YY_BREAK
1702 1.1 christos case 95:
1703 1.1 christos YY_RULE_SETUP
1704 1.1 christos #line 275 "lex.l"
1705 1.1 christos ECHO;
1706 1.1 christos YY_BREAK
1707 1.1 christos #line 1706 "lex.c"
1708 1.1 christos case YY_STATE_EOF(INITIAL):
1709 1.1 christos yyterminate();
1710 1.1 christos
1711 1.1 christos case YY_END_OF_BUFFER:
1712 1.1 christos {
1713 1.1 christos /* Amount of text matched not including the EOB char. */
1714 1.1 christos int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1715 1.1 christos
1716 1.1 christos /* Undo the effects of YY_DO_BEFORE_ACTION. */
1717 1.1 christos *yy_cp = (yy_hold_char);
1718 1.1 christos YY_RESTORE_YY_MORE_OFFSET
1719 1.1 christos
1720 1.1 christos if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1721 1.1 christos {
1722 1.1 christos /* We're scanning a new file or input source. It's
1723 1.1 christos * possible that this happened because the user
1724 1.1 christos * just pointed yyin at a new source and called
1725 1.1 christos * yylex(). If so, then we have to assure
1726 1.1 christos * consistency between YY_CURRENT_BUFFER and our
1727 1.1 christos * globals. Here is the right place to do so, because
1728 1.1 christos * this is the first action (other than possibly a
1729 1.1 christos * back-up) that will match for the new input source.
1730 1.1 christos */
1731 1.1 christos (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1732 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1733 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1734 1.1 christos }
1735 1.1 christos
1736 1.1 christos /* Note that here we test for yy_c_buf_p "<=" to the position
1737 1.1 christos * of the first EOB in the buffer, since yy_c_buf_p will
1738 1.1 christos * already have been incremented past the NUL character
1739 1.1 christos * (since all states make transitions on EOB to the
1740 1.1 christos * end-of-buffer state). Contrast this with the test
1741 1.1 christos * in input().
1742 1.1 christos */
1743 1.1 christos if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1744 1.1 christos { /* This was really a NUL. */
1745 1.1 christos yy_state_type yy_next_state;
1746 1.1 christos
1747 1.1 christos (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1748 1.1 christos
1749 1.1 christos yy_current_state = yy_get_previous_state( );
1750 1.1 christos
1751 1.1 christos /* Okay, we're now positioned to make the NUL
1752 1.1 christos * transition. We couldn't have
1753 1.1 christos * yy_get_previous_state() go ahead and do it
1754 1.1 christos * for us because it doesn't know how to deal
1755 1.1 christos * with the possibility of jamming (and we don't
1756 1.1 christos * want to build jamming into it because then it
1757 1.1 christos * will run more slowly).
1758 1.1 christos */
1759 1.1 christos
1760 1.1 christos yy_next_state = yy_try_NUL_trans( yy_current_state );
1761 1.1 christos
1762 1.1 christos yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1763 1.1 christos
1764 1.1 christos if ( yy_next_state )
1765 1.1 christos {
1766 1.1 christos /* Consume the NUL. */
1767 1.1 christos yy_cp = ++(yy_c_buf_p);
1768 1.1 christos yy_current_state = yy_next_state;
1769 1.1 christos goto yy_match;
1770 1.1 christos }
1771 1.1 christos
1772 1.1 christos else
1773 1.1 christos {
1774 1.1 christos yy_cp = (yy_c_buf_p);
1775 1.1 christos goto yy_find_action;
1776 1.1 christos }
1777 1.1 christos }
1778 1.1 christos
1779 1.1 christos else switch ( yy_get_next_buffer( ) )
1780 1.1 christos {
1781 1.1 christos case EOB_ACT_END_OF_FILE:
1782 1.1 christos {
1783 1.1 christos (yy_did_buffer_switch_on_eof) = 0;
1784 1.1 christos
1785 1.1 christos if ( yywrap( ) )
1786 1.1 christos {
1787 1.1 christos /* Note: because we've taken care in
1788 1.1 christos * yy_get_next_buffer() to have set up
1789 1.1 christos * yytext, we can now set up
1790 1.1 christos * yy_c_buf_p so that if some total
1791 1.1 christos * hoser (like flex itself) wants to
1792 1.1 christos * call the scanner after we return the
1793 1.1 christos * YY_NULL, it'll still work - another
1794 1.1 christos * YY_NULL will get returned.
1795 1.1 christos */
1796 1.1 christos (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1797 1.1 christos
1798 1.1 christos yy_act = YY_STATE_EOF(YY_START);
1799 1.1 christos goto do_action;
1800 1.1 christos }
1801 1.1 christos
1802 1.1 christos else
1803 1.1 christos {
1804 1.1 christos if ( ! (yy_did_buffer_switch_on_eof) )
1805 1.1 christos YY_NEW_FILE;
1806 1.1 christos }
1807 1.1 christos break;
1808 1.1 christos }
1809 1.1 christos
1810 1.1 christos case EOB_ACT_CONTINUE_SCAN:
1811 1.1 christos (yy_c_buf_p) =
1812 1.1 christos (yytext_ptr) + yy_amount_of_matched_text;
1813 1.1 christos
1814 1.1 christos yy_current_state = yy_get_previous_state( );
1815 1.1 christos
1816 1.1 christos yy_cp = (yy_c_buf_p);
1817 1.1 christos yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1818 1.1 christos goto yy_match;
1819 1.1 christos
1820 1.1 christos case EOB_ACT_LAST_MATCH:
1821 1.1 christos (yy_c_buf_p) =
1822 1.1 christos &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1823 1.1 christos
1824 1.1 christos yy_current_state = yy_get_previous_state( );
1825 1.1 christos
1826 1.1 christos yy_cp = (yy_c_buf_p);
1827 1.1 christos yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1828 1.1 christos goto yy_find_action;
1829 1.1 christos }
1830 1.1 christos break;
1831 1.1 christos }
1832 1.1 christos
1833 1.1 christos default:
1834 1.1 christos YY_FATAL_ERROR(
1835 1.1 christos "fatal flex scanner internal error--no action found" );
1836 1.1 christos } /* end of action switch */
1837 1.1 christos } /* end of scanning one token */
1838 1.1 christos } /* end of yylex */
1839 1.1 christos
1840 1.1 christos /* yy_get_next_buffer - try to read in a new buffer
1841 1.1 christos *
1842 1.1 christos * Returns a code representing an action:
1843 1.1 christos * EOB_ACT_LAST_MATCH -
1844 1.1 christos * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1845 1.1 christos * EOB_ACT_END_OF_FILE - end of file
1846 1.1 christos */
1847 1.1 christos static int yy_get_next_buffer (void)
1848 1.1 christos {
1849 1.1 christos register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1850 1.1 christos register char *source = (yytext_ptr);
1851 1.1 christos register int number_to_move, i;
1852 1.1 christos int ret_val;
1853 1.1 christos
1854 1.1 christos if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1855 1.1 christos YY_FATAL_ERROR(
1856 1.1 christos "fatal flex scanner internal error--end of buffer missed" );
1857 1.1 christos
1858 1.1 christos if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1859 1.1 christos { /* Don't try to fill the buffer, so this is an EOF. */
1860 1.1 christos if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1861 1.1 christos {
1862 1.1 christos /* We matched a single character, the EOB, so
1863 1.1 christos * treat this as a final EOF.
1864 1.1 christos */
1865 1.1 christos return EOB_ACT_END_OF_FILE;
1866 1.1 christos }
1867 1.1 christos
1868 1.1 christos else
1869 1.1 christos {
1870 1.1 christos /* We matched some text prior to the EOB, first
1871 1.1 christos * process it.
1872 1.1 christos */
1873 1.1 christos return EOB_ACT_LAST_MATCH;
1874 1.1 christos }
1875 1.1 christos }
1876 1.1 christos
1877 1.1 christos /* Try to read more data. */
1878 1.1 christos
1879 1.1 christos /* First move last chars to start of buffer. */
1880 1.1 christos number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1881 1.1 christos
1882 1.1 christos for ( i = 0; i < number_to_move; ++i )
1883 1.1 christos *(dest++) = *(source++);
1884 1.1 christos
1885 1.1 christos if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1886 1.1 christos /* don't do the read, it's not guaranteed to return an EOF,
1887 1.1 christos * just force an EOF
1888 1.1 christos */
1889 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1890 1.1 christos
1891 1.1 christos else
1892 1.1 christos {
1893 1.1 christos yy_size_t num_to_read =
1894 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1895 1.1 christos
1896 1.1 christos while ( num_to_read <= 0 )
1897 1.1 christos { /* Not enough room in the buffer - grow it. */
1898 1.1 christos
1899 1.1 christos /* just a shorter name for the current buffer */
1900 1.1 christos YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1901 1.1 christos
1902 1.1 christos int yy_c_buf_p_offset =
1903 1.1 christos (int) ((yy_c_buf_p) - b->yy_ch_buf);
1904 1.1 christos
1905 1.1 christos if ( b->yy_is_our_buffer )
1906 1.1 christos {
1907 1.1 christos yy_size_t new_size = b->yy_buf_size * 2;
1908 1.1 christos
1909 1.1 christos if ( new_size <= 0 )
1910 1.1 christos b->yy_buf_size += b->yy_buf_size / 8;
1911 1.1 christos else
1912 1.1 christos b->yy_buf_size *= 2;
1913 1.1 christos
1914 1.1 christos b->yy_ch_buf = (char *)
1915 1.1 christos /* Include room in for 2 EOB chars. */
1916 1.1 christos yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
1917 1.1 christos }
1918 1.1 christos else
1919 1.1 christos /* Can't grow it, we don't own it. */
1920 1.1 christos b->yy_ch_buf = 0;
1921 1.1 christos
1922 1.1 christos if ( ! b->yy_ch_buf )
1923 1.1 christos YY_FATAL_ERROR(
1924 1.1 christos "fatal error - scanner input buffer overflow" );
1925 1.1 christos
1926 1.1 christos (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1927 1.1 christos
1928 1.1 christos num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1929 1.1 christos number_to_move - 1;
1930 1.1 christos
1931 1.1 christos }
1932 1.1 christos
1933 1.1 christos if ( num_to_read > YY_READ_BUF_SIZE )
1934 1.1 christos num_to_read = YY_READ_BUF_SIZE;
1935 1.1 christos
1936 1.1 christos /* Read in more data. */
1937 1.1 christos YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1938 1.1 christos (yy_n_chars), num_to_read );
1939 1.1 christos
1940 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1941 1.1 christos }
1942 1.1 christos
1943 1.1 christos if ( (yy_n_chars) == 0 )
1944 1.1 christos {
1945 1.1 christos if ( number_to_move == YY_MORE_ADJ )
1946 1.1 christos {
1947 1.1 christos ret_val = EOB_ACT_END_OF_FILE;
1948 1.1 christos yyrestart(yyin );
1949 1.1 christos }
1950 1.1 christos
1951 1.1 christos else
1952 1.1 christos {
1953 1.1 christos ret_val = EOB_ACT_LAST_MATCH;
1954 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1955 1.1 christos YY_BUFFER_EOF_PENDING;
1956 1.1 christos }
1957 1.1 christos }
1958 1.1 christos
1959 1.1 christos else
1960 1.1 christos ret_val = EOB_ACT_CONTINUE_SCAN;
1961 1.1 christos
1962 1.1 christos if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1963 1.1 christos /* Extend the array by 50%, plus the number we really need. */
1964 1.1 christos yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1965 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
1966 1.1 christos if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1967 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1968 1.1 christos }
1969 1.1 christos
1970 1.1 christos (yy_n_chars) += number_to_move;
1971 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1972 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1973 1.1 christos
1974 1.1 christos (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1975 1.1 christos
1976 1.1 christos return ret_val;
1977 1.1 christos }
1978 1.1 christos
1979 1.1 christos /* yy_get_previous_state - get the state just before the EOB char was reached */
1980 1.1 christos
1981 1.1 christos static yy_state_type yy_get_previous_state (void)
1982 1.1 christos {
1983 1.1 christos register yy_state_type yy_current_state;
1984 1.1 christos register char *yy_cp;
1985 1.1 christos
1986 1.1 christos yy_current_state = (yy_start);
1987 1.1 christos
1988 1.1 christos for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1989 1.1 christos {
1990 1.1 christos register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1991 1.1 christos if ( yy_accept[yy_current_state] )
1992 1.1 christos {
1993 1.1 christos (yy_last_accepting_state) = yy_current_state;
1994 1.1 christos (yy_last_accepting_cpos) = yy_cp;
1995 1.1 christos }
1996 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1997 1.1 christos {
1998 1.1 christos yy_current_state = (int) yy_def[yy_current_state];
1999 1.1 christos if ( yy_current_state >= 568 )
2000 1.1 christos yy_c = yy_meta[(unsigned int) yy_c];
2001 1.1 christos }
2002 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2003 1.1 christos }
2004 1.1 christos
2005 1.1 christos return yy_current_state;
2006 1.1 christos }
2007 1.1 christos
2008 1.1 christos /* yy_try_NUL_trans - try to make a transition on the NUL character
2009 1.1 christos *
2010 1.1 christos * synopsis
2011 1.1 christos * next_state = yy_try_NUL_trans( current_state );
2012 1.1 christos */
2013 1.1 christos static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2014 1.1 christos {
2015 1.1 christos register int yy_is_jam;
2016 1.1 christos register char *yy_cp = (yy_c_buf_p);
2017 1.1 christos
2018 1.1 christos register YY_CHAR yy_c = 1;
2019 1.1 christos if ( yy_accept[yy_current_state] )
2020 1.1 christos {
2021 1.1 christos (yy_last_accepting_state) = yy_current_state;
2022 1.1 christos (yy_last_accepting_cpos) = yy_cp;
2023 1.1 christos }
2024 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2025 1.1 christos {
2026 1.1 christos yy_current_state = (int) yy_def[yy_current_state];
2027 1.1 christos if ( yy_current_state >= 568 )
2028 1.1 christos yy_c = yy_meta[(unsigned int) yy_c];
2029 1.1 christos }
2030 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2031 1.1 christos yy_is_jam = (yy_current_state == 567);
2032 1.1 christos
2033 1.1 christos return yy_is_jam ? 0 : yy_current_state;
2034 1.1 christos }
2035 1.1 christos
2036 1.1 christos static void yyunput (int c, register char * yy_bp )
2037 1.1 christos {
2038 1.1 christos register char *yy_cp;
2039 1.1 christos
2040 1.1 christos yy_cp = (yy_c_buf_p);
2041 1.1 christos
2042 1.1 christos /* undo effects of setting up yytext */
2043 1.1 christos *yy_cp = (yy_hold_char);
2044 1.1 christos
2045 1.1 christos if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2046 1.1 christos { /* need to shift things up to make room */
2047 1.1 christos /* +2 for EOB chars. */
2048 1.1 christos register yy_size_t number_to_move = (yy_n_chars) + 2;
2049 1.1 christos register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2050 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2051 1.1 christos register char *source =
2052 1.1 christos &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2053 1.1 christos
2054 1.1 christos while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2055 1.1 christos *--dest = *--source;
2056 1.1 christos
2057 1.1 christos yy_cp += (int) (dest - source);
2058 1.1 christos yy_bp += (int) (dest - source);
2059 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2060 1.1 christos (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2061 1.1 christos
2062 1.1 christos if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2063 1.1 christos YY_FATAL_ERROR( "flex scanner push-back overflow" );
2064 1.1 christos }
2065 1.1 christos
2066 1.1 christos *--yy_cp = (char) c;
2067 1.1 christos
2068 1.1 christos (yytext_ptr) = yy_bp;
2069 1.1 christos (yy_hold_char) = *yy_cp;
2070 1.1 christos (yy_c_buf_p) = yy_cp;
2071 1.1 christos }
2072 1.1 christos
2073 1.1 christos #ifndef YY_NO_INPUT
2074 1.1 christos #ifdef __cplusplus
2075 1.1 christos static int yyinput (void)
2076 1.1 christos #else
2077 1.1 christos static int input (void)
2078 1.1 christos #endif
2079 1.1 christos
2080 1.1 christos {
2081 1.1 christos int c;
2082 1.1 christos
2083 1.1 christos *(yy_c_buf_p) = (yy_hold_char);
2084 1.1 christos
2085 1.1 christos if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2086 1.1 christos {
2087 1.1 christos /* yy_c_buf_p now points to the character we want to return.
2088 1.1 christos * If this occurs *before* the EOB characters, then it's a
2089 1.1 christos * valid NUL; if not, then we've hit the end of the buffer.
2090 1.1 christos */
2091 1.1 christos if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2092 1.1 christos /* This was really a NUL. */
2093 1.1 christos *(yy_c_buf_p) = '\0';
2094 1.1 christos
2095 1.1 christos else
2096 1.1 christos { /* need more input */
2097 1.1 christos yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2098 1.1 christos ++(yy_c_buf_p);
2099 1.1 christos
2100 1.1 christos switch ( yy_get_next_buffer( ) )
2101 1.1 christos {
2102 1.1 christos case EOB_ACT_LAST_MATCH:
2103 1.1 christos /* This happens because yy_g_n_b()
2104 1.1 christos * sees that we've accumulated a
2105 1.1 christos * token and flags that we need to
2106 1.1 christos * try matching the token before
2107 1.1 christos * proceeding. But for input(),
2108 1.1 christos * there's no matching to consider.
2109 1.1 christos * So convert the EOB_ACT_LAST_MATCH
2110 1.1 christos * to EOB_ACT_END_OF_FILE.
2111 1.1 christos */
2112 1.1 christos
2113 1.1 christos /* Reset buffer status. */
2114 1.1 christos yyrestart(yyin );
2115 1.1 christos
2116 1.1 christos /*FALLTHROUGH*/
2117 1.1 christos
2118 1.1 christos case EOB_ACT_END_OF_FILE:
2119 1.1 christos {
2120 1.1 christos if ( yywrap( ) )
2121 1.1 christos return 0;
2122 1.1 christos
2123 1.1 christos if ( ! (yy_did_buffer_switch_on_eof) )
2124 1.1 christos YY_NEW_FILE;
2125 1.1 christos #ifdef __cplusplus
2126 1.1 christos return yyinput();
2127 1.1 christos #else
2128 1.1 christos return input();
2129 1.1 christos #endif
2130 1.1 christos }
2131 1.1 christos
2132 1.1 christos case EOB_ACT_CONTINUE_SCAN:
2133 1.1 christos (yy_c_buf_p) = (yytext_ptr) + offset;
2134 1.1 christos break;
2135 1.1 christos }
2136 1.1 christos }
2137 1.1 christos }
2138 1.1 christos
2139 1.1 christos c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2140 1.1 christos *(yy_c_buf_p) = '\0'; /* preserve yytext */
2141 1.1 christos (yy_hold_char) = *++(yy_c_buf_p);
2142 1.1 christos
2143 1.1 christos return c;
2144 1.1 christos }
2145 1.1 christos #endif /* ifndef YY_NO_INPUT */
2146 1.1 christos
2147 1.1 christos /** Immediately switch to a different input stream.
2148 1.1 christos * @param input_file A readable stream.
2149 1.1 christos *
2150 1.1 christos * @note This function does not reset the start condition to @c INITIAL .
2151 1.1 christos */
2152 1.1 christos void yyrestart (FILE * input_file )
2153 1.1 christos {
2154 1.1 christos
2155 1.1 christos if ( ! YY_CURRENT_BUFFER ){
2156 1.1 christos yyensure_buffer_stack ();
2157 1.1 christos YY_CURRENT_BUFFER_LVALUE =
2158 1.1 christos yy_create_buffer(yyin,YY_BUF_SIZE );
2159 1.1 christos }
2160 1.1 christos
2161 1.1 christos yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2162 1.1 christos yy_load_buffer_state( );
2163 1.1 christos }
2164 1.1 christos
2165 1.1 christos /** Switch to a different input buffer.
2166 1.1 christos * @param new_buffer The new input buffer.
2167 1.1 christos *
2168 1.1 christos */
2169 1.1 christos void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2170 1.1 christos {
2171 1.1 christos
2172 1.1 christos /* TODO. We should be able to replace this entire function body
2173 1.1 christos * with
2174 1.1 christos * yypop_buffer_state();
2175 1.1 christos * yypush_buffer_state(new_buffer);
2176 1.1 christos */
2177 1.1 christos yyensure_buffer_stack ();
2178 1.1 christos if ( YY_CURRENT_BUFFER == new_buffer )
2179 1.1 christos return;
2180 1.1 christos
2181 1.1 christos if ( YY_CURRENT_BUFFER )
2182 1.1 christos {
2183 1.1 christos /* Flush out information for old buffer. */
2184 1.1 christos *(yy_c_buf_p) = (yy_hold_char);
2185 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2186 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2187 1.1 christos }
2188 1.1 christos
2189 1.1 christos YY_CURRENT_BUFFER_LVALUE = new_buffer;
2190 1.1 christos yy_load_buffer_state( );
2191 1.1 christos
2192 1.1 christos /* We don't actually know whether we did this switch during
2193 1.1 christos * EOF (yywrap()) processing, but the only time this flag
2194 1.1 christos * is looked at is after yywrap() is called, so it's safe
2195 1.1 christos * to go ahead and always set it.
2196 1.1 christos */
2197 1.1 christos (yy_did_buffer_switch_on_eof) = 1;
2198 1.1 christos }
2199 1.1 christos
2200 1.1 christos static void yy_load_buffer_state (void)
2201 1.1 christos {
2202 1.1 christos (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2203 1.1 christos (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2204 1.1 christos yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2205 1.1 christos (yy_hold_char) = *(yy_c_buf_p);
2206 1.1 christos }
2207 1.1 christos
2208 1.1 christos /** Allocate and initialize an input buffer state.
2209 1.1 christos * @param file A readable stream.
2210 1.1 christos * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2211 1.1 christos *
2212 1.1 christos * @return the allocated buffer state.
2213 1.1 christos */
2214 1.1 christos YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2215 1.1 christos {
2216 1.1 christos YY_BUFFER_STATE b;
2217 1.1 christos
2218 1.1 christos b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2219 1.1 christos if ( ! b )
2220 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2221 1.1 christos
2222 1.1 christos b->yy_buf_size = size;
2223 1.1 christos
2224 1.1 christos /* yy_ch_buf has to be 2 characters longer than the size given because
2225 1.1 christos * we need to put in 2 end-of-buffer characters.
2226 1.1 christos */
2227 1.1 christos b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
2228 1.1 christos if ( ! b->yy_ch_buf )
2229 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2230 1.1 christos
2231 1.1 christos b->yy_is_our_buffer = 1;
2232 1.1 christos
2233 1.1 christos yy_init_buffer(b,file );
2234 1.1 christos
2235 1.1 christos return b;
2236 1.1 christos }
2237 1.1 christos
2238 1.1 christos /** Destroy the buffer.
2239 1.1 christos * @param b a buffer created with yy_create_buffer()
2240 1.1 christos *
2241 1.1 christos */
2242 1.1 christos void yy_delete_buffer (YY_BUFFER_STATE b )
2243 1.1 christos {
2244 1.1 christos
2245 1.1 christos if ( ! b )
2246 1.1 christos return;
2247 1.1 christos
2248 1.1 christos if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2249 1.1 christos YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2250 1.1 christos
2251 1.1 christos if ( b->yy_is_our_buffer )
2252 1.1 christos yyfree((void *) b->yy_ch_buf );
2253 1.1 christos
2254 1.1 christos yyfree((void *) b );
2255 1.1 christos }
2256 1.1 christos
2257 1.1 christos #ifndef __cplusplus
2258 1.1 christos extern int isatty (int );
2259 1.1 christos #endif /* __cplusplus */
2260 1.1 christos
2261 1.1 christos /* Initializes or reinitializes a buffer.
2262 1.1 christos * This function is sometimes called more than once on the same buffer,
2263 1.1 christos * such as during a yyrestart() or at EOF.
2264 1.1 christos */
2265 1.1 christos static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2266 1.1 christos
2267 1.1 christos {
2268 1.1 christos int oerrno = errno;
2269 1.1 christos
2270 1.1 christos yy_flush_buffer(b );
2271 1.1 christos
2272 1.1 christos b->yy_input_file = file;
2273 1.1 christos b->yy_fill_buffer = 1;
2274 1.1 christos
2275 1.1 christos /* If b is the current buffer, then yy_init_buffer was _probably_
2276 1.1 christos * called from yyrestart() or through yy_get_next_buffer.
2277 1.1 christos * In that case, we don't want to reset the lineno or column.
2278 1.1 christos */
2279 1.1 christos if (b != YY_CURRENT_BUFFER){
2280 1.1 christos b->yy_bs_lineno = 1;
2281 1.1 christos b->yy_bs_column = 0;
2282 1.1 christos }
2283 1.1 christos
2284 1.1 christos b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2285 1.1 christos
2286 1.1 christos errno = oerrno;
2287 1.1 christos }
2288 1.1 christos
2289 1.1 christos /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2290 1.1 christos * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2291 1.1 christos *
2292 1.1 christos */
2293 1.1 christos void yy_flush_buffer (YY_BUFFER_STATE b )
2294 1.1 christos {
2295 1.1 christos if ( ! b )
2296 1.1 christos return;
2297 1.1 christos
2298 1.1 christos b->yy_n_chars = 0;
2299 1.1 christos
2300 1.1 christos /* We always need two end-of-buffer characters. The first causes
2301 1.1 christos * a transition to the end-of-buffer state. The second causes
2302 1.1 christos * a jam in that state.
2303 1.1 christos */
2304 1.1 christos b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2305 1.1 christos b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2306 1.1 christos
2307 1.1 christos b->yy_buf_pos = &b->yy_ch_buf[0];
2308 1.1 christos
2309 1.1 christos b->yy_at_bol = 1;
2310 1.1 christos b->yy_buffer_status = YY_BUFFER_NEW;
2311 1.1 christos
2312 1.1 christos if ( b == YY_CURRENT_BUFFER )
2313 1.1 christos yy_load_buffer_state( );
2314 1.1 christos }
2315 1.1 christos
2316 1.1 christos /** Pushes the new state onto the stack. The new state becomes
2317 1.1 christos * the current state. This function will allocate the stack
2318 1.1 christos * if necessary.
2319 1.1 christos * @param new_buffer The new state.
2320 1.1 christos *
2321 1.1 christos */
2322 1.1 christos void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2323 1.1 christos {
2324 1.1 christos if (new_buffer == NULL)
2325 1.1 christos return;
2326 1.1 christos
2327 1.1 christos yyensure_buffer_stack();
2328 1.1 christos
2329 1.1 christos /* This block is copied from yy_switch_to_buffer. */
2330 1.1 christos if ( YY_CURRENT_BUFFER )
2331 1.1 christos {
2332 1.1 christos /* Flush out information for old buffer. */
2333 1.1 christos *(yy_c_buf_p) = (yy_hold_char);
2334 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2335 1.1 christos YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2336 1.1 christos }
2337 1.1 christos
2338 1.1 christos /* Only push if top exists. Otherwise, replace top. */
2339 1.1 christos if (YY_CURRENT_BUFFER)
2340 1.1 christos (yy_buffer_stack_top)++;
2341 1.1 christos YY_CURRENT_BUFFER_LVALUE = new_buffer;
2342 1.1 christos
2343 1.1 christos /* copied from yy_switch_to_buffer. */
2344 1.1 christos yy_load_buffer_state( );
2345 1.1 christos (yy_did_buffer_switch_on_eof) = 1;
2346 1.1 christos }
2347 1.1 christos
2348 1.1 christos /** Removes and deletes the top of the stack, if present.
2349 1.1 christos * The next element becomes the new top.
2350 1.1 christos *
2351 1.1 christos */
2352 1.1 christos void yypop_buffer_state (void)
2353 1.1 christos {
2354 1.1 christos if (!YY_CURRENT_BUFFER)
2355 1.1 christos return;
2356 1.1 christos
2357 1.1 christos yy_delete_buffer(YY_CURRENT_BUFFER );
2358 1.1 christos YY_CURRENT_BUFFER_LVALUE = NULL;
2359 1.1 christos if ((yy_buffer_stack_top) > 0)
2360 1.1 christos --(yy_buffer_stack_top);
2361 1.1 christos
2362 1.1 christos if (YY_CURRENT_BUFFER) {
2363 1.1 christos yy_load_buffer_state( );
2364 1.1 christos (yy_did_buffer_switch_on_eof) = 1;
2365 1.1 christos }
2366 1.1 christos }
2367 1.1 christos
2368 1.1 christos /* Allocates the stack if it does not exist.
2369 1.1 christos * Guarantees space for at least one push.
2370 1.1 christos */
2371 1.1 christos static void yyensure_buffer_stack (void)
2372 1.1 christos {
2373 1.1 christos yy_size_t num_to_alloc;
2374 1.1 christos
2375 1.1 christos if (!(yy_buffer_stack)) {
2376 1.1 christos
2377 1.1 christos /* First allocation is just for 2 elements, since we don't know if this
2378 1.1 christos * scanner will even need a stack. We use 2 instead of 1 to avoid an
2379 1.1 christos * immediate realloc on the next call.
2380 1.1 christos */
2381 1.1 christos num_to_alloc = 1;
2382 1.1 christos (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2383 1.1 christos (num_to_alloc * sizeof(struct yy_buffer_state*)
2384 1.1 christos );
2385 1.1 christos if ( ! (yy_buffer_stack) )
2386 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2387 1.1 christos
2388 1.1 christos memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2389 1.1 christos
2390 1.1 christos (yy_buffer_stack_max) = num_to_alloc;
2391 1.1 christos (yy_buffer_stack_top) = 0;
2392 1.1 christos return;
2393 1.1 christos }
2394 1.1 christos
2395 1.1 christos if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2396 1.1 christos
2397 1.1 christos /* Increase the buffer to prepare for a possible push. */
2398 1.1 christos int grow_size = 8 /* arbitrary grow size */;
2399 1.1 christos
2400 1.1 christos num_to_alloc = (yy_buffer_stack_max) + grow_size;
2401 1.1 christos (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2402 1.1 christos ((yy_buffer_stack),
2403 1.1 christos num_to_alloc * sizeof(struct yy_buffer_state*)
2404 1.1 christos );
2405 1.1 christos if ( ! (yy_buffer_stack) )
2406 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2407 1.1 christos
2408 1.1 christos /* zero only the new slots.*/
2409 1.1 christos memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2410 1.1 christos (yy_buffer_stack_max) = num_to_alloc;
2411 1.1 christos }
2412 1.1 christos }
2413 1.1 christos
2414 1.1 christos /** Setup the input buffer state to scan directly from a user-specified character buffer.
2415 1.1 christos * @param base the character buffer
2416 1.1 christos * @param size the size in bytes of the character buffer
2417 1.1 christos *
2418 1.1 christos * @return the newly allocated buffer state object.
2419 1.1 christos */
2420 1.1 christos YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
2421 1.1 christos {
2422 1.1 christos YY_BUFFER_STATE b;
2423 1.1 christos
2424 1.1 christos if ( size < 2 ||
2425 1.1 christos base[size-2] != YY_END_OF_BUFFER_CHAR ||
2426 1.1 christos base[size-1] != YY_END_OF_BUFFER_CHAR )
2427 1.1 christos /* They forgot to leave room for the EOB's. */
2428 1.1 christos return 0;
2429 1.1 christos
2430 1.1 christos b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2431 1.1 christos if ( ! b )
2432 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2433 1.1 christos
2434 1.1 christos b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2435 1.1 christos b->yy_buf_pos = b->yy_ch_buf = base;
2436 1.1 christos b->yy_is_our_buffer = 0;
2437 1.1 christos b->yy_input_file = 0;
2438 1.1 christos b->yy_n_chars = b->yy_buf_size;
2439 1.1 christos b->yy_is_interactive = 0;
2440 1.1 christos b->yy_at_bol = 1;
2441 1.1 christos b->yy_fill_buffer = 0;
2442 1.1 christos b->yy_buffer_status = YY_BUFFER_NEW;
2443 1.1 christos
2444 1.1 christos yy_switch_to_buffer(b );
2445 1.1 christos
2446 1.1 christos return b;
2447 1.1 christos }
2448 1.1 christos
2449 1.1 christos /** Setup the input buffer state to scan a string. The next call to yylex() will
2450 1.1 christos * scan from a @e copy of @a str.
2451 1.1 christos * @param yystr a NUL-terminated string to scan
2452 1.1 christos *
2453 1.1 christos * @return the newly allocated buffer state object.
2454 1.1 christos * @note If you want to scan bytes that may contain NUL values, then use
2455 1.1 christos * yy_scan_bytes() instead.
2456 1.1 christos */
2457 1.1 christos YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
2458 1.1 christos {
2459 1.1 christos
2460 1.1 christos return yy_scan_bytes(yystr,strlen(yystr) );
2461 1.1 christos }
2462 1.1 christos
2463 1.1 christos /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2464 1.1 christos * scan from a @e copy of @a bytes.
2465 1.1 christos * @param bytes the byte buffer to scan
2466 1.1 christos * @param len the number of bytes in the buffer pointed to by @a bytes.
2467 1.1 christos *
2468 1.1 christos * @return the newly allocated buffer state object.
2469 1.1 christos */
2470 1.1 christos YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
2471 1.1 christos {
2472 1.1 christos YY_BUFFER_STATE b;
2473 1.1 christos char *buf;
2474 1.1 christos yy_size_t n, i;
2475 1.1 christos
2476 1.1 christos /* Get memory for full buffer, including space for trailing EOB's. */
2477 1.1 christos n = _yybytes_len + 2;
2478 1.1 christos buf = (char *) yyalloc(n );
2479 1.1 christos if ( ! buf )
2480 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2481 1.1 christos
2482 1.1 christos for ( i = 0; i < _yybytes_len; ++i )
2483 1.1 christos buf[i] = yybytes[i];
2484 1.1 christos
2485 1.1 christos buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2486 1.1 christos
2487 1.1 christos b = yy_scan_buffer(buf,n );
2488 1.1 christos if ( ! b )
2489 1.1 christos YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2490 1.1 christos
2491 1.1 christos /* It's okay to grow etc. this buffer, and we should throw it
2492 1.1 christos * away when we're done.
2493 1.1 christos */
2494 1.1 christos b->yy_is_our_buffer = 1;
2495 1.1 christos
2496 1.1 christos return b;
2497 1.1 christos }
2498 1.1 christos
2499 1.1 christos #ifndef YY_EXIT_FAILURE
2500 1.1 christos #define YY_EXIT_FAILURE 2
2501 1.1 christos #endif
2502 1.1 christos
2503 1.1 christos static void yy_fatal_error (yyconst char* msg )
2504 1.1 christos {
2505 1.1 christos (void) fprintf( stderr, "%s\n", msg );
2506 1.1 christos exit( YY_EXIT_FAILURE );
2507 1.1 christos }
2508 1.1 christos
2509 1.1 christos /* Redefine yyless() so it works in section 3 code. */
2510 1.1 christos
2511 1.1 christos #undef yyless
2512 1.1 christos #define yyless(n) \
2513 1.1 christos do \
2514 1.1 christos { \
2515 1.1 christos /* Undo effects of setting up yytext. */ \
2516 1.1 christos int yyless_macro_arg = (n); \
2517 1.1 christos YY_LESS_LINENO(yyless_macro_arg);\
2518 1.1 christos yytext[yyleng] = (yy_hold_char); \
2519 1.1 christos (yy_c_buf_p) = yytext + yyless_macro_arg; \
2520 1.1 christos (yy_hold_char) = *(yy_c_buf_p); \
2521 1.1 christos *(yy_c_buf_p) = '\0'; \
2522 1.1 christos yyleng = yyless_macro_arg; \
2523 1.1 christos } \
2524 1.1 christos while ( 0 )
2525 1.1 christos
2526 1.1 christos /* Accessor methods (get/set functions) to struct members. */
2527 1.1 christos
2528 1.1 christos /** Get the current line number.
2529 1.1 christos *
2530 1.1 christos */
2531 1.1 christos int yyget_lineno (void)
2532 1.1 christos {
2533 1.1 christos
2534 1.1 christos return yylineno;
2535 1.1 christos }
2536 1.1 christos
2537 1.1 christos /** Get the input stream.
2538 1.1 christos *
2539 1.1 christos */
2540 1.1 christos FILE *yyget_in (void)
2541 1.1 christos {
2542 1.1 christos return yyin;
2543 1.1 christos }
2544 1.1 christos
2545 1.1 christos /** Get the output stream.
2546 1.1 christos *
2547 1.1 christos */
2548 1.1 christos FILE *yyget_out (void)
2549 1.1 christos {
2550 1.1 christos return yyout;
2551 1.1 christos }
2552 1.1 christos
2553 1.1 christos /** Get the length of the current token.
2554 1.1 christos *
2555 1.1 christos */
2556 1.1 christos yy_size_t yyget_leng (void)
2557 1.1 christos {
2558 1.1 christos return yyleng;
2559 1.1 christos }
2560 1.1 christos
2561 1.1 christos /** Get the current token.
2562 1.1 christos *
2563 1.1 christos */
2564 1.1 christos
2565 1.1 christos char *yyget_text (void)
2566 1.1 christos {
2567 1.1 christos return yytext;
2568 1.1 christos }
2569 1.1 christos
2570 1.1 christos /** Set the current line number.
2571 1.1 christos * @param line_number
2572 1.1 christos *
2573 1.1 christos */
2574 1.1 christos void yyset_lineno (int line_number )
2575 1.1 christos {
2576 1.1 christos
2577 1.1 christos yylineno = line_number;
2578 1.1 christos }
2579 1.1 christos
2580 1.1 christos /** Set the input stream. This does not discard the current
2581 1.1 christos * input buffer.
2582 1.1 christos * @param in_str A readable stream.
2583 1.1 christos *
2584 1.1 christos * @see yy_switch_to_buffer
2585 1.1 christos */
2586 1.1 christos void yyset_in (FILE * in_str )
2587 1.1 christos {
2588 1.1 christos yyin = in_str ;
2589 1.1 christos }
2590 1.1 christos
2591 1.1 christos void yyset_out (FILE * out_str )
2592 1.1 christos {
2593 1.1 christos yyout = out_str ;
2594 1.1 christos }
2595 1.1 christos
2596 1.1 christos int yyget_debug (void)
2597 1.1 christos {
2598 1.1 christos return yy_flex_debug;
2599 1.1 christos }
2600 1.1 christos
2601 1.1 christos void yyset_debug (int bdebug )
2602 1.1 christos {
2603 1.1 christos yy_flex_debug = bdebug ;
2604 1.1 christos }
2605 1.1 christos
2606 1.1 christos static int yy_init_globals (void)
2607 1.1 christos {
2608 1.1 christos /* Initialization is the same as for the non-reentrant scanner.
2609 1.1 christos * This function is called from yylex_destroy(), so don't allocate here.
2610 1.1 christos */
2611 1.1 christos
2612 1.1 christos (yy_buffer_stack) = 0;
2613 1.1 christos (yy_buffer_stack_top) = 0;
2614 1.1 christos (yy_buffer_stack_max) = 0;
2615 1.1 christos (yy_c_buf_p) = (char *) 0;
2616 1.1 christos (yy_init) = 0;
2617 1.1 christos (yy_start) = 0;
2618 1.1 christos
2619 1.1 christos /* Defined in main.c */
2620 1.1 christos #ifdef YY_STDINIT
2621 1.1 christos yyin = stdin;
2622 1.1 christos yyout = stdout;
2623 1.1 christos #else
2624 1.1 christos yyin = (FILE *) 0;
2625 1.1 christos yyout = (FILE *) 0;
2626 1.1 christos #endif
2627 1.1 christos
2628 1.1 christos /* For future reference: Set errno on error, since we are called by
2629 1.1 christos * yylex_init()
2630 1.1 christos */
2631 1.1 christos return 0;
2632 1.1 christos }
2633 1.1 christos
2634 1.1 christos /* yylex_destroy is for both reentrant and non-reentrant scanners. */
2635 1.1 christos int yylex_destroy (void)
2636 1.1 christos {
2637 1.1 christos
2638 1.1 christos /* Pop the buffer stack, destroying each element. */
2639 1.1 christos while(YY_CURRENT_BUFFER){
2640 1.1 christos yy_delete_buffer(YY_CURRENT_BUFFER );
2641 1.1 christos YY_CURRENT_BUFFER_LVALUE = NULL;
2642 1.1 christos yypop_buffer_state();
2643 1.1 christos }
2644 1.1 christos
2645 1.1 christos /* Destroy the stack itself. */
2646 1.1 christos yyfree((yy_buffer_stack) );
2647 1.1 christos (yy_buffer_stack) = NULL;
2648 1.1 christos
2649 1.1 christos /* Reset the globals. This is important in a non-reentrant scanner so the next time
2650 1.1 christos * yylex() is called, initialization will occur. */
2651 1.1 christos yy_init_globals( );
2652 1.1 christos
2653 1.1 christos return 0;
2654 1.1 christos }
2655 1.1 christos
2656 1.1 christos /*
2657 1.1 christos * Internal utility routines.
2658 1.1 christos */
2659 1.1 christos
2660 1.1 christos #ifndef yytext_ptr
2661 1.1 christos static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2662 1.1 christos {
2663 1.1 christos register int i;
2664 1.1 christos for ( i = 0; i < n; ++i )
2665 1.1 christos s1[i] = s2[i];
2666 1.1 christos }
2667 1.1 christos #endif
2668 1.1 christos
2669 1.1 christos #ifdef YY_NEED_STRLEN
2670 1.1 christos static int yy_flex_strlen (yyconst char * s )
2671 1.1 christos {
2672 1.1 christos register int n;
2673 1.1 christos for ( n = 0; s[n]; ++n )
2674 1.1 christos ;
2675 1.1 christos
2676 1.1 christos return n;
2677 1.1 christos }
2678 1.1 christos #endif
2679 1.1 christos
2680 1.1 christos void *yyalloc (yy_size_t size )
2681 1.1 christos {
2682 1.1 christos return (void *) malloc( size );
2683 1.1 christos }
2684 1.1 christos
2685 1.1 christos void *yyrealloc (void * ptr, yy_size_t size )
2686 1.1 christos {
2687 1.1 christos /* The cast to (char *) in the following accommodates both
2688 1.1 christos * implementations that use char* generic pointers, and those
2689 1.1 christos * that use void* generic pointers. It works with the latter
2690 1.1 christos * because both ANSI C and C++ allow castless assignment from
2691 1.1 christos * any pointer type to void*, and deal with argument conversions
2692 1.1 christos * as though doing an assignment.
2693 1.1 christos */
2694 1.1 christos return (void *) realloc( (char *) ptr, size );
2695 1.1 christos }
2696 1.1 christos
2697 1.1 christos void yyfree (void * ptr )
2698 1.1 christos {
2699 1.1 christos free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2700 1.1 christos }
2701 1.1 christos
2702 1.1 christos #define YYTABLES_NAME "yytables"
2703 1.1 christos
2704 1.1 christos #line 275 "lex.l"
2705 1.1 christos
2706 1.1 christos
2707 1.1 christos
2708 1.1 christos int
2709 1.1 christos yywrap ()
2710 1.1 christos {
2711 1.1 christos return 1;
2712 1.1 christos }
2713 1.1 christos
2714 1.1 christos void
2715 1.1 christos lex_error_message (const char *format, ...)
2716 1.1 christos {
2717 1.1 christos va_list args;
2718 1.1 christos
2719 1.1 christos va_start (args, format);
2720 1.1 christos fprintf (stderr, "%s:%d: ", get_filename(), lineno);
2721 1.1 christos vfprintf (stderr, format, args);
2722 1.1 christos va_end (args);
2723 1.1 christos error_flag++;
2724 1.1 christos }
2725 1.1 christos
2726 1.1 christos static void
2727 1.1 christos unterminated(const char *type, unsigned start_lineno)
2728 1.1 christos {
2729 1.1 christos lex_error_message("unterminated %s, possibly started on line %d\n", type, start_lineno);
2730 1.1 christos }
2731 1.1 christos
2732