lex.yy.c revision 1.1 1 1.1 christos /* A lexical scanner generated by flex */
2 1.1 christos
3 1.1 christos /* Scanner skeleton version:
4 1.1 christos * $Header: /tank/opengrok/rsync2/NetBSD/src/sys/external/bsd/acpica/dist/compiler/lex.yy.c,v 1.1 2025/08/24 16:40:52 christos Exp $
5 1.1 christos */
6 1.1 christos
7 1.1 christos #define FLEX_SCANNER
8 1.1 christos #define YY_FLEX_MAJOR_VERSION 2
9 1.1 christos #define YY_FLEX_MINOR_VERSION 5
10 1.1 christos
11 1.1 christos #include <stdio.h>
12 1.1 christos
13 1.1 christos
14 1.1 christos /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
15 1.1 christos #ifdef c_plusplus
16 1.1 christos #ifndef __cplusplus
17 1.1 christos #define __cplusplus
18 1.1 christos #endif
19 1.1 christos #endif
20 1.1 christos
21 1.1 christos
22 1.1 christos #ifdef __cplusplus
23 1.1 christos
24 1.1 christos #include <stdlib.h>
25 1.1 christos #include <unistd.h>
26 1.1 christos
27 1.1 christos /* Use prototypes in function declarations. */
28 1.1 christos #define YY_USE_PROTOS
29 1.1 christos
30 1.1 christos /* The "const" storage-class-modifier is valid. */
31 1.1 christos #define YY_USE_CONST
32 1.1 christos
33 1.1 christos #else /* ! __cplusplus */
34 1.1 christos
35 1.1 christos #if __STDC__
36 1.1 christos
37 1.1 christos #define YY_USE_PROTOS
38 1.1 christos #define YY_USE_CONST
39 1.1 christos
40 1.1 christos #endif /* __STDC__ */
41 1.1 christos #endif /* ! __cplusplus */
42 1.1 christos
43 1.1 christos #ifdef __TURBOC__
44 1.1 christos #pragma warn -rch
45 1.1 christos #pragma warn -use
46 1.1 christos #include <io.h>
47 1.1 christos #include <stdlib.h>
48 1.1 christos #define YY_USE_CONST
49 1.1 christos #define YY_USE_PROTOS
50 1.1 christos #endif
51 1.1 christos
52 1.1 christos #ifdef YY_USE_CONST
53 1.1 christos #define yyconst const
54 1.1 christos #else
55 1.1 christos #define yyconst
56 1.1 christos #endif
57 1.1 christos
58 1.1 christos
59 1.1 christos #ifdef YY_USE_PROTOS
60 1.1 christos #define YY_PROTO(proto) proto
61 1.1 christos #else
62 1.1 christos #define YY_PROTO(proto) ()
63 1.1 christos #endif
64 1.1 christos
65 1.1 christos /* Returned upon end-of-file. */
66 1.1 christos #define YY_NULL 0
67 1.1 christos
68 1.1 christos /* Promotes a possibly negative, possibly signed char to an unsigned
69 1.1 christos * integer for use as an array index. If the signed char is negative,
70 1.1 christos * we want to instead treat it as an 8-bit unsigned char, hence the
71 1.1 christos * double cast.
72 1.1 christos */
73 1.1 christos #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
74 1.1 christos
75 1.1 christos /* Enter a start condition. This macro really ought to take a parameter,
76 1.1 christos * but we do it the disgusting crufty way forced on us by the ()-less
77 1.1 christos * definition of BEGIN.
78 1.1 christos */
79 1.1 christos #define BEGIN yy_start = 1 + 2 *
80 1.1 christos
81 1.1 christos /* Translate the current start state into a value that can be later handed
82 1.1 christos * to BEGIN to return to the state. The YYSTATE alias is for lex
83 1.1 christos * compatibility.
84 1.1 christos */
85 1.1 christos #define YY_START ((yy_start - 1) / 2)
86 1.1 christos #define YYSTATE YY_START
87 1.1 christos
88 1.1 christos /* Action number for EOF rule of a given start state. */
89 1.1 christos #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
90 1.1 christos
91 1.1 christos /* Special action meaning "start processing a new file". */
92 1.1 christos #define YY_NEW_FILE yyrestart( yyin )
93 1.1 christos
94 1.1 christos #define YY_END_OF_BUFFER_CHAR 0
95 1.1 christos
96 1.1 christos /* Size of default input buffer. */
97 1.1 christos #define YY_BUF_SIZE 16384
98 1.1 christos
99 1.1 christos typedef struct yy_buffer_state *YY_BUFFER_STATE;
100 1.1 christos
101 1.1 christos extern int yyleng;
102 1.1 christos extern FILE *yyin, *yyout;
103 1.1 christos
104 1.1 christos #define EOB_ACT_CONTINUE_SCAN 0
105 1.1 christos #define EOB_ACT_END_OF_FILE 1
106 1.1 christos #define EOB_ACT_LAST_MATCH 2
107 1.1 christos
108 1.1 christos /* The funky do-while in the following #define is used to turn the definition
109 1.1 christos * int a single C statement (which needs a semi-colon terminator). This
110 1.1 christos * avoids problems with code like:
111 1.1 christos *
112 1.1 christos * if ( condition_holds )
113 1.1 christos * yyless( 5 );
114 1.1 christos * else
115 1.1 christos * do_something_else();
116 1.1 christos *
117 1.1 christos * Prior to using the do-while the compiler would get upset at the
118 1.1 christos * "else" because it interpreted the "if" statement as being all
119 1.1 christos * done when it reached the ';' after the yyless() call.
120 1.1 christos */
121 1.1 christos
122 1.1 christos /* Return all but the first 'n' matched characters back to the input stream. */
123 1.1 christos
124 1.1 christos #define yyless(n) \
125 1.1 christos do \
126 1.1 christos { \
127 1.1 christos /* Undo effects of setting up yytext. */ \
128 1.1 christos *yy_cp = yy_hold_char; \
129 1.1 christos YY_RESTORE_YY_MORE_OFFSET \
130 1.1 christos yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
131 1.1 christos YY_DO_BEFORE_ACTION; /* set up yytext again */ \
132 1.1 christos } \
133 1.1 christos while ( 0 )
134 1.1 christos
135 1.1 christos #define unput(c) yyunput( c, yytext_ptr )
136 1.1 christos
137 1.1 christos /* The following is because we cannot portably get our hands on size_t
138 1.1 christos * (without autoconf's help, which isn't available because we want
139 1.1 christos * flex-generated scanners to compile on their own).
140 1.1 christos */
141 1.1 christos typedef unsigned int yy_size_t;
142 1.1 christos
143 1.1 christos
144 1.1 christos struct yy_buffer_state
145 1.1 christos {
146 1.1 christos FILE *yy_input_file;
147 1.1 christos
148 1.1 christos char *yy_ch_buf; /* input buffer */
149 1.1 christos char *yy_buf_pos; /* current position in input buffer */
150 1.1 christos
151 1.1 christos /* Size of input buffer in bytes, not including room for EOB
152 1.1 christos * characters.
153 1.1 christos */
154 1.1 christos yy_size_t yy_buf_size;
155 1.1 christos
156 1.1 christos /* Number of characters read into yy_ch_buf, not including EOB
157 1.1 christos * characters.
158 1.1 christos */
159 1.1 christos int yy_n_chars;
160 1.1 christos
161 1.1 christos /* Whether we "own" the buffer - i.e., we know we created it,
162 1.1 christos * and can realloc() it to grow it, and should free() it to
163 1.1 christos * delete it.
164 1.1 christos */
165 1.1 christos int yy_is_our_buffer;
166 1.1 christos
167 1.1 christos /* Whether this is an "interactive" input source; if so, and
168 1.1 christos * if we're using stdio for input, then we want to use getc()
169 1.1 christos * instead of fread(), to make sure we stop fetching input after
170 1.1 christos * each newline.
171 1.1 christos */
172 1.1 christos int yy_is_interactive;
173 1.1 christos
174 1.1 christos /* Whether we're considered to be at the beginning of a line.
175 1.1 christos * If so, '^' rules will be active on the next match, otherwise
176 1.1 christos * not.
177 1.1 christos */
178 1.1 christos int yy_at_bol;
179 1.1 christos
180 1.1 christos /* Whether to try to fill the input buffer when we reach the
181 1.1 christos * end of it.
182 1.1 christos */
183 1.1 christos int yy_fill_buffer;
184 1.1 christos
185 1.1 christos int yy_buffer_status;
186 1.1 christos #define YY_BUFFER_NEW 0
187 1.1 christos #define YY_BUFFER_NORMAL 1
188 1.1 christos /* When an EOF's been seen but there's still some text to process
189 1.1 christos * then we mark the buffer as YY_EOF_PENDING, to indicate that we
190 1.1 christos * shouldn't try reading from the input source any more. We might
191 1.1 christos * still have a bunch of tokens to match, though, because of
192 1.1 christos * possible backing-up.
193 1.1 christos *
194 1.1 christos * When we actually see the EOF, we change the status to "new"
195 1.1 christos * (via yyrestart()), so that the user can continue scanning by
196 1.1 christos * just pointing yyin at a new input file.
197 1.1 christos */
198 1.1 christos #define YY_BUFFER_EOF_PENDING 2
199 1.1 christos };
200 1.1 christos
201 1.1 christos static YY_BUFFER_STATE yy_current_buffer = 0;
202 1.1 christos
203 1.1 christos /* We provide macros for accessing buffer states in case in the
204 1.1 christos * future we want to put the buffer states in a more general
205 1.1 christos * "scanner state".
206 1.1 christos */
207 1.1 christos #define YY_CURRENT_BUFFER yy_current_buffer
208 1.1 christos
209 1.1 christos
210 1.1 christos /* yy_hold_char holds the character lost when yytext is formed. */
211 1.1 christos static char yy_hold_char;
212 1.1 christos
213 1.1 christos static int yy_n_chars; /* number of characters read into yy_ch_buf */
214 1.1 christos
215 1.1 christos
216 1.1 christos int yyleng;
217 1.1 christos
218 1.1 christos /* Points to current character in buffer. */
219 1.1 christos static char *yy_c_buf_p = (char *) 0;
220 1.1 christos static int yy_init = 1; /* whether we need to initialize */
221 1.1 christos static int yy_start = 0; /* start state number */
222 1.1 christos
223 1.1 christos /* Flag which is used to allow yywrap()'s to do buffer switches
224 1.1 christos * instead of setting up a fresh yyin. A bit of a hack ...
225 1.1 christos */
226 1.1 christos static int yy_did_buffer_switch_on_eof;
227 1.1 christos
228 1.1 christos void yyrestart YY_PROTO(( FILE *input_file ));
229 1.1 christos
230 1.1 christos void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
231 1.1 christos void yy_load_buffer_state YY_PROTO(( void ));
232 1.1 christos YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
233 1.1 christos void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
234 1.1 christos void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
235 1.1 christos void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
236 1.1 christos #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
237 1.1 christos
238 1.1 christos YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
239 1.1 christos YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
240 1.1 christos YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
241 1.1 christos
242 1.1 christos static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
243 1.1 christos static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
244 1.1 christos static void yy_flex_free YY_PROTO(( void * ));
245 1.1 christos
246 1.1 christos #define yy_new_buffer yy_create_buffer
247 1.1 christos
248 1.1 christos #define yy_set_interactive(is_interactive) \
249 1.1 christos { \
250 1.1 christos if ( ! yy_current_buffer ) \
251 1.1 christos yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
252 1.1 christos yy_current_buffer->yy_is_interactive = is_interactive; \
253 1.1 christos }
254 1.1 christos
255 1.1 christos #define yy_set_bol(at_bol) \
256 1.1 christos { \
257 1.1 christos if ( ! yy_current_buffer ) \
258 1.1 christos yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
259 1.1 christos yy_current_buffer->yy_at_bol = at_bol; \
260 1.1 christos }
261 1.1 christos
262 1.1 christos #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
263 1.1 christos
264 1.1 christos
265 1.1 christos #define yywrap() 1
266 1.1 christos #define YY_SKIP_YYWRAP
267 1.1 christos typedef unsigned char YY_CHAR;
268 1.1 christos FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
269 1.1 christos typedef int yy_state_type;
270 1.1 christos extern char *yytext;
271 1.1 christos #define yytext_ptr yytext
272 1.1 christos
273 1.1 christos static yy_state_type yy_get_previous_state YY_PROTO(( void ));
274 1.1 christos static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
275 1.1 christos static int yy_get_next_buffer YY_PROTO(( void ));
276 1.1 christos static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
277 1.1 christos
278 1.1 christos /* Done after the current pattern has been matched and before the
279 1.1 christos * corresponding action - sets up yytext.
280 1.1 christos */
281 1.1 christos #define YY_DO_BEFORE_ACTION \
282 1.1 christos yytext_ptr = yy_bp; \
283 1.1 christos yyleng = (int) (yy_cp - yy_bp); \
284 1.1 christos yy_hold_char = *yy_cp; \
285 1.1 christos *yy_cp = '\0'; \
286 1.1 christos yy_c_buf_p = yy_cp;
287 1.1 christos
288 1.1 christos #define YY_NUM_RULES 32
289 1.1 christos #define YY_END_OF_BUFFER 33
290 1.1 christos static yyconst short int yy_accept[50] =
291 1.1 christos { 0,
292 1.1 christos 0, 0, 33, 31, 30, 29, 6, 9, 20, 3,
293 1.1 christos 4, 7, 10, 11, 8, 27, 27, 14, 31, 15,
294 1.1 christos 26, 26, 21, 26, 22, 5, 30, 19, 23, 1,
295 1.1 christos 2, 27, 0, 13, 16, 18, 17, 12, 26, 26,
296 1.1 christos 26, 24, 28, 26, 26, 26, 26, 25, 0
297 1.1 christos } ;
298 1.1 christos
299 1.1 christos static yyconst int yy_ec[256] =
300 1.1 christos { 0,
301 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
302 1.1 christos 2, 1, 2, 1, 1, 1, 1, 1, 1, 1,
303 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
304 1.1 christos 1, 2, 4, 1, 1, 1, 5, 6, 1, 7,
305 1.1 christos 8, 9, 10, 1, 11, 1, 12, 13, 14, 14,
306 1.1 christos 14, 14, 14, 14, 14, 14, 14, 1, 1, 15,
307 1.1 christos 16, 17, 1, 1, 18, 18, 18, 18, 18, 18,
308 1.1 christos 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
309 1.1 christos 19, 19, 19, 19, 19, 19, 19, 20, 19, 19,
310 1.1 christos 1, 1, 1, 21, 1, 1, 18, 18, 18, 22,
311 1.1 christos
312 1.1 christos 23, 24, 19, 19, 25, 19, 19, 19, 19, 26,
313 1.1 christos 19, 19, 19, 19, 19, 19, 19, 19, 19, 20,
314 1.1 christos 19, 19, 1, 27, 1, 28, 1, 1, 1, 1,
315 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
316 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
317 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
318 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
319 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
320 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
321 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
322 1.1 christos
323 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
324 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
325 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
326 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
327 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
328 1.1 christos 1, 1, 1, 1, 1
329 1.1 christos } ;
330 1.1 christos
331 1.1 christos static yyconst int yy_meta[29] =
332 1.1 christos { 0,
333 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
334 1.1 christos 1, 1, 2, 2, 1, 1, 1, 2, 3, 4,
335 1.1 christos 1, 2, 2, 2, 3, 3, 1, 1
336 1.1 christos } ;
337 1.1 christos
338 1.1 christos static yyconst short int yy_base[54] =
339 1.1 christos { 0,
340 1.1 christos 0, 0, 72, 73, 69, 73, 54, 73, 63, 73,
341 1.1 christos 73, 73, 73, 73, 20, 48, 47, 15, 50, 17,
342 1.1 christos 16, 0, 73, 24, 38, 73, 62, 73, 73, 73,
343 1.1 christos 73, 43, 0, 73, 73, 73, 73, 73, 39, 0,
344 1.1 christos 14, 73, 0, 20, 35, 37, 30, 0, 73, 49,
345 1.1 christos 52, 55, 46
346 1.1 christos } ;
347 1.1 christos
348 1.1 christos static yyconst short int yy_def[54] =
349 1.1 christos { 0,
350 1.1 christos 49, 1, 49, 49, 49, 49, 49, 49, 49, 49,
351 1.1 christos 49, 49, 49, 49, 49, 50, 50, 49, 49, 49,
352 1.1 christos 51, 52, 49, 51, 49, 49, 49, 49, 49, 49,
353 1.1 christos 49, 50, 53, 49, 49, 49, 49, 49, 24, 52,
354 1.1 christos 24, 49, 53, 51, 52, 52, 52, 52, 0, 49,
355 1.1 christos 49, 49, 49
356 1.1 christos } ;
357 1.1 christos
358 1.1 christos static yyconst short int yy_nxt[102] =
359 1.1 christos { 0,
360 1.1 christos 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
361 1.1 christos 14, 15, 16, 17, 18, 19, 20, 21, 22, 22,
362 1.1 christos 23, 24, 21, 21, 22, 22, 25, 26, 30, 34,
363 1.1 christos 35, 31, 37, 38, 40, 40, 39, 44, 40, 40,
364 1.1 christos 40, 40, 40, 40, 45, 40, 41, 43, 40, 40,
365 1.1 christos 32, 48, 32, 39, 39, 39, 40, 40, 40, 47,
366 1.1 christos 46, 39, 49, 27, 42, 36, 49, 33, 29, 28,
367 1.1 christos 27, 49, 3, 49, 49, 49, 49, 49, 49, 49,
368 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
369 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
370 1.1 christos
371 1.1 christos 49
372 1.1 christos } ;
373 1.1 christos
374 1.1 christos static yyconst short int yy_chk[102] =
375 1.1 christos { 0,
376 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
377 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
378 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 15, 18,
379 1.1 christos 18, 15, 20, 20, 21, 21, 41, 41, 44, 44,
380 1.1 christos 21, 21, 24, 24, 44, 44, 24, 53, 24, 24,
381 1.1 christos 50, 47, 50, 51, 51, 51, 52, 52, 52, 46,
382 1.1 christos 45, 39, 32, 27, 25, 19, 17, 16, 9, 7,
383 1.1 christos 5, 3, 49, 49, 49, 49, 49, 49, 49, 49,
384 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
385 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
386 1.1 christos
387 1.1 christos 49
388 1.1 christos } ;
389 1.1 christos
390 1.1 christos static yy_state_type yy_last_accepting_state;
391 1.1 christos static char *yy_last_accepting_cpos;
392 1.1 christos
393 1.1 christos /* The intent behind this definition is that it'll catch
394 1.1 christos * any uses of REJECT which flex missed.
395 1.1 christos */
396 1.1 christos #define REJECT reject_used_but_not_detected
397 1.1 christos #define yymore() yymore_used_but_not_detected
398 1.1 christos #define YY_MORE_ADJ 0
399 1.1 christos #define YY_RESTORE_YY_MORE_OFFSET
400 1.1 christos char *yytext;
401 1.1 christos #line 1 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
402 1.1 christos #define INITIAL 0
403 1.1 christos #line 2 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
404 1.1 christos /******************************************************************************
405 1.1 christos *
406 1.1 christos * Module Name: prparser.l - Flex input file for preprocessor lexer
407 1.1 christos *
408 1.1 christos *****************************************************************************/
409 1.1 christos
410 1.1 christos /******************************************************************************
411 1.1 christos *
412 1.1 christos * 1. Copyright Notice
413 1.1 christos *
414 1.1 christos * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
415 1.1 christos * All rights reserved.
416 1.1 christos *
417 1.1 christos * 2. License
418 1.1 christos *
419 1.1 christos * 2.1. This is your license from Intel Corp. under its intellectual property
420 1.1 christos * rights. You may have additional license terms from the party that provided
421 1.1 christos * you this software, covering your right to use that party's intellectual
422 1.1 christos * property rights.
423 1.1 christos *
424 1.1 christos * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
425 1.1 christos * copy of the source code appearing in this file ("Covered Code") an
426 1.1 christos * irrevocable, perpetual, worldwide license under Intel's copyrights in the
427 1.1 christos * base code distributed originally by Intel ("Original Intel Code") to copy,
428 1.1 christos * make derivatives, distribute, use and display any portion of the Covered
429 1.1 christos * Code in any form, with the right to sublicense such rights; and
430 1.1 christos *
431 1.1 christos * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
432 1.1 christos * license (with the right to sublicense), under only those claims of Intel
433 1.1 christos * patents that are infringed by the Original Intel Code, to make, use, sell,
434 1.1 christos * offer to sell, and import the Covered Code and derivative works thereof
435 1.1 christos * solely to the minimum extent necessary to exercise the above copyright
436 1.1 christos * license, and in no event shall the patent license extend to any additions
437 1.1 christos * to or modifications of the Original Intel Code. No other license or right
438 1.1 christos * is granted directly or by implication, estoppel or otherwise;
439 1.1 christos *
440 1.1 christos * The above copyright and patent license is granted only if the following
441 1.1 christos * conditions are met:
442 1.1 christos *
443 1.1 christos * 3. Conditions
444 1.1 christos *
445 1.1 christos * 3.1. Redistribution of Source with Rights to Further Distribute Source.
446 1.1 christos * Redistribution of source code of any substantial portion of the Covered
447 1.1 christos * Code or modification with rights to further distribute source must include
448 1.1 christos * the above Copyright Notice, the above License, this list of Conditions,
449 1.1 christos * and the following Disclaimer and Export Compliance provision. In addition,
450 1.1 christos * Licensee must cause all Covered Code to which Licensee contributes to
451 1.1 christos * contain a file documenting the changes Licensee made to create that Covered
452 1.1 christos * Code and the date of any change. Licensee must include in that file the
453 1.1 christos * documentation of any changes made by any predecessor Licensee. Licensee
454 1.1 christos * must include a prominent statement that the modification is derived,
455 1.1 christos * directly or indirectly, from Original Intel Code.
456 1.1 christos *
457 1.1 christos * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
458 1.1 christos * Redistribution of source code of any substantial portion of the Covered
459 1.1 christos * Code or modification without rights to further distribute source must
460 1.1 christos * include the following Disclaimer and Export Compliance provision in the
461 1.1 christos * documentation and/or other materials provided with distribution. In
462 1.1 christos * addition, Licensee may not authorize further sublicense of source of any
463 1.1 christos * portion of the Covered Code, and must include terms to the effect that the
464 1.1 christos * license from Licensee to its licensee is limited to the intellectual
465 1.1 christos * property embodied in the software Licensee provides to its licensee, and
466 1.1 christos * not to intellectual property embodied in modifications its licensee may
467 1.1 christos * make.
468 1.1 christos *
469 1.1 christos * 3.3. Redistribution of Executable. Redistribution in executable form of any
470 1.1 christos * substantial portion of the Covered Code or modification must reproduce the
471 1.1 christos * above Copyright Notice, and the following Disclaimer and Export Compliance
472 1.1 christos * provision in the documentation and/or other materials provided with the
473 1.1 christos * distribution.
474 1.1 christos *
475 1.1 christos * 3.4. Intel retains all right, title, and interest in and to the Original
476 1.1 christos * Intel Code.
477 1.1 christos *
478 1.1 christos * 3.5. Neither the name Intel nor any other trademark owned or controlled by
479 1.1 christos * Intel shall be used in advertising or otherwise to promote the sale, use or
480 1.1 christos * other dealings in products derived from or relating to the Covered Code
481 1.1 christos * without prior written authorization from Intel.
482 1.1 christos *
483 1.1 christos * 4. Disclaimer and Export Compliance
484 1.1 christos *
485 1.1 christos * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
486 1.1 christos * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
487 1.1 christos * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
488 1.1 christos * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
489 1.1 christos * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
490 1.1 christos * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
491 1.1 christos * PARTICULAR PURPOSE.
492 1.1 christos *
493 1.1 christos * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
494 1.1 christos * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
495 1.1 christos * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
496 1.1 christos * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
497 1.1 christos * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
498 1.1 christos * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
499 1.1 christos * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
500 1.1 christos * LIMITED REMEDY.
501 1.1 christos *
502 1.1 christos * 4.3. Licensee shall not export, either directly or indirectly, any of this
503 1.1 christos * software or system incorporating such software without first obtaining any
504 1.1 christos * required license or other approval from the U. S. Department of Commerce or
505 1.1 christos * any other agency or department of the United States Government. In the
506 1.1 christos * event Licensee exports any such software from the United States or
507 1.1 christos * re-exports any such software from a foreign destination, Licensee shall
508 1.1 christos * ensure that the distribution and export/re-export of the software is in
509 1.1 christos * compliance with all laws, regulations, orders, or other restrictions of the
510 1.1 christos * U.S. Export Administration Regulations. Licensee agrees that neither it nor
511 1.1 christos * any of its subsidiaries will export/re-export any technical data, process,
512 1.1 christos * software, or service, directly or indirectly, to any country for which the
513 1.1 christos * United States government or any agency thereof requires an export license,
514 1.1 christos * other governmental approval, or letter of assurance, without first obtaining
515 1.1 christos * such license, approval or letter.
516 1.1 christos *
517 1.1 christos *****************************************************************************
518 1.1 christos *
519 1.1 christos * Alternatively, you may choose to be licensed under the terms of the
520 1.1 christos * following license:
521 1.1 christos *
522 1.1 christos * Redistribution and use in source and binary forms, with or without
523 1.1 christos * modification, are permitted provided that the following conditions
524 1.1 christos * are met:
525 1.1 christos * 1. Redistributions of source code must retain the above copyright
526 1.1 christos * notice, this list of conditions, and the following disclaimer,
527 1.1 christos * without modification.
528 1.1 christos * 2. Redistributions in binary form must reproduce at minimum a disclaimer
529 1.1 christos * substantially similar to the "NO WARRANTY" disclaimer below
530 1.1 christos * ("Disclaimer") and any redistribution must be conditioned upon
531 1.1 christos * including a substantially similar Disclaimer requirement for further
532 1.1 christos * binary redistribution.
533 1.1 christos * 3. Neither the names of the above-listed copyright holders nor the names
534 1.1 christos * of any contributors may be used to endorse or promote products derived
535 1.1 christos * from this software without specific prior written permission.
536 1.1 christos *
537 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
538 1.1 christos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
539 1.1 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
540 1.1 christos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
541 1.1 christos * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
542 1.1 christos * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
543 1.1 christos * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
544 1.1 christos * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
545 1.1 christos * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
546 1.1 christos * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
547 1.1 christos * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
548 1.1 christos *
549 1.1 christos * Alternatively, you may choose to be licensed under the terms of the
550 1.1 christos * GNU General Public License ("GPL") version 2 as published by the Free
551 1.1 christos * Software Foundation.
552 1.1 christos *
553 1.1 christos *****************************************************************************/
554 1.1 christos
555 1.1 christos #include "aslcompiler.h"
556 1.1 christos #include "prparser.y.h"
557 1.1 christos
558 1.1 christos /* Buffer to pass strings to the parser */
559 1.1 christos
560 1.1 christos #define STRING_SETUP strcpy (AslGbl_StringBuffer, PrParsertext);\
561 1.1 christos PrParserlval.str = AslGbl_StringBuffer
562 1.1 christos
563 1.1 christos #define _COMPONENT ACPI_COMPILER
564 1.1 christos ACPI_MODULE_NAME ("prscanner")
565 1.1 christos
566 1.1 christos
567 1.1 christos /* Local prototypes */
568 1.1 christos
569 1.1 christos static char
570 1.1 christos PrDoCommentType1 (
571 1.1 christos void);
572 1.1 christos
573 1.1 christos static char
574 1.1 christos PrDoCommentType2 (
575 1.1 christos void);
576 1.1 christos #line 577 "lex.yy.c"
577 1.1 christos
578 1.1 christos /* Macros after this point can all be overridden by user definitions in
579 1.1 christos * section 1.
580 1.1 christos */
581 1.1 christos
582 1.1 christos #ifndef YY_SKIP_YYWRAP
583 1.1 christos #ifdef __cplusplus
584 1.1 christos extern "C" int yywrap YY_PROTO(( void ));
585 1.1 christos #else
586 1.1 christos extern int yywrap YY_PROTO(( void ));
587 1.1 christos #endif
588 1.1 christos #endif
589 1.1 christos
590 1.1 christos #ifndef YY_NO_UNPUT
591 1.1 christos static void yyunput YY_PROTO(( int c, char *buf_ptr ));
592 1.1 christos #endif
593 1.1 christos
594 1.1 christos #ifndef yytext_ptr
595 1.1 christos static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
596 1.1 christos #endif
597 1.1 christos
598 1.1 christos #ifdef YY_NEED_STRLEN
599 1.1 christos static int yy_flex_strlen YY_PROTO(( yyconst char * ));
600 1.1 christos #endif
601 1.1 christos
602 1.1 christos #ifndef YY_NO_INPUT
603 1.1 christos #ifdef __cplusplus
604 1.1 christos static int yyinput YY_PROTO(( void ));
605 1.1 christos #else
606 1.1 christos static int input YY_PROTO(( void ));
607 1.1 christos #endif
608 1.1 christos #endif
609 1.1 christos
610 1.1 christos #if YY_STACK_USED
611 1.1 christos static int yy_start_stack_ptr = 0;
612 1.1 christos static int yy_start_stack_depth = 0;
613 1.1 christos static int *yy_start_stack = 0;
614 1.1 christos #ifndef YY_NO_PUSH_STATE
615 1.1 christos static void yy_push_state YY_PROTO(( int new_state ));
616 1.1 christos #endif
617 1.1 christos #ifndef YY_NO_POP_STATE
618 1.1 christos static void yy_pop_state YY_PROTO(( void ));
619 1.1 christos #endif
620 1.1 christos #ifndef YY_NO_TOP_STATE
621 1.1 christos static int yy_top_state YY_PROTO(( void ));
622 1.1 christos #endif
623 1.1 christos
624 1.1 christos #else
625 1.1 christos #define YY_NO_PUSH_STATE 1
626 1.1 christos #define YY_NO_POP_STATE 1
627 1.1 christos #define YY_NO_TOP_STATE 1
628 1.1 christos #endif
629 1.1 christos
630 1.1 christos #ifdef YY_MALLOC_DECL
631 1.1 christos YY_MALLOC_DECL
632 1.1 christos #else
633 1.1 christos #if __STDC__
634 1.1 christos #ifndef __cplusplus
635 1.1 christos #include <stdlib.h>
636 1.1 christos #endif
637 1.1 christos #else
638 1.1 christos /* Just try to get by without declaring the routines. This will fail
639 1.1 christos * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
640 1.1 christos * or sizeof(void*) != sizeof(int).
641 1.1 christos */
642 1.1 christos #endif
643 1.1 christos #endif
644 1.1 christos
645 1.1 christos /* Amount of stuff to slurp up with each read. */
646 1.1 christos #ifndef YY_READ_BUF_SIZE
647 1.1 christos #define YY_READ_BUF_SIZE 8192
648 1.1 christos #endif
649 1.1 christos
650 1.1 christos /* Copy whatever the last rule matched to the standard output. */
651 1.1 christos
652 1.1 christos #ifndef ECHO
653 1.1 christos /* This used to be an fputs(), but since the string might contain NUL's,
654 1.1 christos * we now use fwrite().
655 1.1 christos */
656 1.1 christos #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
657 1.1 christos #endif
658 1.1 christos
659 1.1 christos /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
660 1.1 christos * is returned in "result".
661 1.1 christos */
662 1.1 christos #ifndef YY_INPUT
663 1.1 christos #define YY_INPUT(buf,result,max_size) \
664 1.1 christos if ( yy_current_buffer->yy_is_interactive ) \
665 1.1 christos { \
666 1.1 christos int c = '*', n; \
667 1.1 christos for ( n = 0; n < max_size && \
668 1.1 christos (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
669 1.1 christos buf[n] = (char) c; \
670 1.1 christos if ( c == '\n' ) \
671 1.1 christos buf[n++] = (char) c; \
672 1.1 christos if ( c == EOF && ferror( yyin ) ) \
673 1.1 christos YY_FATAL_ERROR( "input in flex scanner failed" ); \
674 1.1 christos result = n; \
675 1.1 christos } \
676 1.1 christos else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
677 1.1 christos && ferror( yyin ) ) \
678 1.1 christos YY_FATAL_ERROR( "input in flex scanner failed" );
679 1.1 christos #endif
680 1.1 christos
681 1.1 christos /* No semi-colon after return; correct usage is to write "yyterminate();" -
682 1.1 christos * we don't want an extra ';' after the "return" because that will cause
683 1.1 christos * some compilers to complain about unreachable statements.
684 1.1 christos */
685 1.1 christos #ifndef yyterminate
686 1.1 christos #define yyterminate() return YY_NULL
687 1.1 christos #endif
688 1.1 christos
689 1.1 christos /* Number of entries by which start-condition stack grows. */
690 1.1 christos #ifndef YY_START_STACK_INCR
691 1.1 christos #define YY_START_STACK_INCR 25
692 1.1 christos #endif
693 1.1 christos
694 1.1 christos /* Report a fatal error. */
695 1.1 christos #ifndef YY_FATAL_ERROR
696 1.1 christos #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
697 1.1 christos #endif
698 1.1 christos
699 1.1 christos /* Default declaration of generated scanner - a define so the user can
700 1.1 christos * easily add parameters.
701 1.1 christos */
702 1.1 christos #ifndef YY_DECL
703 1.1 christos #define YY_DECL int yylex YY_PROTO(( void ))
704 1.1 christos #endif
705 1.1 christos
706 1.1 christos /* Code executed at the beginning of each rule, after yytext and yyleng
707 1.1 christos * have been set up.
708 1.1 christos */
709 1.1 christos #ifndef YY_USER_ACTION
710 1.1 christos #define YY_USER_ACTION
711 1.1 christos #endif
712 1.1 christos
713 1.1 christos /* Code executed at the end of each rule. */
714 1.1 christos #ifndef YY_BREAK
715 1.1 christos #define YY_BREAK break;
716 1.1 christos #endif
717 1.1 christos
718 1.1 christos #define YY_RULE_SETUP \
719 1.1 christos YY_USER_ACTION
720 1.1 christos
721 1.1 christos YY_DECL
722 1.1 christos {
723 1.1 christos register yy_state_type yy_current_state;
724 1.1 christos register char *yy_cp, *yy_bp;
725 1.1 christos register int yy_act;
726 1.1 christos
727 1.1 christos #line 184 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
728 1.1 christos
729 1.1 christos #line 730 "lex.yy.c"
730 1.1 christos
731 1.1 christos if ( yy_init )
732 1.1 christos {
733 1.1 christos yy_init = 0;
734 1.1 christos
735 1.1 christos #ifdef YY_USER_INIT
736 1.1 christos YY_USER_INIT;
737 1.1 christos #endif
738 1.1 christos
739 1.1 christos if ( ! yy_start )
740 1.1 christos yy_start = 1; /* first start state */
741 1.1 christos
742 1.1 christos if ( ! yyin )
743 1.1 christos yyin = stdin;
744 1.1 christos
745 1.1 christos if ( ! yyout )
746 1.1 christos yyout = stdout;
747 1.1 christos
748 1.1 christos if ( ! yy_current_buffer )
749 1.1 christos yy_current_buffer =
750 1.1 christos yy_create_buffer( yyin, YY_BUF_SIZE );
751 1.1 christos
752 1.1 christos yy_load_buffer_state();
753 1.1 christos }
754 1.1 christos
755 1.1 christos while ( 1 ) /* loops until end-of-file is reached */
756 1.1 christos {
757 1.1 christos yy_cp = yy_c_buf_p;
758 1.1 christos
759 1.1 christos /* Support of yytext. */
760 1.1 christos *yy_cp = yy_hold_char;
761 1.1 christos
762 1.1 christos /* yy_bp points to the position in yy_ch_buf of the start of
763 1.1 christos * the current run.
764 1.1 christos */
765 1.1 christos yy_bp = yy_cp;
766 1.1 christos
767 1.1 christos yy_current_state = yy_start;
768 1.1 christos yy_match:
769 1.1 christos do
770 1.1 christos {
771 1.1 christos register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
772 1.1 christos if ( yy_accept[yy_current_state] )
773 1.1 christos {
774 1.1 christos yy_last_accepting_state = yy_current_state;
775 1.1 christos yy_last_accepting_cpos = yy_cp;
776 1.1 christos }
777 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
778 1.1 christos {
779 1.1 christos yy_current_state = (int) yy_def[yy_current_state];
780 1.1 christos if ( yy_current_state >= 50 )
781 1.1 christos yy_c = yy_meta[(unsigned int) yy_c];
782 1.1 christos }
783 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
784 1.1 christos ++yy_cp;
785 1.1 christos }
786 1.1 christos while ( yy_base[yy_current_state] != 73 );
787 1.1 christos
788 1.1 christos yy_find_action:
789 1.1 christos yy_act = yy_accept[yy_current_state];
790 1.1 christos if ( yy_act == 0 )
791 1.1 christos { /* have to back up */
792 1.1 christos yy_cp = yy_last_accepting_cpos;
793 1.1 christos yy_current_state = yy_last_accepting_state;
794 1.1 christos yy_act = yy_accept[yy_current_state];
795 1.1 christos }
796 1.1 christos
797 1.1 christos YY_DO_BEFORE_ACTION;
798 1.1 christos
799 1.1 christos
800 1.1 christos do_action: /* This label is used only to access EOF actions. */
801 1.1 christos
802 1.1 christos
803 1.1 christos switch ( yy_act )
804 1.1 christos { /* beginning of action switch */
805 1.1 christos case 0: /* must back up */
806 1.1 christos /* undo the effects of YY_DO_BEFORE_ACTION */
807 1.1 christos *yy_cp = yy_hold_char;
808 1.1 christos yy_cp = yy_last_accepting_cpos;
809 1.1 christos yy_current_state = yy_last_accepting_state;
810 1.1 christos goto yy_find_action;
811 1.1 christos
812 1.1 christos case 1:
813 1.1 christos YY_RULE_SETUP
814 1.1 christos #line 185 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
815 1.1 christos { if (!PrDoCommentType1 ()) {yyterminate ();} }
816 1.1 christos YY_BREAK
817 1.1 christos case 2:
818 1.1 christos YY_RULE_SETUP
819 1.1 christos #line 186 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
820 1.1 christos { if (!PrDoCommentType2 ()) {yyterminate ();} }
821 1.1 christos YY_BREAK
822 1.1 christos case 3:
823 1.1 christos YY_RULE_SETUP
824 1.1 christos #line 188 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
825 1.1 christos return (EXPOP_PAREN_OPEN);
826 1.1 christos YY_BREAK
827 1.1 christos case 4:
828 1.1 christos YY_RULE_SETUP
829 1.1 christos #line 189 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
830 1.1 christos return (EXPOP_PAREN_CLOSE);
831 1.1 christos YY_BREAK
832 1.1 christos case 5:
833 1.1 christos YY_RULE_SETUP
834 1.1 christos #line 190 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
835 1.1 christos return (EXPOP_ONES_COMPLIMENT);
836 1.1 christos YY_BREAK
837 1.1 christos case 6:
838 1.1 christos YY_RULE_SETUP
839 1.1 christos #line 191 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
840 1.1 christos return (EXPOP_LOGICAL_NOT);
841 1.1 christos YY_BREAK
842 1.1 christos case 7:
843 1.1 christos YY_RULE_SETUP
844 1.1 christos #line 192 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
845 1.1 christos return (EXPOP_MULTIPLY);
846 1.1 christos YY_BREAK
847 1.1 christos case 8:
848 1.1 christos YY_RULE_SETUP
849 1.1 christos #line 193 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
850 1.1 christos return (EXPOP_DIVIDE);
851 1.1 christos YY_BREAK
852 1.1 christos case 9:
853 1.1 christos YY_RULE_SETUP
854 1.1 christos #line 194 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
855 1.1 christos return (EXPOP_MODULO);
856 1.1 christos YY_BREAK
857 1.1 christos case 10:
858 1.1 christos YY_RULE_SETUP
859 1.1 christos #line 195 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
860 1.1 christos return (EXPOP_ADD);
861 1.1 christos YY_BREAK
862 1.1 christos case 11:
863 1.1 christos YY_RULE_SETUP
864 1.1 christos #line 196 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
865 1.1 christos return (EXPOP_SUBTRACT);
866 1.1 christos YY_BREAK
867 1.1 christos case 12:
868 1.1 christos YY_RULE_SETUP
869 1.1 christos #line 197 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
870 1.1 christos return (EXPOP_SHIFT_RIGHT);
871 1.1 christos YY_BREAK
872 1.1 christos case 13:
873 1.1 christos YY_RULE_SETUP
874 1.1 christos #line 198 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
875 1.1 christos return (EXPOP_SHIFT_LEFT);
876 1.1 christos YY_BREAK
877 1.1 christos case 14:
878 1.1 christos YY_RULE_SETUP
879 1.1 christos #line 199 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
880 1.1 christos return (EXPOP_LESS);
881 1.1 christos YY_BREAK
882 1.1 christos case 15:
883 1.1 christos YY_RULE_SETUP
884 1.1 christos #line 200 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
885 1.1 christos return (EXPOP_GREATER);
886 1.1 christos YY_BREAK
887 1.1 christos case 16:
888 1.1 christos YY_RULE_SETUP
889 1.1 christos #line 201 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
890 1.1 christos return (EXPOP_LESS_EQUAL);
891 1.1 christos YY_BREAK
892 1.1 christos case 17:
893 1.1 christos YY_RULE_SETUP
894 1.1 christos #line 202 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
895 1.1 christos return (EXPOP_GREATER_EQUAL);
896 1.1 christos YY_BREAK
897 1.1 christos case 18:
898 1.1 christos YY_RULE_SETUP
899 1.1 christos #line 203 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
900 1.1 christos return (EXPOP_EQUAL);
901 1.1 christos YY_BREAK
902 1.1 christos case 19:
903 1.1 christos YY_RULE_SETUP
904 1.1 christos #line 204 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
905 1.1 christos return (EXPOP_NOT_EQUAL);
906 1.1 christos YY_BREAK
907 1.1 christos case 20:
908 1.1 christos YY_RULE_SETUP
909 1.1 christos #line 205 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
910 1.1 christos return (EXPOP_AND);
911 1.1 christos YY_BREAK
912 1.1 christos case 21:
913 1.1 christos YY_RULE_SETUP
914 1.1 christos #line 206 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
915 1.1 christos return (EXPOP_XOR);
916 1.1 christos YY_BREAK
917 1.1 christos case 22:
918 1.1 christos YY_RULE_SETUP
919 1.1 christos #line 207 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
920 1.1 christos return (EXPOP_OR);
921 1.1 christos YY_BREAK
922 1.1 christos case 23:
923 1.1 christos YY_RULE_SETUP
924 1.1 christos #line 208 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
925 1.1 christos return (EXPOP_LOGICAL_AND);
926 1.1 christos YY_BREAK
927 1.1 christos case 24:
928 1.1 christos YY_RULE_SETUP
929 1.1 christos #line 209 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
930 1.1 christos return (EXPOP_LOGICAL_OR);
931 1.1 christos YY_BREAK
932 1.1 christos case 25:
933 1.1 christos YY_RULE_SETUP
934 1.1 christos #line 211 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
935 1.1 christos return (EXPOP_DEFINE);
936 1.1 christos YY_BREAK
937 1.1 christos case 26:
938 1.1 christos YY_RULE_SETUP
939 1.1 christos #line 212 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
940 1.1 christos {STRING_SETUP; return (EXPOP_IDENTIFIER);}
941 1.1 christos YY_BREAK
942 1.1 christos case YY_STATE_EOF(INITIAL):
943 1.1 christos #line 214 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
944 1.1 christos return (EXPOP_EOF); /* null end-of-string */
945 1.1 christos YY_BREAK
946 1.1 christos case 27:
947 1.1 christos YY_RULE_SETUP
948 1.1 christos #line 216 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
949 1.1 christos return (EXPOP_NUMBER);
950 1.1 christos YY_BREAK
951 1.1 christos case 28:
952 1.1 christos YY_RULE_SETUP
953 1.1 christos #line 217 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
954 1.1 christos return (EXPOP_HEX_NUMBER);
955 1.1 christos YY_BREAK
956 1.1 christos case 29:
957 1.1 christos YY_RULE_SETUP
958 1.1 christos #line 218 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
959 1.1 christos return (EXPOP_NEW_LINE);
960 1.1 christos YY_BREAK
961 1.1 christos case 30:
962 1.1 christos YY_RULE_SETUP
963 1.1 christos #line 219 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
964 1.1 christos /* Ignore */
965 1.1 christos YY_BREAK
966 1.1 christos case 31:
967 1.1 christos YY_RULE_SETUP
968 1.1 christos #line 221 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
969 1.1 christos return (EXPOP_EOF);
970 1.1 christos YY_BREAK
971 1.1 christos case 32:
972 1.1 christos YY_RULE_SETUP
973 1.1 christos #line 222 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
974 1.1 christos ECHO;
975 1.1 christos YY_BREAK
976 1.1 christos #line 977 "lex.yy.c"
977 1.1 christos
978 1.1 christos case YY_END_OF_BUFFER:
979 1.1 christos {
980 1.1 christos /* Amount of text matched not including the EOB char. */
981 1.1 christos int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
982 1.1 christos
983 1.1 christos /* Undo the effects of YY_DO_BEFORE_ACTION. */
984 1.1 christos *yy_cp = yy_hold_char;
985 1.1 christos YY_RESTORE_YY_MORE_OFFSET
986 1.1 christos
987 1.1 christos if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
988 1.1 christos {
989 1.1 christos /* We're scanning a new file or input source. It's
990 1.1 christos * possible that this happened because the user
991 1.1 christos * just pointed yyin at a new source and called
992 1.1 christos * yylex(). If so, then we have to assure
993 1.1 christos * consistency between yy_current_buffer and our
994 1.1 christos * globals. Here is the right place to do so, because
995 1.1 christos * this is the first action (other than possibly a
996 1.1 christos * back-up) that will match for the new input source.
997 1.1 christos */
998 1.1 christos yy_n_chars = yy_current_buffer->yy_n_chars;
999 1.1 christos yy_current_buffer->yy_input_file = yyin;
1000 1.1 christos yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1001 1.1 christos }
1002 1.1 christos
1003 1.1 christos /* Note that here we test for yy_c_buf_p "<=" to the position
1004 1.1 christos * of the first EOB in the buffer, since yy_c_buf_p will
1005 1.1 christos * already have been incremented past the NUL character
1006 1.1 christos * (since all states make transitions on EOB to the
1007 1.1 christos * end-of-buffer state). Contrast this with the test
1008 1.1 christos * in input().
1009 1.1 christos */
1010 1.1 christos if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1011 1.1 christos { /* This was really a NUL. */
1012 1.1 christos yy_state_type yy_next_state;
1013 1.1 christos
1014 1.1 christos yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1015 1.1 christos
1016 1.1 christos yy_current_state = yy_get_previous_state();
1017 1.1 christos
1018 1.1 christos /* Okay, we're now positioned to make the NUL
1019 1.1 christos * transition. We couldn't have
1020 1.1 christos * yy_get_previous_state() go ahead and do it
1021 1.1 christos * for us because it doesn't know how to deal
1022 1.1 christos * with the possibility of jamming (and we don't
1023 1.1 christos * want to build jamming into it because then it
1024 1.1 christos * will run more slowly).
1025 1.1 christos */
1026 1.1 christos
1027 1.1 christos yy_next_state = yy_try_NUL_trans( yy_current_state );
1028 1.1 christos
1029 1.1 christos yy_bp = yytext_ptr + YY_MORE_ADJ;
1030 1.1 christos
1031 1.1 christos if ( yy_next_state )
1032 1.1 christos {
1033 1.1 christos /* Consume the NUL. */
1034 1.1 christos yy_cp = ++yy_c_buf_p;
1035 1.1 christos yy_current_state = yy_next_state;
1036 1.1 christos goto yy_match;
1037 1.1 christos }
1038 1.1 christos
1039 1.1 christos else
1040 1.1 christos {
1041 1.1 christos yy_cp = yy_c_buf_p;
1042 1.1 christos goto yy_find_action;
1043 1.1 christos }
1044 1.1 christos }
1045 1.1 christos
1046 1.1 christos else switch ( yy_get_next_buffer() )
1047 1.1 christos {
1048 1.1 christos case EOB_ACT_END_OF_FILE:
1049 1.1 christos {
1050 1.1 christos yy_did_buffer_switch_on_eof = 0;
1051 1.1 christos
1052 1.1 christos if ( yywrap() )
1053 1.1 christos {
1054 1.1 christos /* Note: because we've taken care in
1055 1.1 christos * yy_get_next_buffer() to have set up
1056 1.1 christos * yytext, we can now set up
1057 1.1 christos * yy_c_buf_p so that if some total
1058 1.1 christos * hoser (like flex itself) wants to
1059 1.1 christos * call the scanner after we return the
1060 1.1 christos * YY_NULL, it'll still work - another
1061 1.1 christos * YY_NULL will get returned.
1062 1.1 christos */
1063 1.1 christos yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1064 1.1 christos
1065 1.1 christos yy_act = YY_STATE_EOF(YY_START);
1066 1.1 christos goto do_action;
1067 1.1 christos }
1068 1.1 christos
1069 1.1 christos else
1070 1.1 christos {
1071 1.1 christos if ( ! yy_did_buffer_switch_on_eof )
1072 1.1 christos YY_NEW_FILE;
1073 1.1 christos }
1074 1.1 christos break;
1075 1.1 christos }
1076 1.1 christos
1077 1.1 christos case EOB_ACT_CONTINUE_SCAN:
1078 1.1 christos yy_c_buf_p =
1079 1.1 christos yytext_ptr + yy_amount_of_matched_text;
1080 1.1 christos
1081 1.1 christos yy_current_state = yy_get_previous_state();
1082 1.1 christos
1083 1.1 christos yy_cp = yy_c_buf_p;
1084 1.1 christos yy_bp = yytext_ptr + YY_MORE_ADJ;
1085 1.1 christos goto yy_match;
1086 1.1 christos
1087 1.1 christos case EOB_ACT_LAST_MATCH:
1088 1.1 christos yy_c_buf_p =
1089 1.1 christos &yy_current_buffer->yy_ch_buf[yy_n_chars];
1090 1.1 christos
1091 1.1 christos yy_current_state = yy_get_previous_state();
1092 1.1 christos
1093 1.1 christos yy_cp = yy_c_buf_p;
1094 1.1 christos yy_bp = yytext_ptr + YY_MORE_ADJ;
1095 1.1 christos goto yy_find_action;
1096 1.1 christos }
1097 1.1 christos break;
1098 1.1 christos }
1099 1.1 christos
1100 1.1 christos default:
1101 1.1 christos YY_FATAL_ERROR(
1102 1.1 christos "fatal flex scanner internal error--no action found" );
1103 1.1 christos } /* end of action switch */
1104 1.1 christos } /* end of scanning one token */
1105 1.1 christos } /* end of yylex */
1106 1.1 christos
1107 1.1 christos
1108 1.1 christos /* yy_get_next_buffer - try to read in a new buffer
1109 1.1 christos *
1110 1.1 christos * Returns a code representing an action:
1111 1.1 christos * EOB_ACT_LAST_MATCH -
1112 1.1 christos * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1113 1.1 christos * EOB_ACT_END_OF_FILE - end of file
1114 1.1 christos */
1115 1.1 christos
1116 1.1 christos static int yy_get_next_buffer()
1117 1.1 christos {
1118 1.1 christos register char *dest = yy_current_buffer->yy_ch_buf;
1119 1.1 christos register char *source = yytext_ptr;
1120 1.1 christos register int number_to_move, i;
1121 1.1 christos int ret_val;
1122 1.1 christos
1123 1.1 christos if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1124 1.1 christos YY_FATAL_ERROR(
1125 1.1 christos "fatal flex scanner internal error--end of buffer missed" );
1126 1.1 christos
1127 1.1 christos if ( yy_current_buffer->yy_fill_buffer == 0 )
1128 1.1 christos { /* Don't try to fill the buffer, so this is an EOF. */
1129 1.1 christos if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1130 1.1 christos {
1131 1.1 christos /* We matched a single character, the EOB, so
1132 1.1 christos * treat this as a final EOF.
1133 1.1 christos */
1134 1.1 christos return EOB_ACT_END_OF_FILE;
1135 1.1 christos }
1136 1.1 christos
1137 1.1 christos else
1138 1.1 christos {
1139 1.1 christos /* We matched some text prior to the EOB, first
1140 1.1 christos * process it.
1141 1.1 christos */
1142 1.1 christos return EOB_ACT_LAST_MATCH;
1143 1.1 christos }
1144 1.1 christos }
1145 1.1 christos
1146 1.1 christos /* Try to read more data. */
1147 1.1 christos
1148 1.1 christos /* First move last chars to start of buffer. */
1149 1.1 christos number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1150 1.1 christos
1151 1.1 christos for ( i = 0; i < number_to_move; ++i )
1152 1.1 christos *(dest++) = *(source++);
1153 1.1 christos
1154 1.1 christos if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1155 1.1 christos /* don't do the read, it's not guaranteed to return an EOF,
1156 1.1 christos * just force an EOF
1157 1.1 christos */
1158 1.1 christos yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1159 1.1 christos
1160 1.1 christos else
1161 1.1 christos {
1162 1.1 christos int num_to_read =
1163 1.1 christos yy_current_buffer->yy_buf_size - number_to_move - 1;
1164 1.1 christos
1165 1.1 christos while ( num_to_read <= 0 )
1166 1.1 christos { /* Not enough room in the buffer - grow it. */
1167 1.1 christos #ifdef YY_USES_REJECT
1168 1.1 christos YY_FATAL_ERROR(
1169 1.1 christos "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1170 1.1 christos #else
1171 1.1 christos
1172 1.1 christos /* just a shorter name for the current buffer */
1173 1.1 christos YY_BUFFER_STATE b = yy_current_buffer;
1174 1.1 christos
1175 1.1 christos int yy_c_buf_p_offset =
1176 1.1 christos (int) (yy_c_buf_p - b->yy_ch_buf);
1177 1.1 christos
1178 1.1 christos if ( b->yy_is_our_buffer )
1179 1.1 christos {
1180 1.1 christos int new_size = b->yy_buf_size * 2;
1181 1.1 christos
1182 1.1 christos if ( new_size <= 0 )
1183 1.1 christos b->yy_buf_size += b->yy_buf_size / 8;
1184 1.1 christos else
1185 1.1 christos b->yy_buf_size *= 2;
1186 1.1 christos
1187 1.1 christos b->yy_ch_buf = (char *)
1188 1.1 christos /* Include room in for 2 EOB chars. */
1189 1.1 christos yy_flex_realloc( (void *) b->yy_ch_buf,
1190 1.1 christos b->yy_buf_size + 2 );
1191 1.1 christos }
1192 1.1 christos else
1193 1.1 christos /* Can't grow it, we don't own it. */
1194 1.1 christos b->yy_ch_buf = 0;
1195 1.1 christos
1196 1.1 christos if ( ! b->yy_ch_buf )
1197 1.1 christos YY_FATAL_ERROR(
1198 1.1 christos "fatal error - scanner input buffer overflow" );
1199 1.1 christos
1200 1.1 christos yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1201 1.1 christos
1202 1.1 christos num_to_read = yy_current_buffer->yy_buf_size -
1203 1.1 christos number_to_move - 1;
1204 1.1 christos #endif
1205 1.1 christos }
1206 1.1 christos
1207 1.1 christos if ( num_to_read > YY_READ_BUF_SIZE )
1208 1.1 christos num_to_read = YY_READ_BUF_SIZE;
1209 1.1 christos
1210 1.1 christos /* Read in more data. */
1211 1.1 christos YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1212 1.1 christos yy_n_chars, num_to_read );
1213 1.1 christos
1214 1.1 christos yy_current_buffer->yy_n_chars = yy_n_chars;
1215 1.1 christos }
1216 1.1 christos
1217 1.1 christos if ( yy_n_chars == 0 )
1218 1.1 christos {
1219 1.1 christos if ( number_to_move == YY_MORE_ADJ )
1220 1.1 christos {
1221 1.1 christos ret_val = EOB_ACT_END_OF_FILE;
1222 1.1 christos yyrestart( yyin );
1223 1.1 christos }
1224 1.1 christos
1225 1.1 christos else
1226 1.1 christos {
1227 1.1 christos ret_val = EOB_ACT_LAST_MATCH;
1228 1.1 christos yy_current_buffer->yy_buffer_status =
1229 1.1 christos YY_BUFFER_EOF_PENDING;
1230 1.1 christos }
1231 1.1 christos }
1232 1.1 christos
1233 1.1 christos else
1234 1.1 christos ret_val = EOB_ACT_CONTINUE_SCAN;
1235 1.1 christos
1236 1.1 christos yy_n_chars += number_to_move;
1237 1.1 christos yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1238 1.1 christos yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1239 1.1 christos
1240 1.1 christos yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1241 1.1 christos
1242 1.1 christos return ret_val;
1243 1.1 christos }
1244 1.1 christos
1245 1.1 christos
1246 1.1 christos /* yy_get_previous_state - get the state just before the EOB char was reached */
1247 1.1 christos
1248 1.1 christos static yy_state_type yy_get_previous_state()
1249 1.1 christos {
1250 1.1 christos register yy_state_type yy_current_state;
1251 1.1 christos register char *yy_cp;
1252 1.1 christos
1253 1.1 christos yy_current_state = yy_start;
1254 1.1 christos
1255 1.1 christos for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
1256 1.1 christos {
1257 1.1 christos register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1258 1.1 christos if ( yy_accept[yy_current_state] )
1259 1.1 christos {
1260 1.1 christos yy_last_accepting_state = yy_current_state;
1261 1.1 christos yy_last_accepting_cpos = yy_cp;
1262 1.1 christos }
1263 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1264 1.1 christos {
1265 1.1 christos yy_current_state = (int) yy_def[yy_current_state];
1266 1.1 christos if ( yy_current_state >= 50 )
1267 1.1 christos yy_c = yy_meta[(unsigned int) yy_c];
1268 1.1 christos }
1269 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1270 1.1 christos }
1271 1.1 christos
1272 1.1 christos return yy_current_state;
1273 1.1 christos }
1274 1.1 christos
1275 1.1 christos
1276 1.1 christos /* yy_try_NUL_trans - try to make a transition on the NUL character
1277 1.1 christos *
1278 1.1 christos * synopsis
1279 1.1 christos * next_state = yy_try_NUL_trans( current_state );
1280 1.1 christos */
1281 1.1 christos
1282 1.1 christos #ifdef YY_USE_PROTOS
1283 1.1 christos static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1284 1.1 christos #else
1285 1.1 christos static yy_state_type yy_try_NUL_trans( yy_current_state )
1286 1.1 christos yy_state_type yy_current_state;
1287 1.1 christos #endif
1288 1.1 christos {
1289 1.1 christos register int yy_is_jam;
1290 1.1 christos register char *yy_cp = yy_c_buf_p;
1291 1.1 christos
1292 1.1 christos register YY_CHAR yy_c = 1;
1293 1.1 christos if ( yy_accept[yy_current_state] )
1294 1.1 christos {
1295 1.1 christos yy_last_accepting_state = yy_current_state;
1296 1.1 christos yy_last_accepting_cpos = yy_cp;
1297 1.1 christos }
1298 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1299 1.1 christos {
1300 1.1 christos yy_current_state = (int) yy_def[yy_current_state];
1301 1.1 christos if ( yy_current_state >= 50 )
1302 1.1 christos yy_c = yy_meta[(unsigned int) yy_c];
1303 1.1 christos }
1304 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1305 1.1 christos yy_is_jam = (yy_current_state == 49);
1306 1.1 christos
1307 1.1 christos return yy_is_jam ? 0 : yy_current_state;
1308 1.1 christos }
1309 1.1 christos
1310 1.1 christos
1311 1.1 christos #ifndef YY_NO_UNPUT
1312 1.1 christos #ifdef YY_USE_PROTOS
1313 1.1 christos static void yyunput( int c, register char *yy_bp )
1314 1.1 christos #else
1315 1.1 christos static void yyunput( c, yy_bp )
1316 1.1 christos int c;
1317 1.1 christos register char *yy_bp;
1318 1.1 christos #endif
1319 1.1 christos {
1320 1.1 christos register char *yy_cp = yy_c_buf_p;
1321 1.1 christos
1322 1.1 christos /* undo effects of setting up yytext */
1323 1.1 christos *yy_cp = yy_hold_char;
1324 1.1 christos
1325 1.1 christos if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1326 1.1 christos { /* need to shift things up to make room */
1327 1.1 christos /* +2 for EOB chars. */
1328 1.1 christos register int number_to_move = yy_n_chars + 2;
1329 1.1 christos register char *dest = &yy_current_buffer->yy_ch_buf[
1330 1.1 christos yy_current_buffer->yy_buf_size + 2];
1331 1.1 christos register char *source =
1332 1.1 christos &yy_current_buffer->yy_ch_buf[number_to_move];
1333 1.1 christos
1334 1.1 christos while ( source > yy_current_buffer->yy_ch_buf )
1335 1.1 christos *--dest = *--source;
1336 1.1 christos
1337 1.1 christos yy_cp += (int) (dest - source);
1338 1.1 christos yy_bp += (int) (dest - source);
1339 1.1 christos yy_current_buffer->yy_n_chars =
1340 1.1 christos yy_n_chars = yy_current_buffer->yy_buf_size;
1341 1.1 christos
1342 1.1 christos if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1343 1.1 christos YY_FATAL_ERROR( "flex scanner push-back overflow" );
1344 1.1 christos }
1345 1.1 christos
1346 1.1 christos *--yy_cp = (char) c;
1347 1.1 christos
1348 1.1 christos
1349 1.1 christos yytext_ptr = yy_bp;
1350 1.1 christos yy_hold_char = *yy_cp;
1351 1.1 christos yy_c_buf_p = yy_cp;
1352 1.1 christos }
1353 1.1 christos #endif /* ifndef YY_NO_UNPUT */
1354 1.1 christos
1355 1.1 christos
1356 1.1 christos #ifdef __cplusplus
1357 1.1 christos static int yyinput()
1358 1.1 christos #else
1359 1.1 christos static int input()
1360 1.1 christos #endif
1361 1.1 christos {
1362 1.1 christos int c;
1363 1.1 christos
1364 1.1 christos *yy_c_buf_p = yy_hold_char;
1365 1.1 christos
1366 1.1 christos if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1367 1.1 christos {
1368 1.1 christos /* yy_c_buf_p now points to the character we want to return.
1369 1.1 christos * If this occurs *before* the EOB characters, then it's a
1370 1.1 christos * valid NUL; if not, then we've hit the end of the buffer.
1371 1.1 christos */
1372 1.1 christos if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1373 1.1 christos /* This was really a NUL. */
1374 1.1 christos *yy_c_buf_p = '\0';
1375 1.1 christos
1376 1.1 christos else
1377 1.1 christos { /* need more input */
1378 1.1 christos int offset = yy_c_buf_p - yytext_ptr;
1379 1.1 christos ++yy_c_buf_p;
1380 1.1 christos
1381 1.1 christos switch ( yy_get_next_buffer() )
1382 1.1 christos {
1383 1.1 christos case EOB_ACT_LAST_MATCH:
1384 1.1 christos /* This happens because yy_g_n_b()
1385 1.1 christos * sees that we've accumulated a
1386 1.1 christos * token and flags that we need to
1387 1.1 christos * try matching the token before
1388 1.1 christos * proceeding. But for input(),
1389 1.1 christos * there's no matching to consider.
1390 1.1 christos * So convert the EOB_ACT_LAST_MATCH
1391 1.1 christos * to EOB_ACT_END_OF_FILE.
1392 1.1 christos */
1393 1.1 christos
1394 1.1 christos /* Reset buffer status. */
1395 1.1 christos yyrestart( yyin );
1396 1.1 christos
1397 1.1 christos /* fall through */
1398 1.1 christos
1399 1.1 christos case EOB_ACT_END_OF_FILE:
1400 1.1 christos {
1401 1.1 christos if ( yywrap() )
1402 1.1 christos return EOF;
1403 1.1 christos
1404 1.1 christos if ( ! yy_did_buffer_switch_on_eof )
1405 1.1 christos YY_NEW_FILE;
1406 1.1 christos #ifdef __cplusplus
1407 1.1 christos return yyinput();
1408 1.1 christos #else
1409 1.1 christos return input();
1410 1.1 christos #endif
1411 1.1 christos }
1412 1.1 christos
1413 1.1 christos case EOB_ACT_CONTINUE_SCAN:
1414 1.1 christos yy_c_buf_p = yytext_ptr + offset;
1415 1.1 christos break;
1416 1.1 christos }
1417 1.1 christos }
1418 1.1 christos }
1419 1.1 christos
1420 1.1 christos c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
1421 1.1 christos *yy_c_buf_p = '\0'; /* preserve yytext */
1422 1.1 christos yy_hold_char = *++yy_c_buf_p;
1423 1.1 christos
1424 1.1 christos
1425 1.1 christos return c;
1426 1.1 christos }
1427 1.1 christos
1428 1.1 christos
1429 1.1 christos #ifdef YY_USE_PROTOS
1430 1.1 christos void yyrestart( FILE *input_file )
1431 1.1 christos #else
1432 1.1 christos void yyrestart( input_file )
1433 1.1 christos FILE *input_file;
1434 1.1 christos #endif
1435 1.1 christos {
1436 1.1 christos if ( ! yy_current_buffer )
1437 1.1 christos yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1438 1.1 christos
1439 1.1 christos yy_init_buffer( yy_current_buffer, input_file );
1440 1.1 christos yy_load_buffer_state();
1441 1.1 christos }
1442 1.1 christos
1443 1.1 christos
1444 1.1 christos #ifdef YY_USE_PROTOS
1445 1.1 christos void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1446 1.1 christos #else
1447 1.1 christos void yy_switch_to_buffer( new_buffer )
1448 1.1 christos YY_BUFFER_STATE new_buffer;
1449 1.1 christos #endif
1450 1.1 christos {
1451 1.1 christos if ( yy_current_buffer == new_buffer )
1452 1.1 christos return;
1453 1.1 christos
1454 1.1 christos if ( yy_current_buffer )
1455 1.1 christos {
1456 1.1 christos /* Flush out information for old buffer. */
1457 1.1 christos *yy_c_buf_p = yy_hold_char;
1458 1.1 christos yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1459 1.1 christos yy_current_buffer->yy_n_chars = yy_n_chars;
1460 1.1 christos }
1461 1.1 christos
1462 1.1 christos yy_current_buffer = new_buffer;
1463 1.1 christos yy_load_buffer_state();
1464 1.1 christos
1465 1.1 christos /* We don't actually know whether we did this switch during
1466 1.1 christos * EOF (yywrap()) processing, but the only time this flag
1467 1.1 christos * is looked at is after yywrap() is called, so it's safe
1468 1.1 christos * to go ahead and always set it.
1469 1.1 christos */
1470 1.1 christos yy_did_buffer_switch_on_eof = 1;
1471 1.1 christos }
1472 1.1 christos
1473 1.1 christos
1474 1.1 christos #ifdef YY_USE_PROTOS
1475 1.1 christos void yy_load_buffer_state( void )
1476 1.1 christos #else
1477 1.1 christos void yy_load_buffer_state()
1478 1.1 christos #endif
1479 1.1 christos {
1480 1.1 christos yy_n_chars = yy_current_buffer->yy_n_chars;
1481 1.1 christos yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
1482 1.1 christos yyin = yy_current_buffer->yy_input_file;
1483 1.1 christos yy_hold_char = *yy_c_buf_p;
1484 1.1 christos }
1485 1.1 christos
1486 1.1 christos
1487 1.1 christos #ifdef YY_USE_PROTOS
1488 1.1 christos YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
1489 1.1 christos #else
1490 1.1 christos YY_BUFFER_STATE yy_create_buffer( file, size )
1491 1.1 christos FILE *file;
1492 1.1 christos int size;
1493 1.1 christos #endif
1494 1.1 christos {
1495 1.1 christos YY_BUFFER_STATE b;
1496 1.1 christos
1497 1.1 christos b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
1498 1.1 christos if ( ! b )
1499 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1500 1.1 christos
1501 1.1 christos b->yy_buf_size = size;
1502 1.1 christos
1503 1.1 christos /* yy_ch_buf has to be 2 characters longer than the size given because
1504 1.1 christos * we need to put in 2 end-of-buffer characters.
1505 1.1 christos */
1506 1.1 christos b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
1507 1.1 christos if ( ! b->yy_ch_buf )
1508 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1509 1.1 christos
1510 1.1 christos b->yy_is_our_buffer = 1;
1511 1.1 christos
1512 1.1 christos yy_init_buffer( b, file );
1513 1.1 christos
1514 1.1 christos return b;
1515 1.1 christos }
1516 1.1 christos
1517 1.1 christos
1518 1.1 christos #ifdef YY_USE_PROTOS
1519 1.1 christos void yy_delete_buffer( YY_BUFFER_STATE b )
1520 1.1 christos #else
1521 1.1 christos void yy_delete_buffer( b )
1522 1.1 christos YY_BUFFER_STATE b;
1523 1.1 christos #endif
1524 1.1 christos {
1525 1.1 christos if ( ! b )
1526 1.1 christos return;
1527 1.1 christos
1528 1.1 christos if ( b == yy_current_buffer )
1529 1.1 christos yy_current_buffer = (YY_BUFFER_STATE) 0;
1530 1.1 christos
1531 1.1 christos if ( b->yy_is_our_buffer )
1532 1.1 christos yy_flex_free( (void *) b->yy_ch_buf );
1533 1.1 christos
1534 1.1 christos yy_flex_free( (void *) b );
1535 1.1 christos }
1536 1.1 christos
1537 1.1 christos
1538 1.1 christos #ifndef YY_ALWAYS_INTERACTIVE
1539 1.1 christos #ifndef YY_NEVER_INTERACTIVE
1540 1.1 christos extern int isatty YY_PROTO(( int ));
1541 1.1 christos #endif
1542 1.1 christos #endif
1543 1.1 christos
1544 1.1 christos #ifdef YY_USE_PROTOS
1545 1.1 christos void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
1546 1.1 christos #else
1547 1.1 christos void yy_init_buffer( b, file )
1548 1.1 christos YY_BUFFER_STATE b;
1549 1.1 christos FILE *file;
1550 1.1 christos #endif
1551 1.1 christos
1552 1.1 christos
1553 1.1 christos {
1554 1.1 christos yy_flush_buffer( b );
1555 1.1 christos
1556 1.1 christos b->yy_input_file = file;
1557 1.1 christos b->yy_fill_buffer = 1;
1558 1.1 christos
1559 1.1 christos #if YY_ALWAYS_INTERACTIVE
1560 1.1 christos b->yy_is_interactive = 1;
1561 1.1 christos #else
1562 1.1 christos #if YY_NEVER_INTERACTIVE
1563 1.1 christos b->yy_is_interactive = 0;
1564 1.1 christos #else
1565 1.1 christos b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1566 1.1 christos #endif
1567 1.1 christos #endif
1568 1.1 christos }
1569 1.1 christos
1570 1.1 christos
1571 1.1 christos #ifdef YY_USE_PROTOS
1572 1.1 christos void yy_flush_buffer( YY_BUFFER_STATE b )
1573 1.1 christos #else
1574 1.1 christos void yy_flush_buffer( b )
1575 1.1 christos YY_BUFFER_STATE b;
1576 1.1 christos #endif
1577 1.1 christos
1578 1.1 christos {
1579 1.1 christos if ( ! b )
1580 1.1 christos return;
1581 1.1 christos
1582 1.1 christos b->yy_n_chars = 0;
1583 1.1 christos
1584 1.1 christos /* We always need two end-of-buffer characters. The first causes
1585 1.1 christos * a transition to the end-of-buffer state. The second causes
1586 1.1 christos * a jam in that state.
1587 1.1 christos */
1588 1.1 christos b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1589 1.1 christos b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1590 1.1 christos
1591 1.1 christos b->yy_buf_pos = &b->yy_ch_buf[0];
1592 1.1 christos
1593 1.1 christos b->yy_at_bol = 1;
1594 1.1 christos b->yy_buffer_status = YY_BUFFER_NEW;
1595 1.1 christos
1596 1.1 christos if ( b == yy_current_buffer )
1597 1.1 christos yy_load_buffer_state();
1598 1.1 christos }
1599 1.1 christos
1600 1.1 christos
1601 1.1 christos #ifndef YY_NO_SCAN_BUFFER
1602 1.1 christos #ifdef YY_USE_PROTOS
1603 1.1 christos YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
1604 1.1 christos #else
1605 1.1 christos YY_BUFFER_STATE yy_scan_buffer( base, size )
1606 1.1 christos char *base;
1607 1.1 christos yy_size_t size;
1608 1.1 christos #endif
1609 1.1 christos {
1610 1.1 christos YY_BUFFER_STATE b;
1611 1.1 christos
1612 1.1 christos if ( size < 2 ||
1613 1.1 christos base[size-2] != YY_END_OF_BUFFER_CHAR ||
1614 1.1 christos base[size-1] != YY_END_OF_BUFFER_CHAR )
1615 1.1 christos /* They forgot to leave room for the EOB's. */
1616 1.1 christos return 0;
1617 1.1 christos
1618 1.1 christos b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
1619 1.1 christos if ( ! b )
1620 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1621 1.1 christos
1622 1.1 christos b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
1623 1.1 christos b->yy_buf_pos = b->yy_ch_buf = base;
1624 1.1 christos b->yy_is_our_buffer = 0;
1625 1.1 christos b->yy_input_file = 0;
1626 1.1 christos b->yy_n_chars = b->yy_buf_size;
1627 1.1 christos b->yy_is_interactive = 0;
1628 1.1 christos b->yy_at_bol = 1;
1629 1.1 christos b->yy_fill_buffer = 0;
1630 1.1 christos b->yy_buffer_status = YY_BUFFER_NEW;
1631 1.1 christos
1632 1.1 christos yy_switch_to_buffer( b );
1633 1.1 christos
1634 1.1 christos return b;
1635 1.1 christos }
1636 1.1 christos #endif
1637 1.1 christos
1638 1.1 christos
1639 1.1 christos #ifndef YY_NO_SCAN_STRING
1640 1.1 christos #ifdef YY_USE_PROTOS
1641 1.1 christos YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
1642 1.1 christos #else
1643 1.1 christos YY_BUFFER_STATE yy_scan_string( yy_str )
1644 1.1 christos yyconst char *yy_str;
1645 1.1 christos #endif
1646 1.1 christos {
1647 1.1 christos int len;
1648 1.1 christos for ( len = 0; yy_str[len]; ++len )
1649 1.1 christos ;
1650 1.1 christos
1651 1.1 christos return yy_scan_bytes( yy_str, len );
1652 1.1 christos }
1653 1.1 christos #endif
1654 1.1 christos
1655 1.1 christos
1656 1.1 christos #ifndef YY_NO_SCAN_BYTES
1657 1.1 christos #ifdef YY_USE_PROTOS
1658 1.1 christos YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
1659 1.1 christos #else
1660 1.1 christos YY_BUFFER_STATE yy_scan_bytes( bytes, len )
1661 1.1 christos yyconst char *bytes;
1662 1.1 christos int len;
1663 1.1 christos #endif
1664 1.1 christos {
1665 1.1 christos YY_BUFFER_STATE b;
1666 1.1 christos char *buf;
1667 1.1 christos yy_size_t n;
1668 1.1 christos int i;
1669 1.1 christos
1670 1.1 christos /* Get memory for full buffer, including space for trailing EOB's. */
1671 1.1 christos n = len + 2;
1672 1.1 christos buf = (char *) yy_flex_alloc( n );
1673 1.1 christos if ( ! buf )
1674 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1675 1.1 christos
1676 1.1 christos for ( i = 0; i < len; ++i )
1677 1.1 christos buf[i] = bytes[i];
1678 1.1 christos
1679 1.1 christos buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
1680 1.1 christos
1681 1.1 christos b = yy_scan_buffer( buf, n );
1682 1.1 christos if ( ! b )
1683 1.1 christos YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1684 1.1 christos
1685 1.1 christos /* It's okay to grow etc. this buffer, and we should throw it
1686 1.1 christos * away when we're done.
1687 1.1 christos */
1688 1.1 christos b->yy_is_our_buffer = 1;
1689 1.1 christos
1690 1.1 christos return b;
1691 1.1 christos }
1692 1.1 christos #endif
1693 1.1 christos
1694 1.1 christos
1695 1.1 christos #ifndef YY_NO_PUSH_STATE
1696 1.1 christos #ifdef YY_USE_PROTOS
1697 1.1 christos static void yy_push_state( int new_state )
1698 1.1 christos #else
1699 1.1 christos static void yy_push_state( new_state )
1700 1.1 christos int new_state;
1701 1.1 christos #endif
1702 1.1 christos {
1703 1.1 christos if ( yy_start_stack_ptr >= yy_start_stack_depth )
1704 1.1 christos {
1705 1.1 christos yy_size_t new_size;
1706 1.1 christos
1707 1.1 christos yy_start_stack_depth += YY_START_STACK_INCR;
1708 1.1 christos new_size = yy_start_stack_depth * sizeof( int );
1709 1.1 christos
1710 1.1 christos if ( ! yy_start_stack )
1711 1.1 christos yy_start_stack = (int *) yy_flex_alloc( new_size );
1712 1.1 christos
1713 1.1 christos else
1714 1.1 christos yy_start_stack = (int *) yy_flex_realloc(
1715 1.1 christos (void *) yy_start_stack, new_size );
1716 1.1 christos
1717 1.1 christos if ( ! yy_start_stack )
1718 1.1 christos YY_FATAL_ERROR(
1719 1.1 christos "out of memory expanding start-condition stack" );
1720 1.1 christos }
1721 1.1 christos
1722 1.1 christos yy_start_stack[yy_start_stack_ptr++] = YY_START;
1723 1.1 christos
1724 1.1 christos BEGIN(new_state);
1725 1.1 christos }
1726 1.1 christos #endif
1727 1.1 christos
1728 1.1 christos
1729 1.1 christos #ifndef YY_NO_POP_STATE
1730 1.1 christos static void yy_pop_state()
1731 1.1 christos {
1732 1.1 christos if ( --yy_start_stack_ptr < 0 )
1733 1.1 christos YY_FATAL_ERROR( "start-condition stack underflow" );
1734 1.1 christos
1735 1.1 christos BEGIN(yy_start_stack[yy_start_stack_ptr]);
1736 1.1 christos }
1737 1.1 christos #endif
1738 1.1 christos
1739 1.1 christos
1740 1.1 christos #ifndef YY_NO_TOP_STATE
1741 1.1 christos static int yy_top_state()
1742 1.1 christos {
1743 1.1 christos return yy_start_stack[yy_start_stack_ptr - 1];
1744 1.1 christos }
1745 1.1 christos #endif
1746 1.1 christos
1747 1.1 christos #ifndef YY_EXIT_FAILURE
1748 1.1 christos #define YY_EXIT_FAILURE 2
1749 1.1 christos #endif
1750 1.1 christos
1751 1.1 christos #ifdef YY_USE_PROTOS
1752 1.1 christos static void yy_fatal_error( yyconst char msg[] )
1753 1.1 christos #else
1754 1.1 christos static void yy_fatal_error( msg )
1755 1.1 christos char msg[];
1756 1.1 christos #endif
1757 1.1 christos {
1758 1.1 christos (void) fprintf( stderr, "%s\n", msg );
1759 1.1 christos exit( YY_EXIT_FAILURE );
1760 1.1 christos }
1761 1.1 christos
1762 1.1 christos
1763 1.1 christos
1764 1.1 christos /* Redefine yyless() so it works in section 3 code. */
1765 1.1 christos
1766 1.1 christos #undef yyless
1767 1.1 christos #define yyless(n) \
1768 1.1 christos do \
1769 1.1 christos { \
1770 1.1 christos /* Undo effects of setting up yytext. */ \
1771 1.1 christos yytext[yyleng] = yy_hold_char; \
1772 1.1 christos yy_c_buf_p = yytext + n; \
1773 1.1 christos yy_hold_char = *yy_c_buf_p; \
1774 1.1 christos *yy_c_buf_p = '\0'; \
1775 1.1 christos yyleng = n; \
1776 1.1 christos } \
1777 1.1 christos while ( 0 )
1778 1.1 christos
1779 1.1 christos
1780 1.1 christos /* Internal utility routines. */
1781 1.1 christos
1782 1.1 christos #ifndef yytext_ptr
1783 1.1 christos #ifdef YY_USE_PROTOS
1784 1.1 christos static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
1785 1.1 christos #else
1786 1.1 christos static void yy_flex_strncpy( s1, s2, n )
1787 1.1 christos char *s1;
1788 1.1 christos yyconst char *s2;
1789 1.1 christos int n;
1790 1.1 christos #endif
1791 1.1 christos {
1792 1.1 christos register int i;
1793 1.1 christos for ( i = 0; i < n; ++i )
1794 1.1 christos s1[i] = s2[i];
1795 1.1 christos }
1796 1.1 christos #endif
1797 1.1 christos
1798 1.1 christos #ifdef YY_NEED_STRLEN
1799 1.1 christos #ifdef YY_USE_PROTOS
1800 1.1 christos static int yy_flex_strlen( yyconst char *s )
1801 1.1 christos #else
1802 1.1 christos static int yy_flex_strlen( s )
1803 1.1 christos yyconst char *s;
1804 1.1 christos #endif
1805 1.1 christos {
1806 1.1 christos register int n;
1807 1.1 christos for ( n = 0; s[n]; ++n )
1808 1.1 christos ;
1809 1.1 christos
1810 1.1 christos return n;
1811 1.1 christos }
1812 1.1 christos #endif
1813 1.1 christos
1814 1.1 christos
1815 1.1 christos #ifdef YY_USE_PROTOS
1816 1.1 christos static void *yy_flex_alloc( yy_size_t size )
1817 1.1 christos #else
1818 1.1 christos static void *yy_flex_alloc( size )
1819 1.1 christos yy_size_t size;
1820 1.1 christos #endif
1821 1.1 christos {
1822 1.1 christos return (void *) malloc( size );
1823 1.1 christos }
1824 1.1 christos
1825 1.1 christos #ifdef YY_USE_PROTOS
1826 1.1 christos static void *yy_flex_realloc( void *ptr, yy_size_t size )
1827 1.1 christos #else
1828 1.1 christos static void *yy_flex_realloc( ptr, size )
1829 1.1 christos void *ptr;
1830 1.1 christos yy_size_t size;
1831 1.1 christos #endif
1832 1.1 christos {
1833 1.1 christos /* The cast to (char *) in the following accommodates both
1834 1.1 christos * implementations that use char* generic pointers, and those
1835 1.1 christos * that use void* generic pointers. It works with the latter
1836 1.1 christos * because both ANSI C and C++ allow castless assignment from
1837 1.1 christos * any pointer type to void*, and deal with argument conversions
1838 1.1 christos * as though doing an assignment.
1839 1.1 christos */
1840 1.1 christos return (void *) realloc( (char *) ptr, size );
1841 1.1 christos }
1842 1.1 christos
1843 1.1 christos #ifdef YY_USE_PROTOS
1844 1.1 christos static void yy_flex_free( void *ptr )
1845 1.1 christos #else
1846 1.1 christos static void yy_flex_free( ptr )
1847 1.1 christos void *ptr;
1848 1.1 christos #endif
1849 1.1 christos {
1850 1.1 christos free( ptr );
1851 1.1 christos }
1852 1.1 christos
1853 1.1 christos #if YY_MAIN
1854 1.1 christos int main()
1855 1.1 christos {
1856 1.1 christos yylex();
1857 1.1 christos return 0;
1858 1.1 christos }
1859 1.1 christos #endif
1860 1.1 christos #line 222 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l"
1861 1.1 christos
1862 1.1 christos
1863 1.1 christos /*
1864 1.1 christos * Local support functions
1865 1.1 christos */
1866 1.1 christos static YY_BUFFER_STATE LexBuffer;
1867 1.1 christos
1868 1.1 christos
1869 1.1 christos /******************************************************************************
1870 1.1 christos *
1871 1.1 christos * FUNCTION: PrInitLexer
1872 1.1 christos *
1873 1.1 christos * PARAMETERS: String - Input string to be parsed
1874 1.1 christos *
1875 1.1 christos * RETURN: TRUE if parser returns NULL. FALSE otherwise.
1876 1.1 christos *
1877 1.1 christos * DESCRIPTION: Initialization routine for lexer. The lexer needs
1878 1.1 christos * a buffer to handle strings instead of a file.
1879 1.1 christos *
1880 1.1 christos *****************************************************************************/
1881 1.1 christos
1882 1.1 christos int
1883 1.1 christos PrInitLexer (
1884 1.1 christos char *String)
1885 1.1 christos {
1886 1.1 christos
1887 1.1 christos LexBuffer = yy_scan_string (String);
1888 1.1 christos return (LexBuffer == NULL);
1889 1.1 christos }
1890 1.1 christos
1891 1.1 christos
1892 1.1 christos /******************************************************************************
1893 1.1 christos *
1894 1.1 christos * FUNCTION: PrTerminateLexer
1895 1.1 christos *
1896 1.1 christos * PARAMETERS: None
1897 1.1 christos *
1898 1.1 christos * RETURN: None
1899 1.1 christos *
1900 1.1 christos * DESCRIPTION: Termination routine for thelexer.
1901 1.1 christos *
1902 1.1 christos *****************************************************************************/
1903 1.1 christos
1904 1.1 christos void
1905 1.1 christos PrTerminateLexer (
1906 1.1 christos void)
1907 1.1 christos {
1908 1.1 christos
1909 1.1 christos yy_delete_buffer (LexBuffer);
1910 1.1 christos }
1911 1.1 christos
1912 1.1 christos
1913 1.1 christos /********************************************************************************
1914 1.1 christos *
1915 1.1 christos * FUNCTION: PrDoCommentType1
1916 1.1 christos *
1917 1.1 christos * PARAMETERS: none
1918 1.1 christos *
1919 1.1 christos * RETURN: none
1920 1.1 christos *
1921 1.1 christos * DESCRIPTION: Process a new legacy comment. Just toss it.
1922 1.1 christos *
1923 1.1 christos ******************************************************************************/
1924 1.1 christos
1925 1.1 christos static char
1926 1.1 christos PrDoCommentType1 (
1927 1.1 christos void)
1928 1.1 christos {
1929 1.1 christos int c;
1930 1.1 christos
1931 1.1 christos
1932 1.1 christos Loop:
1933 1.1 christos while (((c = input ()) != '*') && (c != EOF))
1934 1.1 christos {
1935 1.1 christos }
1936 1.1 christos if (c == EOF)
1937 1.1 christos {
1938 1.1 christos return (FALSE);
1939 1.1 christos }
1940 1.1 christos
1941 1.1 christos if (((c = input ()) != '/') && (c != EOF))
1942 1.1 christos {
1943 1.1 christos unput (c);
1944 1.1 christos goto Loop;
1945 1.1 christos }
1946 1.1 christos if (c == EOF)
1947 1.1 christos {
1948 1.1 christos return (FALSE);
1949 1.1 christos }
1950 1.1 christos
1951 1.1 christos return (TRUE);
1952 1.1 christos }
1953 1.1 christos
1954 1.1 christos
1955 1.1 christos /********************************************************************************
1956 1.1 christos *
1957 1.1 christos * FUNCTION: PrDoCommentType2
1958 1.1 christos *
1959 1.1 christos * PARAMETERS: none
1960 1.1 christos *
1961 1.1 christos * RETURN: none
1962 1.1 christos *
1963 1.1 christos * DESCRIPTION: Process a new "//" comment. Just toss it.
1964 1.1 christos *
1965 1.1 christos ******************************************************************************/
1966 1.1 christos
1967 1.1 christos static char
1968 1.1 christos PrDoCommentType2 (
1969 1.1 christos void)
1970 1.1 christos {
1971 1.1 christos int c;
1972 1.1 christos
1973 1.1 christos
1974 1.1 christos while (((c = input ()) != '\n') && (c != EOF))
1975 1.1 christos {
1976 1.1 christos }
1977 1.1 christos if (c == EOF)
1978 1.1 christos {
1979 1.1 christos return (FALSE);
1980 1.1 christos }
1981 1.1 christos
1982 1.1 christos return (TRUE);
1983 1.1 christos }
1984