Root/
Source at commit 1322 created 12 years 8 months ago. By meklort, Add doxygen to utils folder | |
---|---|
1 | ␊ |
2 | #line 3 "<stdout>"␊ |
3 | ␊ |
4 | #define YY_INT_ALIGNED short int␊ |
5 | ␊ |
6 | /* A lexical scanner generated by flex */␊ |
7 | ␊ |
8 | #define yy_create_buffer pyscanYY_create_buffer␊ |
9 | #define yy_delete_buffer pyscanYY_delete_buffer␊ |
10 | #define yy_flex_debug pyscanYY_flex_debug␊ |
11 | #define yy_init_buffer pyscanYY_init_buffer␊ |
12 | #define yy_flush_buffer pyscanYY_flush_buffer␊ |
13 | #define yy_load_buffer_state pyscanYY_load_buffer_state␊ |
14 | #define yy_switch_to_buffer pyscanYY_switch_to_buffer␊ |
15 | #define yyin pyscanYYin␊ |
16 | #define yyleng pyscanYYleng␊ |
17 | #define yylex pyscanYYlex␊ |
18 | #define yylineno pyscanYYlineno␊ |
19 | #define yyout pyscanYYout␊ |
20 | #define yyrestart pyscanYYrestart␊ |
21 | #define yytext pyscanYYtext␊ |
22 | #define yywrap pyscanYYwrap␊ |
23 | #define yyalloc pyscanYYalloc␊ |
24 | #define yyrealloc pyscanYYrealloc␊ |
25 | #define yyfree pyscanYYfree␊ |
26 | ␊ |
27 | #define FLEX_SCANNER␊ |
28 | #define YY_FLEX_MAJOR_VERSION 2␊ |
29 | #define YY_FLEX_MINOR_VERSION 5␊ |
30 | #define YY_FLEX_SUBMINOR_VERSION 35␊ |
31 | #if YY_FLEX_SUBMINOR_VERSION > 0␊ |
32 | #define FLEX_BETA␊ |
33 | #endif␊ |
34 | ␊ |
35 | /* First, we deal with platform-specific or compiler-specific issues. */␊ |
36 | ␊ |
37 | /* begin standard C headers. */␊ |
38 | #include <stdio.h>␊ |
39 | #include <string.h>␊ |
40 | #include <errno.h>␊ |
41 | #include <stdlib.h>␊ |
42 | ␊ |
43 | /* end standard C headers. */␊ |
44 | ␊ |
45 | /* flex integer type definitions */␊ |
46 | ␊ |
47 | #ifndef FLEXINT_H␊ |
48 | #define FLEXINT_H␊ |
49 | ␊ |
50 | /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */␊ |
51 | ␊ |
52 | #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L␊ |
53 | ␊ |
54 | /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,␊ |
55 | * if you want the limit (max/min) macros for int types. ␊ |
56 | */␊ |
57 | #ifndef __STDC_LIMIT_MACROS␊ |
58 | #define __STDC_LIMIT_MACROS 1␊ |
59 | #endif␊ |
60 | ␊ |
61 | #include <inttypes.h>␊ |
62 | typedef int8_t flex_int8_t;␊ |
63 | typedef uint8_t flex_uint8_t;␊ |
64 | typedef int16_t flex_int16_t;␊ |
65 | typedef uint16_t flex_uint16_t;␊ |
66 | typedef int32_t flex_int32_t;␊ |
67 | typedef uint32_t flex_uint32_t;␊ |
68 | #else␊ |
69 | typedef signed char flex_int8_t;␊ |
70 | typedef short int flex_int16_t;␊ |
71 | typedef int flex_int32_t;␊ |
72 | typedef unsigned char flex_uint8_t; ␊ |
73 | typedef unsigned short int flex_uint16_t;␊ |
74 | typedef unsigned int flex_uint32_t;␊ |
75 | #endif /* ! C99 */␊ |
76 | ␊ |
77 | /* Limits of integral types. */␊ |
78 | #ifndef INT8_MIN␊ |
79 | #define INT8_MIN (-128)␊ |
80 | #endif␊ |
81 | #ifndef INT16_MIN␊ |
82 | #define INT16_MIN (-32767-1)␊ |
83 | #endif␊ |
84 | #ifndef INT32_MIN␊ |
85 | #define INT32_MIN (-2147483647-1)␊ |
86 | #endif␊ |
87 | #ifndef INT8_MAX␊ |
88 | #define INT8_MAX (127)␊ |
89 | #endif␊ |
90 | #ifndef INT16_MAX␊ |
91 | #define INT16_MAX (32767)␊ |
92 | #endif␊ |
93 | #ifndef INT32_MAX␊ |
94 | #define INT32_MAX (2147483647)␊ |
95 | #endif␊ |
96 | #ifndef UINT8_MAX␊ |
97 | #define UINT8_MAX (255U)␊ |
98 | #endif␊ |
99 | #ifndef UINT16_MAX␊ |
100 | #define UINT16_MAX (65535U)␊ |
101 | #endif␊ |
102 | #ifndef UINT32_MAX␊ |
103 | #define UINT32_MAX (4294967295U)␊ |
104 | #endif␊ |
105 | ␊ |
106 | #endif /* ! FLEXINT_H */␊ |
107 | ␊ |
108 | #ifdef __cplusplus␊ |
109 | ␊ |
110 | /* The "const" storage-class-modifier is valid. */␊ |
111 | #define YY_USE_CONST␊ |
112 | ␊ |
113 | #else␉/* ! __cplusplus */␊ |
114 | ␊ |
115 | /* C99 requires __STDC__ to be defined as 1. */␊ |
116 | #if defined (__STDC__)␊ |
117 | ␊ |
118 | #define YY_USE_CONST␊ |
119 | ␊ |
120 | #endif␉/* defined (__STDC__) */␊ |
121 | #endif␉/* ! __cplusplus */␊ |
122 | ␊ |
123 | #ifdef YY_USE_CONST␊ |
124 | #define yyconst const␊ |
125 | #else␊ |
126 | #define yyconst␊ |
127 | #endif␊ |
128 | ␊ |
129 | /* Returned upon end-of-file. */␊ |
130 | #define YY_NULL 0␊ |
131 | ␊ |
132 | /* Promotes a possibly negative, possibly signed char to an unsigned␊ |
133 | * integer for use as an array index. If the signed char is negative,␊ |
134 | * we want to instead treat it as an 8-bit unsigned char, hence the␊ |
135 | * double cast.␊ |
136 | */␊ |
137 | #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)␊ |
138 | ␊ |
139 | /* Enter a start condition. This macro really ought to take a parameter,␊ |
140 | * but we do it the disgusting crufty way forced on us by the ()-less␊ |
141 | * definition of BEGIN.␊ |
142 | */␊ |
143 | #define BEGIN (yy_start) = 1 + 2 *␊ |
144 | ␊ |
145 | /* Translate the current start state into a value that can be later handed␊ |
146 | * to BEGIN to return to the state. The YYSTATE alias is for lex␊ |
147 | * compatibility.␊ |
148 | */␊ |
149 | #define YY_START (((yy_start) - 1) / 2)␊ |
150 | #define YYSTATE YY_START␊ |
151 | ␊ |
152 | /* Action number for EOF rule of a given start state. */␊ |
153 | #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)␊ |
154 | ␊ |
155 | /* Special action meaning "start processing a new file". */␊ |
156 | #define YY_NEW_FILE pyscanYYrestart(pyscanYYin )␊ |
157 | ␊ |
158 | #define YY_END_OF_BUFFER_CHAR 0␊ |
159 | ␊ |
160 | /* Size of default input buffer. */␊ |
161 | #ifndef YY_BUF_SIZE␊ |
162 | #define YY_BUF_SIZE 262144␊ |
163 | #endif␊ |
164 | ␊ |
165 | /* The state buf must be large enough to hold one state per character in the main buffer.␊ |
166 | */␊ |
167 | #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))␊ |
168 | ␊ |
169 | #ifndef YY_TYPEDEF_YY_BUFFER_STATE␊ |
170 | #define YY_TYPEDEF_YY_BUFFER_STATE␊ |
171 | typedef struct yy_buffer_state *YY_BUFFER_STATE;␊ |
172 | #endif␊ |
173 | ␊ |
174 | #ifndef YY_TYPEDEF_YY_SIZE_T␊ |
175 | #define YY_TYPEDEF_YY_SIZE_T␊ |
176 | typedef size_t yy_size_t;␊ |
177 | #endif␊ |
178 | ␊ |
179 | extern yy_size_t pyscanYYleng;␊ |
180 | ␊ |
181 | extern FILE *pyscanYYin, *pyscanYYout;␊ |
182 | ␊ |
183 | #define EOB_ACT_CONTINUE_SCAN 0␊ |
184 | #define EOB_ACT_END_OF_FILE 1␊ |
185 | #define EOB_ACT_LAST_MATCH 2␊ |
186 | ␊ |
187 | #define YY_LESS_LINENO(n)␊ |
188 | ␊ |
189 | /* Return all but the first "n" matched characters back to the input stream. */␊ |
190 | #define yyless(n) \␊ |
191 | ␉do \␊ |
192 | ␉␉{ \␊ |
193 | ␉␉/* Undo effects of setting up pyscanYYtext. */ \␊ |
194 | int yyless_macro_arg = (n); \␊ |
195 | YY_LESS_LINENO(yyless_macro_arg);\␊ |
196 | ␉␉*yy_cp = (yy_hold_char); \␊ |
197 | ␉␉YY_RESTORE_YY_MORE_OFFSET \␊ |
198 | ␉␉(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \␊ |
199 | ␉␉YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */ \␊ |
200 | ␉␉} \␊ |
201 | ␉while ( 0 )␊ |
202 | ␊ |
203 | #define unput(c) yyunput( c, (yytext_ptr) )␊ |
204 | ␊ |
205 | #ifndef YY_STRUCT_YY_BUFFER_STATE␊ |
206 | #define YY_STRUCT_YY_BUFFER_STATE␊ |
207 | struct yy_buffer_state␊ |
208 | ␉{␊ |
209 | ␉FILE *yy_input_file;␊ |
210 | ␊ |
211 | ␉char *yy_ch_buf;␉␉/* input buffer */␊ |
212 | ␉char *yy_buf_pos;␉␉/* current position in input buffer */␊ |
213 | ␊ |
214 | ␉/* Size of input buffer in bytes, not including room for EOB␊ |
215 | ␉ * characters.␊ |
216 | ␉ */␊ |
217 | ␉yy_size_t yy_buf_size;␊ |
218 | ␊ |
219 | ␉/* Number of characters read into yy_ch_buf, not including EOB␊ |
220 | ␉ * characters.␊ |
221 | ␉ */␊ |
222 | ␉yy_size_t yy_n_chars;␊ |
223 | ␊ |
224 | ␉/* Whether we "own" the buffer - i.e., we know we created it,␊ |
225 | ␉ * and can realloc() it to grow it, and should free() it to␊ |
226 | ␉ * delete it.␊ |
227 | ␉ */␊ |
228 | ␉int yy_is_our_buffer;␊ |
229 | ␊ |
230 | ␉/* Whether this is an "interactive" input source; if so, and␊ |
231 | ␉ * if we're using stdio for input, then we want to use getc()␊ |
232 | ␉ * instead of fread(), to make sure we stop fetching input after␊ |
233 | ␉ * each newline.␊ |
234 | ␉ */␊ |
235 | ␉int yy_is_interactive;␊ |
236 | ␊ |
237 | ␉/* Whether we're considered to be at the beginning of a line.␊ |
238 | ␉ * If so, '^' rules will be active on the next match, otherwise␊ |
239 | ␉ * not.␊ |
240 | ␉ */␊ |
241 | ␉int yy_at_bol;␊ |
242 | ␊ |
243 | int yy_bs_lineno; /**< The line count. */␊ |
244 | int yy_bs_column; /**< The column count. */␊ |
245 | ␊ |
246 | ␉/* Whether to try to fill the input buffer when we reach the␊ |
247 | ␉ * end of it.␊ |
248 | ␉ */␊ |
249 | ␉int yy_fill_buffer;␊ |
250 | ␊ |
251 | ␉int yy_buffer_status;␊ |
252 | ␊ |
253 | #define YY_BUFFER_NEW 0␊ |
254 | #define YY_BUFFER_NORMAL 1␊ |
255 | ␉/* When an EOF's been seen but there's still some text to process␊ |
256 | ␉ * then we mark the buffer as YY_EOF_PENDING, to indicate that we␊ |
257 | ␉ * shouldn't try reading from the input source any more. We might␊ |
258 | ␉ * still have a bunch of tokens to match, though, because of␊ |
259 | ␉ * possible backing-up.␊ |
260 | ␉ *␊ |
261 | ␉ * When we actually see the EOF, we change the status to "new"␊ |
262 | ␉ * (via pyscanYYrestart()), so that the user can continue scanning by␊ |
263 | ␉ * just pointing pyscanYYin at a new input file.␊ |
264 | ␉ */␊ |
265 | #define YY_BUFFER_EOF_PENDING 2␊ |
266 | ␊ |
267 | ␉};␊ |
268 | #endif /* !YY_STRUCT_YY_BUFFER_STATE */␊ |
269 | ␊ |
270 | /* Stack of input buffers. */␊ |
271 | static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */␊ |
272 | static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */␊ |
273 | static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */␊ |
274 | ␊ |
275 | /* We provide macros for accessing buffer states in case in the␊ |
276 | * future we want to put the buffer states in a more general␊ |
277 | * "scanner state".␊ |
278 | *␊ |
279 | * Returns the top of the stack, or NULL.␊ |
280 | */␊ |
281 | #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \␊ |
282 | ? (yy_buffer_stack)[(yy_buffer_stack_top)] \␊ |
283 | : NULL)␊ |
284 | ␊ |
285 | /* Same as previous macro, but useful when we know that the buffer stack is not␊ |
286 | * NULL or when we need an lvalue. For internal use only.␊ |
287 | */␊ |
288 | #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]␊ |
289 | ␊ |
290 | /* yy_hold_char holds the character lost when pyscanYYtext is formed. */␊ |
291 | static char yy_hold_char;␊ |
292 | static yy_size_t yy_n_chars;␉␉/* number of characters read into yy_ch_buf */␊ |
293 | yy_size_t pyscanYYleng;␊ |
294 | ␊ |
295 | /* Points to current character in buffer. */␊ |
296 | static char *yy_c_buf_p = (char *) 0;␊ |
297 | static int yy_init = 0;␉␉/* whether we need to initialize */␊ |
298 | static int yy_start = 0;␉/* start state number */␊ |
299 | ␊ |
300 | /* Flag which is used to allow pyscanYYwrap()'s to do buffer switches␊ |
301 | * instead of setting up a fresh pyscanYYin. A bit of a hack ...␊ |
302 | */␊ |
303 | static int yy_did_buffer_switch_on_eof;␊ |
304 | ␊ |
305 | void pyscanYYrestart (FILE *input_file );␊ |
306 | void pyscanYY_switch_to_buffer (YY_BUFFER_STATE new_buffer );␊ |
307 | YY_BUFFER_STATE pyscanYY_create_buffer (FILE *file,int size );␊ |
308 | void pyscanYY_delete_buffer (YY_BUFFER_STATE b );␊ |
309 | void pyscanYY_flush_buffer (YY_BUFFER_STATE b );␊ |
310 | void pyscanYYpush_buffer_state (YY_BUFFER_STATE new_buffer );␊ |
311 | void pyscanYYpop_buffer_state (void );␊ |
312 | ␊ |
313 | static void pyscanYYensure_buffer_stack (void );␊ |
314 | static void pyscanYY_load_buffer_state (void );␊ |
315 | static void pyscanYY_init_buffer (YY_BUFFER_STATE b,FILE *file );␊ |
316 | ␊ |
317 | #define YY_FLUSH_BUFFER pyscanYY_flush_buffer(YY_CURRENT_BUFFER )␊ |
318 | ␊ |
319 | YY_BUFFER_STATE pyscanYY_scan_buffer (char *base,yy_size_t size );␊ |
320 | YY_BUFFER_STATE pyscanYY_scan_string (yyconst char *yy_str );␊ |
321 | YY_BUFFER_STATE pyscanYY_scan_bytes (yyconst char *bytes,yy_size_t len );␊ |
322 | ␊ |
323 | void *pyscanYYalloc (yy_size_t );␊ |
324 | void *pyscanYYrealloc (void *,yy_size_t );␊ |
325 | void pyscanYYfree (void * );␊ |
326 | ␊ |
327 | #define yy_new_buffer pyscanYY_create_buffer␊ |
328 | ␊ |
329 | #define yy_set_interactive(is_interactive) \␊ |
330 | ␉{ \␊ |
331 | ␉if ( ! YY_CURRENT_BUFFER ){ \␊ |
332 | pyscanYYensure_buffer_stack (); \␊ |
333 | ␉␉YY_CURRENT_BUFFER_LVALUE = \␊ |
334 | pyscanYY_create_buffer(pyscanYYin,YY_BUF_SIZE ); \␊ |
335 | ␉} \␊ |
336 | ␉YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \␊ |
337 | ␉}␊ |
338 | ␊ |
339 | #define yy_set_bol(at_bol) \␊ |
340 | ␉{ \␊ |
341 | ␉if ( ! YY_CURRENT_BUFFER ){\␊ |
342 | pyscanYYensure_buffer_stack (); \␊ |
343 | ␉␉YY_CURRENT_BUFFER_LVALUE = \␊ |
344 | pyscanYY_create_buffer(pyscanYYin,YY_BUF_SIZE ); \␊ |
345 | ␉} \␊ |
346 | ␉YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \␊ |
347 | ␉}␊ |
348 | ␊ |
349 | #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)␊ |
350 | ␊ |
351 | /* Begin user sect3 */␊ |
352 | ␊ |
353 | #define pyscanYYwrap(n) 1␊ |
354 | #define YY_SKIP_YYWRAP␊ |
355 | ␊ |
356 | typedef unsigned char YY_CHAR;␊ |
357 | ␊ |
358 | FILE *pyscanYYin = (FILE *) 0, *pyscanYYout = (FILE *) 0;␊ |
359 | ␊ |
360 | typedef int yy_state_type;␊ |
361 | ␊ |
362 | extern int pyscanYYlineno;␊ |
363 | ␊ |
364 | int pyscanYYlineno = 1;␊ |
365 | ␊ |
366 | extern char *pyscanYYtext;␊ |
367 | #define yytext_ptr pyscanYYtext␊ |
368 | ␊ |
369 | static yy_state_type yy_get_previous_state (void );␊ |
370 | static yy_state_type yy_try_NUL_trans (yy_state_type current_state );␊ |
371 | static int yy_get_next_buffer (void );␊ |
372 | static void yy_fatal_error (yyconst char msg[] );␊ |
373 | ␊ |
374 | /* Done after the current pattern has been matched and before the␊ |
375 | * corresponding action - sets up pyscanYYtext.␊ |
376 | */␊ |
377 | #define YY_DO_BEFORE_ACTION \␊ |
378 | ␉(yytext_ptr) = yy_bp; \␊ |
379 | ␉pyscanYYleng = (size_t) (yy_cp - yy_bp); \␊ |
380 | ␉(yy_hold_char) = *yy_cp; \␊ |
381 | ␉*yy_cp = '\0'; \␊ |
382 | ␉(yy_c_buf_p) = yy_cp;␊ |
383 | ␊ |
384 | #define YY_NUM_RULES 149␊ |
385 | #define YY_END_OF_BUFFER 150␊ |
386 | /* This struct is not used in this scanner,␊ |
387 | but its presence is necessary. */␊ |
388 | struct yy_trans_info␊ |
389 | ␉{␊ |
390 | ␉flex_int32_t yy_verify;␊ |
391 | ␉flex_int32_t yy_nxt;␊ |
392 | ␉};␊ |
393 | static yyconst flex_int16_t yy_acclist[742] =␊ |
394 | { 0,␊ |
395 | 16479,16479, 97, 97, 24, 24, 29, 29, 33, 33,␊ |
396 | 150, 148, 149, 147, 149, 20, 148, 149, 16, 147,␊ |
397 | 149, 12, 20, 148, 149, 20, 148, 149, 11, 20,␊ |
398 | 148, 149, 14, 20, 148, 149, 14, 20, 148, 149,␊ |
399 | 14, 20, 148, 149, 14, 20, 148, 149, 14, 20,␊ |
400 | 148, 149, 15, 20, 148, 149, 14, 20, 148, 149,␊ |
401 | 16393,16394, 14, 20, 148, 149,16393,16394, 14, 20,␊ |
402 | 148, 149,16393,16394, 14, 20, 148, 149,16393,16394,␊ |
403 | 14, 20, 148, 149,16393,16394, 44, 45, 148, 149,␊ |
404 | 42, 44, 147, 149, 41, 45, 148, 149, 45, 148,␊ |
405 | ␊ |
406 | 149, 40, 45, 148, 149, 45, 148, 149, 43, 45,␊ |
407 | 148, 149, 43, 45, 148, 149, 122, 124, 148, 149,␊ |
408 | 124, 148, 149, 123, 147, 149, 124, 148, 149, 124,␊ |
409 | 148, 149, 121, 124, 148, 149, 127, 129, 148, 149,␊ |
410 | 128, 147, 149, 129, 148, 149, 127, 129, 148, 149,␊ |
411 | 125, 129, 148, 149, 148, 149, 62, 148, 149, 61,␊ |
412 | 148, 149, 60, 148, 149, 69, 148, 149, 63, 148,␊ |
413 | 149, 69, 148, 149, 66, 148, 149, 63, 69, 148,␊ |
414 | 149, 67, 148, 149, 65, 69, 148, 149, 64, 69,␊ |
415 | 148, 149, 52, 56, 148, 149, 56, 148, 149, 55,␊ |
416 | ␊ |
417 | 147, 149,16430, 51, 56, 148, 149, 54, 56, 148,␊ |
418 | 149, 50, 56, 148, 149, 49, 56, 148, 149, 54,␊ |
419 | 56, 148, 149, 73, 148, 149, 74, 147, 149, 70,␊ |
420 | 73, 148, 149, 72, 73, 148, 149, 71, 73, 148,␊ |
421 | 149, 87, 148, 149, 88, 148, 149, 88, 148, 149,␊ |
422 | 89, 148, 149, 90, 148, 149, 148, 149, 91, 147,␊ |
423 | 149, 8287, 148, 149, 148, 149, 148, 149, 94, 148,␊ |
424 | 149, 81, 84, 148, 149, 84, 148, 149, 82, 147,␊ |
425 | 149, 80, 84, 148, 149, 84, 148, 149, 79, 84,␊ |
426 | 148, 149, 78, 84, 148, 149, 109, 148, 149, 97,␊ |
427 | ␊ |
428 | 109, 148, 149, 110, 147, 149, 101, 109, 148, 149,␊ |
429 | 107, 109, 148, 149, 100, 109, 148, 149, 104, 109,␊ |
430 | 148, 149, 98, 109, 148, 149, 98, 109, 148, 149,␊ |
431 | 96, 109, 148, 149, 108, 109, 148, 149, 108, 109,␊ |
432 | 148, 149, 108, 109, 148, 149, 105, 109, 148, 149,␊ |
433 | 108, 109, 148, 149, 106, 109, 148, 149, 118, 148,␊ |
434 | 149, 117, 147, 149, 115, 148, 149, 116, 147, 149,␊ |
435 | 113, 115, 148, 149, 111, 115, 148, 149, 112, 115,␊ |
436 | 148, 149, 114, 115, 148, 149, 134, 135, 148, 149,␊ |
437 | 135, 148, 149, 133, 135, 148, 149, 135, 148, 149,␊ |
438 | ␊ |
439 | 140, 141, 148, 149, 139, 141, 148, 149, 141, 148,␊ |
440 | 149, 141, 148, 149, 144, 146, 148, 149, 144, 145,␊ |
441 | 147, 149, 144, 146, 148, 149, 144, 146, 148, 149,␊ |
442 | 146, 148, 149, 25, 148, 149, 24, 25, 148, 149,␊ |
443 | 23, 147, 149, 21, 25, 148, 149, 21, 25, 148,␊ |
444 | 149, 30, 148, 149, 29, 30, 148, 149, 28, 147,␊ |
445 | 149, 26, 30, 148, 149, 27, 30, 148, 149, 34,␊ |
446 | 148, 149, 33, 34, 148, 149, 32, 147, 149, 31,␊ |
447 | 34, 148, 149, 16, 13, 14, 14, 14, 14, 14,␊ |
448 | 15,16393,16394,16393,16394,16393,16394,16393,16394,16393,␊ |
449 | ␊ |
450 | 16394, 14,16393,16394, 14,16393,16394, 14,16393,16394,␊ |
451 | 14,16393,16394, 14,16393,16394, 44, 39, 43, 43,␊ |
452 | 122, 121, 127, 126, 127, 125, 125, 62, 61, 60,␊ |
453 | 63, 68, 67, 64, 52,16430, 54, 54, 49, 48,␊ |
454 | 53, 54, 87, 88, 90, 91, 94, 81, 83, 78,␊ |
455 | 77, 97, 107, 98, 98, 98, 108, 101, 100, 108,␊ |
456 | 114, 134, 131, 131, 130, 140, 137, 137, 136, 144,␊ |
457 | 144, 144, 24, 21, 21, 29, 27, 33, 31, 17,␊ |
458 | 13, 19, 18, 14, 14, 14, 14,16393,16394,16393,␊ |
459 | 16394,16393,16394,16393,16394,16393,16394, 8202, 8202, 8202,␊ |
460 | ␊ |
461 | 14,16393,16394, 14,16393,16394, 14,16393,16394, 14,␊ |
462 | 16393,16394, 36, 39, 38, 37, 43, 119, 120, 68,␊ |
463 | 47, 8238, 57, 54, 59, 59, 58, 53, 54, 90,␊ |
464 | 92, 93, 75, 85, 83, 86, 102, 103, 99, 98,␊ |
465 | 98, 132, 138, 142, 143, 21, 21, 31, 17, 18,␊ |
466 | 14, 2, 14, 14,16393,16394,16393,16394,16393,16394,␊ |
467 | 16393,16394, 14,16393,16394, 1, 2, 14,16393,16394,␊ |
468 | 14,16393,16394, 36, 37, 43, 119, 120, 57, 58,␊ |
469 | 90, 92, 93, 76, 85, 86, 102, 103, 99, 98,␊ |
470 | 142, 143, 21, 21, 31, 14, 6, 14,16393,16394,␊ |
471 | ␊ |
472 | 1,16393,16394,16393,16394, 14,16393,16394, 5, 6,␊ |
473 | 14,16393,16394, 99, 21, 4, 14,16393,16394, 5,␊ |
474 | 16393,16394, 3, 4, 14,16393,16394,16419, 21, 22,␊ |
475 | 8, 3,16393,16394, 7, 8,16419, 8227, 22, 7,␊ |
476 | 8201␊ |
477 | } ;␊ |
478 | ␊ |
479 | static yyconst flex_int16_t yy_accept[435] =␊ |
480 | { 0,␊ |
481 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
482 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
483 | 1, 1, 1, 1, 1, 2, 3, 3, 3, 4,␊ |
484 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,␊ |
485 | 5, 6, 7, 8, 9, 10, 11, 12, 14, 16,␊ |
486 | 19, 22, 26, 29, 33, 37, 41, 45, 49, 53,␊ |
487 | 57, 63, 69, 75, 81, 87, 91, 95, 99, 102,␊ |
488 | 106, 109, 113, 117, 121, 124, 127, 130, 133, 137,␊ |
489 | 141, 144, 147, 151, 155, 157, 160, 163, 166, 169,␊ |
490 | 172, 175, 178, 182, 185, 189, 193, 197, 200, 204,␊ |
491 | ␊ |
492 | 208, 212, 216, 220, 224, 227, 230, 234, 238, 242,␊ |
493 | 245, 248, 251, 254, 257, 259, 262, 265, 267, 269,␊ |
494 | 272, 276, 279, 282, 286, 289, 293, 297, 300, 304,␊ |
495 | 307, 311, 315, 319, 323, 327, 331, 335, 339, 343,␊ |
496 | 347, 351, 355, 359, 362, 365, 368, 371, 375, 379,␊ |
497 | 383, 387, 391, 394, 398, 401, 405, 409, 412, 415,␊ |
498 | 419, 423, 427, 431, 434, 437, 441, 444, 448, 452,␊ |
499 | 455, 459, 462, 466, 470, 473, 477, 480, 484, 485,␊ |
500 | 485, 486, 486, 486, 487, 488, 489, 490, 491, 492,␊ |
501 | 494, 496, 498, 500, 502, 502, 505, 505, 508, 511,␊ |
502 | ␊ |
503 | 514, 517, 518, 518, 519, 519, 519, 520, 521, 522,␊ |
504 | 522, 522, 523, 524, 524, 525, 526, 527, 528, 528,␊ |
505 | 529, 530, 531, 532, 533, 534, 535, 536, 537, 537,␊ |
506 | 537, 537, 538, 539, 539, 540, 541, 543, 544, 545,␊ |
507 | 545, 546, 546, 547, 547, 547, 548, 549, 549, 549,␊ |
508 | 549, 550, 550, 551, 552, 553, 553, 554, 554, 554,␊ |
509 | 555, 556, 557, 557, 558, 559, 560, 561, 562, 563,␊ |
510 | 563, 564, 565, 566, 567, 567, 568, 569, 570, 571,␊ |
511 | 571, 572, 573, 574, 574, 574, 575, 576, 577, 578,␊ |
512 | 579, 579, 579, 580, 581, 582, 583, 584, 585, 586,␊ |
513 | ␊ |
514 | 587, 588, 590, 592, 594, 596, 598, 599, 600, 601,␊ |
515 | 604, 607, 610, 613, 614, 615, 616, 617, 618, 619,␊ |
516 | 620, 621, 622, 623, 623, 624, 626, 627, 628, 630,␊ |
517 | 631, 632, 633, 633, 634, 634, 635, 636, 637, 638,␊ |
518 | 639, 640, 641, 642, 643, 643, 644, 644, 645, 646,␊ |
519 | 646, 647, 648, 648, 649, 650, 651, 652, 653, 654,␊ |
520 | 655, 657, 659, 661, 663, 663, 663, 663, 666, 668,␊ |
521 | 671, 674, 675, 676, 677, 678, 679, 680, 681, 682,␊ |
522 | 683, 684, 685, 686, 687, 688, 689, 689, 690, 691,␊ |
523 | 692, 693, 694, 695, 696, 697, 698, 699, 701, 702,␊ |
524 | ␊ |
525 | 704, 706, 706, 709, 711, 714, 714, 714, 715, 716,␊ |
526 | 717, 718, 720, 721, 723, 723, 725, 728, 729, 731,␊ |
527 | 732, 733, 735, 735, 737, 737, 738, 739, 740, 741,␊ |
528 | 741, 741, 742, 742␊ |
529 | } ;␊ |
530 | ␊ |
531 | static yyconst flex_int32_t yy_ec[256] =␊ |
532 | { 0,␊ |
533 | 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,␊ |
534 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
535 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
536 | 1, 2, 4, 5, 6, 1, 7, 7, 8, 9,␊ |
537 | 10, 11, 12, 13, 12, 14, 7, 15, 16, 16,␊ |
538 | 16, 16, 16, 16, 16, 17, 17, 18, 7, 7,␊ |
539 | 19, 7, 1, 1, 20, 20, 20, 20, 21, 20,␊ |
540 | 22, 22, 22, 23, 22, 24, 22, 22, 22, 22,␊ |
541 | 22, 25, 22, 22, 26, 22, 22, 27, 22, 22,␊ |
542 | 28, 29, 30, 1, 31, 7, 32, 20, 33, 34,␊ |
543 | ␊ |
544 | 35, 36, 22, 22, 37, 23, 22, 38, 39, 22,␊ |
545 | 40, 41, 22, 42, 43, 44, 45, 22, 22, 27,␊ |
546 | 46, 22, 47, 7, 30, 7, 1, 1, 1, 1,␊ |
547 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
548 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
549 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
550 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
551 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
552 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
553 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
554 | ␊ |
555 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
556 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
557 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
558 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
559 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,␊ |
560 | 1, 1, 1, 1, 1␊ |
561 | } ;␊ |
562 | ␊ |
563 | static yyconst flex_int32_t yy_meta[48] =␊ |
564 | { 0,␊ |
565 | 1, 2, 3, 1, 4, 5, 1, 4, 1, 1,␊ |
566 | 1, 1, 1, 6, 7, 7, 7, 1, 8, 9,␊ |
567 | 9, 10, 10, 10, 10, 10, 10, 1, 11, 1,␊ |
568 | 10, 9, 9, 9, 9, 9, 10, 10, 10, 10,␊ |
569 | 10, 10, 10, 10, 10, 10, 1␊ |
570 | } ;␊ |
571 | ␊ |
572 | static yyconst flex_int16_t yy_base[499] =␊ |
573 | { 0,␊ |
574 | 1535, 1527, 0, 47, 94, 0, 1520, 1515, 140, 144,␊ |
575 | 147, 152, 158, 0, 205, 0, 251, 258, 264, 266,␊ |
576 | 279, 0, 326, 0, 373, 381, 385, 392, 400, 0,␊ |
577 | 1514, 1513, 447, 0, 492, 493, 499, 500, 506, 507,␊ |
578 | 536, 0, 583, 0, 630, 0, 1515, 1566, 1566, 1566,␊ |
579 | 1511, 1508, 1503, 1500, 0, 1469, 1471, 1463, 1465, 497,␊ |
580 | 377, 676, 677, 678, 679, 0, 0, 1496, 1485, 1478,␊ |
581 | 1566, 0, 1449, 0, 1566, 1566, 1478, 1474, 1479, 0,␊ |
582 | 256, 1566, 511, 1463, 514, 1566, 1566, 0, 1566, 1451,␊ |
583 | 0, 1566, 1566, 1449, 1566, 0, 0, 1566, 518, 1445,␊ |
584 | ␊ |
585 | 1443, 1440, 154, 1432, 1566, 1566, 1566, 1566, 1566, 0,␊ |
586 | 1427, 1566, 1566, 1402, 268, 1566, 1566, 1405, 1390, 516,␊ |
587 | 0, 1566, 1391, 1391, 0, 1387, 523, 1566, 1385, 1566,␊ |
588 | 1369, 0, 1361, 1566, 707, 668, 1566, 0, 372, 685,␊ |
589 | 1566, 694, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566,␊ |
590 | 0, 0, 1361, 1566, 684, 0, 1566, 1357, 686, 1335,␊ |
591 | 1331, 1351, 1345, 700, 1566, 1350, 1566, 699, 702, 1566,␊ |
592 | 1349, 1566, 1566, 0, 1566, 1340, 1566, 715, 1318, 1315,␊ |
593 | 0, 0, 1292, 0, 1267, 1258, 1250, 1239, 713, 692,␊ |
594 | 723, 724, 733, 735, 736, 737, 707, 738, 749, 758,␊ |
595 | ␊ |
596 | 760, 0, 1266, 0, 0, 1261, 0, 1226, 0, 1258,␊ |
597 | 1254, 1252, 0, 726, 1566, 761, 1247, 1246, 762, 1566,␊ |
598 | 1566, 0, 1249, 0, 1245, 0, 0, 763, 1236, 1230,␊ |
599 | 1216, 0, 770, 1208, 779, 1566, 0, 0, 1213, 0,␊ |
600 | 1200, 781, 1566, 1207, 1203, 784, 0, 1198, 1201, 1197,␊ |
601 | 0, 1193, 786, 1566, 1198, 1191, 0, 1180, 775, 779,␊ |
602 | 790, 1566, 0, 0, 1566, 1566, 792, 0, 0, 1181,␊ |
603 | 1566, 806, 1566, 0, 1173, 1566, 808, 1566, 1144, 813,␊ |
604 | 1166, 1153, 1158, 764, 1157, 810, 813, 1153, 0, 1143,␊ |
605 | 817, 1139, 818, 1136, 0, 1566, 1133, 1093, 1133, 1088,␊ |
606 | ␊ |
607 | 1086, 820, 821, 823, 824, 827, 1566, 731, 1083, 828,␊ |
608 | 831, 833, 836, 1120, 0, 1566, 1116, 1083, 1114, 1113,␊ |
609 | 0, 1566, 1114, 1113, 1107, 0, 1566, 1097, 0, 962,␊ |
610 | 971, 970, 0, 971, 970, 967, 0, 966, 965, 964,␊ |
611 | 846, 1566, 361, 1566, 834, 1566, 842, 960, 947, 941,␊ |
612 | 846, 856, 920, 863, 1566, 1566, 869, 906, 885, 837,␊ |
613 | 832, 847, 854, 855, 839, 836, 759, 880, 881, 882,␊ |
614 | 883, 1566, 1566, 744, 1566, 1566, 1566, 1566, 739, 1566,␊ |
615 | 1566, 1566, 1566, 1566, 1566, 1566, 874, 1566, 1566, 1566,␊ |
616 | 1566, 890, 892, 895, 742, 705, 656, 886, 896, 901,␊ |
617 | ␊ |
618 | 905, 486, 908, 909, 911, 0, 901, 916, 912, 504,␊ |
619 | 390, 917, 919, 933, 243, 935, 938, 939, 946, 266,␊ |
620 | 940, 942, 213, 943, 944, 947, 1566, 951, 948, 107,␊ |
621 | 98, 1566, 1566, 977, 988, 999, 1010, 1021, 1032, 1043,␊ |
622 | 1054, 1065, 1076, 1087, 1098, 1103, 1112, 1121, 1131, 1142,␊ |
623 | 1147, 1157, 1168, 1173, 1183, 1188, 1198, 1208, 1218, 1229,␊ |
624 | 1234, 1239, 1249, 1256, 1266, 1277, 1282, 1286, 1296, 1306,␊ |
625 | 1317, 1327, 1338, 1348, 1352, 1361, 1371, 1382, 1392, 1402,␊ |
626 | 1413, 1424, 1435, 1445, 1455, 1466, 1469, 1478, 1488, 1493,␊ |
627 | 1501, 1510, 1515, 1525, 1535, 1544, 1546, 1555␊ |
628 | ␊ |
629 | } ;␊ |
630 | ␊ |
631 | static yyconst flex_int16_t yy_def[499] =␊ |
632 | { 0,␊ |
633 | 434, 434, 433, 433, 433, 5, 434, 434, 435, 435,␊ |
634 | 436, 436, 433, 13, 433, 15, 437, 437, 438, 438,␊ |
635 | 433, 21, 433, 23, 439, 439, 440, 440, 433, 29,␊ |
636 | 441, 441, 433, 33, 442, 442, 443, 443, 444, 444,␊ |
637 | 433, 41, 433, 43, 433, 45, 433, 433, 433, 433,␊ |
638 | 433, 433, 445, 433, 446, 446, 446, 446, 446, 447,␊ |
639 | 448, 448, 448, 448, 448, 449, 449, 433, 450, 433,␊ |
640 | 433, 451, 451, 452, 433, 433, 433, 433, 433, 453,␊ |
641 | 433, 433, 453, 433, 433, 433, 433, 454, 433, 433,␊ |
642 | 455, 433, 433, 433, 433, 456, 457, 433, 458, 433,␊ |
643 | ␊ |
644 | 459, 433, 433, 460, 433, 433, 433, 433, 433, 461,␊ |
645 | 433, 433, 433, 462, 433, 433, 433, 433, 433, 433,␊ |
646 | 463, 433, 464, 433, 465, 433, 433, 433, 433, 433,␊ |
647 | 433, 466, 433, 433, 433, 433, 433, 467, 467, 467,␊ |
648 | 433, 467, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
649 | 468, 469, 433, 433, 470, 471, 433, 433, 472, 473,␊ |
650 | 473, 433, 433, 473, 433, 433, 433, 474, 474, 433,␊ |
651 | 433, 433, 433, 475, 433, 433, 433, 476, 433, 433,␊ |
652 | 477, 478, 433, 446, 446, 446, 446, 446, 447, 479,␊ |
653 | 479, 479, 479, 479, 433, 448, 480, 448, 448, 448,␊ |
654 | ␊ |
655 | 448, 449, 433, 481, 482, 433, 451, 451, 452, 433,␊ |
656 | 433, 433, 453, 433, 433, 453, 433, 433, 433, 433,␊ |
657 | 433, 454, 433, 483, 433, 456, 457, 458, 433, 484,␊ |
658 | 433, 459, 485, 433, 433, 433, 486, 461, 433, 487,␊ |
659 | 462, 433, 433, 433, 433, 433, 463, 433, 488, 433,␊ |
660 | 489, 433, 433, 433, 433, 433, 466, 433, 433, 433,␊ |
661 | 433, 433, 490, 467, 433, 433, 467, 468, 469, 433,␊ |
662 | 433, 433, 433, 471, 433, 433, 433, 433, 473, 473,␊ |
663 | 433, 433, 433, 433, 491, 474, 474, 433, 475, 433,␊ |
664 | 433, 492, 476, 433, 477, 433, 433, 446, 446, 446,␊ |
665 | ␊ |
666 | 446, 479, 479, 479, 479, 479, 433, 433, 433, 448,␊ |
667 | 448, 448, 448, 433, 481, 433, 433, 451, 433, 433,␊ |
668 | 483, 433, 433, 484, 433, 459, 433, 433, 486, 493,␊ |
669 | 433, 433, 494, 433, 488, 433, 489, 433, 433, 433,␊ |
670 | 433, 433, 490, 433, 433, 433, 433, 433, 433, 491,␊ |
671 | 495, 474, 492, 496, 433, 433, 446, 433, 446, 446,␊ |
672 | 479, 479, 479, 479, 433, 433, 433, 448, 433, 448,␊ |
673 | 448, 433, 433, 451, 433, 433, 433, 433, 493, 433,␊ |
674 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
675 | 433, 495, 474, 496, 446, 433, 446, 479, 433, 479,␊ |
676 | ␊ |
677 | 479, 433, 448, 433, 448, 497, 433, 433, 474, 433,␊ |
678 | 446, 479, 433, 479, 433, 433, 448, 498, 474, 433,␊ |
679 | 433, 479, 433, 433, 433, 498, 433, 433, 433, 433,␊ |
680 | 433, 433, 0, 433, 433, 433, 433, 433, 433, 433,␊ |
681 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
682 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
683 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
684 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
685 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
686 | 433, 433, 433, 433, 433, 433, 433, 433␊ |
687 | ␊ |
688 | } ;␊ |
689 | ␊ |
690 | static yyconst flex_int16_t yy_nxt[1614] =␊ |
691 | { 0,␊ |
692 | 50, 50, 51, 50, 52, 53, 50, 54, 50, 50,␊ |
693 | 50, 50, 50, 50, 50, 50, 50, 50, 50, 55,␊ |
694 | 55, 55, 55, 55, 55, 55, 55, 50, 50, 50,␊ |
695 | 55, 55, 56, 57, 55, 58, 59, 55, 55, 55,␊ |
696 | 55, 55, 55, 55, 55, 55, 50, 50, 60, 51,␊ |
697 | 50, 52, 53, 50, 54, 50, 50, 50, 50, 50,␊ |
698 | 50, 50, 50, 50, 50, 50, 61, 61, 61, 61,␊ |
699 | 61, 61, 61, 61, 50, 50, 50, 61, 61, 62,␊ |
700 | 63, 61, 64, 65, 61, 61, 61, 61, 61, 61,␊ |
701 | 61, 61, 61, 50, 66, 66, 67, 66, 68, 69,␊ |
702 | ␊ |
703 | 66, 70, 66, 66, 66, 66, 66, 71, 66, 66,␊ |
704 | 66, 66, 66, 72, 72, 72, 72, 72, 72, 72,␊ |
705 | 72, 66, 66, 66, 72, 72, 72, 72, 72, 72,␊ |
706 | 72, 72, 72, 72, 72, 72, 73, 72, 72, 72,␊ |
707 | 66, 75, 76, 432, 77, 79, 76, 78, 77, 81,␊ |
708 | 431, 78, 82, 83, 81, 235, 236, 84, 48, 85,␊ |
709 | 49, 48, 48, 48, 48, 48, 86, 48, 48, 48,␊ |
710 | 48, 48, 48, 48, 48, 87, 48, 88, 88, 88,␊ |
711 | 88, 88, 88, 88, 88, 48, 48, 48, 88, 88,␊ |
712 | 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,␊ |
713 | ␊ |
714 | 88, 88, 88, 88, 48, 89, 90, 49, 89, 89,␊ |
715 | 91, 89, 89, 48, 92, 89, 89, 93, 89, 89,␊ |
716 | 89, 89, 94, 95, 96, 96, 96, 96, 96, 96,␊ |
717 | 96, 96, 89, 89, 89, 96, 96, 96, 96, 96,␊ |
718 | 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,␊ |
719 | 96, 89, 98, 99, 430, 100, 101, 214, 102, 103,␊ |
720 | 99, 215, 100, 104, 98, 102, 106, 420, 106, 242,␊ |
721 | 243, 98, 107, 108, 107, 108, 109, 423, 109, 48,␊ |
722 | 48, 49, 48, 48, 48, 48, 48, 48, 48, 48,␊ |
723 | 48, 48, 48, 48, 48, 48, 48, 48, 110, 110,␊ |
724 | ␊ |
725 | 110, 110, 110, 110, 110, 110, 48, 48, 48, 110,␊ |
726 | 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,␊ |
727 | 110, 110, 110, 110, 110, 48, 48, 111, 49, 48,␊ |
728 | 48, 48, 48, 48, 112, 112, 48, 48, 112, 48,␊ |
729 | 48, 48, 48, 113, 48, 114, 114, 114, 114, 114,␊ |
730 | 114, 114, 114, 48, 48, 48, 114, 114, 114, 114,␊ |
731 | 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,␊ |
732 | 114, 114, 48, 48, 115, 116, 265, 118, 195, 266,␊ |
733 | 119, 48, 120, 116, 389, 118, 122, 123, 119, 124,␊ |
734 | 125, 420, 126, 127, 123, 197, 124, 125, 389, 126,␊ |
735 | ␊ |
736 | 128, 129, 130, 128, 131, 132, 128, 133, 134, 128,␊ |
737 | 128, 128, 128, 128, 135, 136, 136, 128, 137, 138,␊ |
738 | 138, 138, 138, 138, 139, 140, 138, 141, 128, 128,␊ |
739 | 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,␊ |
740 | 138, 139, 138, 138, 142, 138, 143, 146, 146, 147,␊ |
741 | 146, 148, 146, 146, 146, 149, 150, 146, 146, 146,␊ |
742 | 146, 146, 146, 146, 146, 146, 151, 151, 151, 151,␊ |
743 | 151, 151, 151, 151, 149, 146, 150, 151, 151, 151,␊ |
744 | 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,␊ |
745 | 151, 151, 151, 149, 49, 49, 153, 153, 189, 154,␊ |
746 | ␊ |
747 | 154, 49, 49, 157, 157, 410, 158, 158, 161, 161,␊ |
748 | 162, 162, 216, 163, 163, 219, 217, 246, 243, 228,␊ |
749 | 155, 155, 220, 229, 253, 254, 415, 159, 159, 191,␊ |
750 | 192, 221, 193, 194, 164, 164, 165, 166, 167, 165,␊ |
751 | 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,␊ |
752 | 165, 165, 165, 165, 165, 168, 168, 168, 168, 168,␊ |
753 | 168, 168, 168, 165, 165, 165, 168, 168, 168, 168,␊ |
754 | 168, 168, 169, 168, 168, 168, 168, 168, 168, 168,␊ |
755 | 168, 168, 165, 170, 171, 172, 170, 170, 170, 170,␊ |
756 | 170, 170, 170, 173, 170, 170, 170, 170, 170, 170,␊ |
757 | ␊ |
758 | 170, 170, 174, 174, 174, 174, 174, 174, 174, 174,␊ |
759 | 170, 170, 170, 174, 174, 174, 174, 174, 174, 174,␊ |
760 | 174, 174, 174, 174, 174, 174, 174, 174, 174, 170,␊ |
761 | 175, 176, 177, 175, 175, 175, 175, 175, 175, 175,␊ |
762 | 175, 175, 175, 175, 175, 175, 175, 175, 175, 178,␊ |
763 | 178, 178, 178, 178, 178, 178, 178, 175, 175, 175,␊ |
764 | 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,␊ |
765 | 178, 178, 178, 178, 178, 178, 175, 195, 195, 195,␊ |
766 | 195, 259, 261, 261, 261, 272, 273, 277, 278, 265,␊ |
767 | 262, 262, 266, 195, 197, 197, 197, 197, 265, 411,␊ |
768 | ␊ |
769 | 284, 266, 433, 284, 279, 262, 396, 279, 308, 267,␊ |
770 | 197, 199, 285, 198, 189, 285, 291, 201, 267, 200,␊ |
771 | 259, 260, 260, 261, 195, 195, 267, 214, 292, 262,␊ |
772 | 262, 215, 365, 263, 195, 267, 195, 195, 195, 195,␊ |
773 | 287, 197, 197, 410, 262, 191, 192, 309, 193, 194,␊ |
774 | 195, 197, 240, 197, 197, 197, 197, 406, 304, 195,␊ |
775 | 303, 195, 216, 219, 228, 284, 217, 197, 229, 310,␊ |
776 | 220, 366, 327, 306, 305, 232, 197, 285, 197, 221,␊ |
777 | 235, 236, 242, 243, 311, 246, 243, 253, 254, 341,␊ |
778 | 341, 341, 259, 260, 260, 261, 265, 312, 402, 266,␊ |
779 | ␊ |
780 | 313, 262, 342, 259, 261, 261, 261, 345, 273, 347,␊ |
781 | 278, 284, 262, 262, 284, 433, 342, 279, 291, 291,␊ |
782 | 279, 195, 195, 285, 195, 195, 285, 262, 195, 195,␊ |
783 | 292, 292, 369, 195, 195, 345, 273, 195, 197, 197,␊ |
784 | 365, 197, 197, 347, 278, 197, 197, 284, 399, 197,␊ |
785 | 197, 197, 361, 352, 197, 195, 195, 284, 362, 285,␊ |
786 | 341, 341, 341, 363, 291, 197, 387, 364, 388, 285,␊ |
787 | 368, 370, 197, 197, 398, 371, 292, 367, 397, 366,␊ |
788 | 387, 195, 369, 404, 195, 407, 396, 195, 408, 408,␊ |
789 | 408, 284, 400, 284, 401, 393, 291, 399, 197, 197,␊ |
790 | ␊ |
791 | 197, 197, 413, 285, 197, 285, 195, 358, 292, 416,␊ |
792 | 404, 395, 195, 284, 197, 408, 408, 408, 421, 197,␊ |
793 | 413, 353, 403, 197, 405, 285, 197, 197, 412, 197,␊ |
794 | 408, 408, 408, 409, 195, 197, 416, 197, 388, 424,␊ |
795 | 425, 421, 350, 429, 424, 425, 414, 428, 425, 429,␊ |
796 | 391, 197, 428, 197, 417, 419, 197, 427, 197, 285,␊ |
797 | 197, 197, 427, 390, 285, 427, 197, 386, 385, 384,␊ |
798 | 383, 334, 334, 381, 380, 240, 422, 48, 48, 48,␊ |
799 | 48, 48, 48, 48, 48, 48, 48, 48, 74, 74,␊ |
800 | 74, 74, 74, 74, 74, 74, 74, 74, 74, 80,␊ |
801 | ␊ |
802 | 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,␊ |
803 | 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,␊ |
804 | 97, 105, 105, 105, 105, 105, 105, 105, 105, 105,␊ |
805 | 105, 105, 117, 117, 117, 117, 117, 117, 117, 117,␊ |
806 | 117, 117, 117, 121, 121, 121, 121, 121, 121, 121,␊ |
807 | 121, 121, 121, 121, 144, 144, 144, 144, 144, 144,␊ |
808 | 144, 144, 144, 144, 144, 152, 152, 152, 152, 152,␊ |
809 | 152, 152, 152, 152, 152, 152, 156, 156, 156, 156,␊ |
810 | 156, 156, 156, 156, 156, 156, 156, 160, 160, 160,␊ |
811 | 160, 160, 160, 160, 160, 160, 160, 160, 181, 181,␊ |
812 | ␊ |
813 | 378, 181, 181, 181, 181, 181, 181, 181, 181, 184,␊ |
814 | 377, 184, 184, 190, 323, 323, 376, 375, 374, 373,␊ |
815 | 190, 190, 196, 372, 367, 360, 359, 196, 196, 196,␊ |
816 | 196, 202, 202, 202, 358, 357, 356, 202, 202, 355,␊ |
817 | 353, 202, 204, 204, 290, 204, 204, 204, 204, 204,␊ |
818 | 204, 204, 204, 207, 288, 207, 207, 209, 350, 283,␊ |
819 | 349, 209, 209, 209, 209, 209, 209, 209, 213, 213,␊ |
820 | 348, 213, 280, 213, 213, 213, 213, 213, 213, 222,␊ |
821 | 346, 222, 222, 224, 224, 344, 224, 340, 224, 224,␊ |
822 | 224, 224, 224, 224, 226, 339, 226, 226, 227, 255,␊ |
823 | ␊ |
824 | 338, 336, 334, 333, 227, 227, 227, 227, 227, 230,␊ |
825 | 332, 331, 230, 240, 239, 328, 230, 230, 232, 232,␊ |
826 | 325, 232, 232, 232, 232, 232, 232, 232, 232, 237,␊ |
827 | 237, 323, 237, 237, 237, 237, 237, 237, 237, 237,␊ |
828 | 238, 322, 238, 238, 241, 241, 225, 241, 241, 247,␊ |
829 | 223, 218, 218, 212, 247, 247, 247, 247, 247, 247,␊ |
830 | 249, 320, 319, 318, 249, 249, 251, 251, 317, 251,␊ |
831 | 314, 251, 251, 251, 251, 251, 251, 257, 257, 301,␊ |
832 | 257, 257, 257, 257, 257, 257, 257, 257, 264, 300,␊ |
833 | 264, 264, 268, 299, 268, 268, 269, 269, 298, 297,␊ |
834 | ␊ |
835 | 269, 269, 269, 269, 269, 269, 271, 271, 271, 271,␊ |
836 | 271, 271, 271, 271, 271, 271, 271, 274, 274, 294,␊ |
837 | 179, 274, 274, 274, 274, 274, 274, 276, 276, 276,␊ |
838 | 276, 276, 276, 276, 276, 276, 276, 276, 279, 279,␊ |
839 | 279, 290, 279, 279, 279, 279, 279, 279, 279, 286,␊ |
840 | 288, 283, 282, 286, 286, 281, 286, 286, 289, 280,␊ |
841 | 289, 289, 293, 280, 275, 270, 293, 293, 258, 293,␊ |
842 | 293, 295, 295, 256, 295, 295, 295, 295, 295, 295,␊ |
843 | 295, 295, 296, 296, 296, 296, 255, 296, 296, 296,␊ |
844 | 296, 296, 296, 302, 252, 250, 248, 245, 302, 302,␊ |
845 | ␊ |
846 | 302, 302, 307, 307, 307, 307, 307, 307, 307, 244,␊ |
847 | 307, 307, 307, 315, 315, 240, 315, 315, 315, 315,␊ |
848 | 315, 315, 315, 315, 316, 316, 316, 316, 239, 316,␊ |
849 | 316, 316, 316, 316, 316, 321, 321, 233, 321, 321,␊ |
850 | 321, 321, 321, 321, 321, 321, 324, 234, 233, 231,␊ |
851 | 225, 324, 223, 324, 324, 326, 326, 326, 326, 326,␊ |
852 | 326, 326, 326, 326, 326, 326, 329, 329, 218, 329,␊ |
853 | 329, 329, 329, 329, 329, 329, 329, 330, 330, 335,␊ |
854 | 212, 211, 210, 208, 335, 206, 335, 335, 337, 337,␊ |
855 | 205, 337, 337, 337, 337, 337, 337, 337, 337, 343,␊ |
856 | ␊ |
857 | 203, 343, 351, 188, 187, 186, 185, 183, 182, 351,␊ |
858 | 351, 354, 180, 179, 433, 145, 145, 49, 354, 354,␊ |
859 | 379, 379, 49, 379, 379, 382, 382, 382, 382, 49,␊ |
860 | 382, 382, 382, 382, 382, 382, 392, 49, 433, 433,␊ |
861 | 392, 392, 433, 392, 392, 394, 433, 433, 433, 394,␊ |
862 | 394, 433, 394, 394, 418, 418, 426, 433, 433, 433,␊ |
863 | 433, 426, 426, 426, 426, 47, 433, 433, 433, 433,␊ |
864 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
865 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
866 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
867 | ␊ |
868 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
869 | 433, 433, 433␊ |
870 | } ;␊ |
871 | ␊ |
872 | static yyconst flex_int16_t yy_chk[1614] =␊ |
873 | { 0,␊ |
874 | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,␊ |
875 | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,␊ |
876 | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,␊ |
877 | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,␊ |
878 | 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,␊ |
879 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,␊ |
880 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,␊ |
881 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,␊ |
882 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,␊ |
883 | 4, 4, 4, 4, 5, 5, 5, 5, 5, 5,␊ |
884 | ␊ |
885 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,␊ |
886 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,␊ |
887 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,␊ |
888 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,␊ |
889 | 5, 9, 9, 431, 9, 10, 10, 9, 10, 11,␊ |
890 | 430, 10, 11, 12, 12, 103, 103, 12, 13, 13,␊ |
891 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,␊ |
892 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,␊ |
893 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,␊ |
894 | 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,␊ |
895 | ␊ |
896 | 13, 13, 13, 13, 13, 15, 15, 15, 15, 15,␊ |
897 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,␊ |
898 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,␊ |
899 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,␊ |
900 | 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,␊ |
901 | 15, 15, 17, 17, 423, 17, 17, 81, 17, 18,␊ |
902 | 18, 81, 18, 18, 17, 18, 19, 420, 20, 115,␊ |
903 | 115, 18, 19, 19, 20, 20, 19, 415, 20, 21,␊ |
904 | 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,␊ |
905 | 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,␊ |
906 | ␊ |
907 | 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,␊ |
908 | 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,␊ |
909 | 21, 21, 21, 21, 21, 21, 23, 23, 23, 23,␊ |
910 | 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,␊ |
911 | 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,␊ |
912 | 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,␊ |
913 | 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,␊ |
914 | 23, 23, 23, 25, 25, 25, 139, 25, 61, 139,␊ |
915 | 25, 26, 26, 26, 343, 26, 27, 27, 26, 27,␊ |
916 | 27, 411, 27, 28, 28, 61, 28, 28, 343, 28,␊ |
917 | ␊ |
918 | 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,␊ |
919 | 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,␊ |
920 | 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,␊ |
921 | 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,␊ |
922 | 29, 29, 29, 29, 29, 29, 29, 33, 33, 33,␊ |
923 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,␊ |
924 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,␊ |
925 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,␊ |
926 | 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,␊ |
927 | 33, 33, 33, 33, 35, 36, 35, 36, 60, 35,␊ |
928 | ␊ |
929 | 36, 37, 38, 37, 38, 410, 37, 38, 39, 40,␊ |
930 | 39, 40, 83, 39, 40, 85, 83, 120, 120, 99,␊ |
931 | 35, 36, 85, 99, 127, 127, 402, 37, 38, 60,␊ |
932 | 60, 85, 60, 60, 39, 40, 41, 41, 41, 41,␊ |
933 | 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,␊ |
934 | 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,␊ |
935 | 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,␊ |
936 | 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,␊ |
937 | 41, 41, 41, 43, 43, 43, 43, 43, 43, 43,␊ |
938 | 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,␊ |
939 | ␊ |
940 | 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,␊ |
941 | 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,␊ |
942 | 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,␊ |
943 | 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,␊ |
944 | 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,␊ |
945 | 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,␊ |
946 | 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,␊ |
947 | 45, 45, 45, 45, 45, 45, 45, 62, 63, 64,␊ |
948 | 65, 136, 136, 136, 136, 155, 155, 159, 159, 140,␊ |
949 | 136, 136, 140, 190, 62, 63, 64, 65, 142, 397,␊ |
950 | ␊ |
951 | 168, 142, 164, 169, 164, 136, 396, 164, 197, 140,␊ |
952 | 190, 63, 168, 62, 189, 169, 178, 65, 142, 64,␊ |
953 | 135, 135, 135, 135, 191, 192, 140, 214, 178, 135,␊ |
954 | 135, 214, 308, 135, 193, 142, 194, 195, 196, 198,␊ |
955 | 169, 191, 192, 395, 135, 189, 189, 197, 189, 189,␊ |
956 | 199, 193, 379, 194, 195, 196, 198, 374, 192, 200,␊ |
957 | 191, 201, 216, 219, 228, 284, 216, 199, 228, 198,␊ |
958 | 219, 308, 233, 194, 193, 233, 200, 284, 201, 219,␊ |
959 | 235, 235, 242, 242, 199, 246, 246, 253, 253, 259,␊ |
960 | 259, 259, 260, 260, 260, 260, 267, 200, 367, 267,␊ |
961 | ␊ |
962 | 201, 260, 260, 261, 261, 261, 261, 272, 272, 277,␊ |
963 | 277, 286, 261, 261, 287, 280, 260, 280, 291, 293,␊ |
964 | 280, 302, 303, 286, 304, 305, 287, 261, 306, 310,␊ |
965 | 291, 293, 311, 361, 312, 345, 345, 313, 302, 303,␊ |
966 | 365, 304, 305, 347, 347, 306, 310, 351, 362, 311,␊ |
967 | 361, 312, 303, 287, 313, 363, 364, 352, 304, 351,␊ |
968 | 341, 341, 341, 305, 354, 362, 341, 306, 341, 352,␊ |
969 | 310, 312, 363, 364, 361, 313, 354, 366, 360, 365,␊ |
970 | 341, 368, 369, 370, 371, 387, 359, 398, 387, 387,␊ |
971 | 387, 392, 363, 393, 364, 352, 394, 399, 368, 369,␊ |
972 | ␊ |
973 | 370, 371, 400, 392, 398, 393, 401, 358, 394, 403,␊ |
974 | 404, 357, 405, 409, 399, 407, 407, 407, 412, 400,␊ |
975 | 413, 353, 368, 401, 371, 409, 403, 404, 398, 405,␊ |
976 | 408, 408, 408, 393, 414, 412, 416, 413, 408, 417,␊ |
977 | 418, 421, 350, 422, 424, 425, 401, 419, 426, 429,␊ |
978 | 349, 414, 428, 416, 405, 409, 417, 418, 421, 419,␊ |
979 | 422, 424, 425, 348, 428, 426, 429, 340, 339, 338,␊ |
980 | 336, 335, 334, 332, 331, 330, 414, 434, 434, 434,␊ |
981 | 434, 434, 434, 434, 434, 434, 434, 434, 435, 435,␊ |
982 | 435, 435, 435, 435, 435, 435, 435, 435, 435, 436,␊ |
983 | ␊ |
984 | 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,␊ |
985 | 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,␊ |
986 | 437, 438, 438, 438, 438, 438, 438, 438, 438, 438,␊ |
987 | 438, 438, 439, 439, 439, 439, 439, 439, 439, 439,␊ |
988 | 439, 439, 439, 440, 440, 440, 440, 440, 440, 440,␊ |
989 | 440, 440, 440, 440, 441, 441, 441, 441, 441, 441,␊ |
990 | 441, 441, 441, 441, 441, 442, 442, 442, 442, 442,␊ |
991 | 442, 442, 442, 442, 442, 442, 443, 443, 443, 443,␊ |
992 | 443, 443, 443, 443, 443, 443, 443, 444, 444, 444,␊ |
993 | 444, 444, 444, 444, 444, 444, 444, 444, 445, 445,␊ |
994 | ␊ |
995 | 328, 445, 445, 445, 445, 445, 445, 445, 445, 446,␊ |
996 | 325, 446, 446, 447, 324, 323, 320, 319, 318, 317,␊ |
997 | 447, 447, 448, 314, 309, 301, 300, 448, 448, 448,␊ |
998 | 448, 449, 449, 449, 299, 298, 297, 449, 449, 294,␊ |
999 | 292, 449, 450, 450, 290, 450, 450, 450, 450, 450,␊ |
1000 | 450, 450, 450, 451, 288, 451, 451, 452, 285, 283,␊ |
1001 | 282, 452, 452, 452, 452, 452, 452, 452, 453, 453,␊ |
1002 | 281, 453, 279, 453, 453, 453, 453, 453, 453, 454,␊ |
1003 | 275, 454, 454, 455, 455, 270, 455, 258, 455, 455,␊ |
1004 | 455, 455, 455, 455, 456, 256, 456, 456, 457, 255,␊ |
1005 | ␊ |
1006 | 252, 250, 249, 248, 457, 457, 457, 457, 457, 458,␊ |
1007 | 245, 244, 458, 241, 239, 234, 458, 458, 459, 459,␊ |
1008 | 231, 459, 459, 459, 459, 459, 459, 459, 459, 460,␊ |
1009 | 460, 230, 460, 460, 460, 460, 460, 460, 460, 460,␊ |
1010 | 461, 229, 461, 461, 462, 462, 225, 462, 462, 463,␊ |
1011 | 223, 218, 217, 212, 463, 463, 463, 463, 463, 463,␊ |
1012 | 464, 211, 210, 208, 464, 464, 465, 465, 206, 465,␊ |
1013 | 203, 465, 465, 465, 465, 465, 465, 466, 466, 188,␊ |
1014 | 466, 466, 466, 466, 466, 466, 466, 466, 467, 187,␊ |
1015 | 467, 467, 468, 186, 468, 468, 469, 469, 185, 183,␊ |
1016 | ␊ |
1017 | 469, 469, 469, 469, 469, 469, 470, 470, 470, 470,␊ |
1018 | 470, 470, 470, 470, 470, 470, 470, 471, 471, 180,␊ |
1019 | 179, 471, 471, 471, 471, 471, 471, 472, 472, 472,␊ |
1020 | 472, 472, 472, 472, 472, 472, 472, 472, 473, 473,␊ |
1021 | 473, 176, 473, 473, 473, 473, 473, 473, 473, 474,␊ |
1022 | 171, 166, 163, 474, 474, 162, 474, 474, 475, 161,␊ |
1023 | 475, 475, 476, 160, 158, 153, 476, 476, 133, 476,␊ |
1024 | 476, 477, 477, 131, 477, 477, 477, 477, 477, 477,␊ |
1025 | 477, 477, 478, 478, 478, 478, 129, 478, 478, 478,␊ |
1026 | 478, 478, 478, 479, 126, 124, 123, 119, 479, 479,␊ |
1027 | ␊ |
1028 | 479, 479, 480, 480, 480, 480, 480, 480, 480, 118,␊ |
1029 | 480, 480, 480, 481, 481, 114, 481, 481, 481, 481,␊ |
1030 | 481, 481, 481, 481, 482, 482, 482, 482, 111, 482,␊ |
1031 | 482, 482, 482, 482, 482, 483, 483, 104, 483, 483,␊ |
1032 | 483, 483, 483, 483, 483, 483, 484, 102, 101, 100,␊ |
1033 | 94, 484, 90, 484, 484, 485, 485, 485, 485, 485,␊ |
1034 | 485, 485, 485, 485, 485, 485, 486, 486, 84, 486,␊ |
1035 | 486, 486, 486, 486, 486, 486, 486, 487, 487, 488,␊ |
1036 | 79, 78, 77, 73, 488, 70, 488, 488, 489, 489,␊ |
1037 | 69, 489, 489, 489, 489, 489, 489, 489, 489, 490,␊ |
1038 | ␊ |
1039 | 68, 490, 491, 59, 58, 57, 56, 54, 53, 491,␊ |
1040 | 491, 492, 52, 51, 47, 32, 31, 8, 492, 492,␊ |
1041 | 493, 493, 7, 493, 493, 494, 494, 494, 494, 2,␊ |
1042 | 494, 494, 494, 494, 494, 494, 495, 1, 0, 0,␊ |
1043 | 495, 495, 0, 495, 495, 496, 0, 0, 0, 496,␊ |
1044 | 496, 0, 496, 496, 497, 497, 498, 0, 0, 0,␊ |
1045 | 0, 498, 498, 498, 498, 433, 433, 433, 433, 433,␊ |
1046 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
1047 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
1048 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
1049 | ␊ |
1050 | 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,␊ |
1051 | 433, 433, 433␊ |
1052 | } ;␊ |
1053 | ␊ |
1054 | extern int pyscanYY_flex_debug;␊ |
1055 | int pyscanYY_flex_debug = 0;␊ |
1056 | ␊ |
1057 | static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;␊ |
1058 | static char *yy_full_match;␊ |
1059 | static int yy_lp;␊ |
1060 | static int yy_looking_for_trail_begin = 0;␊ |
1061 | static int yy_full_lp;␊ |
1062 | static int *yy_full_state;␊ |
1063 | #define YY_TRAILING_MASK 0x2000␊ |
1064 | #define YY_TRAILING_HEAD_MASK 0x4000␊ |
1065 | #define REJECT \␊ |
1066 | { \␊ |
1067 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */ \␊ |
1068 | yy_cp = (yy_full_match); /* restore poss. backed-over text */ \␊ |
1069 | (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \␊ |
1070 | (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \␊ |
1071 | yy_current_state = *(yy_state_ptr); /* restore curr. state */ \␊ |
1072 | ++(yy_lp); \␊ |
1073 | goto find_rule; \␊ |
1074 | }␊ |
1075 | ␊ |
1076 | #define yymore() yymore_used_but_not_detected␊ |
1077 | #define YY_MORE_ADJ 0␊ |
1078 | #define YY_RESTORE_YY_MORE_OFFSET␊ |
1079 | char *pyscanYYtext;␊ |
1080 | #line 1 "pyscanner.l"␊ |
1081 | /******************************************************************************␊ |
1082 | *␊ |
1083 | * $Id: pyscanner.l,v 1.9 2001/03/19 19:27:39 root Exp $␊ |
1084 | *␊ |
1085 | * Copyright (C) 1997-2011 by Dimitri van Heesch.␊ |
1086 | *␊ |
1087 | * Permission to use, copy, modify, and distribute this software and its␊ |
1088 | * documentation under the terms of the GNU General Public License is hereby ␊ |
1089 | * granted. No representations are made about the suitability of this software ␊ |
1090 | * for any purpose. It is provided "as is" without express or implied warranty.␊ |
1091 | * See the GNU General Public License for more details.␊ |
1092 | *␊ |
1093 | * Documents produced by Doxygen are derivative works derived from the␊ |
1094 | * input used in their production; they are not affected by this license.␊ |
1095 | *␊ |
1096 | */␊ |
1097 | /* This code is based on the work done by the MoxyPyDoxy team␊ |
1098 | * (Linda Leong, Mike Rivera, Kim Truong, and Gabriel Estrada)␊ |
1099 | * in Spring 2005 as part of CS 179E: Compiler Design Project␊ |
1100 | * at the University of California, Riverside; the course was␊ |
1101 | * taught by Peter H. Froehlich <phf@acm.org>.␊ |
1102 | */␊ |
1103 | #line 26 "pyscanner.l"␊ |
1104 | ␊ |
1105 | /*␊ |
1106 | *␉includes␊ |
1107 | */␊ |
1108 | #include <stdio.h>␊ |
1109 | #include <stdlib.h>␊ |
1110 | #include <assert.h>␊ |
1111 | #include <ctype.h>␊ |
1112 | ␊ |
1113 | #include "qtbc.h"␊ |
1114 | #include <qarray.h>␊ |
1115 | #include <qstack.h>␊ |
1116 | #include <qregexp.h>␊ |
1117 | #include <unistd.h>␊ |
1118 | #include <qfile.h>␊ |
1119 | #include <qfileinfo.h>␊ |
1120 | ␊ |
1121 | #include "pyscanner.h"␊ |
1122 | #include "entry.h"␊ |
1123 | #include "message.h"␊ |
1124 | #include "config.h"␊ |
1125 | #include "doxygen.h"␊ |
1126 | #include "util.h"␊ |
1127 | #include "defargs.h"␊ |
1128 | #include "language.h"␊ |
1129 | #include "commentscan.h"␊ |
1130 | #include "pycode.h"␊ |
1131 | ␊ |
1132 | #define YY_NEVER_INTERACTIVE 1␊ |
1133 | ␊ |
1134 | /* -----------------------------------------------------------------␊ |
1135 | *␊ |
1136 | *␉statics␊ |
1137 | */␊ |
1138 | ␊ |
1139 | ␊ |
1140 | static ParserInterface *g_thisParser;␊ |
1141 | static const char * inputString;␊ |
1142 | static int␉␉inputPosition;␊ |
1143 | static QFile inputFile;␊ |
1144 | ␊ |
1145 | static Protection␉protection;␊ |
1146 | ␊ |
1147 | static Entry*␉␉current_root = 0 ;␊ |
1148 | static Entry*␉␉current = 0 ;␊ |
1149 | static Entry*␉␉previous = 0 ;␊ |
1150 | static Entry*␉␉bodyEntry = 0 ;␊ |
1151 | static int␉␉yyLineNr = 1 ;␊ |
1152 | static QCString␉␉yyFileName;␊ |
1153 | static MethodTypes ␉mtype;␊ |
1154 | static bool ␉␉gstat;␊ |
1155 | static Specifier ␉virt;␊ |
1156 | ␊ |
1157 | static int docBlockContext;␊ |
1158 | static QCString docBlock;␊ |
1159 | static QCString docBlockName;␊ |
1160 | static bool docBlockInBody;␊ |
1161 | static bool docBlockJavaStyle;␊ |
1162 | static bool docBrief;␊ |
1163 | static bool docBlockSpecial;␊ |
1164 | ␊ |
1165 | static bool g_doubleQuote;␊ |
1166 | static bool g_specialBlock;␊ |
1167 | static int g_stringContext;␊ |
1168 | static QGString * g_copyString;␊ |
1169 | static int g_indent = 0;␊ |
1170 | static int g_curIndent = 0;␊ |
1171 | ␊ |
1172 | static QDict<QCString> g_packageNameCache(257);␊ |
1173 | static QCString g_packageScope;␊ |
1174 | ␊ |
1175 | static char g_atomStart;␊ |
1176 | static char g_atomEnd;␊ |
1177 | static int g_atomCount;␊ |
1178 | ␊ |
1179 | //static bool g_insideConstructor;␊ |
1180 | ␊ |
1181 | static QCString g_moduleScope;␊ |
1182 | static QCString g_packageName;␊ |
1183 | ␊ |
1184 | static bool g_hideClassDocs;␊ |
1185 | ␊ |
1186 | static QCString g_defVal;␊ |
1187 | static int g_braceCount;␊ |
1188 | ␊ |
1189 | static bool g_lexInit = FALSE;␊ |
1190 | static bool g_packageCommentAllowed;␊ |
1191 | ␊ |
1192 | //-----------------------------------------------------------------------------␊ |
1193 | ␊ |
1194 | ␊ |
1195 | static void initParser()␊ |
1196 | {␊ |
1197 | protection = Public;␊ |
1198 | mtype = Method;␊ |
1199 | gstat = FALSE;␊ |
1200 | virt = Normal;␊ |
1201 | previous = 0;␊ |
1202 | g_packageCommentAllowed = TRUE;␊ |
1203 | g_packageNameCache.setAutoDelete(TRUE);␊ |
1204 | }␊ |
1205 | ␊ |
1206 | static void initEntry()␊ |
1207 | {␊ |
1208 | //current->python = TRUE;␊ |
1209 | current->protection = protection ;␊ |
1210 | current->mtype = mtype;␊ |
1211 | current->virt = virt;␊ |
1212 | current->stat = gstat;␊ |
1213 | current->lang = SrcLangExt_Python; ␊ |
1214 | current->setParent(current_root);␊ |
1215 | initGroupInfo(current);␊ |
1216 | }␊ |
1217 | ␊ |
1218 | static void newEntry()␊ |
1219 | {␊ |
1220 | previous = current;␊ |
1221 | current_root->addSubEntry(current);␊ |
1222 | current = new Entry ;␊ |
1223 | initEntry();␊ |
1224 | }␊ |
1225 | ␊ |
1226 | static void newVariable()␊ |
1227 | {␊ |
1228 | if (!current->name.isEmpty() && current->name.at(0)=='_') // mark as private␊ |
1229 | {␊ |
1230 | current->protection=Private;␊ |
1231 | }␊ |
1232 | if (current_root->section&Entry::COMPOUND_MASK) // mark as class variable␊ |
1233 | {␊ |
1234 | current->stat = TRUE;␊ |
1235 | }␊ |
1236 | newEntry();␊ |
1237 | }␊ |
1238 | ␊ |
1239 | static void newFunction()␊ |
1240 | {␊ |
1241 | if (current->name.left(2)=="__" && current->name.right(2)=="__")␊ |
1242 | {␊ |
1243 | // special method name, see␊ |
1244 | // http://docs.python.org/ref/specialnames.html␊ |
1245 | current->protection=Public;␊ |
1246 | }␊ |
1247 | else if (current->name.at(0)=='_')␊ |
1248 | {␊ |
1249 | current->protection=Private;␊ |
1250 | }␊ |
1251 | }␊ |
1252 | ␊ |
1253 | static inline int computeIndent(const char *s)␊ |
1254 | {␊ |
1255 | int col=0;␊ |
1256 | static int tabSize=Config_getInt("TAB_SIZE");␊ |
1257 | const char *p=s;␊ |
1258 | char c;␊ |
1259 | while ((c=*p++))␊ |
1260 | {␊ |
1261 | if (c==' ') col++;␊ |
1262 | else if (c=='\t') col+=tabSize-(col%tabSize);␊ |
1263 | else break;␊ |
1264 | }␊ |
1265 | return col;␊ |
1266 | }␊ |
1267 | ␊ |
1268 | static QCString findPackageScopeFromPath(const QCString &path)␊ |
1269 | {␊ |
1270 | QCString *pScope = g_packageNameCache.find(path);␊ |
1271 | if (pScope)␊ |
1272 | {␊ |
1273 | return *pScope;␊ |
1274 | }␊ |
1275 | QFileInfo pf(path+"/__init__.py"); // found package initialization file␊ |
1276 | if (pf.exists())␊ |
1277 | {␊ |
1278 | int i=path.findRev('/');␊ |
1279 | if (i!=-1)␊ |
1280 | {␊ |
1281 | QCString scope = findPackageScopeFromPath(path.left(i));␊ |
1282 | if (!scope.isEmpty())␊ |
1283 | {␊ |
1284 | ␉scope+="::";␊ |
1285 | }␊ |
1286 | scope+=path.mid(i+1);␊ |
1287 | g_packageNameCache.insert(path,new QCString(scope));␊ |
1288 | return scope;␊ |
1289 | }␊ |
1290 | }␊ |
1291 | return "";␊ |
1292 | }␊ |
1293 | ␊ |
1294 | static QCString findPackageScope(const char *fileName)␊ |
1295 | {␊ |
1296 | if (fileName==0) return "";␊ |
1297 | QFileInfo fi(fileName);␊ |
1298 | return findPackageScopeFromPath(fi.dirPath(TRUE).data());␊ |
1299 | }␊ |
1300 | ␊ |
1301 | //-----------------------------------------------------------------------------␊ |
1302 | ␊ |
1303 | static void lineCount()␊ |
1304 | {␊ |
1305 | for( const char* c = pyscanYYtext ; *c ; ++c )␊ |
1306 | yyLineNr += (*c == '\n') ;␊ |
1307 | }␊ |
1308 | ␊ |
1309 | #if 0␊ |
1310 | // Appends the current-name to current-type;␊ |
1311 | // Destroys current-name.␊ |
1312 | // Destroys current->args and current->argList␊ |
1313 | static void addType( Entry* current )␊ |
1314 | {␊ |
1315 | uint tl=current->type.length();␊ |
1316 | if ( tl>0 && !current->name.isEmpty() && current->type.at(tl-1)!='.') ␊ |
1317 | {␊ |
1318 | current->type += ' ' ;␊ |
1319 | }␊ |
1320 | current->type += current->name ;␊ |
1321 | current->name.resize(0) ;␊ |
1322 | tl=current->type.length();␊ |
1323 | if ( tl>0 && !current->args.isEmpty() && current->type.at(tl-1)!='.') ␊ |
1324 | {␊ |
1325 | current->type += ' ' ;␊ |
1326 | }␊ |
1327 | current->type += current->args ;␊ |
1328 | current->args.resize(0) ;␊ |
1329 | current->argList->clear();␊ |
1330 | }␊ |
1331 | ␊ |
1332 | static QCString stripQuotes(const char *s)␊ |
1333 | {␊ |
1334 | QCString name;␊ |
1335 | if (s==0 || *s==0) return name;␊ |
1336 | name=s;␊ |
1337 | if (name.at(0)=='"' && name.at(name.length()-1)=='"')␊ |
1338 | {␊ |
1339 | name=name.mid(1,name.length()-2);␊ |
1340 | }␊ |
1341 | return name;␊ |
1342 | }␊ |
1343 | #endif␊ |
1344 | //-----------------------------------------------------------------␊ |
1345 | ␊ |
1346 | //-----------------------------------------------------------------␊ |
1347 | static void startCommentBlock(bool brief)␊ |
1348 | {␊ |
1349 | if (brief)␊ |
1350 | {␊ |
1351 | current->briefFile = yyFileName;␊ |
1352 | current->briefLine = yyLineNr;␊ |
1353 | }␊ |
1354 | else␊ |
1355 | {␊ |
1356 | current->docFile = yyFileName;␊ |
1357 | current->docLine = yyLineNr;␊ |
1358 | }␊ |
1359 | }␊ |
1360 | ␊ |
1361 | /*␊ |
1362 | static void appendDocBlock() {␊ |
1363 | previous = current;␊ |
1364 | current_root->addSubEntry(current);␊ |
1365 | current = new Entry;␊ |
1366 | initEntry();␊ |
1367 | }␊ |
1368 | */␊ |
1369 | ␊ |
1370 | static void handleCommentBlock(const QCString &doc,bool brief)␊ |
1371 | {␊ |
1372 | //printf("handleCommentBlock(doc=[%s] brief=%d docBlockInBody=%d docBlockJavaStyle=%d\n",␊ |
1373 | // doc.data(),brief,docBlockInBody,docBlockJavaStyle);␊ |
1374 | ␊ |
1375 | // TODO: Fix me␊ |
1376 | docBlockInBody=FALSE;␊ |
1377 | ␊ |
1378 | if (docBlockInBody && previous && !previous->doc.isEmpty())␊ |
1379 | {␊ |
1380 | previous->doc=previous->doc.stripWhiteSpace()+"\n\n";␊ |
1381 | }␊ |
1382 | ␊ |
1383 | int position = 0;␊ |
1384 | bool needsEntry;␊ |
1385 | int lineNr = brief ? current->briefLine : current->docLine;␊ |
1386 | while (parseCommentBlock(␊ |
1387 | ␉g_thisParser,␊ |
1388 | ␉(docBlockInBody && previous) ? previous : current,␊ |
1389 | ␉doc, // text␊ |
1390 | ␉yyFileName, // file␊ |
1391 | ␉lineNr,␊ |
1392 | ␉docBlockInBody ? FALSE : brief, ␊ |
1393 | docBlockJavaStyle, // javadoc style // or FALSE,␊ |
1394 | ␉docBlockInBody,␊ |
1395 | ␉protection,␊ |
1396 | position,␊ |
1397 | needsEntry)␊ |
1398 | ) // need to start a new entry␊ |
1399 | {␊ |
1400 | if (needsEntry)␊ |
1401 | {␊ |
1402 | newEntry();␊ |
1403 | }␊ |
1404 | }␊ |
1405 | if (needsEntry)␊ |
1406 | {␊ |
1407 | newEntry();␊ |
1408 | }␊ |
1409 | ␊ |
1410 | }␊ |
1411 | ␊ |
1412 | static void endOfDef(int correction=0)␊ |
1413 | {␊ |
1414 | if (bodyEntry)␊ |
1415 | {␊ |
1416 | bodyEntry->endBodyLine = yyLineNr-correction;␊ |
1417 | bodyEntry = 0;␊ |
1418 | }␊ |
1419 | newEntry();␊ |
1420 | //g_insideConstructor = FALSE;␊ |
1421 | }␊ |
1422 | ␊ |
1423 | static inline void addToString(const char *s)␊ |
1424 | {␊ |
1425 | if (g_copyString) (*g_copyString)+=s;␊ |
1426 | }␊ |
1427 | ␊ |
1428 | static void initTriDoubleQuoteBlock()␊ |
1429 | {␊ |
1430 | docBlockContext = YY_START;␊ |
1431 | docBlockInBody = FALSE;␊ |
1432 | docBlockJavaStyle = TRUE;␊ |
1433 | docBlockSpecial = pyscanYYtext[3]=='!';␊ |
1434 | docBlock.resize(0);␊ |
1435 | g_doubleQuote = TRUE;␊ |
1436 | startCommentBlock(FALSE);␊ |
1437 | }␊ |
1438 | ␊ |
1439 | static void initTriSingleQuoteBlock()␊ |
1440 | {␊ |
1441 | docBlockContext = YY_START;␊ |
1442 | docBlockInBody = FALSE;␊ |
1443 | docBlockJavaStyle = TRUE;␊ |
1444 | docBlockSpecial = pyscanYYtext[3]=='!';␊ |
1445 | docBlock.resize(0);␊ |
1446 | g_doubleQuote = FALSE;␊ |
1447 | startCommentBlock(FALSE);␊ |
1448 | }␊ |
1449 | ␊ |
1450 | static void initSpecialBlock()␊ |
1451 | {␊ |
1452 | docBlockContext = YY_START;␊ |
1453 | docBlockInBody = FALSE;␊ |
1454 | docBlockJavaStyle = TRUE;␊ |
1455 | docBrief = TRUE;␊ |
1456 | docBlock.resize(0);␊ |
1457 | startCommentBlock(TRUE);␊ |
1458 | }␊ |
1459 | ␊ |
1460 | static void searchFoundDef()␊ |
1461 | {␊ |
1462 | current->fileName = yyFileName;␊ |
1463 | current->startLine = yyLineNr;␊ |
1464 | current->bodyLine = yyLineNr;␊ |
1465 | current->section = Entry::FUNCTION_SEC;␊ |
1466 | current->protection = protection = Public;␊ |
1467 | current->lang = SrcLangExt_Python;␊ |
1468 | current->virt = Normal;␊ |
1469 | current->stat = FALSE;␊ |
1470 | current->mtype = mtype = Method;␊ |
1471 | current->type.resize(0);␊ |
1472 | current->name.resize(0);␊ |
1473 | current->args.resize(0);␊ |
1474 | current->argList->clear();␊ |
1475 | g_packageCommentAllowed = FALSE;␊ |
1476 | }␊ |
1477 | ␊ |
1478 | static void searchFoundClass()␊ |
1479 | {␊ |
1480 | current->section = Entry::CLASS_SEC;␊ |
1481 | current->argList->clear();␊ |
1482 | current->type += "class" ;␊ |
1483 | current->fileName = yyFileName;␊ |
1484 | current->bodyLine = yyLineNr;␊ |
1485 | g_packageCommentAllowed = FALSE;␊ |
1486 | }␊ |
1487 | ␊ |
1488 | //-----------------------------------------------------------------------------␊ |
1489 | /* ----------------------------------------------------------------- */␊ |
1490 | #undef␉YY_INPUT␊ |
1491 | #define␉YY_INPUT(buf,result,max_size) result=yyread(buf,max_size);␊ |
1492 | ␊ |
1493 | static int yyread(char *buf,int max_size)␊ |
1494 | {␊ |
1495 | int c=0;␊ |
1496 | while ( c < max_size && inputString[inputPosition] )␊ |
1497 | {␊ |
1498 | *buf = inputString[inputPosition++] ;␊ |
1499 | //printf("%d (%c)\n",*buf,*buf);␊ |
1500 | c++; buf++;␊ |
1501 | }␊ |
1502 | return c;␊ |
1503 | }␊ |
1504 | ␊ |
1505 | /* start command character */␊ |
1506 | /* Main start state */␊ |
1507 | ␊ |
1508 | ␊ |
1509 | /* Mid-comment states */␊ |
1510 | /* %x FuncDoubleComment */␊ |
1511 | /* %x ClassDoubleComment */␊ |
1512 | ␊ |
1513 | ␊ |
1514 | ␊ |
1515 | /* Function states */␊ |
1516 | ␊ |
1517 | ␊ |
1518 | ␊ |
1519 | ␊ |
1520 | /* Class states */␊ |
1521 | ␊ |
1522 | ␊ |
1523 | ␊ |
1524 | ␊ |
1525 | /* Variable states */␊ |
1526 | ␊ |
1527 | ␊ |
1528 | ␊ |
1529 | /* String states */␊ |
1530 | ␊ |
1531 | ␊ |
1532 | ␊ |
1533 | /* import */␊ |
1534 | ␊ |
1535 | ␊ |
1536 | ␊ |
1537 | #line 1538 "<stdout>"␊ |
1538 | ␊ |
1539 | #define INITIAL 0␊ |
1540 | #define Search 1␊ |
1541 | #define SearchMemVars 2␊ |
1542 | #define TryClassDocString 3␊ |
1543 | #define TripleComment 4␊ |
1544 | #define SpecialComment 5␊ |
1545 | #define FunctionDec 6␊ |
1546 | #define FunctionParams 7␊ |
1547 | #define FunctionBody 8␊ |
1548 | #define FunctionParamDefVal 9␊ |
1549 | #define ClassDec 10␊ |
1550 | #define ClassInheritance 11␊ |
1551 | #define ClassCaptureIndent 12␊ |
1552 | #define ClassBody 13␊ |
1553 | #define VariableDec 14␊ |
1554 | #define VariableEnd 15␊ |
1555 | #define VariableAtom 16␊ |
1556 | #define SingleQuoteString 17␊ |
1557 | #define DoubleQuoteString 18␊ |
1558 | #define TripleString 19␊ |
1559 | #define FromMod 20␊ |
1560 | #define FromModItem 21␊ |
1561 | #define Import 22␊ |
1562 | ␊ |
1563 | #ifndef YY_NO_UNISTD_H␊ |
1564 | /* Special case for "unistd.h", since it is non-ANSI. We include it way␊ |
1565 | * down here because we want the user's section 1 to have been scanned first.␊ |
1566 | * The user has a chance to override it with an option.␊ |
1567 | */␊ |
1568 | #include <unistd.h>␊ |
1569 | #endif␊ |
1570 | ␊ |
1571 | #ifndef YY_EXTRA_TYPE␊ |
1572 | #define YY_EXTRA_TYPE void *␊ |
1573 | #endif␊ |
1574 | ␊ |
1575 | static int yy_init_globals (void );␊ |
1576 | ␊ |
1577 | /* Accessor methods to globals.␊ |
1578 | These are made visible to non-reentrant scanners for convenience. */␊ |
1579 | ␊ |
1580 | int pyscanYYlex_destroy (void );␊ |
1581 | ␊ |
1582 | int pyscanYYget_debug (void );␊ |
1583 | ␊ |
1584 | void pyscanYYset_debug (int debug_flag );␊ |
1585 | ␊ |
1586 | YY_EXTRA_TYPE pyscanYYget_extra (void );␊ |
1587 | ␊ |
1588 | void pyscanYYset_extra (YY_EXTRA_TYPE user_defined );␊ |
1589 | ␊ |
1590 | FILE *pyscanYYget_in (void );␊ |
1591 | ␊ |
1592 | void pyscanYYset_in (FILE * in_str );␊ |
1593 | ␊ |
1594 | FILE *pyscanYYget_out (void );␊ |
1595 | ␊ |
1596 | void pyscanYYset_out (FILE * out_str );␊ |
1597 | ␊ |
1598 | yy_size_t pyscanYYget_leng (void );␊ |
1599 | ␊ |
1600 | char *pyscanYYget_text (void );␊ |
1601 | ␊ |
1602 | int pyscanYYget_lineno (void );␊ |
1603 | ␊ |
1604 | void pyscanYYset_lineno (int line_number );␊ |
1605 | ␊ |
1606 | /* Macros after this point can all be overridden by user definitions in␊ |
1607 | * section 1.␊ |
1608 | */␊ |
1609 | ␊ |
1610 | #ifndef YY_SKIP_YYWRAP␊ |
1611 | #ifdef __cplusplus␊ |
1612 | extern "C" int pyscanYYwrap (void );␊ |
1613 | #else␊ |
1614 | extern int pyscanYYwrap (void );␊ |
1615 | #endif␊ |
1616 | #endif␊ |
1617 | ␊ |
1618 | static void yyunput (int c,char *buf_ptr );␊ |
1619 | ␊ |
1620 | #ifndef yytext_ptr␊ |
1621 | static void yy_flex_strncpy (char *,yyconst char *,int );␊ |
1622 | #endif␊ |
1623 | ␊ |
1624 | #ifdef YY_NEED_STRLEN␊ |
1625 | static int yy_flex_strlen (yyconst char * );␊ |
1626 | #endif␊ |
1627 | ␊ |
1628 | #ifndef YY_NO_INPUT␊ |
1629 | ␊ |
1630 | #ifdef __cplusplus␊ |
1631 | static int yyinput (void );␊ |
1632 | #else␊ |
1633 | static int input (void );␊ |
1634 | #endif␊ |
1635 | ␊ |
1636 | #endif␊ |
1637 | ␊ |
1638 | /* Amount of stuff to slurp up with each read. */␊ |
1639 | #ifndef YY_READ_BUF_SIZE␊ |
1640 | #define YY_READ_BUF_SIZE 262144␊ |
1641 | #endif␊ |
1642 | ␊ |
1643 | /* Copy whatever the last rule matched to the standard output. */␊ |
1644 | #ifndef ECHO␊ |
1645 | /* This used to be an fputs(), but since the string might contain NUL's,␊ |
1646 | * we now use fwrite().␊ |
1647 | */␊ |
1648 | #define ECHO fwrite( pyscanYYtext, pyscanYYleng, 1, pyscanYYout )␊ |
1649 | #endif␊ |
1650 | ␊ |
1651 | /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,␊ |
1652 | * is returned in "result".␊ |
1653 | */␊ |
1654 | #ifndef YY_INPUT␊ |
1655 | #define YY_INPUT(buf,result,max_size) \␊ |
1656 | ␉if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \␊ |
1657 | ␉␉{ \␊ |
1658 | ␉␉int c = '*'; \␊ |
1659 | ␉␉yy_size_t n; \␊ |
1660 | ␉␉for ( n = 0; n < max_size && \␊ |
1661 | ␉␉␉ (c = getc( pyscanYYin )) != EOF && c != '\n'; ++n ) \␊ |
1662 | ␉␉␉buf[n] = (char) c; \␊ |
1663 | ␉␉if ( c == '\n' ) \␊ |
1664 | ␉␉␉buf[n++] = (char) c; \␊ |
1665 | ␉␉if ( c == EOF && ferror( pyscanYYin ) ) \␊ |
1666 | ␉␉␉YY_FATAL_ERROR( "input in flex scanner failed" ); \␊ |
1667 | ␉␉result = n; \␊ |
1668 | ␉␉} \␊ |
1669 | ␉else \␊ |
1670 | ␉␉{ \␊ |
1671 | ␉␉errno=0; \␊ |
1672 | ␉␉while ( (result = fread(buf, 1, max_size, pyscanYYin))==0 && ferror(pyscanYYin)) \␊ |
1673 | ␉␉␉{ \␊ |
1674 | ␉␉␉if( errno != EINTR) \␊ |
1675 | ␉␉␉␉{ \␊ |
1676 | ␉␉␉␉YY_FATAL_ERROR( "input in flex scanner failed" ); \␊ |
1677 | ␉␉␉␉break; \␊ |
1678 | ␉␉␉␉} \␊ |
1679 | ␉␉␉errno=0; \␊ |
1680 | ␉␉␉clearerr(pyscanYYin); \␊ |
1681 | ␉␉␉} \␊ |
1682 | ␉␉}\␊ |
1683 | \␊ |
1684 | ␊ |
1685 | #endif␊ |
1686 | ␊ |
1687 | /* No semi-colon after return; correct usage is to write "yyterminate();" -␊ |
1688 | * we don't want an extra ';' after the "return" because that will cause␊ |
1689 | * some compilers to complain about unreachable statements.␊ |
1690 | */␊ |
1691 | #ifndef yyterminate␊ |
1692 | #define yyterminate() return YY_NULL␊ |
1693 | #endif␊ |
1694 | ␊ |
1695 | /* Number of entries by which start-condition stack grows. */␊ |
1696 | #ifndef YY_START_STACK_INCR␊ |
1697 | #define YY_START_STACK_INCR 25␊ |
1698 | #endif␊ |
1699 | ␊ |
1700 | /* Report a fatal error. */␊ |
1701 | #ifndef YY_FATAL_ERROR␊ |
1702 | #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )␊ |
1703 | #endif␊ |
1704 | ␊ |
1705 | /* end tables serialization structures and prototypes */␊ |
1706 | ␊ |
1707 | /* Default declaration of generated scanner - a define so the user can␊ |
1708 | * easily add parameters.␊ |
1709 | */␊ |
1710 | #ifndef YY_DECL␊ |
1711 | #define YY_DECL_IS_OURS 1␊ |
1712 | ␊ |
1713 | extern int pyscanYYlex (void);␊ |
1714 | ␊ |
1715 | #define YY_DECL int pyscanYYlex (void)␊ |
1716 | #endif /* !YY_DECL */␊ |
1717 | ␊ |
1718 | /* Code executed at the beginning of each rule, after pyscanYYtext and pyscanYYleng␊ |
1719 | * have been set up.␊ |
1720 | */␊ |
1721 | #ifndef YY_USER_ACTION␊ |
1722 | #define YY_USER_ACTION␊ |
1723 | #endif␊ |
1724 | ␊ |
1725 | /* Code executed at the end of each rule. */␊ |
1726 | #ifndef YY_BREAK␊ |
1727 | #define YY_BREAK break;␊ |
1728 | #endif␊ |
1729 | ␊ |
1730 | #define YY_RULE_SETUP \␊ |
1731 | ␉if ( pyscanYYleng > 0 ) \␊ |
1732 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \␊ |
1733 | ␉␉␉␉(pyscanYYtext[pyscanYYleng - 1] == '\n'); \␊ |
1734 | ␉YY_USER_ACTION␊ |
1735 | ␊ |
1736 | /** The main scanner function which does all the work.␊ |
1737 | */␊ |
1738 | YY_DECL␊ |
1739 | {␊ |
1740 | ␉register yy_state_type yy_current_state;␊ |
1741 | ␉register char *yy_cp, *yy_bp;␊ |
1742 | ␉register int yy_act;␊ |
1743 | ␊ |
1744 | #line 518 "pyscanner.l"␊ |
1745 | ␊ |
1746 | ␊ |
1747 | /* ------------ Function recognition rules -------------- */␊ |
1748 | ␊ |
1749 | #line 1750 "<stdout>"␊ |
1750 | ␊ |
1751 | ␉if ( !(yy_init) )␊ |
1752 | ␉␉{␊ |
1753 | ␉␉(yy_init) = 1;␊ |
1754 | ␊ |
1755 | #ifdef YY_USER_INIT␊ |
1756 | ␉␉YY_USER_INIT;␊ |
1757 | #endif␊ |
1758 | ␊ |
1759 | /* Create the reject buffer large enough to save one state per allowed character. */␊ |
1760 | if ( ! (yy_state_buf) )␊ |
1761 | (yy_state_buf) = (yy_state_type *)pyscanYYalloc(YY_STATE_BUF_SIZE );␊ |
1762 | if ( ! (yy_state_buf) )␊ |
1763 | YY_FATAL_ERROR( "out of dynamic memory in pyscanYYlex()" );␊ |
1764 | ␊ |
1765 | ␉␉if ( ! (yy_start) )␊ |
1766 | ␉␉␉(yy_start) = 1;␉/* first start state */␊ |
1767 | ␊ |
1768 | ␉␉if ( ! pyscanYYin )␊ |
1769 | ␉␉␉pyscanYYin = stdin;␊ |
1770 | ␊ |
1771 | ␉␉if ( ! pyscanYYout )␊ |
1772 | ␉␉␉pyscanYYout = stdout;␊ |
1773 | ␊ |
1774 | ␉␉if ( ! YY_CURRENT_BUFFER ) {␊ |
1775 | ␉␉␉pyscanYYensure_buffer_stack ();␊ |
1776 | ␉␉␉YY_CURRENT_BUFFER_LVALUE =␊ |
1777 | ␉␉␉␉pyscanYY_create_buffer(pyscanYYin,YY_BUF_SIZE );␊ |
1778 | ␉␉}␊ |
1779 | ␊ |
1780 | ␉␉pyscanYY_load_buffer_state( );␊ |
1781 | ␉␉}␊ |
1782 | ␊ |
1783 | ␉while ( 1 )␉␉/* loops until end-of-file is reached */␊ |
1784 | ␉␉{␊ |
1785 | ␉␉yy_cp = (yy_c_buf_p);␊ |
1786 | ␊ |
1787 | ␉␉/* Support of pyscanYYtext. */␊ |
1788 | ␉␉*yy_cp = (yy_hold_char);␊ |
1789 | ␊ |
1790 | ␉␉/* yy_bp points to the position in yy_ch_buf of the start of␊ |
1791 | ␉␉ * the current run.␊ |
1792 | ␉␉ */␊ |
1793 | ␉␉yy_bp = yy_cp;␊ |
1794 | ␊ |
1795 | ␉␉yy_current_state = (yy_start);␊ |
1796 | ␉␉yy_current_state += YY_AT_BOL();␊ |
1797 | ␊ |
1798 | ␉␉(yy_state_ptr) = (yy_state_buf);␊ |
1799 | ␉␉*(yy_state_ptr)++ = yy_current_state;␊ |
1800 | ␊ |
1801 | yy_match:␊ |
1802 | ␉␉do␊ |
1803 | ␉␉␉{␊ |
1804 | ␉␉␉register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];␊ |
1805 | ␉␉␉while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )␊ |
1806 | ␉␉␉␉{␊ |
1807 | ␉␉␉␉yy_current_state = (int) yy_def[yy_current_state];␊ |
1808 | ␉␉␉␉if ( yy_current_state >= 434 )␊ |
1809 | ␉␉␉␉␉yy_c = yy_meta[(unsigned int) yy_c];␊ |
1810 | ␉␉␉␉}␊ |
1811 | ␉␉␉yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];␊ |
1812 | ␉␉␉*(yy_state_ptr)++ = yy_current_state;␊ |
1813 | ␉␉␉++yy_cp;␊ |
1814 | ␉␉␉}␊ |
1815 | ␉␉while ( yy_base[yy_current_state] != 1566 );␊ |
1816 | ␊ |
1817 | yy_find_action:␊ |
1818 | ␉␉yy_current_state = *--(yy_state_ptr);␊ |
1819 | ␉␉(yy_lp) = yy_accept[yy_current_state];␊ |
1820 | goto find_rule; /* Shut up GCC warning -Wall */␊ |
1821 | find_rule: /* we branch to this label when backing up */␊ |
1822 | ␉␉for ( ; ; ) /* until we find what rule we matched */␊ |
1823 | ␉␉␉{␊ |
1824 | ␉␉␉if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )␊ |
1825 | ␉␉␉␉{␊ |
1826 | ␉␉␉␉yy_act = yy_acclist[(yy_lp)];␊ |
1827 | ␉␉␉␉if ( yy_act & YY_TRAILING_HEAD_MASK ||␊ |
1828 | ␉␉␉␉ (yy_looking_for_trail_begin) )␊ |
1829 | ␉␉␉␉␉{␊ |
1830 | ␉␉␉␉␉if ( yy_act == (yy_looking_for_trail_begin) )␊ |
1831 | ␉␉␉␉␉␉{␊ |
1832 | ␉␉␉␉␉␉(yy_looking_for_trail_begin) = 0;␊ |
1833 | ␉␉␉␉␉␉yy_act &= ~YY_TRAILING_HEAD_MASK;␊ |
1834 | ␉␉␉␉␉␉break;␊ |
1835 | ␉␉␉␉␉␉}␊ |
1836 | ␉␉␉␉␉}␊ |
1837 | ␉␉␉␉else if ( yy_act & YY_TRAILING_MASK )␊ |
1838 | ␉␉␉␉␉{␊ |
1839 | ␉␉␉␉␉(yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;␊ |
1840 | ␉␉␉␉␉(yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;␊ |
1841 | ␉␉␉␉␉}␊ |
1842 | ␉␉␉␉else␊ |
1843 | ␉␉␉␉␉{␊ |
1844 | ␉␉␉␉␉(yy_full_match) = yy_cp;␊ |
1845 | ␉␉␉␉␉(yy_full_state) = (yy_state_ptr);␊ |
1846 | ␉␉␉␉␉(yy_full_lp) = (yy_lp);␊ |
1847 | ␉␉␉␉␉break;␊ |
1848 | ␉␉␉␉␉}␊ |
1849 | ␉␉␉␉++(yy_lp);␊ |
1850 | ␉␉␉␉goto find_rule;␊ |
1851 | ␉␉␉␉}␊ |
1852 | ␉␉␉--yy_cp;␊ |
1853 | ␉␉␉yy_current_state = *--(yy_state_ptr);␊ |
1854 | ␉␉␉(yy_lp) = yy_accept[yy_current_state];␊ |
1855 | ␉␉␉}␊ |
1856 | ␊ |
1857 | ␉␉YY_DO_BEFORE_ACTION;␊ |
1858 | ␊ |
1859 | do_action:␉/* This label is used only to access EOF actions. */␊ |
1860 | ␊ |
1861 | ␉␉switch ( yy_act )␊ |
1862 | ␉{ /* beginning of action switch */␊ |
1863 | ␊ |
1864 | case 1:␊ |
1865 | YY_RULE_SETUP␊ |
1866 | #line 524 "pyscanner.l"␊ |
1867 | { // start of a function/method definition with indent␊ |
1868 | ␉␉␉ g_indent=computeIndent(pyscanYYtext);␊ |
1869 | ␉␉␉ searchFoundDef();␊ |
1870 | ␉␉␉ BEGIN( FunctionDec );␊ |
1871 | ␉␉␉}␊ |
1872 | ␉YY_BREAK␊ |
1873 | case 2:␊ |
1874 | YY_RULE_SETUP␊ |
1875 | #line 529 "pyscanner.l"␊ |
1876 | { // start of a function/method definition␊ |
1877 | ␉␉␉ searchFoundDef();␊ |
1878 | ␉␉␉ BEGIN( FunctionDec );␊ |
1879 | }␊ |
1880 | ␉YY_BREAK␊ |
1881 | case 3:␊ |
1882 | YY_RULE_SETUP␊ |
1883 | #line 534 "pyscanner.l"␊ |
1884 | { // start of a class definition with indent␊ |
1885 | ␉␉␉ g_indent=computeIndent(pyscanYYtext);␊ |
1886 | ␉␉␉ searchFoundClass();␊ |
1887 | ␉␉␉ BEGIN( ClassDec ) ;␊ |
1888 | ␉␉␉}␊ |
1889 | ␉YY_BREAK␊ |
1890 | case 4:␊ |
1891 | YY_RULE_SETUP␊ |
1892 | #line 539 "pyscanner.l"␊ |
1893 | { // start of a class definition␊ |
1894 | ␉␉␉ searchFoundClass();␊ |
1895 | ␉␉␉ BEGIN( ClassDec ) ;␊ |
1896 | }␊ |
1897 | ␉YY_BREAK␊ |
1898 | case 5:␊ |
1899 | #line 544 "pyscanner.l"␊ |
1900 | case 6:␊ |
1901 | YY_RULE_SETUP␊ |
1902 | #line 544 "pyscanner.l"␊ |
1903 | { // start of an from import␊ |
1904 | ␉␉␉ g_packageCommentAllowed = FALSE;␊ |
1905 | BEGIN( FromMod );␊ |
1906 | }␊ |
1907 | ␉YY_BREAK␊ |
1908 | case 7:␊ |
1909 | #line 550 "pyscanner.l"␊ |
1910 | case 8:␊ |
1911 | YY_RULE_SETUP␊ |
1912 | #line 550 "pyscanner.l"␊ |
1913 | { // start of an import statement␊ |
1914 | ␉␉␉ g_packageCommentAllowed = FALSE;␊ |
1915 | BEGIN( Import );␊ |
1916 | }␊ |
1917 | ␉YY_BREAK␊ |
1918 | case 9:␊ |
1919 | YY_RULE_SETUP␊ |
1920 | #line 554 "pyscanner.l"␊ |
1921 | { // property␊ |
1922 | ␉␉␉current->section = Entry::VARIABLE_SEC;␊ |
1923 | ␉␉␉current->mtype = Property;␊ |
1924 | ␉␉␉current->name = QCString(pyscanYYtext).stripWhiteSpace();␊ |
1925 | ␉␉␉current->fileName = yyFileName;␊ |
1926 | ␉␉␉current->startLine = yyLineNr;␊ |
1927 | ␉␉␉current->bodyLine = yyLineNr;␊ |
1928 | ␉␉␉g_packageCommentAllowed = FALSE;␊ |
1929 | ␉␉␉BEGIN(VariableDec);␊ |
1930 | ␉ }␊ |
1931 | ␉YY_BREAK␊ |
1932 | case 10:␊ |
1933 | /* rule 10 can match eol */␊ |
1934 | YY_RULE_SETUP␊ |
1935 | #line 564 "pyscanner.l"␊ |
1936 | { // variable␊ |
1937 | ␉␉␉g_indent=computeIndent(pyscanYYtext);␊ |
1938 | ␉␉␉current->section = Entry::VARIABLE_SEC;␊ |
1939 | ␉␉␉current->name = QCString(pyscanYYtext).stripWhiteSpace();␊ |
1940 | ␉␉␉current->fileName = yyFileName;␊ |
1941 | ␉␉␉current->startLine = yyLineNr;␊ |
1942 | ␉␉␉current->bodyLine = yyLineNr;␊ |
1943 | ␉␉␉g_packageCommentAllowed = FALSE;␊ |
1944 | ␉␉␉BEGIN(VariableDec);␊ |
1945 | ␉␉ }␊ |
1946 | ␉YY_BREAK␊ |
1947 | case 11:␊ |
1948 | YY_RULE_SETUP␊ |
1949 | #line 574 "pyscanner.l"␊ |
1950 | { // start of a single quoted string␊ |
1951 | ␉␉ g_stringContext=YY_START;␊ |
1952 | ␉␉ g_copyString=0;␊ |
1953 | ␉␉␉g_packageCommentAllowed = FALSE;␊ |
1954 | BEGIN( SingleQuoteString );␊ |
1955 | }␊ |
1956 | ␉YY_BREAK␊ |
1957 | case 12:␊ |
1958 | YY_RULE_SETUP␊ |
1959 | #line 580 "pyscanner.l"␊ |
1960 | { // start of a double quoted string␊ |
1961 | ␉ g_stringContext=YY_START;␊ |
1962 | ␉␉␉g_copyString=0;␊ |
1963 | ␉␉␉g_packageCommentAllowed = FALSE;␊ |
1964 | BEGIN( DoubleQuoteString );␊ |
1965 | }␊ |
1966 | ␉YY_BREAK␊ |
1967 | case 13:␊ |
1968 | YY_RULE_SETUP␊ |
1969 | #line 587 "pyscanner.l"␊ |
1970 | { // normal comment ␊ |
1971 | ␉␉␉g_packageCommentAllowed = FALSE;␊ |
1972 | ␉␉ }␊ |
1973 | ␉YY_BREAK␊ |
1974 | case 14:␊ |
1975 | YY_RULE_SETUP␊ |
1976 | #line 590 "pyscanner.l"␊ |
1977 | { // some other identifier␊ |
1978 | ␉␉␉g_packageCommentAllowed = FALSE;␊ |
1979 | ␉␉ }␊ |
1980 | ␉YY_BREAK␊ |
1981 | case 15:␊ |
1982 | YY_RULE_SETUP␊ |
1983 | #line 593 "pyscanner.l"␊ |
1984 | {␊ |
1985 | ␉␉␉g_curIndent=computeIndent(pyscanYYtext);␊ |
1986 | }␊ |
1987 | ␉YY_BREAK␊ |
1988 | case 16:␊ |
1989 | /* rule 16 can match eol */␊ |
1990 | YY_RULE_SETUP␊ |
1991 | #line 597 "pyscanner.l"␊ |
1992 | { // new line␊ |
1993 | lineCount();␊ |
1994 | }␊ |
1995 | ␉YY_BREAK␊ |
1996 | case 17:␊ |
1997 | YY_RULE_SETUP␊ |
1998 | #line 601 "pyscanner.l"␊ |
1999 | { // start of a comment block␊ |
2000 | ␉␉␉initTriDoubleQuoteBlock();␊ |
2001 | ␉␉␉BEGIN(TripleComment);␊ |
2002 | }␊ |
2003 | ␉YY_BREAK␊ |
2004 | case 18:␊ |
2005 | YY_RULE_SETUP␊ |
2006 | #line 606 "pyscanner.l"␊ |
2007 | { // start of a comment block␊ |
2008 | ␉␉␉initTriSingleQuoteBlock();␊ |
2009 | ␉␉␉BEGIN(TripleComment);␊ |
2010 | }␊ |
2011 | ␉YY_BREAK␊ |
2012 | case 19:␊ |
2013 | /* rule 19 can match eol */␊ |
2014 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2015 | (yy_c_buf_p) = yy_cp = yy_bp + 2;␊ |
2016 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2017 | YY_RULE_SETUP␊ |
2018 | #line 611 "pyscanner.l"␊ |
2019 | { // start of a special comment␊ |
2020 | ␉␉␉g_curIndent=computeIndent(pyscanYYtext);␊ |
2021 | ␉␉␉g_packageCommentAllowed = FALSE;␊ |
2022 | ␉␉␉initSpecialBlock();␊ |
2023 | ␉␉␉BEGIN(SpecialComment);␊ |
2024 | }␊ |
2025 | ␉YY_BREAK␊ |
2026 | case 20:␊ |
2027 | YY_RULE_SETUP␊ |
2028 | #line 617 "pyscanner.l"␊ |
2029 | { // any other character...␊ |
2030 | // This is the major default␊ |
2031 | // that should catch everything␊ |
2032 | // else in Body.␊ |
2033 | }␊ |
2034 | ␉YY_BREAK␊ |
2035 | ␊ |
2036 | ␊ |
2037 | case 21:␊ |
2038 | YY_RULE_SETUP␊ |
2039 | #line 625 "pyscanner.l"␊ |
2040 | { // from package import ␊ |
2041 | g_packageName=pyscanYYtext;␊ |
2042 | ␉␉ }␊ |
2043 | ␉YY_BREAK␊ |
2044 | case 22:␊ |
2045 | YY_RULE_SETUP␊ |
2046 | #line 628 "pyscanner.l"␊ |
2047 | {␊ |
2048 | ␉␉␉BEGIN(FromModItem);␊ |
2049 | ␉␉ }␊ |
2050 | ␉YY_BREAK␊ |
2051 | case 23:␊ |
2052 | /* rule 23 can match eol */␊ |
2053 | YY_RULE_SETUP␊ |
2054 | #line 631 "pyscanner.l"␊ |
2055 | {␊ |
2056 | yyLineNr++;␊ |
2057 | BEGIN(Search);␊ |
2058 | }␊ |
2059 | ␉YY_BREAK␊ |
2060 | case 24:␊ |
2061 | YY_RULE_SETUP␊ |
2062 | #line 635 "pyscanner.l"␊ |
2063 | {␊ |
2064 | ␉␉ }␊ |
2065 | ␉YY_BREAK␊ |
2066 | case 25:␊ |
2067 | YY_RULE_SETUP␊ |
2068 | #line 637 "pyscanner.l"␊ |
2069 | {␊ |
2070 | unput(*pyscanYYtext);␊ |
2071 | BEGIN(Search);␊ |
2072 | }␊ |
2073 | ␉YY_BREAK␊ |
2074 | ␊ |
2075 | ␊ |
2076 | case 26:␊ |
2077 | YY_RULE_SETUP␊ |
2078 | #line 644 "pyscanner.l"␊ |
2079 | { // import all␊ |
2080 | QCString item=g_packageName;␊ |
2081 | ␉␉ current->name=removeRedundantWhiteSpace(substitute(item,".","::"));␊ |
2082 | ␉␉ current->fileName = yyFileName; ␊ |
2083 | ␉␉ //printf("Adding using directive: found:%s:%d name=%s\n",yyFileName.data(),yyLineNr,current->name.data());␊ |
2084 | ␉␉ current->section=Entry::USINGDIR_SEC;␊ |
2085 | ␉␉ current_root->addSubEntry(current);␊ |
2086 | ␉␉ current = new Entry ;␊ |
2087 | ␉␉ initEntry();␊ |
2088 | BEGIN(Search);␊ |
2089 | ␉␉}␊ |
2090 | ␉YY_BREAK␊ |
2091 | case 27:␊ |
2092 | YY_RULE_SETUP␊ |
2093 | #line 655 "pyscanner.l"␊ |
2094 | {␊ |
2095 | QCString item=g_packageName+"."+pyscanYYtext;␊ |
2096 | ␉␉ current->name=removeRedundantWhiteSpace(substitute(item,".","::"));␊ |
2097 | ␉␉ current->fileName = yyFileName; ␊ |
2098 | ␉␉ //printf("Adding using declaration: found:%s:%d name=%s\n",yyFileName.data(),yyLineNr,current->name.data());␊ |
2099 | ␉␉ current->section=Entry::USINGDECL_SEC;␊ |
2100 | ␉␉ current_root->addSubEntry(current);␊ |
2101 | ␉␉ current = new Entry ;␊ |
2102 | ␉␉ initEntry();␊ |
2103 | BEGIN(Search);␊ |
2104 | ␉␉}␊ |
2105 | ␉YY_BREAK␊ |
2106 | case 28:␊ |
2107 | /* rule 28 can match eol */␊ |
2108 | YY_RULE_SETUP␊ |
2109 | #line 666 "pyscanner.l"␊ |
2110 | {␊ |
2111 | yyLineNr++;␊ |
2112 | BEGIN(Search);␊ |
2113 | }␊ |
2114 | ␉YY_BREAK␊ |
2115 | case 29:␊ |
2116 | YY_RULE_SETUP␊ |
2117 | #line 670 "pyscanner.l"␊ |
2118 | {␊ |
2119 | ␉␉}␊ |
2120 | ␉YY_BREAK␊ |
2121 | case 30:␊ |
2122 | YY_RULE_SETUP␊ |
2123 | #line 672 "pyscanner.l"␊ |
2124 | {␊ |
2125 | unput(*pyscanYYtext);␊ |
2126 | BEGIN(Search);␊ |
2127 | }␊ |
2128 | ␉YY_BREAK␊ |
2129 | ␊ |
2130 | ␊ |
2131 | case 31:␊ |
2132 | YY_RULE_SETUP␊ |
2133 | #line 679 "pyscanner.l"␊ |
2134 | {␊ |
2135 | ␉␉␉current->name=removeRedundantWhiteSpace(substitute(pyscanYYtext,".","::"));␊ |
2136 | ␉␉␉current->fileName = yyFileName; ␊ |
2137 | ␉␉␉//printf("Adding using declaration: found:%s:%d name=%s\n",yyFileName.data(),yyLineNr,current->name.data());␊ |
2138 | ␉␉␉current->section=Entry::USINGDECL_SEC;␊ |
2139 | ␉␉␉current_root->addSubEntry(current);␊ |
2140 | ␉␉␉current = new Entry ;␊ |
2141 | ␉␉␉initEntry();␊ |
2142 | ␉␉␉BEGIN(Search);␊ |
2143 | }␊ |
2144 | ␉YY_BREAK␊ |
2145 | case 32:␊ |
2146 | /* rule 32 can match eol */␊ |
2147 | YY_RULE_SETUP␊ |
2148 | #line 689 "pyscanner.l"␊ |
2149 | {␊ |
2150 | yyLineNr++;␊ |
2151 | BEGIN(Search);␊ |
2152 | }␊ |
2153 | ␉YY_BREAK␊ |
2154 | case 33:␊ |
2155 | YY_RULE_SETUP␊ |
2156 | #line 693 "pyscanner.l"␊ |
2157 | {␊ |
2158 | ␉␉}␊ |
2159 | ␉YY_BREAK␊ |
2160 | case 34:␊ |
2161 | YY_RULE_SETUP␊ |
2162 | #line 695 "pyscanner.l"␊ |
2163 | {␊ |
2164 | unput(*pyscanYYtext);␊ |
2165 | BEGIN(Search);␊ |
2166 | }␊ |
2167 | ␉YY_BREAK␊ |
2168 | ␊ |
2169 | ␊ |
2170 | case 35:␊ |
2171 | YY_RULE_SETUP␊ |
2172 | #line 702 "pyscanner.l"␊ |
2173 | {␊ |
2174 | //printf("Found member variable %s in %s\n",&pyscanYYtext[5],current_root->name.data());␊ |
2175 | ␉␉␉current->name=&pyscanYYtext[5];␊ |
2176 | ␉␉␉current->section=Entry::VARIABLE_SEC;␊ |
2177 | ␉␉␉current->fileName = yyFileName;␊ |
2178 | ␉␉␉current->startLine = yyLineNr;␊ |
2179 | ␉␉␉current->bodyLine = yyLineNr;␊ |
2180 | ␉␉␉current->type.resize(0);␊ |
2181 | ␉␉␉if (current->name.at(0)=='_') // mark as private␊ |
2182 | ␉␉␉{␊ |
2183 | ␉␉␉ current->protection=Private;␊ |
2184 | ␉␉␉}␊ |
2185 | ␉␉␉else␊ |
2186 | ␉␉␉{␊ |
2187 | ␉␉␉ current->protection=Public;␊ |
2188 | ␉␉␉}␊ |
2189 | ␉␉␉newEntry();␊ |
2190 | }␊ |
2191 | ␉YY_BREAK␊ |
2192 | case 36:␊ |
2193 | YY_RULE_SETUP␊ |
2194 | #line 720 "pyscanner.l"␊ |
2195 | { // start of a comment block␊ |
2196 | ␉␉␉initTriDoubleQuoteBlock();␊ |
2197 | ␉␉␉BEGIN(TripleComment);␊ |
2198 | }␊ |
2199 | ␉YY_BREAK␊ |
2200 | case 37:␊ |
2201 | YY_RULE_SETUP␊ |
2202 | #line 725 "pyscanner.l"␊ |
2203 | { // start of a comment block␊ |
2204 | ␉␉␉initTriSingleQuoteBlock();␊ |
2205 | ␉␉␉BEGIN(TripleComment);␊ |
2206 | }␊ |
2207 | ␉YY_BREAK␊ |
2208 | case 38:␊ |
2209 | /* rule 38 can match eol */␊ |
2210 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2211 | (yy_c_buf_p) = yy_cp = yy_bp + 2;␊ |
2212 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2213 | YY_RULE_SETUP␊ |
2214 | #line 730 "pyscanner.l"␊ |
2215 | { // start of a special comment␊ |
2216 | ␉␉␉initSpecialBlock();␊ |
2217 | ␉␉␉BEGIN(SpecialComment);␊ |
2218 | }␊ |
2219 | ␉YY_BREAK␊ |
2220 | case 39:␊ |
2221 | YY_RULE_SETUP␊ |
2222 | #line 734 "pyscanner.l"␊ |
2223 | { // #␊ |
2224 | ␉ }␊ |
2225 | ␉YY_BREAK␊ |
2226 | case 40:␊ |
2227 | YY_RULE_SETUP␊ |
2228 | #line 736 "pyscanner.l"␊ |
2229 | { // start of a single quoted string␊ |
2230 | ␉␉␉g_stringContext=YY_START;␊ |
2231 | ␉␉␉g_copyString=0;␊ |
2232 | BEGIN( SingleQuoteString );␊ |
2233 | }␊ |
2234 | ␉YY_BREAK␊ |
2235 | case 41:␊ |
2236 | YY_RULE_SETUP␊ |
2237 | #line 741 "pyscanner.l"␊ |
2238 | { // start of a double quoted string␊ |
2239 | ␉␉␉g_stringContext=YY_START;␊ |
2240 | ␉␉␉g_copyString=0;␊ |
2241 | BEGIN( DoubleQuoteString );␊ |
2242 | }␊ |
2243 | ␉YY_BREAK␊ |
2244 | case 42:␊ |
2245 | /* rule 42 can match eol */␊ |
2246 | YY_RULE_SETUP␊ |
2247 | #line 746 "pyscanner.l"␊ |
2248 | { yyLineNr++; }␊ |
2249 | ␉YY_BREAK␊ |
2250 | case 43:␊ |
2251 | YY_RULE_SETUP␊ |
2252 | #line 747 "pyscanner.l"␊ |
2253 | // identifiers␊ |
2254 | ␉YY_BREAK␊ |
2255 | case 44:␊ |
2256 | /* rule 44 can match eol */␊ |
2257 | YY_RULE_SETUP␊ |
2258 | #line 748 "pyscanner.l"␊ |
2259 | // other uninteresting stuff␊ |
2260 | ␉YY_BREAK␊ |
2261 | case 45:␊ |
2262 | YY_RULE_SETUP␊ |
2263 | #line 749 "pyscanner.l"␊ |
2264 | // anything else␊ |
2265 | ␉YY_BREAK␊ |
2266 | ␊ |
2267 | ␊ |
2268 | case 46:␊ |
2269 | /* rule 46 can match eol */␊ |
2270 | YY_RULE_SETUP␊ |
2271 | #line 753 "pyscanner.l"␊ |
2272 | {␊ |
2273 | //fprintf(stderr,"indent %d<=%d\n",computeIndent(&pyscanYYtext[1]),g_indent);␊ |
2274 | if (computeIndent(&pyscanYYtext[1])<=g_indent) ␊ |
2275 | ␉␉␉{␊ |
2276 | ␉␉␉ int i;␊ |
2277 | ␉␉␉ for (i=pyscanYYleng-1;i>=0;i--)␊ |
2278 | ␉␉␉ {␊ |
2279 | ␉␉␉ unput(pyscanYYtext[i]);␊ |
2280 | ␉␉␉ }␊ |
2281 | ␉␉␉ endOfDef();␊ |
2282 | ␉␉␉ //YY_CURRENT_BUFFER->yy_at_bol=TRUE;␊ |
2283 | BEGIN(Search);␊ |
2284 | ␉␉␉}␊ |
2285 | ␉␉␉else␊ |
2286 | ␉␉␉{␊ |
2287 | yyLineNr++;␊ |
2288 | ␉␉ current->program+=pyscanYYtext;␊ |
2289 | ␉␉␉}␊ |
2290 | }␊ |
2291 | ␉YY_BREAK␊ |
2292 | case 47:␊ |
2293 | /* rule 47 can match eol */␊ |
2294 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2295 | (yy_c_buf_p) = yy_cp -= 2;␊ |
2296 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2297 | YY_RULE_SETUP␊ |
2298 | #line 772 "pyscanner.l"␊ |
2299 | {␊ |
2300 | if (computeIndent(&pyscanYYtext[1])<=g_indent)␊ |
2301 | ␉␉␉{␊ |
2302 | ␉␉␉ int i;␊ |
2303 | ␉␉␉ for (i=pyscanYYleng-1;i>=0;i--)␊ |
2304 | ␉␉␉ {␊ |
2305 | ␉␉␉ unput(pyscanYYtext[i]);␊ |
2306 | ␉␉␉ }␊ |
2307 | ␉␉␉ endOfDef();␊ |
2308 | ␉␉␉ //YY_CURRENT_BUFFER->yy_at_bol=TRUE;␊ |
2309 | BEGIN(Search);␊ |
2310 | ␉␉␉}␊ |
2311 | ␉␉␉else␊ |
2312 | ␉␉␉{␊ |
2313 | ␉␉␉ yyLineNr++;␊ |
2314 | ␉␉ current->program+=pyscanYYtext;␊ |
2315 | ␉␉␉}␊ |
2316 | ␉␉ }␊ |
2317 | ␉YY_BREAK␊ |
2318 | case YY_STATE_EOF(FunctionBody):␊ |
2319 | #line 790 "pyscanner.l"␊ |
2320 | {␊ |
2321 | ␉␉␉endOfDef();␊ |
2322 | ␉␉␉yyterminate();␊ |
2323 | ␉␉ }␊ |
2324 | ␉YY_BREAK␊ |
2325 | case 48:␊ |
2326 | /* rule 48 can match eol */␊ |
2327 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2328 | (yy_c_buf_p) = yy_cp -= 1;␊ |
2329 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2330 | YY_RULE_SETUP␊ |
2331 | #line 794 "pyscanner.l"␊ |
2332 | { // skip empty line␊ |
2333 | ␉␉ current->program+=pyscanYYtext;␊ |
2334 | ␉ }␊ |
2335 | ␉YY_BREAK␊ |
2336 | case 49:␊ |
2337 | YY_RULE_SETUP␊ |
2338 | #line 797 "pyscanner.l"␊ |
2339 | { // something at indent >0␊ |
2340 | ␉␉ current->program+=pyscanYYtext;␊ |
2341 | ␉␉␉g_curIndent = computeIndent(pyscanYYtext);␊ |
2342 | if (g_curIndent<=g_indent) ␊ |
2343 | ␉␉␉ // jumped out of the function␊ |
2344 | ␉␉␉{␊ |
2345 | ␉␉␉ endOfDef(1);␊ |
2346 | BEGIN(Search);␊ |
2347 | ␉␉␉}␊ |
2348 | ␉␉ }␊ |
2349 | ␉YY_BREAK␊ |
2350 | case 50:␊ |
2351 | YY_RULE_SETUP␊ |
2352 | #line 807 "pyscanner.l"␊ |
2353 | { // start of a single quoted string␊ |
2354 | ␉␉ current->program+=pyscanYYtext;␊ |
2355 | ␉␉␉g_stringContext=YY_START;␊ |
2356 | ␉␉ g_specialBlock = FALSE; ␊ |
2357 | ␉␉␉g_copyString=¤t->program;␊ |
2358 | BEGIN( SingleQuoteString );␊ |
2359 | }␊ |
2360 | ␉YY_BREAK␊ |
2361 | case 51:␊ |
2362 | YY_RULE_SETUP␊ |
2363 | #line 814 "pyscanner.l"␊ |
2364 | { // start of a double quoted string␊ |
2365 | ␉␉ current->program+=pyscanYYtext;␊ |
2366 | ␉␉␉g_stringContext=YY_START;␊ |
2367 | ␉␉ g_specialBlock = FALSE; ␊ |
2368 | ␉␉␉g_copyString=¤t->program;␊ |
2369 | BEGIN( DoubleQuoteString );␊ |
2370 | }␊ |
2371 | ␉YY_BREAK␊ |
2372 | case 52:␊ |
2373 | YY_RULE_SETUP␊ |
2374 | #line 821 "pyscanner.l"␊ |
2375 | { // non-special stuff␊ |
2376 | ␉␉ current->program+=pyscanYYtext;␊ |
2377 | ␉␉ g_specialBlock = FALSE; ␊ |
2378 | }␊ |
2379 | ␉YY_BREAK␊ |
2380 | case 53:␊ |
2381 | YY_RULE_SETUP␊ |
2382 | #line 825 "pyscanner.l"␊ |
2383 | { // normal comment ␊ |
2384 | ␉␉ current->program+=pyscanYYtext;␊ |
2385 | ␉␉ }␊ |
2386 | ␉YY_BREAK␊ |
2387 | case 54:␊ |
2388 | YY_RULE_SETUP␊ |
2389 | #line 828 "pyscanner.l"␊ |
2390 | { // comment half way␊ |
2391 | ␉␉ current->program+=pyscanYYtext;␊ |
2392 | }␊ |
2393 | ␉YY_BREAK␊ |
2394 | case 55:␊ |
2395 | /* rule 55 can match eol */␊ |
2396 | YY_RULE_SETUP␊ |
2397 | #line 831 "pyscanner.l"␊ |
2398 | { yyLineNr++; ␊ |
2399 | ␉␉ current->program+=pyscanYYtext;␊ |
2400 | ␉␉ }␊ |
2401 | ␉YY_BREAK␊ |
2402 | case 56:␊ |
2403 | YY_RULE_SETUP␊ |
2404 | #line 834 "pyscanner.l"␊ |
2405 | { // any character␊ |
2406 | ␉␉ current->program+=*pyscanYYtext;␊ |
2407 | ␉␉ g_specialBlock = FALSE; ␊ |
2408 | }␊ |
2409 | ␉YY_BREAK␊ |
2410 | case 57:␊ |
2411 | YY_RULE_SETUP␊ |
2412 | #line 839 "pyscanner.l"␊ |
2413 | { // start of a comment block␊ |
2414 | ␉␉␉current->program+=pyscanYYtext;␊ |
2415 | ␉␉␉initTriDoubleQuoteBlock();␊ |
2416 | ␉␉␉BEGIN(TripleComment);␊ |
2417 | }␊ |
2418 | ␉YY_BREAK␊ |
2419 | case 58:␊ |
2420 | YY_RULE_SETUP␊ |
2421 | #line 845 "pyscanner.l"␊ |
2422 | { // start of a comment block␊ |
2423 | ␉␉␉current->program+=pyscanYYtext;␊ |
2424 | ␉␉␉initTriSingleQuoteBlock();␊ |
2425 | ␉␉␉BEGIN(TripleComment);␊ |
2426 | }␊ |
2427 | ␉YY_BREAK␊ |
2428 | case 59:␊ |
2429 | /* rule 59 can match eol */␊ |
2430 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2431 | (yy_c_buf_p) = yy_cp = yy_bp + 2;␊ |
2432 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2433 | YY_RULE_SETUP␊ |
2434 | #line 851 "pyscanner.l"␊ |
2435 | { // start of a special comment␊ |
2436 | ␉␉␉initSpecialBlock();␊ |
2437 | ␉␉␉BEGIN(SpecialComment);␊ |
2438 | }␊ |
2439 | ␉YY_BREAK␊ |
2440 | ␊ |
2441 | ␊ |
2442 | case 60:␊ |
2443 | YY_RULE_SETUP␊ |
2444 | #line 860 "pyscanner.l"␊ |
2445 | {␊ |
2446 | ␉␉␉ //found function name␊ |
2447 | ␉␉␉ if (current->type.isEmpty()) ␊ |
2448 | ␉␉␉ {␊ |
2449 | ␉␉␉␉ current->type = "def";␊ |
2450 | ␉␉␉ }␊ |
2451 | ␉␉␉ current->name = pyscanYYtext;␊ |
2452 | ␉␉␉ current->name = current->name.stripWhiteSpace();␊ |
2453 | ␉␉␉ newFunction();␊ |
2454 | }␊ |
2455 | ␉YY_BREAK␊ |
2456 | case 61:␊ |
2457 | YY_RULE_SETUP␊ |
2458 | #line 870 "pyscanner.l"␊ |
2459 | { // function without arguments␊ |
2460 | ␉␉␉ g_specialBlock = TRUE; // expecting a docstring␊ |
2461 | ␉␉␉ bodyEntry = current;␊ |
2462 | BEGIN( FunctionBody );␊ |
2463 | ␉␉␉ }␊ |
2464 | ␉YY_BREAK␊ |
2465 | case 62:␊ |
2466 | YY_RULE_SETUP␊ |
2467 | #line 876 "pyscanner.l"␊ |
2468 | {␊ |
2469 | ␉␉␉ BEGIN( FunctionParams );␊ |
2470 | ␉␉ }␊ |
2471 | ␉YY_BREAK␊ |
2472 | ␊ |
2473 | ␊ |
2474 | case 63:␊ |
2475 | YY_RULE_SETUP␊ |
2476 | #line 882 "pyscanner.l"␊ |
2477 | {␊ |
2478 | }␊ |
2479 | ␉YY_BREAK␊ |
2480 | case 64:␊ |
2481 | YY_RULE_SETUP␊ |
2482 | #line 885 "pyscanner.l"␊ |
2483 | { // Name of parameter␊ |
2484 | ␉␉␉ lineCount();␊ |
2485 | ␉␉␉ Argument *a = new Argument;␊ |
2486 | ␉␉␉ current->argList->append(a);␊ |
2487 | ␉␉␉ current->argList->getLast()->name = QCString(pyscanYYtext).stripWhiteSpace();␊ |
2488 | ␉␉␉ current->argList->getLast()->type = "";␊ |
2489 | }␊ |
2490 | ␉YY_BREAK␊ |
2491 | case 65:␊ |
2492 | YY_RULE_SETUP␊ |
2493 | #line 892 "pyscanner.l"␊ |
2494 | { // default value␊ |
2495 | // TODO: this rule is too simple, need to be able to␊ |
2496 | // match things like =")" as well!␊ |
2497 | ␉␉␉ QCString defVal=&pyscanYYtext[1];␊ |
2498 | ␉␉␉ g_defVal.resize(0);␊ |
2499 | ␉␉␉ g_braceCount=0;␊ |
2500 | ␉␉␉ BEGIN(FunctionParamDefVal);␊ |
2501 | ␉␉␉}␊ |
2502 | ␉YY_BREAK␊ |
2503 | case 66:␊ |
2504 | YY_RULE_SETUP␊ |
2505 | #line 901 "pyscanner.l"␊ |
2506 | { // end of parameter list␊ |
2507 | }␊ |
2508 | ␉YY_BREAK␊ |
2509 | case 67:␊ |
2510 | YY_RULE_SETUP␊ |
2511 | #line 904 "pyscanner.l"␊ |
2512 | {␊ |
2513 | ␉␉␉ g_specialBlock = TRUE; // expecting a docstring␊ |
2514 | ␉␉␉ bodyEntry = current;␊ |
2515 | BEGIN( FunctionBody );␊ |
2516 | }␊ |
2517 | ␉YY_BREAK␊ |
2518 | case 68:␊ |
2519 | YY_RULE_SETUP␊ |
2520 | #line 909 "pyscanner.l"␊ |
2521 | { // a comment␊ |
2522 | ␉␉␉}␊ |
2523 | ␉YY_BREAK␊ |
2524 | case 69:␊ |
2525 | YY_RULE_SETUP␊ |
2526 | #line 911 "pyscanner.l"␊ |
2527 | { // Default rule inside arguments.␊ |
2528 | }␊ |
2529 | ␉YY_BREAK␊ |
2530 | ␊ |
2531 | ␊ |
2532 | case 70:␊ |
2533 | YY_RULE_SETUP␊ |
2534 | #line 917 "pyscanner.l"␊ |
2535 | { // internal opening brace␊ |
2536 | ␉␉␉ g_braceCount++;␊ |
2537 | ␉␉␉ g_defVal+=*pyscanYYtext;␊ |
2538 | ␉␉␉}␊ |
2539 | ␉YY_BREAK␊ |
2540 | case 71:␊ |
2541 | #line 922 "pyscanner.l"␊ |
2542 | case 72:␊ |
2543 | YY_RULE_SETUP␊ |
2544 | #line 922 "pyscanner.l"␊ |
2545 | {␊ |
2546 | ␉␉␉ if (g_braceCount==0) // end of default argument␊ |
2547 | ␉␉␉ {␊ |
2548 | ␉␉␉ if (current->argList->getLast())␊ |
2549 | ␉␉␉ {␊ |
2550 | ␉␉␉ current->argList->getLast()->defval=g_defVal.stripWhiteSpace();␊ |
2551 | ␉␉␉ }␊ |
2552 | ␉␉␉ BEGIN(FunctionParams);␊ |
2553 | ␉␉␉ }␊ |
2554 | ␉␉␉ else // continue␊ |
2555 | ␉␉␉ {␊ |
2556 | ␉␉␉ g_braceCount--;␊ |
2557 | ␉␉␉ g_defVal+=*pyscanYYtext;␊ |
2558 | ␉␉␉ }␊ |
2559 | ␉␉␉}␊ |
2560 | ␉YY_BREAK␊ |
2561 | case 73:␊ |
2562 | YY_RULE_SETUP␊ |
2563 | #line 937 "pyscanner.l"␊ |
2564 | {␊ |
2565 | ␉␉␉ g_defVal+=*pyscanYYtext;␊ |
2566 | ␉␉␉}␊ |
2567 | ␉YY_BREAK␊ |
2568 | case 74:␊ |
2569 | /* rule 74 can match eol */␊ |
2570 | YY_RULE_SETUP␊ |
2571 | #line 940 "pyscanner.l"␊ |
2572 | {␊ |
2573 | ␉␉␉ g_defVal+=*pyscanYYtext;␊ |
2574 | ␉␉␉ yyLineNr++;␊ |
2575 | ␉␉␉}␊ |
2576 | ␉YY_BREAK␊ |
2577 | ␊ |
2578 | ␊ |
2579 | case 75:␊ |
2580 | /* rule 75 can match eol */␊ |
2581 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2582 | (yy_c_buf_p) = yy_cp = yy_bp + 1;␊ |
2583 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2584 | YY_RULE_SETUP␊ |
2585 | #line 948 "pyscanner.l"␊ |
2586 | { // new def at indent 0␊ |
2587 | yyLineNr++;␊ |
2588 | ␉␉␉endOfDef();␊ |
2589 | ␉␉␉g_hideClassDocs = FALSE;␊ |
2590 | ␉␉␉//YY_CURRENT_BUFFER->yy_at_bol=TRUE;␊ |
2591 | BEGIN(Search);␊ |
2592 | }␊ |
2593 | ␉YY_BREAK␊ |
2594 | case 76:␊ |
2595 | /* rule 76 can match eol */␊ |
2596 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2597 | (yy_c_buf_p) = yy_cp = yy_bp + 1;␊ |
2598 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2599 | YY_RULE_SETUP␊ |
2600 | #line 955 "pyscanner.l"␊ |
2601 | { // start of a special comment at indent 0␊ |
2602 | yyLineNr++;␊ |
2603 | ␉␉␉endOfDef();␊ |
2604 | ␉␉␉g_hideClassDocs = FALSE;␊ |
2605 | ␉␉␉//YY_CURRENT_BUFFER->yy_at_bol=TRUE;␊ |
2606 | BEGIN(Search);␊ |
2607 | }␊ |
2608 | ␉YY_BREAK␊ |
2609 | case 77:␊ |
2610 | /* rule 77 can match eol */␊ |
2611 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
2612 | (yy_c_buf_p) = yy_cp -= 1;␊ |
2613 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
2614 | YY_RULE_SETUP␊ |
2615 | #line 962 "pyscanner.l"␊ |
2616 | { // skip empty line␊ |
2617 | ␉␉ current->program+=pyscanYYtext;␊ |
2618 | ␉ }␊ |
2619 | ␉YY_BREAK␊ |
2620 | case YY_STATE_EOF(ClassBody):␊ |
2621 | #line 965 "pyscanner.l"␊ |
2622 | {␊ |
2623 | ␉␉␉endOfDef();␊ |
2624 | ␉␉␉yyterminate();␊ |
2625 | ␉␉ }␊ |
2626 | ␉YY_BREAK␊ |
2627 | case 78:␊ |
2628 | YY_RULE_SETUP␊ |
2629 | #line 969 "pyscanner.l"␊ |
2630 | { // something at indent >0␊ |
2631 | g_curIndent=computeIndent(pyscanYYtext);␊ |
2632 | ␉␉␉//fprintf(stderr,"g_curIndent=%d g_indent=%d\n",g_curIndent,g_indent);␊ |
2633 | if (g_curIndent<=g_indent) ␊ |
2634 | ␉␉␉ // jumped out of the class/method␊ |
2635 | ␉␉␉{␊ |
2636 | ␉␉␉ endOfDef(1);␊ |
2637 | ␉␉␉ g_indent=g_curIndent;␊ |
2638 | ␉␉␉ // make sure the next rule matches ^...␊ |
2639 | ␉␉␉ //YY_CURRENT_BUFFER->yy_at_bol=TRUE;␊ |
2640 | ␉␉␉ g_hideClassDocs = FALSE;␊ |
2641 | BEGIN(Search);␊ |
2642 | ␉␉␉}␊ |
2643 | ␉␉␉else␊ |
2644 | ␉␉␉{␊ |
2645 | ␉␉ current->program+=pyscanYYtext;␊ |
2646 | ␉␉␉}␊ |
2647 | ␉␉ }␊ |
2648 | ␉YY_BREAK␊ |
2649 | case 79:␊ |
2650 | YY_RULE_SETUP␊ |
2651 | #line 987 "pyscanner.l"␊ |
2652 | { // start of a single quoted string␊ |
2653 | ␉␉ current->program+=*pyscanYYtext;␊ |
2654 | ␉␉␉g_stringContext=YY_START;␊ |
2655 | ␉␉ g_specialBlock = FALSE; ␊ |
2656 | ␉␉␉g_copyString=¤t->program;␊ |
2657 | BEGIN( SingleQuoteString );␊ |
2658 | }␊ |
2659 | ␉YY_BREAK␊ |
2660 | case 80:␊ |
2661 | YY_RULE_SETUP␊ |
2662 | #line 994 "pyscanner.l"␊ |
2663 | { // start of a double quoted string␊ |
2664 | ␉␉ current->program+=*pyscanYYtext;␊ |
2665 | ␉␉␉g_stringContext=YY_START;␊ |
2666 | ␉␉ g_specialBlock = FALSE; ␊ |
2667 | ␉␉␉g_copyString=¤t->program;␊ |
2668 | BEGIN( DoubleQuoteString );␊ |
2669 | }␊ |
2670 | ␉YY_BREAK␊ |
2671 | case 81:␊ |
2672 | YY_RULE_SETUP␊ |
2673 | #line 1001 "pyscanner.l"␊ |
2674 | { // non-special stuff␊ |
2675 | ␉␉ current->program+=pyscanYYtext;␊ |
2676 | ␉␉ g_specialBlock = FALSE; ␊ |
2677 | ␉␉␉g_hideClassDocs = FALSE;␊ |
2678 | }␊ |
2679 | ␉YY_BREAK␊ |
2680 | case 82:␊ |
2681 | /* rule 82 can match eol */␊ |
2682 | YY_RULE_SETUP␊ |
2683 | #line 1006 "pyscanner.l"␊ |
2684 | { ␊ |
2685 | ␉␉ current->program+=*pyscanYYtext;␊ |
2686 | ␉␉␉yyLineNr++; ␊ |
2687 | ␉␉ }␊ |
2688 | ␉YY_BREAK␊ |
2689 | case 83:␊ |
2690 | YY_RULE_SETUP␊ |
2691 | #line 1010 "pyscanner.l"␊ |
2692 | { // normal comment␊ |
2693 | ␉␉ current->program+=pyscanYYtext;␊ |
2694 | }␊ |
2695 | ␉YY_BREAK␊ |
2696 | case 84:␊ |
2697 | YY_RULE_SETUP␊ |
2698 | #line 1013 "pyscanner.l"␊ |
2699 | { // any character␊ |
2700 | ␉␉ g_specialBlock = FALSE; ␊ |
2701 | ␉␉ current->program+=*pyscanYYtext;␊ |
2702 | }␊ |
2703 | ␉YY_BREAK␊ |
2704 | case 85:␊ |
2705 | YY_RULE_SETUP␊ |
2706 | #line 1017 "pyscanner.l"␊ |
2707 | { // start of a comment block␊ |
2708 | ␉␉ if (!g_hideClassDocs) current->program+=pyscanYYtext;␊ |
2709 | ␉␉␉initTriDoubleQuoteBlock();␊ |
2710 | ␉␉␉BEGIN(TripleComment);␊ |
2711 | }␊ |
2712 | ␉YY_BREAK␊ |
2713 | case 86:␊ |
2714 | YY_RULE_SETUP␊ |
2715 | #line 1023 "pyscanner.l"␊ |
2716 | { // start of a comment block␊ |
2717 | ␉␉ if (!g_hideClassDocs) current->program+=pyscanYYtext;␊ |
2718 | ␉␉␉initTriSingleQuoteBlock();␊ |
2719 | ␉␉␉BEGIN(TripleComment);␊ |
2720 | }␊ |
2721 | ␉YY_BREAK␊ |
2722 | ␊ |
2723 | case 87:␊ |
2724 | YY_RULE_SETUP␊ |
2725 | #line 1030 "pyscanner.l"␊ |
2726 | {␊ |
2727 | ␉␉␉ if (current->type.isEmpty()) ␊ |
2728 | ␉␉␉ {␊ |
2729 | ␉␉␉ current->type = "class";␊ |
2730 | ␉␉␉ }␊ |
2731 | ␊ |
2732 | ␉␉␉ current->section = Entry::CLASS_SEC;␊ |
2733 | ␉␉␉ current->name = pyscanYYtext;␊ |
2734 | ␊ |
2735 | ␉␉␉ // prepend scope in case of nested classes␊ |
2736 | ␉␉␉ if (current_root->section&Entry::SCOPE_MASK)␊ |
2737 | ␉␉␉ {␊ |
2738 | ␉␉␉ //printf("*** Prepending scope %s to class %s\n",current_root->name.data(),current->name.data());␊ |
2739 | ␉␉␉ current->name.prepend(current_root->name+"::");␊ |
2740 | ␉␉␉ }␊ |
2741 | ␉␉␉ ␊ |
2742 | ␉␉␉ current->name = current->name.stripWhiteSpace();␊ |
2743 | ␉␉␉ current->fileName = yyFileName; ␊ |
2744 | ␉␉␉ docBlockContext = YY_START;␊ |
2745 | ␉␉␉ docBlockInBody = FALSE;␊ |
2746 | ␉␉␉ docBlockJavaStyle = FALSE;␊ |
2747 | ␉␉␉ docBlock.resize(0);␊ |
2748 | ␊ |
2749 | ␉␉␉ BEGIN(ClassInheritance); ␊ |
2750 | }␊ |
2751 | ␉YY_BREAK␊ |
2752 | ␊ |
2753 | case 88:␊ |
2754 | YY_RULE_SETUP␊ |
2755 | #line 1057 "pyscanner.l"␊ |
2756 | { // syntactic sugar for the list␊ |
2757 | }␊ |
2758 | ␉YY_BREAK␊ |
2759 | case 89:␊ |
2760 | YY_RULE_SETUP␊ |
2761 | #line 1060 "pyscanner.l"␊ |
2762 | { // begin of the class definition␊ |
2763 | ␉␉␉ g_specialBlock = TRUE; // expecting a docstring␊ |
2764 | ␉␉␉ BEGIN(ClassCaptureIndent);␊ |
2765 | }␊ |
2766 | ␉YY_BREAK␊ |
2767 | case 90:␊ |
2768 | YY_RULE_SETUP␊ |
2769 | #line 1065 "pyscanner.l"␊ |
2770 | {␊ |
2771 | current->extends->append(␊ |
2772 | ␉␉␉␉␉ new BaseInfo(substitute(pyscanYYtext,".","::"),Public,Normal)␊ |
2773 | ␉␉␉␉␉ );␊ |
2774 | //Has base class-do stuff␊ |
2775 | }␊ |
2776 | ␉YY_BREAK␊ |
2777 | ␊ |
2778 | ␊ |
2779 | case 91:␊ |
2780 | /* rule 91 can match eol */␊ |
2781 | YY_RULE_SETUP␊ |
2782 | #line 1075 "pyscanner.l"␊ |
2783 | {␊ |
2784 | // Blankline - ignore, keep looking for indentation.␊ |
2785 | ␉␉␉␉ lineCount();␊ |
2786 | }␊ |
2787 | ␉YY_BREAK␊ |
2788 | case 92:␊ |
2789 | YY_RULE_SETUP␊ |
2790 | #line 1080 "pyscanner.l"␊ |
2791 | { // start of a comment block␊ |
2792 | ␉␉␉␉ initTriDoubleQuoteBlock();␊ |
2793 | ␉␉␉ ␉ BEGIN(TripleComment);␊ |
2794 | ␉ }␊ |
2795 | ␉YY_BREAK␊ |
2796 | case 93:␊ |
2797 | YY_RULE_SETUP␊ |
2798 | #line 1085 "pyscanner.l"␊ |
2799 | { // start of a comment block␊ |
2800 | ␉␉␉ initTriSingleQuoteBlock();␊ |
2801 | ␉␉␉ BEGIN(TripleComment);␊ |
2802 | }␊ |
2803 | ␉YY_BREAK␊ |
2804 | case 94:␊ |
2805 | YY_RULE_SETUP␊ |
2806 | #line 1090 "pyscanner.l"␊ |
2807 | {␊ |
2808 | ␉␉␉␉ current->program=pyscanYYtext;␊ |
2809 | ␉␉␉ current->startLine = yyLineNr;␊ |
2810 | ␉␉␉␉ g_curIndent=computeIndent(pyscanYYtext);␊ |
2811 | ␉␉␉␉ bodyEntry = current;␊ |
2812 | ␉␉␉␉ //fprintf(stderr,"setting indent %d\n",g_curIndent);␊ |
2813 | ␉␉␉␉ //printf("current->program=[%s]\n",current->program.data());␊ |
2814 | ␉␉␉␉ g_hideClassDocs = TRUE;␊ |
2815 | ␉␉␉ BEGIN(ClassBody);␊ |
2816 | }␊ |
2817 | ␉YY_BREAK␊ |
2818 | case 95:␊ |
2819 | YY_RULE_SETUP␊ |
2820 | #line 1101 "pyscanner.l"␊ |
2821 | {␊ |
2822 | ␉␉␉␉ ␊ |
2823 | ␉␉␉␉ // Just pushback an empty class, and␊ |
2824 | ␉␉␉␉ // resume parsing the body.␊ |
2825 | newEntry();␊ |
2826 | ␊ |
2827 | ␉␉␉␉ // printf("Failed to find indent - skipping!");␊ |
2828 | ␉␉␉␉ BEGIN( Search );␊ |
2829 | }␊ |
2830 | ␉YY_BREAK␊ |
2831 | ␊ |
2832 | ␊ |
2833 | case 96:␊ |
2834 | YY_RULE_SETUP␊ |
2835 | #line 1114 "pyscanner.l"␊ |
2836 | { // the assignment operator␊ |
2837 | //printf("====== VariableDec at line %d\n",yyLineNr);␊ |
2838 | }␊ |
2839 | ␉YY_BREAK␊ |
2840 | case 97:␊ |
2841 | YY_RULE_SETUP␊ |
2842 | #line 1117 "pyscanner.l"␊ |
2843 | { // spaces␊ |
2844 | ␉ }␊ |
2845 | ␉YY_BREAK␊ |
2846 | case 98:␊ |
2847 | YY_RULE_SETUP␊ |
2848 | #line 1119 "pyscanner.l"␊ |
2849 | { // integer value␊ |
2850 | ␉␉␉current->type = "int";␊ |
2851 | ␉␉␉current->initializer = pyscanYYtext;␊ |
2852 | ␉␉␉BEGIN(VariableEnd);␊ |
2853 | ␉␉ }␊ |
2854 | ␉YY_BREAK␊ |
2855 | case 99:␊ |
2856 | YY_RULE_SETUP␊ |
2857 | #line 1124 "pyscanner.l"␊ |
2858 | { // floating point value␊ |
2859 | ␉␉␉current->type = "float";␊ |
2860 | ␉␉␉current->initializer = pyscanYYtext;␊ |
2861 | ␉␉␉BEGIN(VariableEnd);␊ |
2862 | ␉␉ }␊ |
2863 | ␉YY_BREAK␊ |
2864 | case 100:␊ |
2865 | YY_RULE_SETUP␊ |
2866 | #line 1129 "pyscanner.l"␊ |
2867 | { // string␊ |
2868 | ␉␉␉current->type = "string";␊ |
2869 | ␉␉␉current->initializer = pyscanYYtext;␊ |
2870 | ␉␉␉g_copyString=¤t->initializer;␊ |
2871 | ␉␉␉g_stringContext=VariableEnd;␊ |
2872 | BEGIN( SingleQuoteString );␊ |
2873 | ␉␉ }␊ |
2874 | ␉YY_BREAK␊ |
2875 | case 101:␊ |
2876 | YY_RULE_SETUP␊ |
2877 | #line 1136 "pyscanner.l"␊ |
2878 | { // string␊ |
2879 | ␉␉␉current->type = "string";␊ |
2880 | ␉␉␉current->initializer = pyscanYYtext;␊ |
2881 | ␉␉␉g_copyString=¤t->initializer;␊ |
2882 | ␉␉␉g_stringContext=VariableEnd;␊ |
2883 | BEGIN( DoubleQuoteString );␊ |
2884 | ␉␉ }␊ |
2885 | ␉YY_BREAK␊ |
2886 | case 102:␊ |
2887 | YY_RULE_SETUP␊ |
2888 | #line 1143 "pyscanner.l"␊ |
2889 | { // start of a comment block␊ |
2890 | ␉␉␉current->type = "string";␊ |
2891 | ␉␉␉current->initializer = pyscanYYtext;␊ |
2892 | ␉␉␉g_doubleQuote=TRUE;␊ |
2893 | ␉␉␉g_copyString=¤t->initializer;␊ |
2894 | ␉␉␉g_stringContext=VariableEnd;␊ |
2895 | ␉␉␉BEGIN(TripleString);␊ |
2896 | }␊ |
2897 | ␉YY_BREAK␊ |
2898 | case 103:␊ |
2899 | YY_RULE_SETUP␊ |
2900 | #line 1152 "pyscanner.l"␊ |
2901 | { // start of a comment block␊ |
2902 | ␉␉␉current->type = "string";␊ |
2903 | ␉␉␉current->initializer = pyscanYYtext;␊ |
2904 | ␉␉␉g_doubleQuote=FALSE;␊ |
2905 | ␉␉␉g_copyString=¤t->initializer;␊ |
2906 | ␉␉␉g_stringContext=VariableEnd;␊ |
2907 | ␉␉␉BEGIN(TripleString);␊ |
2908 | }␊ |
2909 | ␉YY_BREAK␊ |
2910 | case 104:␊ |
2911 | YY_RULE_SETUP␊ |
2912 | #line 1160 "pyscanner.l"␊ |
2913 | { // tuple␊ |
2914 | if (current->mtype!=Property)␊ |
2915 | ␉␉␉{␊ |
2916 | ␉␉␉ current->type = "tuple";␊ |
2917 | ␉␉␉}␊ |
2918 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
2919 | g_atomStart='(';␊ |
2920 | ␉␉␉g_atomEnd=')';␊ |
2921 | ␉␉␉g_atomCount=1;␊ |
2922 | ␉␉␉BEGIN( VariableAtom );␊ |
2923 | }␊ |
2924 | ␉YY_BREAK␊ |
2925 | case 105:␊ |
2926 | YY_RULE_SETUP␊ |
2927 | #line 1171 "pyscanner.l"␊ |
2928 | { // list␊ |
2929 | ␉␉␉current->type = "list";␊ |
2930 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
2931 | g_atomStart='[';␊ |
2932 | ␉␉␉g_atomEnd=']';␊ |
2933 | ␉␉␉g_atomCount=1;␊ |
2934 | ␉␉␉BEGIN( VariableAtom );␊ |
2935 | }␊ |
2936 | ␉YY_BREAK␊ |
2937 | case 106:␊ |
2938 | YY_RULE_SETUP␊ |
2939 | #line 1179 "pyscanner.l"␊ |
2940 | { // dictionary␊ |
2941 | ␉␉␉current->type = "dictionary";␊ |
2942 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
2943 | g_atomStart='{';␊ |
2944 | ␉␉␉g_atomEnd='}';␊ |
2945 | ␉␉␉g_atomCount=1;␊ |
2946 | ␉␉␉BEGIN( VariableAtom );␊ |
2947 | }␊ |
2948 | ␉YY_BREAK␊ |
2949 | case 107:␊ |
2950 | YY_RULE_SETUP␊ |
2951 | #line 1187 "pyscanner.l"␊ |
2952 | { // comment␊ |
2953 | BEGIN( VariableEnd ); ␊ |
2954 | }␊ |
2955 | ␉YY_BREAK␊ |
2956 | case 108:␊ |
2957 | YY_RULE_SETUP␊ |
2958 | #line 1190 "pyscanner.l"␊ |
2959 | {␊ |
2960 | ␉␉ current->initializer+=pyscanYYtext;␊ |
2961 | ␉ }␊ |
2962 | ␉YY_BREAK␊ |
2963 | case 109:␊ |
2964 | YY_RULE_SETUP␊ |
2965 | #line 1193 "pyscanner.l"␊ |
2966 | {␊ |
2967 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
2968 | }␊ |
2969 | ␉YY_BREAK␊ |
2970 | case 110:␊ |
2971 | /* rule 110 can match eol */␊ |
2972 | YY_RULE_SETUP␊ |
2973 | #line 1196 "pyscanner.l"␊ |
2974 | {␊ |
2975 | ␉␉ unput('\n');␊ |
2976 | ␉␉␉BEGIN( VariableEnd );␊ |
2977 | ␉␉ }␊ |
2978 | ␉YY_BREAK␊ |
2979 | ␊ |
2980 | ␊ |
2981 | case 111:␊ |
2982 | YY_RULE_SETUP␊ |
2983 | #line 1203 "pyscanner.l"␊ |
2984 | {␊ |
2985 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
2986 | if (g_atomStart==*pyscanYYtext)␊ |
2987 | ␉␉␉{␊ |
2988 | ␉␉␉ g_atomCount++;␊ |
2989 | ␉␉␉}␊ |
2990 | }␊ |
2991 | ␉YY_BREAK␊ |
2992 | case 112:␊ |
2993 | YY_RULE_SETUP␊ |
2994 | #line 1210 "pyscanner.l"␊ |
2995 | {␊ |
2996 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
2997 | if (g_atomEnd==*pyscanYYtext)␊ |
2998 | ␉␉␉{␊ |
2999 | ␉␉␉ g_atomCount--;␊ |
3000 | ␉␉␉}␊ |
3001 | ␉␉␉if (g_atomCount==0)␊ |
3002 | ␉␉␉{␊ |
3003 | ␉␉␉ BEGIN(VariableEnd);␊ |
3004 | ␉␉␉}␊ |
3005 | }␊ |
3006 | ␉YY_BREAK␊ |
3007 | case 113:␊ |
3008 | YY_RULE_SETUP␊ |
3009 | #line 1221 "pyscanner.l"␊ |
3010 | {␊ |
3011 | ␉␉␉g_stringContext=YY_START;␊ |
3012 | ␉␉␉current->initializer+="\"";␊ |
3013 | ␉␉␉g_copyString=¤t->initializer;␊ |
3014 | BEGIN( DoubleQuoteString );␊ |
3015 | }␊ |
3016 | ␉YY_BREAK␊ |
3017 | case 114:␊ |
3018 | YY_RULE_SETUP␊ |
3019 | #line 1227 "pyscanner.l"␊ |
3020 | {␊ |
3021 | ␉␉ current->initializer+=pyscanYYtext;␊ |
3022 | ␉ }␊ |
3023 | ␉YY_BREAK␊ |
3024 | case 115:␊ |
3025 | YY_RULE_SETUP␊ |
3026 | #line 1230 "pyscanner.l"␊ |
3027 | {␊ |
3028 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
3029 | }␊ |
3030 | ␉YY_BREAK␊ |
3031 | case 116:␊ |
3032 | /* rule 116 can match eol */␊ |
3033 | YY_RULE_SETUP␊ |
3034 | #line 1233 "pyscanner.l"␊ |
3035 | {␊ |
3036 | ␉␉ current->initializer+=*pyscanYYtext;␊ |
3037 | ␉␉␉yyLineNr++;␊ |
3038 | ␉␉ }␊ |
3039 | ␉YY_BREAK␊ |
3040 | ␊ |
3041 | ␊ |
3042 | case 117:␊ |
3043 | /* rule 117 can match eol */␊ |
3044 | YY_RULE_SETUP␊ |
3045 | #line 1241 "pyscanner.l"␊ |
3046 | {␊ |
3047 | yyLineNr++;␊ |
3048 | ␉␉␉newVariable();␊ |
3049 | BEGIN(Search);␊ |
3050 | }␊ |
3051 | ␉YY_BREAK␊ |
3052 | case 118:␊ |
3053 | YY_RULE_SETUP␊ |
3054 | #line 1246 "pyscanner.l"␊ |
3055 | { ␊ |
3056 | unput(*pyscanYYtext);␊ |
3057 | ␉␉␉newVariable();␊ |
3058 | BEGIN(Search);␊ |
3059 | ␉␉ }␊ |
3060 | ␉YY_BREAK␊ |
3061 | case YY_STATE_EOF(VariableEnd):␊ |
3062 | #line 1251 "pyscanner.l"␊ |
3063 | { yyterminate();␊ |
3064 | newEntry();␊ |
3065 | }␊ |
3066 | ␉YY_BREAK␊ |
3067 | ␊ |
3068 | ␊ |
3069 | case 119:␊ |
3070 | #line 1258 "pyscanner.l"␊ |
3071 | case 120:␊ |
3072 | YY_RULE_SETUP␊ |
3073 | #line 1258 "pyscanner.l"␊ |
3074 | {␊ |
3075 | ␉␉␉ // printf("Expected module block %d special=%d\n",g_expectModuleDocs,g_specialBlock);␊ |
3076 | ␉␉␉ if (g_doubleQuote==(pyscanYYtext[0]=='"')) ␊ |
3077 | ␉␉␉ {␊ |
3078 | ␉␉␉ if (g_specialBlock) // expecting a docstring␊ |
3079 | ␉␉␉ {␊ |
3080 | ␉␉␉ QCString actualDoc=docBlock;␊ |
3081 | ␉␉␉ if (!docBlockSpecial) // legacy unformatted docstring␊ |
3082 | ␉␉␉ {␊ |
3083 | ␉␉␉ actualDoc.prepend("\\verbatim ");␊ |
3084 | ␉␉␉ actualDoc.append("\\endverbatim ");␊ |
3085 | ␉␉␉ }␊ |
3086 | ␉␉␉ //printf("-------> current=%p bodyEntry=%p\n",current,bodyEntry);␊ |
3087 | ␉␉␉ handleCommentBlock(actualDoc, FALSE);␊ |
3088 | ␉␉␉ }␊ |
3089 | ␉␉␉ else if (g_packageCommentAllowed) // expecting module docs␊ |
3090 | ␉␉␉ {␊ |
3091 | ␉␉␉ QCString actualDoc=docBlock;␊ |
3092 | ␉␉␉ if (!docBlockSpecial) // legacy unformatted docstring␊ |
3093 | ␉␉␉ {␊ |
3094 | ␉␉␉ actualDoc.prepend("\\verbatim ");␊ |
3095 | ␉␉␉ actualDoc.append("\\endverbatim ");␊ |
3096 | ␉␉␉ }␊ |
3097 | ␉␉␉ actualDoc.prepend("\\namespace "+g_moduleScope+"\\_linebr ");␊ |
3098 | ␉␉␉ handleCommentBlock(actualDoc, FALSE);␊ |
3099 | ␉␉␉ }␊ |
3100 | ␉␉␉ if ((docBlockContext==ClassBody && !g_hideClassDocs) ||␊ |
3101 | ␉␉␉␉docBlockContext==FunctionBody)␊ |
3102 | ␉␉␉ {␊ |
3103 | ␉␉␉ current->program+=docBlock;␊ |
3104 | ␉␉␉ current->program+=pyscanYYtext;␊ |
3105 | ␉␉␉ }␊ |
3106 | if (g_hideClassDocs)␊ |
3107 | current->startLine = yyLineNr;␊ |
3108 | ␉␉␉ g_hideClassDocs=FALSE;␊ |
3109 | ␉␉␉ BEGIN(docBlockContext);␊ |
3110 | ␉␉␉ }␊ |
3111 | else ␊ |
3112 | ␉␉␉ {␊ |
3113 | docBlock += pyscanYYtext;␊ |
3114 | }␊ |
3115 | ␉␉␉ g_packageCommentAllowed = FALSE;␊ |
3116 | }␊ |
3117 | ␉YY_BREAK␊ |
3118 | case 121:␊ |
3119 | YY_RULE_SETUP␊ |
3120 | #line 1303 "pyscanner.l"␊ |
3121 | { // leading whitespace␊ |
3122 | ␉␉␉ int indent = computeIndent(pyscanYYtext);␊ |
3123 | ␉␉␉ if (indent>=g_curIndent)␊ |
3124 | ␉␉␉ { // strip g_curIndent amount of whitespace␊ |
3125 | ␉␉␉ int i;␊ |
3126 | ␉␉␉ for (i=0;i<indent-g_curIndent;i++) docBlock+=' ';␊ |
3127 | ␉␉␉ //fprintf(stderr,"stripping indent %d\n",g_curIndent);␊ |
3128 | ␉␉␉ }␊ |
3129 | ␉␉␉ else␊ |
3130 | ␉␉␉ {␊ |
3131 | ␉␉␉ //fprintf(stderr,"not stripping: %d<%d\n",indent,g_curIndent);␊ |
3132 | ␉␉␉ docBlock += pyscanYYtext;␊ |
3133 | ␉␉␉ }␊ |
3134 | ␉␉␉}␊ |
3135 | ␉YY_BREAK␊ |
3136 | case 122:␊ |
3137 | YY_RULE_SETUP␊ |
3138 | #line 1317 "pyscanner.l"␊ |
3139 | {␊ |
3140 | ␉␉␉ docBlock += pyscanYYtext;␊ |
3141 | }␊ |
3142 | ␉YY_BREAK␊ |
3143 | case 123:␊ |
3144 | /* rule 123 can match eol */␊ |
3145 | YY_RULE_SETUP␊ |
3146 | #line 1320 "pyscanner.l"␊ |
3147 | {␊ |
3148 | ␉␉␉ yyLineNr++;␊ |
3149 | ␉␉␉ docBlock += pyscanYYtext;␊ |
3150 | ␉␉␉}␊ |
3151 | ␉YY_BREAK␊ |
3152 | case 124:␊ |
3153 | YY_RULE_SETUP␊ |
3154 | #line 1324 "pyscanner.l"␊ |
3155 | {␊ |
3156 | ␉␉␉ docBlock += pyscanYYtext;␊ |
3157 | ␉␉␉}␊ |
3158 | ␉YY_BREAK␊ |
3159 | ␊ |
3160 | ␊ |
3161 | case 125:␊ |
3162 | YY_RULE_SETUP␊ |
3163 | #line 1330 "pyscanner.l"␊ |
3164 | { // skip leading hashes␊ |
3165 | ␉␉␉}␊ |
3166 | ␉YY_BREAK␊ |
3167 | case 126:␊ |
3168 | /* rule 126 can match eol */␊ |
3169 | *yy_cp = (yy_hold_char); /* undo effects of setting up pyscanYYtext */␊ |
3170 | (yy_c_buf_p) = yy_cp = yy_bp + 1;␊ |
3171 | YY_DO_BEFORE_ACTION; /* set up pyscanYYtext again */␊ |
3172 | YY_RULE_SETUP␊ |
3173 | #line 1332 "pyscanner.l"␊ |
3174 | { // continuation of the comment on the next line␊ |
3175 | ␉␉␉ docBlock+='\n';␊ |
3176 | ␉␉␉ docBrief = FALSE;␊ |
3177 | startCommentBlock(FALSE);␊ |
3178 | ␉␉␉ yyLineNr++;␊ |
3179 | ␉␉␉}␊ |
3180 | ␉YY_BREAK␊ |
3181 | case 127:␊ |
3182 | YY_RULE_SETUP␊ |
3183 | #line 1338 "pyscanner.l"␊ |
3184 | { // any other stuff␊ |
3185 | ␉␉␉ docBlock+=pyscanYYtext;␊ |
3186 | ␉␉␉}␊ |
3187 | ␉YY_BREAK␊ |
3188 | case 128:␊ |
3189 | /* rule 128 can match eol */␊ |
3190 | YY_RULE_SETUP␊ |
3191 | #line 1341 "pyscanner.l"␊ |
3192 | { // new line that ends the comment␊ |
3193 | ␉␉␉ handleCommentBlock(docBlock, docBrief);␊ |
3194 | ␉␉␉ yyLineNr++;␊ |
3195 | ␉␉␉ BEGIN(docBlockContext);␊ |
3196 | ␉␉␉}␊ |
3197 | ␉YY_BREAK␊ |
3198 | case 129:␊ |
3199 | YY_RULE_SETUP␊ |
3200 | #line 1346 "pyscanner.l"␊ |
3201 | { // anything we missed␊ |
3202 | ␉␉␉ docBlock+=*pyscanYYtext;␊ |
3203 | ␉␉␉}␊ |
3204 | ␉YY_BREAK␊ |
3205 | ␊ |
3206 | ␊ |
3207 | case 130:␊ |
3208 | /* rule 130 can match eol */␊ |
3209 | YY_RULE_SETUP␊ |
3210 | #line 1352 "pyscanner.l"␊ |
3211 | { // line continuation␊ |
3212 | ␉␉␉ addToString(pyscanYYtext);␊ |
3213 | ␉␉␉␉ yyLineNr++;␊ |
3214 | }␊ |
3215 | ␉YY_BREAK␊ |
3216 | case 131:␊ |
3217 | YY_RULE_SETUP␊ |
3218 | #line 1356 "pyscanner.l"␊ |
3219 | { // espaced char␊ |
3220 | ␉␉␉ addToString(pyscanYYtext);␊ |
3221 | }␊ |
3222 | ␉YY_BREAK␊ |
3223 | case 132:␊ |
3224 | YY_RULE_SETUP␊ |
3225 | #line 1359 "pyscanner.l"␊ |
3226 | { // tripple double quotes␊ |
3227 | ␉␉␉ addToString(pyscanYYtext);␊ |
3228 | ␉␉␉ }␊ |
3229 | ␉YY_BREAK␊ |
3230 | case 133:␊ |
3231 | YY_RULE_SETUP␊ |
3232 | #line 1362 "pyscanner.l"␊ |
3233 | { // end of the string␊ |
3234 | ␉␉␉ addToString(pyscanYYtext);␊ |
3235 | ␉␉ BEGIN(g_stringContext);␊ |
3236 | }␊ |
3237 | ␉YY_BREAK␊ |
3238 | case 134:␊ |
3239 | YY_RULE_SETUP␊ |
3240 | #line 1366 "pyscanner.l"␊ |
3241 | { // normal chars␊ |
3242 | ␉␉␉ addToString(pyscanYYtext);␊ |
3243 | }␊ |
3244 | ␉YY_BREAK␊ |
3245 | case 135:␊ |
3246 | YY_RULE_SETUP␊ |
3247 | #line 1369 "pyscanner.l"␊ |
3248 | { // normal char␊ |
3249 | ␉␉␉ addToString(pyscanYYtext);␊ |
3250 | }␊ |
3251 | ␉YY_BREAK␊ |
3252 | ␊ |
3253 | ␊ |
3254 | case 136:␊ |
3255 | /* rule 136 can match eol */␊ |
3256 | YY_RULE_SETUP␊ |
3257 | #line 1375 "pyscanner.l"␊ |
3258 | { // line continuation␊ |
3259 | ␉␉␉ addToString(pyscanYYtext);␊ |
3260 | ␉␉␉␉ yyLineNr++;␊ |
3261 | }␊ |
3262 | ␉YY_BREAK␊ |
3263 | case 137:␊ |
3264 | YY_RULE_SETUP␊ |
3265 | #line 1379 "pyscanner.l"␊ |
3266 | { // espaced char␊ |
3267 | ␉␉␉ addToString(pyscanYYtext);␊ |
3268 | }␊ |
3269 | ␉YY_BREAK␊ |
3270 | case 138:␊ |
3271 | YY_RULE_SETUP␊ |
3272 | #line 1382 "pyscanner.l"␊ |
3273 | { // tripple single quotes␊ |
3274 | ␉␉␉ addToString(pyscanYYtext);␊ |
3275 | ␉␉␉ }␊ |
3276 | ␉YY_BREAK␊ |
3277 | case 139:␊ |
3278 | YY_RULE_SETUP␊ |
3279 | #line 1385 "pyscanner.l"␊ |
3280 | { // end of the string␊ |
3281 | ␉␉␉ addToString(pyscanYYtext);␊ |
3282 | ␉␉ BEGIN(g_stringContext);␊ |
3283 | }␊ |
3284 | ␉YY_BREAK␊ |
3285 | case 140:␊ |
3286 | YY_RULE_SETUP␊ |
3287 | #line 1389 "pyscanner.l"␊ |
3288 | { // normal chars␊ |
3289 | ␉␉␉ addToString(pyscanYYtext);␊ |
3290 | }␊ |
3291 | ␉YY_BREAK␊ |
3292 | case 141:␊ |
3293 | YY_RULE_SETUP␊ |
3294 | #line 1392 "pyscanner.l"␊ |
3295 | { // normal char␊ |
3296 | ␉␉␉ addToString(pyscanYYtext);␊ |
3297 | }␊ |
3298 | ␉YY_BREAK␊ |
3299 | ␊ |
3300 | ␊ |
3301 | case 142:␊ |
3302 | #line 1399 "pyscanner.l"␊ |
3303 | case 143:␊ |
3304 | YY_RULE_SETUP␊ |
3305 | #line 1399 "pyscanner.l"␊ |
3306 | {␊ |
3307 | *g_copyString += pyscanYYtext;␊ |
3308 | ␉␉␉ if (g_doubleQuote==(pyscanYYtext[0]=='"')) ␊ |
3309 | ␉␉␉ {␊ |
3310 | ␉␉␉ BEGIN(g_stringContext);␊ |
3311 | ␉␉␉ }␊ |
3312 | }␊ |
3313 | ␉YY_BREAK␊ |
3314 | case 144:␊ |
3315 | /* rule 144 can match eol */␊ |
3316 | YY_RULE_SETUP␊ |
3317 | #line 1408 "pyscanner.l"␊ |
3318 | {␊ |
3319 | ␉␉␉ lineCount();␊ |
3320 | *g_copyString += pyscanYYtext;␊ |
3321 | }␊ |
3322 | ␉YY_BREAK␊ |
3323 | case 145:␊ |
3324 | /* rule 145 can match eol */␊ |
3325 | YY_RULE_SETUP␊ |
3326 | #line 1412 "pyscanner.l"␊ |
3327 | {␊ |
3328 | ␉␉␉ yyLineNr++;␊ |
3329 | *g_copyString += pyscanYYtext;␊ |
3330 | ␉␉␉}␊ |
3331 | ␉YY_BREAK␊ |
3332 | case 146:␊ |
3333 | YY_RULE_SETUP␊ |
3334 | #line 1416 "pyscanner.l"␊ |
3335 | {␊ |
3336 | *g_copyString += *pyscanYYtext;␊ |
3337 | ␉␉␉}␊ |
3338 | ␉YY_BREAK␊ |
3339 | ␊ |
3340 | /* ------------ End rules -------------- */␊ |
3341 | /*␊ |
3342 | <*>({NONEMPTY}|{EXPCHAR}|{BB}) { // This should go one character at a time.␊ |
3343 | ␉␉␉␉ // printf("[pyscanner] '%s' [ state %d ] [line %d] no match\n",␊ |
3344 | ␉␉␉␉ // pyscanYYtext, YY_START, yyLineNr);␊ |
3345 | ␊ |
3346 | }␊ |
3347 | */␊ |
3348 | case 147:␊ |
3349 | /* rule 147 can match eol */␊ |
3350 | YY_RULE_SETUP␊ |
3351 | #line 1431 "pyscanner.l"␊ |
3352 | {␊ |
3353 | ␉␉␉␉ //printf("[pyscanner] %d NEWLINE [line %d] no match\n",␊ |
3354 | ␉␉␉␉ // YY_START, yyLineNr);␊ |
3355 | ␊ |
3356 | lineCount();␊ |
3357 | }␊ |
3358 | ␉YY_BREAK␊ |
3359 | case 148:␊ |
3360 | YY_RULE_SETUP␊ |
3361 | #line 1438 "pyscanner.l"␊ |
3362 | {␊ |
3363 | ␉␉␉␉ //printf("[pyscanner] '%s' [ state %d ] [line %d] no match\n",␊ |
3364 | ␉␉␉␉ // pyscanYYtext, YY_START, yyLineNr);␊ |
3365 | ␊ |
3366 | }␊ |
3367 | ␉YY_BREAK␊ |
3368 | case 149:␊ |
3369 | YY_RULE_SETUP␊ |
3370 | #line 1445 "pyscanner.l"␊ |
3371 | ECHO;␊ |
3372 | ␉YY_BREAK␊ |
3373 | #line 3374 "<stdout>"␊ |
3374 | ␉␉␉case YY_STATE_EOF(INITIAL):␊ |
3375 | ␉␉␉case YY_STATE_EOF(Search):␊ |
3376 | ␉␉␉case YY_STATE_EOF(SearchMemVars):␊ |
3377 | ␉␉␉case YY_STATE_EOF(TryClassDocString):␊ |
3378 | ␉␉␉case YY_STATE_EOF(TripleComment):␊ |
3379 | ␉␉␉case YY_STATE_EOF(SpecialComment):␊ |
3380 | ␉␉␉case YY_STATE_EOF(FunctionDec):␊ |
3381 | ␉␉␉case YY_STATE_EOF(FunctionParams):␊ |
3382 | ␉␉␉case YY_STATE_EOF(FunctionParamDefVal):␊ |
3383 | ␉␉␉case YY_STATE_EOF(ClassDec):␊ |
3384 | ␉␉␉case YY_STATE_EOF(ClassInheritance):␊ |
3385 | ␉␉␉case YY_STATE_EOF(ClassCaptureIndent):␊ |
3386 | ␉␉␉case YY_STATE_EOF(VariableDec):␊ |
3387 | ␉␉␉case YY_STATE_EOF(VariableAtom):␊ |
3388 | ␉␉␉case YY_STATE_EOF(SingleQuoteString):␊ |
3389 | ␉␉␉case YY_STATE_EOF(DoubleQuoteString):␊ |
3390 | ␉␉␉case YY_STATE_EOF(TripleString):␊ |
3391 | ␉␉␉case YY_STATE_EOF(FromMod):␊ |
3392 | ␉␉␉case YY_STATE_EOF(FromModItem):␊ |
3393 | ␉␉␉case YY_STATE_EOF(Import):␊ |
3394 | ␉␉␉␉yyterminate();␊ |
3395 | ␊ |
3396 | ␉case YY_END_OF_BUFFER:␊ |
3397 | ␉␉{␊ |
3398 | ␉␉/* Amount of text matched not including the EOB char. */␊ |
3399 | ␉␉int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;␊ |
3400 | ␊ |
3401 | ␉␉/* Undo the effects of YY_DO_BEFORE_ACTION. */␊ |
3402 | ␉␉*yy_cp = (yy_hold_char);␊ |
3403 | ␉␉YY_RESTORE_YY_MORE_OFFSET␊ |
3404 | ␊ |
3405 | ␉␉if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )␊ |
3406 | ␉␉␉{␊ |
3407 | ␉␉␉/* We're scanning a new file or input source. It's␊ |
3408 | ␉␉␉ * possible that this happened because the user␊ |
3409 | ␉␉␉ * just pointed pyscanYYin at a new source and called␊ |
3410 | ␉␉␉ * pyscanYYlex(). If so, then we have to assure␊ |
3411 | ␉␉␉ * consistency between YY_CURRENT_BUFFER and our␊ |
3412 | ␉␉␉ * globals. Here is the right place to do so, because␊ |
3413 | ␉␉␉ * this is the first action (other than possibly a␊ |
3414 | ␉␉␉ * back-up) that will match for the new input source.␊ |
3415 | ␉␉␉ */␊ |
3416 | ␉␉␉(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;␊ |
3417 | ␉␉␉YY_CURRENT_BUFFER_LVALUE->yy_input_file = pyscanYYin;␊ |
3418 | ␉␉␉YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;␊ |
3419 | ␉␉␉}␊ |
3420 | ␊ |
3421 | ␉␉/* Note that here we test for yy_c_buf_p "<=" to the position␊ |
3422 | ␉␉ * of the first EOB in the buffer, since yy_c_buf_p will␊ |
3423 | ␉␉ * already have been incremented past the NUL character␊ |
3424 | ␉␉ * (since all states make transitions on EOB to the␊ |
3425 | ␉␉ * end-of-buffer state). Contrast this with the test␊ |
3426 | ␉␉ * in input().␊ |
3427 | ␉␉ */␊ |
3428 | ␉␉if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )␊ |
3429 | ␉␉␉{ /* This was really a NUL. */␊ |
3430 | ␉␉␉yy_state_type yy_next_state;␊ |
3431 | ␊ |
3432 | ␉␉␉(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;␊ |
3433 | ␊ |
3434 | ␉␉␉yy_current_state = yy_get_previous_state( );␊ |
3435 | ␊ |
3436 | ␉␉␉/* Okay, we're now positioned to make the NUL␊ |
3437 | ␉␉␉ * transition. We couldn't have␊ |
3438 | ␉␉␉ * yy_get_previous_state() go ahead and do it␊ |
3439 | ␉␉␉ * for us because it doesn't know how to deal␊ |
3440 | ␉␉␉ * with the possibility of jamming (and we don't␊ |
3441 | ␉␉␉ * want to build jamming into it because then it␊ |
3442 | ␉␉␉ * will run more slowly).␊ |
3443 | ␉␉␉ */␊ |
3444 | ␊ |
3445 | ␉␉␉yy_next_state = yy_try_NUL_trans( yy_current_state );␊ |
3446 | ␊ |
3447 | ␉␉␉yy_bp = (yytext_ptr) + YY_MORE_ADJ;␊ |
3448 | ␊ |
3449 | ␉␉␉if ( yy_next_state )␊ |
3450 | ␉␉␉␉{␊ |
3451 | ␉␉␉␉/* Consume the NUL. */␊ |
3452 | ␉␉␉␉yy_cp = ++(yy_c_buf_p);␊ |
3453 | ␉␉␉␉yy_current_state = yy_next_state;␊ |
3454 | ␉␉␉␉goto yy_match;␊ |
3455 | ␉␉␉␉}␊ |
3456 | ␊ |
3457 | ␉␉␉else␊ |
3458 | ␉␉␉␉{␊ |
3459 | ␉␉␉␉yy_cp = (yy_c_buf_p);␊ |
3460 | ␉␉␉␉goto yy_find_action;␊ |
3461 | ␉␉␉␉}␊ |
3462 | ␉␉␉}␊ |
3463 | ␊ |
3464 | ␉␉else switch ( yy_get_next_buffer( ) )␊ |
3465 | ␉␉␉{␊ |
3466 | ␉␉␉case EOB_ACT_END_OF_FILE:␊ |
3467 | ␉␉␉␉{␊ |
3468 | ␉␉␉␉(yy_did_buffer_switch_on_eof) = 0;␊ |
3469 | ␊ |
3470 | ␉␉␉␉if ( pyscanYYwrap( ) )␊ |
3471 | ␉␉␉␉␉{␊ |
3472 | ␉␉␉␉␉/* Note: because we've taken care in␊ |
3473 | ␉␉␉␉␉ * yy_get_next_buffer() to have set up␊ |
3474 | ␉␉␉␉␉ * pyscanYYtext, we can now set up␊ |
3475 | ␉␉␉␉␉ * yy_c_buf_p so that if some total␊ |
3476 | ␉␉␉␉␉ * hoser (like flex itself) wants to␊ |
3477 | ␉␉␉␉␉ * call the scanner after we return the␊ |
3478 | ␉␉␉␉␉ * YY_NULL, it'll still work - another␊ |
3479 | ␉␉␉␉␉ * YY_NULL will get returned.␊ |
3480 | ␉␉␉␉␉ */␊ |
3481 | ␉␉␉␉␉(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;␊ |
3482 | ␊ |
3483 | ␉␉␉␉␉yy_act = YY_STATE_EOF(YY_START);␊ |
3484 | ␉␉␉␉␉goto do_action;␊ |
3485 | ␉␉␉␉␉}␊ |
3486 | ␊ |
3487 | ␉␉␉␉else␊ |
3488 | ␉␉␉␉␉{␊ |
3489 | ␉␉␉␉␉if ( ! (yy_did_buffer_switch_on_eof) )␊ |
3490 | ␉␉␉␉␉␉YY_NEW_FILE;␊ |
3491 | ␉␉␉␉␉}␊ |
3492 | ␉␉␉␉break;␊ |
3493 | ␉␉␉␉}␊ |
3494 | ␊ |
3495 | ␉␉␉case EOB_ACT_CONTINUE_SCAN:␊ |
3496 | ␉␉␉␉(yy_c_buf_p) =␊ |
3497 | ␉␉␉␉␉(yytext_ptr) + yy_amount_of_matched_text;␊ |
3498 | ␊ |
3499 | ␉␉␉␉yy_current_state = yy_get_previous_state( );␊ |
3500 | ␊ |
3501 | ␉␉␉␉yy_cp = (yy_c_buf_p);␊ |
3502 | ␉␉␉␉yy_bp = (yytext_ptr) + YY_MORE_ADJ;␊ |
3503 | ␉␉␉␉goto yy_match;␊ |
3504 | ␊ |
3505 | ␉␉␉case EOB_ACT_LAST_MATCH:␊ |
3506 | ␉␉␉␉(yy_c_buf_p) =␊ |
3507 | ␉␉␉␉&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];␊ |
3508 | ␊ |
3509 | ␉␉␉␉yy_current_state = yy_get_previous_state( );␊ |
3510 | ␊ |
3511 | ␉␉␉␉yy_cp = (yy_c_buf_p);␊ |
3512 | ␉␉␉␉yy_bp = (yytext_ptr) + YY_MORE_ADJ;␊ |
3513 | ␉␉␉␉goto yy_find_action;␊ |
3514 | ␉␉␉}␊ |
3515 | ␉␉break;␊ |
3516 | ␉␉}␊ |
3517 | ␊ |
3518 | ␉default:␊ |
3519 | ␉␉YY_FATAL_ERROR(␊ |
3520 | ␉␉␉"fatal flex scanner internal error--no action found" );␊ |
3521 | ␉} /* end of action switch */␊ |
3522 | ␉␉} /* end of scanning one token */␊ |
3523 | } /* end of pyscanYYlex */␊ |
3524 | ␊ |
3525 | /* yy_get_next_buffer - try to read in a new buffer␊ |
3526 | *␊ |
3527 | * Returns a code representing an action:␊ |
3528 | *␉EOB_ACT_LAST_MATCH -␊ |
3529 | *␉EOB_ACT_CONTINUE_SCAN - continue scanning from current position␊ |
3530 | *␉EOB_ACT_END_OF_FILE - end of file␊ |
3531 | */␊ |
3532 | static int yy_get_next_buffer (void)␊ |
3533 | {␊ |
3534 | ␉register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;␊ |
3535 | ␉register char *source = (yytext_ptr);␊ |
3536 | ␉register int number_to_move, i;␊ |
3537 | ␉int ret_val;␊ |
3538 | ␊ |
3539 | ␉if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )␊ |
3540 | ␉␉YY_FATAL_ERROR(␊ |
3541 | ␉␉"fatal flex scanner internal error--end of buffer missed" );␊ |
3542 | ␊ |
3543 | ␉if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )␊ |
3544 | ␉␉{ /* Don't try to fill the buffer, so this is an EOF. */␊ |
3545 | ␉␉if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )␊ |
3546 | ␉␉␉{␊ |
3547 | ␉␉␉/* We matched a single character, the EOB, so␊ |
3548 | ␉␉␉ * treat this as a final EOF.␊ |
3549 | ␉␉␉ */␊ |
3550 | ␉␉␉return EOB_ACT_END_OF_FILE;␊ |
3551 | ␉␉␉}␊ |
3552 | ␊ |
3553 | ␉␉else␊ |
3554 | ␉␉␉{␊ |
3555 | ␉␉␉/* We matched some text prior to the EOB, first␊ |
3556 | ␉␉␉ * process it.␊ |
3557 | ␉␉␉ */␊ |
3558 | ␉␉␉return EOB_ACT_LAST_MATCH;␊ |
3559 | ␉␉␉}␊ |
3560 | ␉␉}␊ |
3561 | ␊ |
3562 | ␉/* Try to read more data. */␊ |
3563 | ␊ |
3564 | ␉/* First move last chars to start of buffer. */␊ |
3565 | ␉number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;␊ |
3566 | ␊ |
3567 | ␉for ( i = 0; i < number_to_move; ++i )␊ |
3568 | ␉␉*(dest++) = *(source++);␊ |
3569 | ␊ |
3570 | ␉if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )␊ |
3571 | ␉␉/* don't do the read, it's not guaranteed to return an EOF,␊ |
3572 | ␉␉ * just force an EOF␊ |
3573 | ␉␉ */␊ |
3574 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;␊ |
3575 | ␊ |
3576 | ␉else␊ |
3577 | ␉␉{␊ |
3578 | ␉␉␉yy_size_t num_to_read =␊ |
3579 | ␉␉␉YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;␊ |
3580 | ␊ |
3581 | ␉␉while ( num_to_read <= 0 )␊ |
3582 | ␉␉␉{ /* Not enough room in the buffer - grow it. */␊ |
3583 | ␊ |
3584 | ␉␉␉YY_FATAL_ERROR(␊ |
3585 | "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );␊ |
3586 | ␊ |
3587 | ␉␉␉}␊ |
3588 | ␊ |
3589 | ␉␉if ( num_to_read > YY_READ_BUF_SIZE )␊ |
3590 | ␉␉␉num_to_read = YY_READ_BUF_SIZE;␊ |
3591 | ␊ |
3592 | ␉␉/* Read in more data. */␊ |
3593 | ␉␉YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),␊ |
3594 | ␉␉␉(yy_n_chars), num_to_read );␊ |
3595 | ␊ |
3596 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);␊ |
3597 | ␉␉}␊ |
3598 | ␊ |
3599 | ␉if ( (yy_n_chars) == 0 )␊ |
3600 | ␉␉{␊ |
3601 | ␉␉if ( number_to_move == YY_MORE_ADJ )␊ |
3602 | ␉␉␉{␊ |
3603 | ␉␉␉ret_val = EOB_ACT_END_OF_FILE;␊ |
3604 | ␉␉␉pyscanYYrestart(pyscanYYin );␊ |
3605 | ␉␉␉}␊ |
3606 | ␊ |
3607 | ␉␉else␊ |
3608 | ␉␉␉{␊ |
3609 | ␉␉␉ret_val = EOB_ACT_LAST_MATCH;␊ |
3610 | ␉␉␉YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =␊ |
3611 | ␉␉␉␉YY_BUFFER_EOF_PENDING;␊ |
3612 | ␉␉␉}␊ |
3613 | ␉␉}␊ |
3614 | ␊ |
3615 | ␉else␊ |
3616 | ␉␉ret_val = EOB_ACT_CONTINUE_SCAN;␊ |
3617 | ␊ |
3618 | ␉if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {␊ |
3619 | ␉␉/* Extend the array by 50%, plus the number we really need. */␊ |
3620 | ␉␉yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);␊ |
3621 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) pyscanYYrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );␊ |
3622 | ␉␉if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )␊ |
3623 | ␉␉␉YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );␊ |
3624 | ␉}␊ |
3625 | ␊ |
3626 | ␉(yy_n_chars) += number_to_move;␊ |
3627 | ␉YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;␊ |
3628 | ␉YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;␊ |
3629 | ␊ |
3630 | ␉(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];␊ |
3631 | ␊ |
3632 | ␉return ret_val;␊ |
3633 | }␊ |
3634 | ␊ |
3635 | /* yy_get_previous_state - get the state just before the EOB char was reached */␊ |
3636 | ␊ |
3637 | static yy_state_type yy_get_previous_state (void)␊ |
3638 | {␊ |
3639 | ␉register yy_state_type yy_current_state;␊ |
3640 | ␉register char *yy_cp;␊ |
3641 | ␊ |
3642 | ␉yy_current_state = (yy_start);␊ |
3643 | ␉yy_current_state += YY_AT_BOL();␊ |
3644 | ␊ |
3645 | ␉(yy_state_ptr) = (yy_state_buf);␊ |
3646 | ␉*(yy_state_ptr)++ = yy_current_state;␊ |
3647 | ␊ |
3648 | ␉for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )␊ |
3649 | ␉␉{␊ |
3650 | ␉␉register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);␊ |
3651 | ␉␉while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )␊ |
3652 | ␉␉␉{␊ |
3653 | ␉␉␉yy_current_state = (int) yy_def[yy_current_state];␊ |
3654 | ␉␉␉if ( yy_current_state >= 434 )␊ |
3655 | ␉␉␉␉yy_c = yy_meta[(unsigned int) yy_c];␊ |
3656 | ␉␉␉}␊ |
3657 | ␉␉yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];␊ |
3658 | ␉␉*(yy_state_ptr)++ = yy_current_state;␊ |
3659 | ␉␉}␊ |
3660 | ␊ |
3661 | ␉return yy_current_state;␊ |
3662 | }␊ |
3663 | ␊ |
3664 | /* yy_try_NUL_trans - try to make a transition on the NUL character␊ |
3665 | *␊ |
3666 | * synopsis␊ |
3667 | *␉next_state = yy_try_NUL_trans( current_state );␊ |
3668 | */␊ |
3669 | static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )␊ |
3670 | {␊ |
3671 | ␉register int yy_is_jam;␊ |
3672 | ␊ |
3673 | ␉register YY_CHAR yy_c = 1;␊ |
3674 | ␉while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )␊ |
3675 | ␉␉{␊ |
3676 | ␉␉yy_current_state = (int) yy_def[yy_current_state];␊ |
3677 | ␉␉if ( yy_current_state >= 434 )␊ |
3678 | ␉␉␉yy_c = yy_meta[(unsigned int) yy_c];␊ |
3679 | ␉␉}␊ |
3680 | ␉yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];␊ |
3681 | ␉yy_is_jam = (yy_current_state == 433);␊ |
3682 | ␉if ( ! yy_is_jam )␊ |
3683 | ␉␉*(yy_state_ptr)++ = yy_current_state;␊ |
3684 | ␊ |
3685 | ␉return yy_is_jam ? 0 : yy_current_state;␊ |
3686 | }␊ |
3687 | ␊ |
3688 | static void yyunput (int c, register char * yy_bp )␊ |
3689 | {␊ |
3690 | ␉register char *yy_cp;␊ |
3691 | ␊ |
3692 | yy_cp = (yy_c_buf_p);␊ |
3693 | ␊ |
3694 | ␉/* undo effects of setting up pyscanYYtext */␊ |
3695 | ␉*yy_cp = (yy_hold_char);␊ |
3696 | ␊ |
3697 | ␉if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )␊ |
3698 | ␉␉{ /* need to shift things up to make room */␊ |
3699 | ␉␉/* +2 for EOB chars. */␊ |
3700 | ␉␉register yy_size_t number_to_move = (yy_n_chars) + 2;␊ |
3701 | ␉␉register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[␊ |
3702 | ␉␉␉␉␉YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];␊ |
3703 | ␉␉register char *source =␊ |
3704 | ␉␉␉␉&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];␊ |
3705 | ␊ |
3706 | ␉␉while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )␊ |
3707 | ␉␉␉*--dest = *--source;␊ |
3708 | ␊ |
3709 | ␉␉yy_cp += (int) (dest - source);␊ |
3710 | ␉␉yy_bp += (int) (dest - source);␊ |
3711 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_n_chars =␊ |
3712 | ␉␉␉(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;␊ |
3713 | ␊ |
3714 | ␉␉if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )␊ |
3715 | ␉␉␉YY_FATAL_ERROR( "flex scanner push-back overflow" );␊ |
3716 | ␉␉}␊ |
3717 | ␊ |
3718 | ␉*--yy_cp = (char) c;␊ |
3719 | ␊ |
3720 | ␉(yytext_ptr) = yy_bp;␊ |
3721 | ␉(yy_hold_char) = *yy_cp;␊ |
3722 | ␉(yy_c_buf_p) = yy_cp;␊ |
3723 | }␊ |
3724 | ␊ |
3725 | #ifndef YY_NO_INPUT␊ |
3726 | #ifdef __cplusplus␊ |
3727 | static int yyinput (void)␊ |
3728 | #else␊ |
3729 | static int input (void)␊ |
3730 | #endif␊ |
3731 | ␊ |
3732 | {␊ |
3733 | ␉int c;␊ |
3734 | ␊ |
3735 | ␉*(yy_c_buf_p) = (yy_hold_char);␊ |
3736 | ␊ |
3737 | ␉if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )␊ |
3738 | ␉␉{␊ |
3739 | ␉␉/* yy_c_buf_p now points to the character we want to return.␊ |
3740 | ␉␉ * If this occurs *before* the EOB characters, then it's a␊ |
3741 | ␉␉ * valid NUL; if not, then we've hit the end of the buffer.␊ |
3742 | ␉␉ */␊ |
3743 | ␉␉if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )␊ |
3744 | ␉␉␉/* This was really a NUL. */␊ |
3745 | ␉␉␉*(yy_c_buf_p) = '\0';␊ |
3746 | ␊ |
3747 | ␉␉else␊ |
3748 | ␉␉␉{ /* need more input */␊ |
3749 | ␉␉␉yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);␊ |
3750 | ␉␉␉++(yy_c_buf_p);␊ |
3751 | ␊ |
3752 | ␉␉␉switch ( yy_get_next_buffer( ) )␊ |
3753 | ␉␉␉␉{␊ |
3754 | ␉␉␉␉case EOB_ACT_LAST_MATCH:␊ |
3755 | ␉␉␉␉␉/* This happens because yy_g_n_b()␊ |
3756 | ␉␉␉␉␉ * sees that we've accumulated a␊ |
3757 | ␉␉␉␉␉ * token and flags that we need to␊ |
3758 | ␉␉␉␉␉ * try matching the token before␊ |
3759 | ␉␉␉␉␉ * proceeding. But for input(),␊ |
3760 | ␉␉␉␉␉ * there's no matching to consider.␊ |
3761 | ␉␉␉␉␉ * So convert the EOB_ACT_LAST_MATCH␊ |
3762 | ␉␉␉␉␉ * to EOB_ACT_END_OF_FILE.␊ |
3763 | ␉␉␉␉␉ */␊ |
3764 | ␊ |
3765 | ␉␉␉␉␉/* Reset buffer status. */␊ |
3766 | ␉␉␉␉␉pyscanYYrestart(pyscanYYin );␊ |
3767 | ␊ |
3768 | ␉␉␉␉␉/*FALLTHROUGH*/␊ |
3769 | ␊ |
3770 | ␉␉␉␉case EOB_ACT_END_OF_FILE:␊ |
3771 | ␉␉␉␉␉{␊ |
3772 | ␉␉␉␉␉if ( pyscanYYwrap( ) )␊ |
3773 | ␉␉␉␉␉␉return 0;␊ |
3774 | ␊ |
3775 | ␉␉␉␉␉if ( ! (yy_did_buffer_switch_on_eof) )␊ |
3776 | ␉␉␉␉␉␉YY_NEW_FILE;␊ |
3777 | #ifdef __cplusplus␊ |
3778 | ␉␉␉␉␉return yyinput();␊ |
3779 | #else␊ |
3780 | ␉␉␉␉␉return input();␊ |
3781 | #endif␊ |
3782 | ␉␉␉␉␉}␊ |
3783 | ␊ |
3784 | ␉␉␉␉case EOB_ACT_CONTINUE_SCAN:␊ |
3785 | ␉␉␉␉␉(yy_c_buf_p) = (yytext_ptr) + offset;␊ |
3786 | ␉␉␉␉␉break;␊ |
3787 | ␉␉␉␉}␊ |
3788 | ␉␉␉}␊ |
3789 | ␉␉}␊ |
3790 | ␊ |
3791 | ␉c = *(unsigned char *) (yy_c_buf_p);␉/* cast for 8-bit char's */␊ |
3792 | ␉*(yy_c_buf_p) = '\0';␉/* preserve pyscanYYtext */␊ |
3793 | ␉(yy_hold_char) = *++(yy_c_buf_p);␊ |
3794 | ␊ |
3795 | ␉YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');␊ |
3796 | ␊ |
3797 | ␉return c;␊ |
3798 | }␊ |
3799 | #endif␉/* ifndef YY_NO_INPUT */␊ |
3800 | ␊ |
3801 | /** Immediately switch to a different input stream.␊ |
3802 | * @param input_file A readable stream.␊ |
3803 | * ␊ |
3804 | * @note This function does not reset the start condition to @c INITIAL .␊ |
3805 | */␊ |
3806 | void pyscanYYrestart (FILE * input_file )␊ |
3807 | {␊ |
3808 | ␊ |
3809 | ␉if ( ! YY_CURRENT_BUFFER ){␊ |
3810 | pyscanYYensure_buffer_stack ();␊ |
3811 | ␉␉YY_CURRENT_BUFFER_LVALUE =␊ |
3812 | pyscanYY_create_buffer(pyscanYYin,YY_BUF_SIZE );␊ |
3813 | ␉}␊ |
3814 | ␊ |
3815 | ␉pyscanYY_init_buffer(YY_CURRENT_BUFFER,input_file );␊ |
3816 | ␉pyscanYY_load_buffer_state( );␊ |
3817 | }␊ |
3818 | ␊ |
3819 | /** Switch to a different input buffer.␊ |
3820 | * @param new_buffer The new input buffer.␊ |
3821 | * ␊ |
3822 | */␊ |
3823 | void pyscanYY_switch_to_buffer (YY_BUFFER_STATE new_buffer )␊ |
3824 | {␊ |
3825 | ␊ |
3826 | ␉/* TODO. We should be able to replace this entire function body␊ |
3827 | ␉ * with␊ |
3828 | ␉ *␉␉pyscanYYpop_buffer_state();␊ |
3829 | ␉ *␉␉pyscanYYpush_buffer_state(new_buffer);␊ |
3830 | */␊ |
3831 | ␉pyscanYYensure_buffer_stack ();␊ |
3832 | ␉if ( YY_CURRENT_BUFFER == new_buffer )␊ |
3833 | ␉␉return;␊ |
3834 | ␊ |
3835 | ␉if ( YY_CURRENT_BUFFER )␊ |
3836 | ␉␉{␊ |
3837 | ␉␉/* Flush out information for old buffer. */␊ |
3838 | ␉␉*(yy_c_buf_p) = (yy_hold_char);␊ |
3839 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);␊ |
3840 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);␊ |
3841 | ␉␉}␊ |
3842 | ␊ |
3843 | ␉YY_CURRENT_BUFFER_LVALUE = new_buffer;␊ |
3844 | ␉pyscanYY_load_buffer_state( );␊ |
3845 | ␊ |
3846 | ␉/* We don't actually know whether we did this switch during␊ |
3847 | ␉ * EOF (pyscanYYwrap()) processing, but the only time this flag␊ |
3848 | ␉ * is looked at is after pyscanYYwrap() is called, so it's safe␊ |
3849 | ␉ * to go ahead and always set it.␊ |
3850 | ␉ */␊ |
3851 | ␉(yy_did_buffer_switch_on_eof) = 1;␊ |
3852 | }␊ |
3853 | ␊ |
3854 | static void pyscanYY_load_buffer_state (void)␊ |
3855 | {␊ |
3856 | ␉(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;␊ |
3857 | ␉(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;␊ |
3858 | ␉pyscanYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;␊ |
3859 | ␉(yy_hold_char) = *(yy_c_buf_p);␊ |
3860 | }␊ |
3861 | ␊ |
3862 | /** Allocate and initialize an input buffer state.␊ |
3863 | * @param file A readable stream.␊ |
3864 | * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.␊ |
3865 | * ␊ |
3866 | * @return the allocated buffer state.␊ |
3867 | */␊ |
3868 | YY_BUFFER_STATE pyscanYY_create_buffer (FILE * file, int size )␊ |
3869 | {␊ |
3870 | ␉YY_BUFFER_STATE b;␊ |
3871 | ␊ |
3872 | ␉b = (YY_BUFFER_STATE) pyscanYYalloc(sizeof( struct yy_buffer_state ) );␊ |
3873 | ␉if ( ! b )␊ |
3874 | ␉␉YY_FATAL_ERROR( "out of dynamic memory in pyscanYY_create_buffer()" );␊ |
3875 | ␊ |
3876 | ␉b->yy_buf_size = size;␊ |
3877 | ␊ |
3878 | ␉/* yy_ch_buf has to be 2 characters longer than the size given because␊ |
3879 | ␉ * we need to put in 2 end-of-buffer characters.␊ |
3880 | ␉ */␊ |
3881 | ␉b->yy_ch_buf = (char *) pyscanYYalloc(b->yy_buf_size + 2 );␊ |
3882 | ␉if ( ! b->yy_ch_buf )␊ |
3883 | ␉␉YY_FATAL_ERROR( "out of dynamic memory in pyscanYY_create_buffer()" );␊ |
3884 | ␊ |
3885 | ␉b->yy_is_our_buffer = 1;␊ |
3886 | ␊ |
3887 | ␉pyscanYY_init_buffer(b,file );␊ |
3888 | ␊ |
3889 | ␉return b;␊ |
3890 | }␊ |
3891 | ␊ |
3892 | /** Destroy the buffer.␊ |
3893 | * @param b a buffer created with pyscanYY_create_buffer()␊ |
3894 | * ␊ |
3895 | */␊ |
3896 | void pyscanYY_delete_buffer (YY_BUFFER_STATE b )␊ |
3897 | {␊ |
3898 | ␊ |
3899 | ␉if ( ! b )␊ |
3900 | ␉␉return;␊ |
3901 | ␊ |
3902 | ␉if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */␊ |
3903 | ␉␉YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;␊ |
3904 | ␊ |
3905 | ␉if ( b->yy_is_our_buffer )␊ |
3906 | ␉␉pyscanYYfree((void *) b->yy_ch_buf );␊ |
3907 | ␊ |
3908 | ␉pyscanYYfree((void *) b );␊ |
3909 | }␊ |
3910 | ␊ |
3911 | #ifndef __cplusplus␊ |
3912 | extern int isatty (int );␊ |
3913 | #endif /* __cplusplus */␊ |
3914 | ␊ |
3915 | /* Initializes or reinitializes a buffer.␊ |
3916 | * This function is sometimes called more than once on the same buffer,␊ |
3917 | * such as during a pyscanYYrestart() or at EOF.␊ |
3918 | */␊ |
3919 | static void pyscanYY_init_buffer (YY_BUFFER_STATE b, FILE * file )␊ |
3920 | ␊ |
3921 | {␊ |
3922 | ␉int oerrno = errno;␊ |
3923 | ␊ |
3924 | ␉pyscanYY_flush_buffer(b );␊ |
3925 | ␊ |
3926 | ␉b->yy_input_file = file;␊ |
3927 | ␉b->yy_fill_buffer = 1;␊ |
3928 | ␊ |
3929 | /* If b is the current buffer, then pyscanYY_init_buffer was _probably_␊ |
3930 | * called from pyscanYYrestart() or through yy_get_next_buffer.␊ |
3931 | * In that case, we don't want to reset the lineno or column.␊ |
3932 | */␊ |
3933 | if (b != YY_CURRENT_BUFFER){␊ |
3934 | b->yy_bs_lineno = 1;␊ |
3935 | b->yy_bs_column = 0;␊ |
3936 | }␊ |
3937 | ␊ |
3938 | b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;␊ |
3939 | ␊ |
3940 | ␉errno = oerrno;␊ |
3941 | }␊ |
3942 | ␊ |
3943 | /** Discard all buffered characters. On the next scan, YY_INPUT will be called.␊ |
3944 | * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.␊ |
3945 | * ␊ |
3946 | */␊ |
3947 | void pyscanYY_flush_buffer (YY_BUFFER_STATE b )␊ |
3948 | {␊ |
3949 | ␉if ( ! b )␊ |
3950 | ␉␉return;␊ |
3951 | ␊ |
3952 | ␉b->yy_n_chars = 0;␊ |
3953 | ␊ |
3954 | ␉/* We always need two end-of-buffer characters. The first causes␊ |
3955 | ␉ * a transition to the end-of-buffer state. The second causes␊ |
3956 | ␉ * a jam in that state.␊ |
3957 | ␉ */␊ |
3958 | ␉b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;␊ |
3959 | ␉b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;␊ |
3960 | ␊ |
3961 | ␉b->yy_buf_pos = &b->yy_ch_buf[0];␊ |
3962 | ␊ |
3963 | ␉b->yy_at_bol = 1;␊ |
3964 | ␉b->yy_buffer_status = YY_BUFFER_NEW;␊ |
3965 | ␊ |
3966 | ␉if ( b == YY_CURRENT_BUFFER )␊ |
3967 | ␉␉pyscanYY_load_buffer_state( );␊ |
3968 | }␊ |
3969 | ␊ |
3970 | /** Pushes the new state onto the stack. The new state becomes␊ |
3971 | * the current state. This function will allocate the stack␊ |
3972 | * if necessary.␊ |
3973 | * @param new_buffer The new state.␊ |
3974 | * ␊ |
3975 | */␊ |
3976 | void pyscanYYpush_buffer_state (YY_BUFFER_STATE new_buffer )␊ |
3977 | {␊ |
3978 | ␉if (new_buffer == NULL)␊ |
3979 | ␉␉return;␊ |
3980 | ␊ |
3981 | ␉pyscanYYensure_buffer_stack();␊ |
3982 | ␊ |
3983 | ␉/* This block is copied from pyscanYY_switch_to_buffer. */␊ |
3984 | ␉if ( YY_CURRENT_BUFFER )␊ |
3985 | ␉␉{␊ |
3986 | ␉␉/* Flush out information for old buffer. */␊ |
3987 | ␉␉*(yy_c_buf_p) = (yy_hold_char);␊ |
3988 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);␊ |
3989 | ␉␉YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);␊ |
3990 | ␉␉}␊ |
3991 | ␊ |
3992 | ␉/* Only push if top exists. Otherwise, replace top. */␊ |
3993 | ␉if (YY_CURRENT_BUFFER)␊ |
3994 | ␉␉(yy_buffer_stack_top)++;␊ |
3995 | ␉YY_CURRENT_BUFFER_LVALUE = new_buffer;␊ |
3996 | ␊ |
3997 | ␉/* copied from pyscanYY_switch_to_buffer. */␊ |
3998 | ␉pyscanYY_load_buffer_state( );␊ |
3999 | ␉(yy_did_buffer_switch_on_eof) = 1;␊ |
4000 | }␊ |
4001 | ␊ |
4002 | /** Removes and deletes the top of the stack, if present.␊ |
4003 | * The next element becomes the new top.␊ |
4004 | * ␊ |
4005 | */␊ |
4006 | void pyscanYYpop_buffer_state (void)␊ |
4007 | {␊ |
4008 | ␉if (!YY_CURRENT_BUFFER)␊ |
4009 | ␉␉return;␊ |
4010 | ␊ |
4011 | ␉pyscanYY_delete_buffer(YY_CURRENT_BUFFER );␊ |
4012 | ␉YY_CURRENT_BUFFER_LVALUE = NULL;␊ |
4013 | ␉if ((yy_buffer_stack_top) > 0)␊ |
4014 | ␉␉--(yy_buffer_stack_top);␊ |
4015 | ␊ |
4016 | ␉if (YY_CURRENT_BUFFER) {␊ |
4017 | ␉␉pyscanYY_load_buffer_state( );␊ |
4018 | ␉␉(yy_did_buffer_switch_on_eof) = 1;␊ |
4019 | ␉}␊ |
4020 | }␊ |
4021 | ␊ |
4022 | /* Allocates the stack if it does not exist.␊ |
4023 | * Guarantees space for at least one push.␊ |
4024 | */␊ |
4025 | static void pyscanYYensure_buffer_stack (void)␊ |
4026 | {␊ |
4027 | ␉yy_size_t num_to_alloc;␊ |
4028 | ␊ |
4029 | ␉if (!(yy_buffer_stack)) {␊ |
4030 | ␊ |
4031 | ␉␉/* First allocation is just for 2 elements, since we don't know if this␊ |
4032 | ␉␉ * scanner will even need a stack. We use 2 instead of 1 to avoid an␊ |
4033 | ␉␉ * immediate realloc on the next call.␊ |
4034 | */␊ |
4035 | ␉␉num_to_alloc = 1;␊ |
4036 | ␉␉(yy_buffer_stack) = (struct yy_buffer_state**)pyscanYYalloc␊ |
4037 | ␉␉␉␉␉␉␉␉(num_to_alloc * sizeof(struct yy_buffer_state*)␊ |
4038 | ␉␉␉␉␉␉␉␉);␊ |
4039 | ␉␉if ( ! (yy_buffer_stack) )␊ |
4040 | ␉␉␉YY_FATAL_ERROR( "out of dynamic memory in pyscanYYensure_buffer_stack()" );␊ |
4041 | ␉␉␉␉␉␉␉␉ ␊ |
4042 | ␉␉memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));␊ |
4043 | ␉␉␉␉␊ |
4044 | ␉␉(yy_buffer_stack_max) = num_to_alloc;␊ |
4045 | ␉␉(yy_buffer_stack_top) = 0;␊ |
4046 | ␉␉return;␊ |
4047 | ␉}␊ |
4048 | ␊ |
4049 | ␉if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){␊ |
4050 | ␊ |
4051 | ␉␉/* Increase the buffer to prepare for a possible push. */␊ |
4052 | ␉␉int grow_size = 8 /* arbitrary grow size */;␊ |
4053 | ␊ |
4054 | ␉␉num_to_alloc = (yy_buffer_stack_max) + grow_size;␊ |
4055 | ␉␉(yy_buffer_stack) = (struct yy_buffer_state**)pyscanYYrealloc␊ |
4056 | ␉␉␉␉␉␉␉␉((yy_buffer_stack),␊ |
4057 | ␉␉␉␉␉␉␉␉num_to_alloc * sizeof(struct yy_buffer_state*)␊ |
4058 | ␉␉␉␉␉␉␉␉);␊ |
4059 | ␉␉if ( ! (yy_buffer_stack) )␊ |
4060 | ␉␉␉YY_FATAL_ERROR( "out of dynamic memory in pyscanYYensure_buffer_stack()" );␊ |
4061 | ␊ |
4062 | ␉␉/* zero only the new slots.*/␊ |
4063 | ␉␉memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));␊ |
4064 | ␉␉(yy_buffer_stack_max) = num_to_alloc;␊ |
4065 | ␉}␊ |
4066 | }␊ |
4067 | ␊ |
4068 | /** Setup the input buffer state to scan directly from a user-specified character buffer.␊ |
4069 | * @param base the character buffer␊ |
4070 | * @param size the size in bytes of the character buffer␊ |
4071 | * ␊ |
4072 | * @return the newly allocated buffer state object. ␊ |
4073 | */␊ |
4074 | YY_BUFFER_STATE pyscanYY_scan_buffer (char * base, yy_size_t size )␊ |
4075 | {␊ |
4076 | ␉YY_BUFFER_STATE b;␊ |
4077 | ␊ |
4078 | ␉if ( size < 2 ||␊ |
4079 | ␉ base[size-2] != YY_END_OF_BUFFER_CHAR ||␊ |
4080 | ␉ base[size-1] != YY_END_OF_BUFFER_CHAR )␊ |
4081 | ␉␉/* They forgot to leave room for the EOB's. */␊ |
4082 | ␉␉return 0;␊ |
4083 | ␊ |
4084 | ␉b = (YY_BUFFER_STATE) pyscanYYalloc(sizeof( struct yy_buffer_state ) );␊ |
4085 | ␉if ( ! b )␊ |
4086 | ␉␉YY_FATAL_ERROR( "out of dynamic memory in pyscanYY_scan_buffer()" );␊ |
4087 | ␊ |
4088 | ␉b->yy_buf_size = size - 2;␉/* "- 2" to take care of EOB's */␊ |
4089 | ␉b->yy_buf_pos = b->yy_ch_buf = base;␊ |
4090 | ␉b->yy_is_our_buffer = 0;␊ |
4091 | ␉b->yy_input_file = 0;␊ |
4092 | ␉b->yy_n_chars = b->yy_buf_size;␊ |
4093 | ␉b->yy_is_interactive = 0;␊ |
4094 | ␉b->yy_at_bol = 1;␊ |
4095 | ␉b->yy_fill_buffer = 0;␊ |
4096 | ␉b->yy_buffer_status = YY_BUFFER_NEW;␊ |
4097 | ␊ |
4098 | ␉pyscanYY_switch_to_buffer(b );␊ |
4099 | ␊ |
4100 | ␉return b;␊ |
4101 | }␊ |
4102 | ␊ |
4103 | /** Setup the input buffer state to scan a string. The next call to pyscanYYlex() will␊ |
4104 | * scan from a @e copy of @a str.␊ |
4105 | * @param yystr a NUL-terminated string to scan␊ |
4106 | * ␊ |
4107 | * @return the newly allocated buffer state object.␊ |
4108 | * @note If you want to scan bytes that may contain NUL values, then use␊ |
4109 | * pyscanYY_scan_bytes() instead.␊ |
4110 | */␊ |
4111 | YY_BUFFER_STATE pyscanYY_scan_string (yyconst char * yystr )␊ |
4112 | {␊ |
4113 | ␊ |
4114 | ␉return pyscanYY_scan_bytes(yystr,strlen(yystr) );␊ |
4115 | }␊ |
4116 | ␊ |
4117 | /** Setup the input buffer state to scan the given bytes. The next call to pyscanYYlex() will␊ |
4118 | * scan from a @e copy of @a bytes.␊ |
4119 | * @param bytes the byte buffer to scan␊ |
4120 | * @param len the number of bytes in the buffer pointed to by @a bytes.␊ |
4121 | * ␊ |
4122 | * @return the newly allocated buffer state object.␊ |
4123 | */␊ |
4124 | YY_BUFFER_STATE pyscanYY_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )␊ |
4125 | {␊ |
4126 | ␉YY_BUFFER_STATE b;␊ |
4127 | ␉char *buf;␊ |
4128 | ␉yy_size_t n, i;␊ |
4129 | ␊ |
4130 | ␉/* Get memory for full buffer, including space for trailing EOB's. */␊ |
4131 | ␉n = _yybytes_len + 2;␊ |
4132 | ␉buf = (char *) pyscanYYalloc(n );␊ |
4133 | ␉if ( ! buf )␊ |
4134 | ␉␉YY_FATAL_ERROR( "out of dynamic memory in pyscanYY_scan_bytes()" );␊ |
4135 | ␊ |
4136 | ␉for ( i = 0; i < _yybytes_len; ++i )␊ |
4137 | ␉␉buf[i] = yybytes[i];␊ |
4138 | ␊ |
4139 | ␉buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;␊ |
4140 | ␊ |
4141 | ␉b = pyscanYY_scan_buffer(buf,n );␊ |
4142 | ␉if ( ! b )␊ |
4143 | ␉␉YY_FATAL_ERROR( "bad buffer in pyscanYY_scan_bytes()" );␊ |
4144 | ␊ |
4145 | ␉/* It's okay to grow etc. this buffer, and we should throw it␊ |
4146 | ␉ * away when we're done.␊ |
4147 | ␉ */␊ |
4148 | ␉b->yy_is_our_buffer = 1;␊ |
4149 | ␊ |
4150 | ␉return b;␊ |
4151 | }␊ |
4152 | ␊ |
4153 | #ifndef YY_EXIT_FAILURE␊ |
4154 | #define YY_EXIT_FAILURE 2␊ |
4155 | #endif␊ |
4156 | ␊ |
4157 | static void yy_fatal_error (yyconst char* msg )␊ |
4158 | {␊ |
4159 | ␉(void) fprintf( stderr, "%s\n", msg );␊ |
4160 | ␉exit( YY_EXIT_FAILURE );␊ |
4161 | }␊ |
4162 | ␊ |
4163 | /* Redefine yyless() so it works in section 3 code. */␊ |
4164 | ␊ |
4165 | #undef yyless␊ |
4166 | #define yyless(n) \␊ |
4167 | ␉do \␊ |
4168 | ␉␉{ \␊ |
4169 | ␉␉/* Undo effects of setting up pyscanYYtext. */ \␊ |
4170 | int yyless_macro_arg = (n); \␊ |
4171 | YY_LESS_LINENO(yyless_macro_arg);\␊ |
4172 | ␉␉pyscanYYtext[pyscanYYleng] = (yy_hold_char); \␊ |
4173 | ␉␉(yy_c_buf_p) = pyscanYYtext + yyless_macro_arg; \␊ |
4174 | ␉␉(yy_hold_char) = *(yy_c_buf_p); \␊ |
4175 | ␉␉*(yy_c_buf_p) = '\0'; \␊ |
4176 | ␉␉pyscanYYleng = yyless_macro_arg; \␊ |
4177 | ␉␉} \␊ |
4178 | ␉while ( 0 )␊ |
4179 | ␊ |
4180 | /* Accessor methods (get/set functions) to struct members. */␊ |
4181 | ␊ |
4182 | /** Get the current line number.␊ |
4183 | * ␊ |
4184 | */␊ |
4185 | int pyscanYYget_lineno (void)␊ |
4186 | {␊ |
4187 | ␊ |
4188 | return pyscanYYlineno;␊ |
4189 | }␊ |
4190 | ␊ |
4191 | /** Get the input stream.␊ |
4192 | * ␊ |
4193 | */␊ |
4194 | FILE *pyscanYYget_in (void)␊ |
4195 | {␊ |
4196 | return pyscanYYin;␊ |
4197 | }␊ |
4198 | ␊ |
4199 | /** Get the output stream.␊ |
4200 | * ␊ |
4201 | */␊ |
4202 | FILE *pyscanYYget_out (void)␊ |
4203 | {␊ |
4204 | return pyscanYYout;␊ |
4205 | }␊ |
4206 | ␊ |
4207 | /** Get the length of the current token.␊ |
4208 | * ␊ |
4209 | */␊ |
4210 | yy_size_t pyscanYYget_leng (void)␊ |
4211 | {␊ |
4212 | return pyscanYYleng;␊ |
4213 | }␊ |
4214 | ␊ |
4215 | /** Get the current token.␊ |
4216 | * ␊ |
4217 | */␊ |
4218 | ␊ |
4219 | char *pyscanYYget_text (void)␊ |
4220 | {␊ |
4221 | return pyscanYYtext;␊ |
4222 | }␊ |
4223 | ␊ |
4224 | /** Set the current line number.␊ |
4225 | * @param line_number␊ |
4226 | * ␊ |
4227 | */␊ |
4228 | void pyscanYYset_lineno (int line_number )␊ |
4229 | {␊ |
4230 | ␊ |
4231 | pyscanYYlineno = line_number;␊ |
4232 | }␊ |
4233 | ␊ |
4234 | /** Set the input stream. This does not discard the current␊ |
4235 | * input buffer.␊ |
4236 | * @param in_str A readable stream.␊ |
4237 | * ␊ |
4238 | * @see pyscanYY_switch_to_buffer␊ |
4239 | */␊ |
4240 | void pyscanYYset_in (FILE * in_str )␊ |
4241 | {␊ |
4242 | pyscanYYin = in_str ;␊ |
4243 | }␊ |
4244 | ␊ |
4245 | void pyscanYYset_out (FILE * out_str )␊ |
4246 | {␊ |
4247 | pyscanYYout = out_str ;␊ |
4248 | }␊ |
4249 | ␊ |
4250 | int pyscanYYget_debug (void)␊ |
4251 | {␊ |
4252 | return pyscanYY_flex_debug;␊ |
4253 | }␊ |
4254 | ␊ |
4255 | void pyscanYYset_debug (int bdebug )␊ |
4256 | {␊ |
4257 | pyscanYY_flex_debug = bdebug ;␊ |
4258 | }␊ |
4259 | ␊ |
4260 | static int yy_init_globals (void)␊ |
4261 | {␊ |
4262 | /* Initialization is the same as for the non-reentrant scanner.␊ |
4263 | * This function is called from pyscanYYlex_destroy(), so don't allocate here.␊ |
4264 | */␊ |
4265 | ␊ |
4266 | (yy_buffer_stack) = 0;␊ |
4267 | (yy_buffer_stack_top) = 0;␊ |
4268 | (yy_buffer_stack_max) = 0;␊ |
4269 | (yy_c_buf_p) = (char *) 0;␊ |
4270 | (yy_init) = 0;␊ |
4271 | (yy_start) = 0;␊ |
4272 | ␊ |
4273 | (yy_state_buf) = 0;␊ |
4274 | (yy_state_ptr) = 0;␊ |
4275 | (yy_full_match) = 0;␊ |
4276 | (yy_lp) = 0;␊ |
4277 | ␊ |
4278 | /* Defined in main.c */␊ |
4279 | #ifdef YY_STDINIT␊ |
4280 | pyscanYYin = stdin;␊ |
4281 | pyscanYYout = stdout;␊ |
4282 | #else␊ |
4283 | pyscanYYin = (FILE *) 0;␊ |
4284 | pyscanYYout = (FILE *) 0;␊ |
4285 | #endif␊ |
4286 | ␊ |
4287 | /* For future reference: Set errno on error, since we are called by␊ |
4288 | * pyscanYYlex_init()␊ |
4289 | */␊ |
4290 | return 0;␊ |
4291 | }␊ |
4292 | ␊ |
4293 | /* pyscanYYlex_destroy is for both reentrant and non-reentrant scanners. */␊ |
4294 | int pyscanYYlex_destroy (void)␊ |
4295 | {␊ |
4296 | ␊ |
4297 | /* Pop the buffer stack, destroying each element. */␊ |
4298 | ␉while(YY_CURRENT_BUFFER){␊ |
4299 | ␉␉pyscanYY_delete_buffer(YY_CURRENT_BUFFER );␊ |
4300 | ␉␉YY_CURRENT_BUFFER_LVALUE = NULL;␊ |
4301 | ␉␉pyscanYYpop_buffer_state();␊ |
4302 | ␉}␊ |
4303 | ␊ |
4304 | ␉/* Destroy the stack itself. */␊ |
4305 | ␉pyscanYYfree((yy_buffer_stack) );␊ |
4306 | ␉(yy_buffer_stack) = NULL;␊ |
4307 | ␊ |
4308 | pyscanYYfree ( (yy_state_buf) );␊ |
4309 | (yy_state_buf) = NULL;␊ |
4310 | ␊ |
4311 | /* Reset the globals. This is important in a non-reentrant scanner so the next time␊ |
4312 | * pyscanYYlex() is called, initialization will occur. */␊ |
4313 | yy_init_globals( );␊ |
4314 | ␊ |
4315 | return 0;␊ |
4316 | }␊ |
4317 | ␊ |
4318 | /*␊ |
4319 | * Internal utility routines.␊ |
4320 | */␊ |
4321 | ␊ |
4322 | #ifndef yytext_ptr␊ |
4323 | static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )␊ |
4324 | {␊ |
4325 | ␉register int i;␊ |
4326 | ␉for ( i = 0; i < n; ++i )␊ |
4327 | ␉␉s1[i] = s2[i];␊ |
4328 | }␊ |
4329 | #endif␊ |
4330 | ␊ |
4331 | #ifdef YY_NEED_STRLEN␊ |
4332 | static int yy_flex_strlen (yyconst char * s )␊ |
4333 | {␊ |
4334 | ␉register int n;␊ |
4335 | ␉for ( n = 0; s[n]; ++n )␊ |
4336 | ␉␉;␊ |
4337 | ␊ |
4338 | ␉return n;␊ |
4339 | }␊ |
4340 | #endif␊ |
4341 | ␊ |
4342 | void *pyscanYYalloc (yy_size_t size )␊ |
4343 | {␊ |
4344 | ␉return (void *) malloc( size );␊ |
4345 | }␊ |
4346 | ␊ |
4347 | void *pyscanYYrealloc (void * ptr, yy_size_t size )␊ |
4348 | {␊ |
4349 | ␉/* The cast to (char *) in the following accommodates both␊ |
4350 | ␉ * implementations that use char* generic pointers, and those␊ |
4351 | ␉ * that use void* generic pointers. It works with the latter␊ |
4352 | ␉ * because both ANSI C and C++ allow castless assignment from␊ |
4353 | ␉ * any pointer type to void*, and deal with argument conversions␊ |
4354 | ␉ * as though doing an assignment.␊ |
4355 | ␉ */␊ |
4356 | ␉return (void *) realloc( (char *) ptr, size );␊ |
4357 | }␊ |
4358 | ␊ |
4359 | void pyscanYYfree (void * ptr )␊ |
4360 | {␊ |
4361 | ␉free( (char *) ptr );␉/* see pyscanYYrealloc() for (char *) cast */␊ |
4362 | }␊ |
4363 | ␊ |
4364 | #define YYTABLES_NAME "yytables"␊ |
4365 | ␊ |
4366 | #line 1445 "pyscanner.l"␊ |
4367 | ␊ |
4368 | ␊ |
4369 | ␊ |
4370 | //----------------------------------------------------------------------------␊ |
4371 | ␊ |
4372 | static void parseCompounds(Entry *rt)␊ |
4373 | {␊ |
4374 | //printf("parseCompounds(%s)\n",rt->name.data());␊ |
4375 | EntryListIterator eli(*rt->children());␊ |
4376 | Entry *ce;␊ |
4377 | for (;(ce=eli.current());++eli)␊ |
4378 | {␊ |
4379 | if (!ce->program.isEmpty())␊ |
4380 | {␊ |
4381 | //printf("-- %s ---------\n%s\n---------------\n",␊ |
4382 | // ce->name.data(),ce->program.data());␊ |
4383 | // init scanner state␊ |
4384 | inputString = ce->program;␊ |
4385 | inputPosition = 0;␊ |
4386 | pyscanYYrestart( pyscanYYin ) ;␊ |
4387 | if (ce->section&Entry::COMPOUND_MASK)␊ |
4388 | {␊ |
4389 | current_root = ce ;␊ |
4390 | BEGIN( Search );␊ |
4391 | }␊ |
4392 | else if (ce->parent())␊ |
4393 | {␊ |
4394 | current_root = ce->parent();␊ |
4395 | ␉//printf("Searching for member variables in %s parent=%s\n",␊ |
4396 | ␉// ce->name.data(),ce->parent->name.data());␊ |
4397 | ␉BEGIN( SearchMemVars );␊ |
4398 | }␊ |
4399 | yyFileName = ce->fileName;␊ |
4400 | yyLineNr = ce->startLine ;␊ |
4401 | if (current) delete current;␊ |
4402 | current = new Entry;␊ |
4403 | ␊ |
4404 | groupEnterCompound(yyFileName,yyLineNr,ce->name);␊ |
4405 | ␊ |
4406 | pyscanYYlex() ;␊ |
4407 | g_lexInit=TRUE;␊ |
4408 | delete current; current=0;␊ |
4409 | ce->program.resize(0);␊ |
4410 | ␊ |
4411 | groupLeaveCompound(yyFileName,yyLineNr,ce->name);␊ |
4412 | ␊ |
4413 | }␊ |
4414 | parseCompounds(ce);␊ |
4415 | }␊ |
4416 | }␊ |
4417 | ␊ |
4418 | //----------------------------------------------------------------------------␊ |
4419 | ␊ |
4420 | ␊ |
4421 | static void parseMain(const char *fileName,const char *fileBuf,Entry *rt)␊ |
4422 | {␊ |
4423 | initParser();␊ |
4424 | ␊ |
4425 | inputString = fileBuf;␊ |
4426 | inputPosition = 0;␊ |
4427 | ␊ |
4428 | protection = Public;␊ |
4429 | mtype = Method;␊ |
4430 | gstat = FALSE;␊ |
4431 | virt = Normal;␊ |
4432 | current_root = rt;␊ |
4433 | g_specialBlock = FALSE;␊ |
4434 | ␊ |
4435 | ␊ |
4436 | inputFile.setName(fileName);␊ |
4437 | if (inputFile.open(IO_ReadOnly))␊ |
4438 | {␊ |
4439 | yyLineNr= 1 ; ␊ |
4440 | yyFileName = fileName;␊ |
4441 | //setContext();␊ |
4442 | msg("Parsing file %s...\n",yyFileName.data());␊ |
4443 | ␊ |
4444 | QFileInfo fi(fileName);␊ |
4445 | g_moduleScope = findPackageScope(fileName);␊ |
4446 | QString baseName=fi.baseName();␊ |
4447 | if (baseName!="__init__") // package initializer file is not a package itself␊ |
4448 | {␊ |
4449 | if (!g_moduleScope.isEmpty())␊ |
4450 | {␊ |
4451 | ␉g_moduleScope+="::";␊ |
4452 | }␊ |
4453 | g_moduleScope+=baseName;␊ |
4454 | }␊ |
4455 | ␊ |
4456 | current = new Entry;␊ |
4457 | current->name = g_moduleScope;␊ |
4458 | current->section = Entry::NAMESPACE_SEC;␊ |
4459 | current->type = "namespace";␊ |
4460 | current->fileName = yyFileName;␊ |
4461 | current->startLine = yyLineNr;␊ |
4462 | current->bodyLine = yyLineNr;␊ |
4463 | ␊ |
4464 | rt->addSubEntry(current);␊ |
4465 | ␊ |
4466 | current_root = current ;␊ |
4467 | initParser();␊ |
4468 | current = new Entry;␊ |
4469 | ␊ |
4470 | groupEnterFile(yyFileName,yyLineNr);␊ |
4471 | ␊ |
4472 | current->reset();␊ |
4473 | pyscanYYrestart( pyscanYYin );␊ |
4474 | BEGIN( Search );␊ |
4475 | pyscanYYlex();␊ |
4476 | g_lexInit=TRUE;␊ |
4477 | ␊ |
4478 | groupLeaveFile(yyFileName,yyLineNr);␊ |
4479 | ␊ |
4480 | current_root->program.resize(0);␊ |
4481 | delete current; current=0;␊ |
4482 | ␊ |
4483 | parseCompounds(current_root);␊ |
4484 | ␊ |
4485 | inputFile.close();␊ |
4486 | }␊ |
4487 | ␊ |
4488 | }␊ |
4489 | ␊ |
4490 | //----------------------------------------------------------------------------␊ |
4491 | ␊ |
4492 | static void parsePrototype(const QCString &text)␊ |
4493 | {␊ |
4494 | //printf("**** parsePrototype(%s) begin\n",text.data());␊ |
4495 | if (text.isEmpty()) ␊ |
4496 | {␊ |
4497 | warn(yyFileName,yyLineNr,"Empty prototype found!");␊ |
4498 | return;␊ |
4499 | }␊ |
4500 | ␊ |
4501 | g_specialBlock = FALSE;␊ |
4502 | g_packageCommentAllowed = FALSE;␊ |
4503 | ␊ |
4504 | const char *orgInputString;␊ |
4505 | int orgInputPosition;␊ |
4506 | YY_BUFFER_STATE orgState;␊ |
4507 | ␊ |
4508 | // save scanner state␊ |
4509 | orgState = YY_CURRENT_BUFFER;␊ |
4510 | pyscanYY_switch_to_buffer(pyscanYY_create_buffer(pyscanYYin,YY_BUF_SIZE));␊ |
4511 | orgInputString = inputString; ␊ |
4512 | orgInputPosition = inputPosition;␊ |
4513 | ␊ |
4514 | // set new string␊ |
4515 | inputString = text;␊ |
4516 | inputPosition = 0;␊ |
4517 | pyscanYYrestart( pyscanYYin );␊ |
4518 | ␊ |
4519 | BEGIN( FunctionDec );␊ |
4520 | ␊ |
4521 | pyscanYYlex();␊ |
4522 | g_lexInit=TRUE;␊ |
4523 | ␊ |
4524 | current->name = current->name.stripWhiteSpace();␊ |
4525 | if (current->section == Entry::MEMBERDOC_SEC && current->args.isEmpty())␊ |
4526 | current->section = Entry::VARIABLEDOC_SEC;␊ |
4527 | ␊ |
4528 | // restore original scanner state␊ |
4529 | ␊ |
4530 | YY_BUFFER_STATE tmpBuf = YY_CURRENT_BUFFER;␊ |
4531 | pyscanYY_switch_to_buffer(orgState);␊ |
4532 | pyscanYY_delete_buffer(tmpBuf);␊ |
4533 | ␊ |
4534 | inputString = orgInputString; ␊ |
4535 | inputPosition = orgInputPosition;␊ |
4536 | ␊ |
4537 | //printf("**** parsePrototype end\n");␊ |
4538 | }␊ |
4539 | ␊ |
4540 | void pyscanFreeScanner()␊ |
4541 | {␊ |
4542 | #if defined(YY_FLEX_SUBMINOR_VERSION) ␊ |
4543 | if (g_lexInit)␊ |
4544 | {␊ |
4545 | pyscanYYlex_destroy();␊ |
4546 | }␊ |
4547 | #endif␊ |
4548 | }␊ |
4549 | ␊ |
4550 | //----------------------------------------------------------------------------␊ |
4551 | ␊ |
4552 | void PythonLanguageScanner::parseInput(const char *fileName,const char *fileBuf,Entry *root)␊ |
4553 | {␊ |
4554 | g_thisParser = this;␊ |
4555 | ::parseMain(fileName,fileBuf,root);␊ |
4556 | ␊ |
4557 | // May print the AST for debugging purposes␊ |
4558 | // printAST(global_root);␊ |
4559 | }␊ |
4560 | ␊ |
4561 | bool PythonLanguageScanner::needsPreprocessing(const QCString &)␊ |
4562 | {␊ |
4563 | return FALSE;␊ |
4564 | }␊ |
4565 | ␊ |
4566 | void PythonLanguageScanner::parseCode(CodeOutputInterface &codeOutIntf,␊ |
4567 | const char *scopeName,␊ |
4568 | const QCString &input,␊ |
4569 | bool isExampleBlock,␊ |
4570 | const char *exampleName,␊ |
4571 | FileDef *fileDef,␊ |
4572 | int startLine,␊ |
4573 | int endLine,␊ |
4574 | bool inlineFragment,␊ |
4575 | MemberDef *memberDef,␊ |
4576 | bool showLineNumbers␊ |
4577 | )␊ |
4578 | {␊ |
4579 | ::parsePythonCode(codeOutIntf,scopeName,input,isExampleBlock,exampleName,␊ |
4580 | fileDef,startLine,endLine,inlineFragment,memberDef,␊ |
4581 | showLineNumbers);␊ |
4582 | }␊ |
4583 | ␊ |
4584 | void PythonLanguageScanner::parsePrototype(const char *text)␊ |
4585 | {␊ |
4586 | ::parsePrototype(text);␊ |
4587 | ␊ |
4588 | }␊ |
4589 | ␊ |
4590 | void PythonLanguageScanner::resetCodeParserState()␊ |
4591 | {␊ |
4592 | ::resetPythonCodeParserState();␊ |
4593 | }␊ |
4594 | ␊ |
4595 | //----------------------------------------------------------------------------␊ |
4596 | ␊ |
4597 | #if !defined(YY_FLEX_SUBMINOR_VERSION) ␊ |
4598 | //----------------------------------------------------------------------------␊ |
4599 | extern "C" { // some bogus code to keep the compiler happy␊ |
4600 | void pyscannerYYdummy() { yy_flex_realloc(0,0); } ␊ |
4601 | }␊ |
4602 | #endif␊ |
4603 | ␊ |
4604 | ␊ |
4605 |