xref: /rk3399_rockchip-uboot/scripts/dtc/dtc-lexer.lex.c_shipped (revision d02db1fd3842d09259fc50461d901cf2569f10cf)
1d18719a4STom Rini#line 2 "dtc-lexer.lex.c"
2d18719a4STom Rini
3d18719a4STom Rini#line 4 "dtc-lexer.lex.c"
4d18719a4STom Rini
5d18719a4STom Rini#define  YY_INT_ALIGNED short int
6d18719a4STom Rini
7d18719a4STom Rini/* A lexical scanner generated by flex */
8d18719a4STom Rini
9d18719a4STom Rini#define FLEX_SCANNER
10d18719a4STom Rini#define YY_FLEX_MAJOR_VERSION 2
11*14df9b24SMasahiro Yamada#define YY_FLEX_MINOR_VERSION 6
12*14df9b24SMasahiro Yamada#define YY_FLEX_SUBMINOR_VERSION 1
13d18719a4STom Rini#if YY_FLEX_SUBMINOR_VERSION > 0
14d18719a4STom Rini#define FLEX_BETA
15d18719a4STom Rini#endif
16d18719a4STom Rini
17d18719a4STom Rini/* First, we deal with  platform-specific or compiler-specific issues. */
18d18719a4STom Rini
19d18719a4STom Rini/* begin standard C headers. */
20d18719a4STom Rini#include <stdio.h>
21d18719a4STom Rini#include <string.h>
22d18719a4STom Rini#include <errno.h>
23d18719a4STom Rini#include <stdlib.h>
24d18719a4STom Rini
25d18719a4STom Rini/* end standard C headers. */
26d18719a4STom Rini
27d18719a4STom Rini/* flex integer type definitions */
28d18719a4STom Rini
29d18719a4STom Rini#ifndef FLEXINT_H
30d18719a4STom Rini#define FLEXINT_H
31d18719a4STom Rini
32d18719a4STom Rini/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33d18719a4STom Rini
34d18719a4STom Rini#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35d18719a4STom Rini
36d18719a4STom Rini/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37d18719a4STom Rini * if you want the limit (max/min) macros for int types.
38d18719a4STom Rini */
39d18719a4STom Rini#ifndef __STDC_LIMIT_MACROS
40d18719a4STom Rini#define __STDC_LIMIT_MACROS 1
41d18719a4STom Rini#endif
42d18719a4STom Rini
43d18719a4STom Rini#include <inttypes.h>
44d18719a4STom Rinitypedef int8_t flex_int8_t;
45d18719a4STom Rinitypedef uint8_t flex_uint8_t;
46d18719a4STom Rinitypedef int16_t flex_int16_t;
47d18719a4STom Rinitypedef uint16_t flex_uint16_t;
48d18719a4STom Rinitypedef int32_t flex_int32_t;
49d18719a4STom Rinitypedef uint32_t flex_uint32_t;
50d18719a4STom Rini#else
51d18719a4STom Rinitypedef signed char flex_int8_t;
52d18719a4STom Rinitypedef short int flex_int16_t;
53d18719a4STom Rinitypedef int flex_int32_t;
54d18719a4STom Rinitypedef unsigned char flex_uint8_t;
55d18719a4STom Rinitypedef unsigned short int flex_uint16_t;
56d18719a4STom Rinitypedef unsigned int flex_uint32_t;
57d18719a4STom Rini
58d18719a4STom Rini/* Limits of integral types. */
59d18719a4STom Rini#ifndef INT8_MIN
60d18719a4STom Rini#define INT8_MIN               (-128)
61d18719a4STom Rini#endif
62d18719a4STom Rini#ifndef INT16_MIN
63d18719a4STom Rini#define INT16_MIN              (-32767-1)
64d18719a4STom Rini#endif
65d18719a4STom Rini#ifndef INT32_MIN
66d18719a4STom Rini#define INT32_MIN              (-2147483647-1)
67d18719a4STom Rini#endif
68d18719a4STom Rini#ifndef INT8_MAX
69d18719a4STom Rini#define INT8_MAX               (127)
70d18719a4STom Rini#endif
71d18719a4STom Rini#ifndef INT16_MAX
72d18719a4STom Rini#define INT16_MAX              (32767)
73d18719a4STom Rini#endif
74d18719a4STom Rini#ifndef INT32_MAX
75d18719a4STom Rini#define INT32_MAX              (2147483647)
76d18719a4STom Rini#endif
77d18719a4STom Rini#ifndef UINT8_MAX
78d18719a4STom Rini#define UINT8_MAX              (255U)
79d18719a4STom Rini#endif
80d18719a4STom Rini#ifndef UINT16_MAX
81d18719a4STom Rini#define UINT16_MAX             (65535U)
82d18719a4STom Rini#endif
83d18719a4STom Rini#ifndef UINT32_MAX
84d18719a4STom Rini#define UINT32_MAX             (4294967295U)
85d18719a4STom Rini#endif
86d18719a4STom Rini
87d18719a4STom Rini#endif /* ! C99 */
88d18719a4STom Rini
89d18719a4STom Rini#endif /* ! FLEXINT_H */
90d18719a4STom Rini
91*14df9b24SMasahiro Yamada/* TODO: this is always defined, so inline it */
92d18719a4STom Rini#define yyconst const
93*14df9b24SMasahiro Yamada
94*14df9b24SMasahiro Yamada#if defined(__GNUC__) && __GNUC__ >= 3
95*14df9b24SMasahiro Yamada#define yynoreturn __attribute__((__noreturn__))
96d18719a4STom Rini#else
97*14df9b24SMasahiro Yamada#define yynoreturn
98d18719a4STom Rini#endif
99d18719a4STom Rini
100d18719a4STom Rini/* Returned upon end-of-file. */
101d18719a4STom Rini#define YY_NULL 0
102d18719a4STom Rini
103d18719a4STom Rini/* Promotes a possibly negative, possibly signed char to an unsigned
104d18719a4STom Rini * integer for use as an array index.  If the signed char is negative,
105d18719a4STom Rini * we want to instead treat it as an 8-bit unsigned char, hence the
106d18719a4STom Rini * double cast.
107d18719a4STom Rini */
108d18719a4STom Rini#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
109d18719a4STom Rini
110d18719a4STom Rini/* Enter a start condition.  This macro really ought to take a parameter,
111d18719a4STom Rini * but we do it the disgusting crufty way forced on us by the ()-less
112d18719a4STom Rini * definition of BEGIN.
113d18719a4STom Rini */
114d18719a4STom Rini#define BEGIN (yy_start) = 1 + 2 *
115d18719a4STom Rini
116d18719a4STom Rini/* Translate the current start state into a value that can be later handed
117d18719a4STom Rini * to BEGIN to return to the state.  The YYSTATE alias is for lex
118d18719a4STom Rini * compatibility.
119d18719a4STom Rini */
120d18719a4STom Rini#define YY_START (((yy_start) - 1) / 2)
121d18719a4STom Rini#define YYSTATE YY_START
122d18719a4STom Rini
123d18719a4STom Rini/* Action number for EOF rule of a given start state. */
124d18719a4STom Rini#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
125d18719a4STom Rini
126d18719a4STom Rini/* Special action meaning "start processing a new file". */
127d18719a4STom Rini#define YY_NEW_FILE yyrestart(yyin  )
128d18719a4STom Rini
129d18719a4STom Rini#define YY_END_OF_BUFFER_CHAR 0
130d18719a4STom Rini
131d18719a4STom Rini/* Size of default input buffer. */
132d18719a4STom Rini#ifndef YY_BUF_SIZE
133d18719a4STom Rini#ifdef __ia64__
134d18719a4STom Rini/* On IA-64, the buffer size is 16k, not 8k.
135d18719a4STom Rini * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
136d18719a4STom Rini * Ditto for the __ia64__ case accordingly.
137d18719a4STom Rini */
138d18719a4STom Rini#define YY_BUF_SIZE 32768
139d18719a4STom Rini#else
140d18719a4STom Rini#define YY_BUF_SIZE 16384
141d18719a4STom Rini#endif /* __ia64__ */
142d18719a4STom Rini#endif
143d18719a4STom Rini
144d18719a4STom Rini/* The state buf must be large enough to hold one state per character in the main buffer.
145d18719a4STom Rini */
146d18719a4STom Rini#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
147d18719a4STom Rini
148d18719a4STom Rini#ifndef YY_TYPEDEF_YY_BUFFER_STATE
149d18719a4STom Rini#define YY_TYPEDEF_YY_BUFFER_STATE
150d18719a4STom Rinitypedef struct yy_buffer_state *YY_BUFFER_STATE;
151d18719a4STom Rini#endif
152d18719a4STom Rini
153*14df9b24SMasahiro Yamada#ifndef YY_TYPEDEF_YY_SIZE_T
154*14df9b24SMasahiro Yamada#define YY_TYPEDEF_YY_SIZE_T
155*14df9b24SMasahiro Yamadatypedef size_t yy_size_t;
156*14df9b24SMasahiro Yamada#endif
157*14df9b24SMasahiro Yamada
158d18719a4STom Riniextern int yyleng;
159d18719a4STom Rini
160d18719a4STom Riniextern FILE *yyin, *yyout;
161d18719a4STom Rini
162d18719a4STom Rini#define EOB_ACT_CONTINUE_SCAN 0
163d18719a4STom Rini#define EOB_ACT_END_OF_FILE 1
164d18719a4STom Rini#define EOB_ACT_LAST_MATCH 2
165d18719a4STom Rini
166d18719a4STom Rini    #define YY_LESS_LINENO(n)
167*14df9b24SMasahiro Yamada    #define YY_LINENO_REWIND_TO(ptr)
168d18719a4STom Rini
169d18719a4STom Rini/* Return all but the first "n" matched characters back to the input stream. */
170d18719a4STom Rini#define yyless(n) \
171d18719a4STom Rini	do \
172d18719a4STom Rini		{ \
173d18719a4STom Rini		/* Undo effects of setting up yytext. */ \
174d18719a4STom Rini        int yyless_macro_arg = (n); \
175d18719a4STom Rini        YY_LESS_LINENO(yyless_macro_arg);\
176d18719a4STom Rini		*yy_cp = (yy_hold_char); \
177d18719a4STom Rini		YY_RESTORE_YY_MORE_OFFSET \
178d18719a4STom Rini		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
179d18719a4STom Rini		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
180d18719a4STom Rini		} \
181d18719a4STom Rini	while ( 0 )
182d18719a4STom Rini
183d18719a4STom Rini#define unput(c) yyunput( c, (yytext_ptr)  )
184d18719a4STom Rini
185d18719a4STom Rini#ifndef YY_STRUCT_YY_BUFFER_STATE
186d18719a4STom Rini#define YY_STRUCT_YY_BUFFER_STATE
187d18719a4STom Rinistruct yy_buffer_state
188d18719a4STom Rini	{
189d18719a4STom Rini	FILE *yy_input_file;
190d18719a4STom Rini
191d18719a4STom Rini	char *yy_ch_buf;		/* input buffer */
192d18719a4STom Rini	char *yy_buf_pos;		/* current position in input buffer */
193d18719a4STom Rini
194d18719a4STom Rini	/* Size of input buffer in bytes, not including room for EOB
195d18719a4STom Rini	 * characters.
196d18719a4STom Rini	 */
197*14df9b24SMasahiro Yamada	int yy_buf_size;
198d18719a4STom Rini
199d18719a4STom Rini	/* Number of characters read into yy_ch_buf, not including EOB
200d18719a4STom Rini	 * characters.
201d18719a4STom Rini	 */
202d18719a4STom Rini	int yy_n_chars;
203d18719a4STom Rini
204d18719a4STom Rini	/* Whether we "own" the buffer - i.e., we know we created it,
205d18719a4STom Rini	 * and can realloc() it to grow it, and should free() it to
206d18719a4STom Rini	 * delete it.
207d18719a4STom Rini	 */
208d18719a4STom Rini	int yy_is_our_buffer;
209d18719a4STom Rini
210d18719a4STom Rini	/* Whether this is an "interactive" input source; if so, and
211d18719a4STom Rini	 * if we're using stdio for input, then we want to use getc()
212d18719a4STom Rini	 * instead of fread(), to make sure we stop fetching input after
213d18719a4STom Rini	 * each newline.
214d18719a4STom Rini	 */
215d18719a4STom Rini	int yy_is_interactive;
216d18719a4STom Rini
217d18719a4STom Rini	/* Whether we're considered to be at the beginning of a line.
218d18719a4STom Rini	 * If so, '^' rules will be active on the next match, otherwise
219d18719a4STom Rini	 * not.
220d18719a4STom Rini	 */
221d18719a4STom Rini	int yy_at_bol;
222d18719a4STom Rini
223d18719a4STom Rini    int yy_bs_lineno; /**< The line count. */
224d18719a4STom Rini    int yy_bs_column; /**< The column count. */
225d18719a4STom Rini
226d18719a4STom Rini	/* Whether to try to fill the input buffer when we reach the
227d18719a4STom Rini	 * end of it.
228d18719a4STom Rini	 */
229d18719a4STom Rini	int yy_fill_buffer;
230d18719a4STom Rini
231d18719a4STom Rini	int yy_buffer_status;
232d18719a4STom Rini
233d18719a4STom Rini#define YY_BUFFER_NEW 0
234d18719a4STom Rini#define YY_BUFFER_NORMAL 1
235d18719a4STom Rini	/* When an EOF's been seen but there's still some text to process
236d18719a4STom Rini	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
237d18719a4STom Rini	 * shouldn't try reading from the input source any more.  We might
238d18719a4STom Rini	 * still have a bunch of tokens to match, though, because of
239d18719a4STom Rini	 * possible backing-up.
240d18719a4STom Rini	 *
241d18719a4STom Rini	 * When we actually see the EOF, we change the status to "new"
242d18719a4STom Rini	 * (via yyrestart()), so that the user can continue scanning by
243d18719a4STom Rini	 * just pointing yyin at a new input file.
244d18719a4STom Rini	 */
245d18719a4STom Rini#define YY_BUFFER_EOF_PENDING 2
246d18719a4STom Rini
247d18719a4STom Rini	};
248d18719a4STom Rini#endif /* !YY_STRUCT_YY_BUFFER_STATE */
249d18719a4STom Rini
250d18719a4STom Rini/* Stack of input buffers. */
251d18719a4STom Rinistatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
252d18719a4STom Rinistatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
253*14df9b24SMasahiro Yamadastatic YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
254d18719a4STom Rini
255d18719a4STom Rini/* We provide macros for accessing buffer states in case in the
256d18719a4STom Rini * future we want to put the buffer states in a more general
257d18719a4STom Rini * "scanner state".
258d18719a4STom Rini *
259d18719a4STom Rini * Returns the top of the stack, or NULL.
260d18719a4STom Rini */
261d18719a4STom Rini#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
262d18719a4STom Rini                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
263d18719a4STom Rini                          : NULL)
264d18719a4STom Rini
265d18719a4STom Rini/* Same as previous macro, but useful when we know that the buffer stack is not
266d18719a4STom Rini * NULL or when we need an lvalue. For internal use only.
267d18719a4STom Rini */
268d18719a4STom Rini#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
269d18719a4STom Rini
270d18719a4STom Rini/* yy_hold_char holds the character lost when yytext is formed. */
271d18719a4STom Rinistatic char yy_hold_char;
272d18719a4STom Rinistatic int yy_n_chars;		/* number of characters read into yy_ch_buf */
273d18719a4STom Riniint yyleng;
274d18719a4STom Rini
275d18719a4STom Rini/* Points to current character in buffer. */
276*14df9b24SMasahiro Yamadastatic char *yy_c_buf_p = NULL;
277d18719a4STom Rinistatic int yy_init = 0;		/* whether we need to initialize */
278d18719a4STom Rinistatic int yy_start = 0;	/* start state number */
279d18719a4STom Rini
280d18719a4STom Rini/* Flag which is used to allow yywrap()'s to do buffer switches
281d18719a4STom Rini * instead of setting up a fresh yyin.  A bit of a hack ...
282d18719a4STom Rini */
283d18719a4STom Rinistatic int yy_did_buffer_switch_on_eof;
284d18719a4STom Rini
285d18719a4STom Rinivoid yyrestart (FILE *input_file  );
286d18719a4STom Rinivoid yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
287d18719a4STom RiniYY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
288d18719a4STom Rinivoid yy_delete_buffer (YY_BUFFER_STATE b  );
289d18719a4STom Rinivoid yy_flush_buffer (YY_BUFFER_STATE b  );
290d18719a4STom Rinivoid yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
291d18719a4STom Rinivoid yypop_buffer_state (void );
292d18719a4STom Rini
293d18719a4STom Rinistatic void yyensure_buffer_stack (void );
294d18719a4STom Rinistatic void yy_load_buffer_state (void );
295d18719a4STom Rinistatic void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
296d18719a4STom Rini
297d18719a4STom Rini#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
298d18719a4STom Rini
299d18719a4STom RiniYY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
300d18719a4STom RiniYY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
301d18719a4STom RiniYY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
302d18719a4STom Rini
303d18719a4STom Rinivoid *yyalloc (yy_size_t  );
304d18719a4STom Rinivoid *yyrealloc (void *,yy_size_t  );
305d18719a4STom Rinivoid yyfree (void *  );
306d18719a4STom Rini
307d18719a4STom Rini#define yy_new_buffer yy_create_buffer
308d18719a4STom Rini
309d18719a4STom Rini#define yy_set_interactive(is_interactive) \
310d18719a4STom Rini	{ \
311d18719a4STom Rini	if ( ! YY_CURRENT_BUFFER ){ \
312d18719a4STom Rini        yyensure_buffer_stack (); \
313d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE =    \
314d18719a4STom Rini            yy_create_buffer(yyin,YY_BUF_SIZE ); \
315d18719a4STom Rini	} \
316d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
317d18719a4STom Rini	}
318d18719a4STom Rini
319d18719a4STom Rini#define yy_set_bol(at_bol) \
320d18719a4STom Rini	{ \
321d18719a4STom Rini	if ( ! YY_CURRENT_BUFFER ){\
322d18719a4STom Rini        yyensure_buffer_stack (); \
323d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE =    \
324d18719a4STom Rini            yy_create_buffer(yyin,YY_BUF_SIZE ); \
325d18719a4STom Rini	} \
326d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
327d18719a4STom Rini	}
328d18719a4STom Rini
329d18719a4STom Rini#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
330d18719a4STom Rini
331d18719a4STom Rini/* Begin user sect3 */
332d18719a4STom Rini
333*14df9b24SMasahiro Yamada#define yywrap() (/*CONSTCOND*/1)
334d18719a4STom Rini#define YY_SKIP_YYWRAP
335d18719a4STom Rini
336d18719a4STom Rinitypedef unsigned char YY_CHAR;
337d18719a4STom Rini
338*14df9b24SMasahiro YamadaFILE *yyin = NULL, *yyout = NULL;
339d18719a4STom Rini
340d18719a4STom Rinitypedef int yy_state_type;
341d18719a4STom Rini
342d18719a4STom Riniextern int yylineno;
343d18719a4STom Rini
344d18719a4STom Riniint yylineno = 1;
345d18719a4STom Rini
346d18719a4STom Riniextern char *yytext;
347*14df9b24SMasahiro Yamada#ifdef yytext_ptr
348*14df9b24SMasahiro Yamada#undef yytext_ptr
349*14df9b24SMasahiro Yamada#endif
350d18719a4STom Rini#define yytext_ptr yytext
351d18719a4STom Rini
352d18719a4STom Rinistatic yy_state_type yy_get_previous_state (void );
353d18719a4STom Rinistatic yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
354d18719a4STom Rinistatic int yy_get_next_buffer (void );
355*14df9b24SMasahiro Yamadastatic void yynoreturn yy_fatal_error (yyconst char* msg  );
356d18719a4STom Rini
357d18719a4STom Rini/* Done after the current pattern has been matched and before the
358d18719a4STom Rini * corresponding action - sets up yytext.
359d18719a4STom Rini */
360d18719a4STom Rini#define YY_DO_BEFORE_ACTION \
361d18719a4STom Rini	(yytext_ptr) = yy_bp; \
362*14df9b24SMasahiro Yamada	yyleng = (int) (yy_cp - yy_bp); \
363d18719a4STom Rini	(yy_hold_char) = *yy_cp; \
364d18719a4STom Rini	*yy_cp = '\0'; \
365d18719a4STom Rini	(yy_c_buf_p) = yy_cp;
366d18719a4STom Rini
367d18719a4STom Rini#define YY_NUM_RULES 31
368d18719a4STom Rini#define YY_END_OF_BUFFER 32
369d18719a4STom Rini/* This struct is not used in this scanner,
370d18719a4STom Rini   but its presence is necessary. */
371d18719a4STom Rinistruct yy_trans_info
372d18719a4STom Rini	{
373d18719a4STom Rini	flex_int32_t yy_verify;
374d18719a4STom Rini	flex_int32_t yy_nxt;
375d18719a4STom Rini	};
376d18719a4STom Rinistatic yyconst flex_int16_t yy_accept[166] =
377d18719a4STom Rini    {   0,
378d18719a4STom Rini        0,    0,    0,    0,    0,    0,    0,    0,   32,   30,
379d18719a4STom Rini       19,   19,   30,   30,   30,   30,   30,   30,   30,   30,
380d18719a4STom Rini       30,   30,   30,   30,   30,   30,   16,   17,   17,   30,
381d18719a4STom Rini       17,   11,   11,   19,   27,    0,    3,    0,   28,   13,
382d18719a4STom Rini        0,    0,   12,    0,    0,    0,    0,    0,    0,    0,
383d18719a4STom Rini        0,   22,   24,   26,   25,   23,    0,   10,   29,    0,
384d18719a4STom Rini        0,    0,   15,   15,   17,   17,   17,   11,   11,   11,
385d18719a4STom Rini        0,   13,    0,   12,    0,    0,    0,   21,    0,    0,
386d18719a4STom Rini        0,    0,    0,    0,    0,    0,    0,   17,   11,   11,
387d18719a4STom Rini       11,    0,   14,   20,    0,    0,    0,    0,    0,    0,
388d18719a4STom Rini
389d18719a4STom Rini        0,    0,    0,    0,   17,    0,    0,    0,    0,    0,
390d18719a4STom Rini        0,    0,    0,    0,    0,   17,    7,    0,    0,    0,
391d18719a4STom Rini        0,    0,    0,    0,    2,    0,    0,    0,    0,    0,
392d18719a4STom Rini        0,    0,    0,    0,    4,   18,    0,    0,    5,    2,
393d18719a4STom Rini        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
394d18719a4STom Rini        0,    0,    1,    0,    0,    0,    0,    6,    9,    0,
395d18719a4STom Rini        0,    0,    0,    8,    0
396d18719a4STom Rini    } ;
397d18719a4STom Rini
398*14df9b24SMasahiro Yamadastatic yyconst YY_CHAR yy_ec[256] =
399d18719a4STom Rini    {   0,
400d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
401d18719a4STom Rini        4,    4,    4,    1,    1,    1,    1,    1,    1,    1,
402d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
403d18719a4STom Rini        1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
404d18719a4STom Rini        1,   10,   11,   11,   12,   11,   13,   14,   15,   16,
405d18719a4STom Rini       16,   16,   16,   16,   16,   16,   16,   17,    1,   18,
406d18719a4STom Rini       19,   20,   11,   11,   21,   21,   21,   21,   21,   21,
407d18719a4STom Rini       22,   22,   22,   22,   22,   23,   22,   22,   22,   22,
408d18719a4STom Rini       22,   22,   22,   22,   24,   22,   22,   25,   22,   22,
409d18719a4STom Rini        1,   26,   27,    1,   22,    1,   21,   28,   29,   30,
410d18719a4STom Rini
411d18719a4STom Rini       31,   21,   32,   22,   33,   22,   22,   34,   35,   36,
412d18719a4STom Rini       37,   38,   22,   39,   40,   41,   42,   43,   22,   25,
413d18719a4STom Rini       44,   22,   45,   46,   47,    1,    1,    1,    1,    1,
414d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
415d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
416d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
417d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
418d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
419d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
420d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
421d18719a4STom Rini
422d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
423d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
424d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
425d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
426d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
427d18719a4STom Rini        1,    1,    1,    1,    1
428d18719a4STom Rini    } ;
429d18719a4STom Rini
430*14df9b24SMasahiro Yamadastatic yyconst YY_CHAR yy_meta[48] =
431d18719a4STom Rini    {   0,
432d18719a4STom Rini        1,    1,    1,    1,    1,    1,    2,    3,    1,    2,
433d18719a4STom Rini        2,    2,    4,    5,    5,    5,    6,    1,    1,    1,
434d18719a4STom Rini        7,    8,    8,    8,    8,    1,    1,    7,    7,    7,
435d18719a4STom Rini        7,    8,    8,    8,    8,    8,    8,    8,    8,    8,
436d18719a4STom Rini        8,    8,    8,    8,    3,    1,    4
437d18719a4STom Rini    } ;
438d18719a4STom Rini
439*14df9b24SMasahiro Yamadastatic yyconst flex_uint16_t yy_base[180] =
440d18719a4STom Rini    {   0,
441d18719a4STom Rini        0,  393,   35,  392,   66,  391,   38,  107,  397,  401,
442d18719a4STom Rini       55,  113,  377,  112,  111,  111,  114,   42,  376,  106,
443d18719a4STom Rini      377,  347,  126,  120,    0,  147,  401,    0,  124,    0,
444d18719a4STom Rini      137,  158,  170,  163,  401,  153,  401,  389,  401,    0,
445d18719a4STom Rini      378,  120,  401,  131,  380,  386,  355,  139,  351,  355,
446d18719a4STom Rini      351,  401,  401,  401,  401,  401,  367,  401,  401,  185,
447d18719a4STom Rini      350,  346,  401,  364,    0,  185,  347,  189,  356,  355,
448d18719a4STom Rini        0,    0,  330,  180,  366,  141,  372,  361,  332,  338,
449d18719a4STom Rini      331,  341,  334,  326,  205,  331,  337,  329,  401,  341,
450d18719a4STom Rini      167,  316,  401,  349,  348,  320,  328,  346,  180,  318,
451d18719a4STom Rini
452d18719a4STom Rini      324,  209,  324,  320,  322,  342,  338,  309,  306,  315,
453d18719a4STom Rini      305,  315,  312,  192,  342,  341,  401,  293,  306,  282,
454d18719a4STom Rini      268,  252,  255,  203,  285,  282,  272,  268,  252,  233,
455d18719a4STom Rini      232,  239,  208,  107,  401,  401,  238,  211,  401,  211,
456d18719a4STom Rini      212,  208,  228,  203,  215,  207,  233,  222,  212,  211,
457d18719a4STom Rini      203,  227,  401,  237,  225,  204,  185,  401,  401,  149,
458d18719a4STom Rini      128,   88,   42,  401,  401,  253,  259,  267,  271,  275,
459d18719a4STom Rini      281,  288,  292,  300,  308,  312,  318,  326,  334
460d18719a4STom Rini    } ;
461d18719a4STom Rini
462d18719a4STom Rinistatic yyconst flex_int16_t yy_def[180] =
463d18719a4STom Rini    {   0,
464d18719a4STom Rini      165,    1,    1,    3,  165,    5,    1,    1,  165,  165,
465d18719a4STom Rini      165,  165,  165,  166,  167,  168,  165,  165,  165,  165,
466d18719a4STom Rini      169,  165,  165,  165,  170,  169,  165,  171,  172,  171,
467d18719a4STom Rini      171,  165,  165,  165,  165,  166,  165,  166,  165,  173,
468d18719a4STom Rini      165,  168,  165,  168,  174,  175,  165,  165,  165,  165,
469d18719a4STom Rini      165,  165,  165,  165,  165,  165,  169,  165,  165,  165,
470d18719a4STom Rini      165,  165,  165,  169,  171,  172,  171,  165,  165,  165,
471d18719a4STom Rini      176,  173,  177,  168,  174,  174,  175,  165,  165,  165,
472d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  171,  165,  165,
473d18719a4STom Rini      176,  177,  165,  165,  165,  165,  165,  165,  165,  165,
474d18719a4STom Rini
475d18719a4STom Rini      165,  165,  165,  165,  171,  165,  165,  165,  165,  165,
476d18719a4STom Rini      165,  165,  165,  178,  165,  171,  165,  165,  165,  165,
477d18719a4STom Rini      165,  165,  165,  178,  165,  178,  165,  165,  165,  165,
478d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
479d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  179,  165,  165,
480d18719a4STom Rini      165,  179,  165,  179,  165,  165,  165,  165,  165,  165,
481d18719a4STom Rini      165,  165,  165,  165,    0,  165,  165,  165,  165,  165,
482d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165
483d18719a4STom Rini    } ;
484d18719a4STom Rini
485*14df9b24SMasahiro Yamadastatic yyconst flex_uint16_t yy_nxt[449] =
486d18719a4STom Rini    {   0,
487d18719a4STom Rini       10,   11,   12,   11,   13,   14,   10,   15,   16,   10,
488d18719a4STom Rini       10,   10,   17,   10,   10,   10,   10,   18,   19,   20,
489d18719a4STom Rini       21,   21,   21,   21,   21,   10,   10,   21,   21,   21,
490d18719a4STom Rini       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
491d18719a4STom Rini       21,   21,   21,   21,   10,   22,   10,   24,   25,   25,
492d18719a4STom Rini       25,   32,   33,   33,  164,   26,   34,   34,   34,   52,
493d18719a4STom Rini       53,   27,   26,   26,   26,   26,   10,   11,   12,   11,
494d18719a4STom Rini       13,   14,   28,   15,   16,   28,   28,   28,   24,   28,
495d18719a4STom Rini       28,   28,   10,   18,   19,   20,   29,   29,   29,   29,
496d18719a4STom Rini       29,   30,   10,   29,   29,   29,   29,   29,   29,   29,
497d18719a4STom Rini
498d18719a4STom Rini       29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
499d18719a4STom Rini       10,   22,   10,   23,   34,   34,   34,   37,   39,   43,
500d18719a4STom Rini       32,   33,   33,   45,   55,   56,   46,   60,   43,   45,
501d18719a4STom Rini       65,  163,   46,   65,   65,   65,   44,   38,   60,   74,
502d18719a4STom Rini       58,   47,  141,   48,  142,   44,   49,   47,   50,   48,
503d18719a4STom Rini       76,   51,   62,   94,   50,   41,   44,   51,   37,   61,
504d18719a4STom Rini       64,   64,   64,   58,   34,   34,   34,   64,  162,   80,
505d18719a4STom Rini       67,   68,   68,   68,   64,   64,   64,   64,   38,   81,
506d18719a4STom Rini       69,   70,   71,   68,   68,   68,   60,  161,   43,   69,
507d18719a4STom Rini       70,   65,   69,   70,   65,   65,   65,  125,   85,   85,
508d18719a4STom Rini
509d18719a4STom Rini       85,   58,   68,   68,   68,   44,  102,  110,  125,  133,
510d18719a4STom Rini      102,   69,   70,  111,  114,  160,  159,  126,   85,   85,
511d18719a4STom Rini       85,  140,  140,  140,  140,  140,  140,  153,  126,  147,
512d18719a4STom Rini      147,  147,  153,  148,  147,  147,  147,  158,  148,  165,
513d18719a4STom Rini      157,  156,  155,  151,  150,  149,  146,  154,  145,  144,
514d18719a4STom Rini      143,  139,  154,   36,   36,   36,   36,   36,   36,   36,
515d18719a4STom Rini       36,   40,  138,  137,  136,   40,   40,   42,   42,   42,
516d18719a4STom Rini       42,   42,   42,   42,   42,   57,   57,   57,   57,   63,
517d18719a4STom Rini      135,   63,   65,  134,  165,   65,  133,   65,   65,   66,
518d18719a4STom Rini      132,  131,   66,   66,   66,   66,   72,  130,   72,   72,
519d18719a4STom Rini
520d18719a4STom Rini       75,   75,   75,   75,   75,   75,   75,   75,   77,   77,
521d18719a4STom Rini       77,   77,   77,   77,   77,   77,   91,  129,   91,   92,
522d18719a4STom Rini      128,   92,   92,  127,   92,   92,  124,  124,  124,  124,
523d18719a4STom Rini      124,  124,  124,  124,  152,  152,  152,  152,  152,  152,
524d18719a4STom Rini      152,  152,   60,   60,  123,  122,  121,  120,  119,  118,
525d18719a4STom Rini      117,   45,  116,  111,  115,  113,  112,  109,  108,  107,
526d18719a4STom Rini       46,  106,   93,   89,  105,  104,  103,  101,  100,   99,
527d18719a4STom Rini       98,   97,   96,   95,   78,   76,   93,   90,   89,   88,
528d18719a4STom Rini       58,   87,   86,   58,   84,   83,   82,   79,   78,   76,
529d18719a4STom Rini       73,  165,   59,   58,   54,   35,  165,   31,   23,   23,
530d18719a4STom Rini
531d18719a4STom Rini        9,  165,  165,  165,  165,  165,  165,  165,  165,  165,
532d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
533d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
534d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
535d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165
536d18719a4STom Rini    } ;
537d18719a4STom Rini
538d18719a4STom Rinistatic yyconst flex_int16_t yy_chk[449] =
539d18719a4STom Rini    {   0,
540d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
541d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
542d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
543d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
544d18719a4STom Rini        1,    1,    1,    1,    1,    1,    1,    3,    3,    3,
545d18719a4STom Rini        3,    7,    7,    7,  163,    3,   11,   11,   11,   18,
546d18719a4STom Rini       18,    3,    3,    3,    3,    3,    5,    5,    5,    5,
547d18719a4STom Rini        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
548d18719a4STom Rini        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
549d18719a4STom Rini        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
550d18719a4STom Rini
551d18719a4STom Rini        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
552d18719a4STom Rini        5,    5,    5,    8,   12,   12,   12,   14,   15,   16,
553d18719a4STom Rini        8,    8,    8,   17,   20,   20,   17,   23,   42,   24,
554d18719a4STom Rini       29,  162,   24,   29,   29,   29,   16,   14,   31,   44,
555d18719a4STom Rini       29,   17,  134,   17,  134,   42,   17,   24,   17,   24,
556d18719a4STom Rini       76,   17,   24,   76,   24,   15,   44,   24,   36,   23,
557d18719a4STom Rini       26,   26,   26,   26,   34,   34,   34,   26,  161,   48,
558d18719a4STom Rini       31,   32,   32,   32,   26,   26,   26,   26,   36,   48,
559d18719a4STom Rini       32,   32,   32,   33,   33,   33,   60,  160,   74,   91,
560d18719a4STom Rini       91,   66,   33,   33,   66,   66,   66,  114,   60,   60,
561d18719a4STom Rini
562d18719a4STom Rini       60,   66,   68,   68,   68,   74,   85,   99,  124,  133,
563d18719a4STom Rini      102,   68,   68,   99,  102,  157,  156,  114,   85,   85,
564d18719a4STom Rini       85,  133,  133,  133,  140,  140,  140,  148,  124,  143,
565d18719a4STom Rini      143,  143,  152,  143,  147,  147,  147,  155,  147,  154,
566d18719a4STom Rini      151,  150,  149,  146,  145,  144,  142,  148,  141,  138,
567d18719a4STom Rini      137,  132,  152,  166,  166,  166,  166,  166,  166,  166,
568d18719a4STom Rini      166,  167,  131,  130,  129,  167,  167,  168,  168,  168,
569d18719a4STom Rini      168,  168,  168,  168,  168,  169,  169,  169,  169,  170,
570d18719a4STom Rini      128,  170,  171,  127,  126,  171,  125,  171,  171,  172,
571d18719a4STom Rini      123,  122,  172,  172,  172,  172,  173,  121,  173,  173,
572d18719a4STom Rini
573d18719a4STom Rini      174,  174,  174,  174,  174,  174,  174,  174,  175,  175,
574d18719a4STom Rini      175,  175,  175,  175,  175,  175,  176,  120,  176,  177,
575d18719a4STom Rini      119,  177,  177,  118,  177,  177,  178,  178,  178,  178,
576d18719a4STom Rini      178,  178,  178,  178,  179,  179,  179,  179,  179,  179,
577d18719a4STom Rini      179,  179,  116,  115,  113,  112,  111,  110,  109,  108,
578d18719a4STom Rini      107,  106,  105,  104,  103,  101,  100,   98,   97,   96,
579d18719a4STom Rini       95,   94,   92,   90,   88,   87,   86,   84,   83,   82,
580d18719a4STom Rini       81,   80,   79,   78,   77,   75,   73,   70,   69,   67,
581d18719a4STom Rini       64,   62,   61,   57,   51,   50,   49,   47,   46,   45,
582d18719a4STom Rini       41,   38,   22,   21,   19,   13,    9,    6,    4,    2,
583d18719a4STom Rini
584d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
585d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
586d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
587d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
588d18719a4STom Rini      165,  165,  165,  165,  165,  165,  165,  165
589d18719a4STom Rini    } ;
590d18719a4STom Rini
591d18719a4STom Rinistatic yy_state_type yy_last_accepting_state;
592d18719a4STom Rinistatic char *yy_last_accepting_cpos;
593d18719a4STom Rini
594d18719a4STom Riniextern int yy_flex_debug;
595d18719a4STom Riniint yy_flex_debug = 0;
596d18719a4STom Rini
597d18719a4STom Rini/* The intent behind this definition is that it'll catch
598d18719a4STom Rini * any uses of REJECT which flex missed.
599d18719a4STom Rini */
600d18719a4STom Rini#define REJECT reject_used_but_not_detected
601d18719a4STom Rini#define yymore() yymore_used_but_not_detected
602d18719a4STom Rini#define YY_MORE_ADJ 0
603d18719a4STom Rini#define YY_RESTORE_YY_MORE_OFFSET
604d18719a4STom Rinichar *yytext;
605d18719a4STom Rini#line 1 "dtc-lexer.l"
606d18719a4STom Rini/*
607d18719a4STom Rini * (C) Copyright David Gibson <dwg@au1.ibm.com>, IBM Corporation.  2005.
608d18719a4STom Rini *
609d18719a4STom Rini *
610d18719a4STom Rini * This program is free software; you can redistribute it and/or
611d18719a4STom Rini * modify it under the terms of the GNU General Public License as
612d18719a4STom Rini * published by the Free Software Foundation; either version 2 of the
613d18719a4STom Rini * License, or (at your option) any later version.
614d18719a4STom Rini *
615d18719a4STom Rini *  This program is distributed in the hope that it will be useful,
616d18719a4STom Rini *  but WITHOUT ANY WARRANTY; without even the implied warranty of
617d18719a4STom Rini *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
618d18719a4STom Rini *  General Public License for more details.
619d18719a4STom Rini *
620d18719a4STom Rini *  You should have received a copy of the GNU General Public License
621d18719a4STom Rini *  along with this program; if not, write to the Free Software
622d18719a4STom Rini *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
623d18719a4STom Rini *                                                                   USA
624d18719a4STom Rini */
625d18719a4STom Rini#define YY_NO_INPUT 1
626d18719a4STom Rini
627d18719a4STom Rini
628d18719a4STom Rini
629d18719a4STom Rini#line 37 "dtc-lexer.l"
630d18719a4STom Rini#include "dtc.h"
631d18719a4STom Rini#include "srcpos.h"
632d18719a4STom Rini#include "dtc-parser.tab.h"
633d18719a4STom Rini
634d18719a4STom Riniextern bool treesource_error;
635d18719a4STom Rini
636d18719a4STom Rini/* CAUTION: this will stop working if we ever use yyless() or yyunput() */
637d18719a4STom Rini#define	YY_USER_ACTION \
638d18719a4STom Rini	{ \
639d18719a4STom Rini		srcpos_update(&yylloc, yytext, yyleng); \
640d18719a4STom Rini	}
641d18719a4STom Rini
642d18719a4STom Rini/*#define LEXDEBUG	1*/
643d18719a4STom Rini
644d18719a4STom Rini#ifdef LEXDEBUG
645d18719a4STom Rini#define DPRINT(fmt, ...)	fprintf(stderr, fmt, ##__VA_ARGS__)
646d18719a4STom Rini#else
647d18719a4STom Rini#define DPRINT(fmt, ...)	do { } while (0)
648d18719a4STom Rini#endif
649d18719a4STom Rini
650d18719a4STom Rinistatic int dts_version = 1;
651d18719a4STom Rini
652d18719a4STom Rini#define BEGIN_DEFAULT()		DPRINT("<V1>\n"); \
653d18719a4STom Rini				BEGIN(V1); \
654d18719a4STom Rini
655d18719a4STom Rinistatic void push_input_file(const char *filename);
656d18719a4STom Rinistatic bool pop_input_file(void);
657e23ffda2STom Rinistatic void PRINTF(1, 2) lexical_error(const char *fmt, ...);
658d18719a4STom Rini
659*14df9b24SMasahiro Yamada#line 661 "dtc-lexer.lex.c"
660d18719a4STom Rini
661d18719a4STom Rini#define INITIAL 0
662d18719a4STom Rini#define BYTESTRING 1
663d18719a4STom Rini#define PROPNODENAME 2
664d18719a4STom Rini#define V1 3
665d18719a4STom Rini
666d18719a4STom Rini#ifndef YY_NO_UNISTD_H
667d18719a4STom Rini/* Special case for "unistd.h", since it is non-ANSI. We include it way
668d18719a4STom Rini * down here because we want the user's section 1 to have been scanned first.
669d18719a4STom Rini * The user has a chance to override it with an option.
670d18719a4STom Rini */
671d18719a4STom Rini#include <unistd.h>
672d18719a4STom Rini#endif
673d18719a4STom Rini
674d18719a4STom Rini#ifndef YY_EXTRA_TYPE
675d18719a4STom Rini#define YY_EXTRA_TYPE void *
676d18719a4STom Rini#endif
677d18719a4STom Rini
678d18719a4STom Rinistatic int yy_init_globals (void );
679d18719a4STom Rini
680d18719a4STom Rini/* Accessor methods to globals.
681d18719a4STom Rini   These are made visible to non-reentrant scanners for convenience. */
682d18719a4STom Rini
683d18719a4STom Riniint yylex_destroy (void );
684d18719a4STom Rini
685d18719a4STom Riniint yyget_debug (void );
686d18719a4STom Rini
687d18719a4STom Rinivoid yyset_debug (int debug_flag  );
688d18719a4STom Rini
689d18719a4STom RiniYY_EXTRA_TYPE yyget_extra (void );
690d18719a4STom Rini
691d18719a4STom Rinivoid yyset_extra (YY_EXTRA_TYPE user_defined  );
692d18719a4STom Rini
693d18719a4STom RiniFILE *yyget_in (void );
694d18719a4STom Rini
695*14df9b24SMasahiro Yamadavoid yyset_in  (FILE * _in_str  );
696d18719a4STom Rini
697d18719a4STom RiniFILE *yyget_out (void );
698d18719a4STom Rini
699*14df9b24SMasahiro Yamadavoid yyset_out  (FILE * _out_str  );
700d18719a4STom Rini
701d18719a4STom Rini			int yyget_leng (void );
702d18719a4STom Rini
703d18719a4STom Rinichar *yyget_text (void );
704d18719a4STom Rini
705d18719a4STom Riniint yyget_lineno (void );
706d18719a4STom Rini
707*14df9b24SMasahiro Yamadavoid yyset_lineno (int _line_number  );
708d18719a4STom Rini
709d18719a4STom Rini/* Macros after this point can all be overridden by user definitions in
710d18719a4STom Rini * section 1.
711d18719a4STom Rini */
712d18719a4STom Rini
713d18719a4STom Rini#ifndef YY_SKIP_YYWRAP
714d18719a4STom Rini#ifdef __cplusplus
715d18719a4STom Riniextern "C" int yywrap (void );
716d18719a4STom Rini#else
717d18719a4STom Riniextern int yywrap (void );
718d18719a4STom Rini#endif
719d18719a4STom Rini#endif
720d18719a4STom Rini
721*14df9b24SMasahiro Yamada#ifndef YY_NO_UNPUT
722*14df9b24SMasahiro Yamada
723*14df9b24SMasahiro Yamada#endif
724*14df9b24SMasahiro Yamada
725d18719a4STom Rini#ifndef yytext_ptr
726d18719a4STom Rinistatic void yy_flex_strncpy (char *,yyconst char *,int );
727d18719a4STom Rini#endif
728d18719a4STom Rini
729d18719a4STom Rini#ifdef YY_NEED_STRLEN
730d18719a4STom Rinistatic int yy_flex_strlen (yyconst char * );
731d18719a4STom Rini#endif
732d18719a4STom Rini
733d18719a4STom Rini#ifndef YY_NO_INPUT
734d18719a4STom Rini
735d18719a4STom Rini#ifdef __cplusplus
736d18719a4STom Rinistatic int yyinput (void );
737d18719a4STom Rini#else
738d18719a4STom Rinistatic int input (void );
739d18719a4STom Rini#endif
740d18719a4STom Rini
741d18719a4STom Rini#endif
742d18719a4STom Rini
743d18719a4STom Rini/* Amount of stuff to slurp up with each read. */
744d18719a4STom Rini#ifndef YY_READ_BUF_SIZE
745d18719a4STom Rini#ifdef __ia64__
746d18719a4STom Rini/* On IA-64, the buffer size is 16k, not 8k */
747d18719a4STom Rini#define YY_READ_BUF_SIZE 16384
748d18719a4STom Rini#else
749d18719a4STom Rini#define YY_READ_BUF_SIZE 8192
750d18719a4STom Rini#endif /* __ia64__ */
751d18719a4STom Rini#endif
752d18719a4STom Rini
753d18719a4STom Rini/* Copy whatever the last rule matched to the standard output. */
754d18719a4STom Rini#ifndef ECHO
755d18719a4STom Rini/* This used to be an fputs(), but since the string might contain NUL's,
756d18719a4STom Rini * we now use fwrite().
757d18719a4STom Rini */
758*14df9b24SMasahiro Yamada#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
759d18719a4STom Rini#endif
760d18719a4STom Rini
761d18719a4STom Rini/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
762d18719a4STom Rini * is returned in "result".
763d18719a4STom Rini */
764d18719a4STom Rini#ifndef YY_INPUT
765d18719a4STom Rini#define YY_INPUT(buf,result,max_size) \
766d18719a4STom Rini	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
767d18719a4STom Rini		{ \
768d18719a4STom Rini		int c = '*'; \
769d18719a4STom Rini		size_t n; \
770d18719a4STom Rini		for ( n = 0; n < max_size && \
771d18719a4STom Rini			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
772d18719a4STom Rini			buf[n] = (char) c; \
773d18719a4STom Rini		if ( c == '\n' ) \
774d18719a4STom Rini			buf[n++] = (char) c; \
775d18719a4STom Rini		if ( c == EOF && ferror( yyin ) ) \
776d18719a4STom Rini			YY_FATAL_ERROR( "input in flex scanner failed" ); \
777d18719a4STom Rini		result = n; \
778d18719a4STom Rini		} \
779d18719a4STom Rini	else \
780d18719a4STom Rini		{ \
781d18719a4STom Rini		errno=0; \
782*14df9b24SMasahiro Yamada		while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
783d18719a4STom Rini			{ \
784d18719a4STom Rini			if( errno != EINTR) \
785d18719a4STom Rini				{ \
786d18719a4STom Rini				YY_FATAL_ERROR( "input in flex scanner failed" ); \
787d18719a4STom Rini				break; \
788d18719a4STom Rini				} \
789d18719a4STom Rini			errno=0; \
790d18719a4STom Rini			clearerr(yyin); \
791d18719a4STom Rini			} \
792d18719a4STom Rini		}\
793d18719a4STom Rini\
794d18719a4STom Rini
795d18719a4STom Rini#endif
796d18719a4STom Rini
797d18719a4STom Rini/* No semi-colon after return; correct usage is to write "yyterminate();" -
798d18719a4STom Rini * we don't want an extra ';' after the "return" because that will cause
799d18719a4STom Rini * some compilers to complain about unreachable statements.
800d18719a4STom Rini */
801d18719a4STom Rini#ifndef yyterminate
802d18719a4STom Rini#define yyterminate() return YY_NULL
803d18719a4STom Rini#endif
804d18719a4STom Rini
805d18719a4STom Rini/* Number of entries by which start-condition stack grows. */
806d18719a4STom Rini#ifndef YY_START_STACK_INCR
807d18719a4STom Rini#define YY_START_STACK_INCR 25
808d18719a4STom Rini#endif
809d18719a4STom Rini
810d18719a4STom Rini/* Report a fatal error. */
811d18719a4STom Rini#ifndef YY_FATAL_ERROR
812d18719a4STom Rini#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
813d18719a4STom Rini#endif
814d18719a4STom Rini
815d18719a4STom Rini/* end tables serialization structures and prototypes */
816d18719a4STom Rini
817d18719a4STom Rini/* Default declaration of generated scanner - a define so the user can
818d18719a4STom Rini * easily add parameters.
819d18719a4STom Rini */
820d18719a4STom Rini#ifndef YY_DECL
821d18719a4STom Rini#define YY_DECL_IS_OURS 1
822d18719a4STom Rini
823d18719a4STom Riniextern int yylex (void);
824d18719a4STom Rini
825d18719a4STom Rini#define YY_DECL int yylex (void)
826d18719a4STom Rini#endif /* !YY_DECL */
827d18719a4STom Rini
828d18719a4STom Rini/* Code executed at the beginning of each rule, after yytext and yyleng
829d18719a4STom Rini * have been set up.
830d18719a4STom Rini */
831d18719a4STom Rini#ifndef YY_USER_ACTION
832d18719a4STom Rini#define YY_USER_ACTION
833d18719a4STom Rini#endif
834d18719a4STom Rini
835d18719a4STom Rini/* Code executed at the end of each rule. */
836d18719a4STom Rini#ifndef YY_BREAK
837*14df9b24SMasahiro Yamada#define YY_BREAK /*LINTED*/break;
838d18719a4STom Rini#endif
839d18719a4STom Rini
840d18719a4STom Rini#define YY_RULE_SETUP \
841d18719a4STom Rini	if ( yyleng > 0 ) \
842d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
843d18719a4STom Rini				(yytext[yyleng - 1] == '\n'); \
844d18719a4STom Rini	YY_USER_ACTION
845d18719a4STom Rini
846d18719a4STom Rini/** The main scanner function which does all the work.
847d18719a4STom Rini */
848d18719a4STom RiniYY_DECL
849d18719a4STom Rini{
850*14df9b24SMasahiro Yamada	yy_state_type yy_current_state;
851*14df9b24SMasahiro Yamada	char *yy_cp, *yy_bp;
852*14df9b24SMasahiro Yamada	int yy_act;
853d18719a4STom Rini
854d18719a4STom Rini	if ( !(yy_init) )
855d18719a4STom Rini		{
856d18719a4STom Rini		(yy_init) = 1;
857d18719a4STom Rini
858d18719a4STom Rini#ifdef YY_USER_INIT
859d18719a4STom Rini		YY_USER_INIT;
860d18719a4STom Rini#endif
861d18719a4STom Rini
862d18719a4STom Rini		if ( ! (yy_start) )
863d18719a4STom Rini			(yy_start) = 1;	/* first start state */
864d18719a4STom Rini
865d18719a4STom Rini		if ( ! yyin )
866d18719a4STom Rini			yyin = stdin;
867d18719a4STom Rini
868d18719a4STom Rini		if ( ! yyout )
869d18719a4STom Rini			yyout = stdout;
870d18719a4STom Rini
871d18719a4STom Rini		if ( ! YY_CURRENT_BUFFER ) {
872d18719a4STom Rini			yyensure_buffer_stack ();
873d18719a4STom Rini			YY_CURRENT_BUFFER_LVALUE =
874d18719a4STom Rini				yy_create_buffer(yyin,YY_BUF_SIZE );
875d18719a4STom Rini		}
876d18719a4STom Rini
877d18719a4STom Rini		yy_load_buffer_state( );
878d18719a4STom Rini		}
879d18719a4STom Rini
880*14df9b24SMasahiro Yamada	{
881*14df9b24SMasahiro Yamada#line 69 "dtc-lexer.l"
882*14df9b24SMasahiro Yamada
883*14df9b24SMasahiro Yamada#line 885 "dtc-lexer.lex.c"
884*14df9b24SMasahiro Yamada
885*14df9b24SMasahiro Yamada	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
886d18719a4STom Rini		{
887d18719a4STom Rini		yy_cp = (yy_c_buf_p);
888d18719a4STom Rini
889d18719a4STom Rini		/* Support of yytext. */
890d18719a4STom Rini		*yy_cp = (yy_hold_char);
891d18719a4STom Rini
892d18719a4STom Rini		/* yy_bp points to the position in yy_ch_buf of the start of
893d18719a4STom Rini		 * the current run.
894d18719a4STom Rini		 */
895d18719a4STom Rini		yy_bp = yy_cp;
896d18719a4STom Rini
897d18719a4STom Rini		yy_current_state = (yy_start);
898d18719a4STom Rini		yy_current_state += YY_AT_BOL();
899d18719a4STom Riniyy_match:
900d18719a4STom Rini		do
901d18719a4STom Rini			{
902*14df9b24SMasahiro Yamada			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
903d18719a4STom Rini			if ( yy_accept[yy_current_state] )
904d18719a4STom Rini				{
905d18719a4STom Rini				(yy_last_accepting_state) = yy_current_state;
906d18719a4STom Rini				(yy_last_accepting_cpos) = yy_cp;
907d18719a4STom Rini				}
908d18719a4STom Rini			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
909d18719a4STom Rini				{
910d18719a4STom Rini				yy_current_state = (int) yy_def[yy_current_state];
911d18719a4STom Rini				if ( yy_current_state >= 166 )
912d18719a4STom Rini					yy_c = yy_meta[(unsigned int) yy_c];
913d18719a4STom Rini				}
914*14df9b24SMasahiro Yamada			yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
915d18719a4STom Rini			++yy_cp;
916d18719a4STom Rini			}
917d18719a4STom Rini		while ( yy_current_state != 165 );
918d18719a4STom Rini		yy_cp = (yy_last_accepting_cpos);
919d18719a4STom Rini		yy_current_state = (yy_last_accepting_state);
920d18719a4STom Rini
921d18719a4STom Riniyy_find_action:
922d18719a4STom Rini		yy_act = yy_accept[yy_current_state];
923d18719a4STom Rini
924d18719a4STom Rini		YY_DO_BEFORE_ACTION;
925d18719a4STom Rini
926d18719a4STom Rinido_action:	/* This label is used only to access EOF actions. */
927d18719a4STom Rini
928d18719a4STom Rini		switch ( yy_act )
929d18719a4STom Rini	{ /* beginning of action switch */
930d18719a4STom Rini			case 0: /* must back up */
931d18719a4STom Rini			/* undo the effects of YY_DO_BEFORE_ACTION */
932d18719a4STom Rini			*yy_cp = (yy_hold_char);
933d18719a4STom Rini			yy_cp = (yy_last_accepting_cpos);
934d18719a4STom Rini			yy_current_state = (yy_last_accepting_state);
935d18719a4STom Rini			goto yy_find_action;
936d18719a4STom Rini
937d18719a4STom Rinicase 1:
938d18719a4STom Rini/* rule 1 can match eol */
939d18719a4STom RiniYY_RULE_SETUP
940e23ffda2STom Rini#line 70 "dtc-lexer.l"
941d18719a4STom Rini{
942d18719a4STom Rini			char *name = strchr(yytext, '\"') + 1;
943d18719a4STom Rini			yytext[yyleng-1] = '\0';
944d18719a4STom Rini			push_input_file(name);
945d18719a4STom Rini		}
946d18719a4STom Rini	YY_BREAK
947d18719a4STom Rinicase 2:
948d18719a4STom Rini/* rule 2 can match eol */
949d18719a4STom RiniYY_RULE_SETUP
950e23ffda2STom Rini#line 76 "dtc-lexer.l"
951d18719a4STom Rini{
952d18719a4STom Rini			char *line, *fnstart, *fnend;
953d18719a4STom Rini			struct data fn;
954d18719a4STom Rini			/* skip text before line # */
955d18719a4STom Rini			line = yytext;
956d18719a4STom Rini			while (!isdigit((unsigned char)*line))
957d18719a4STom Rini				line++;
958d18719a4STom Rini
959d18719a4STom Rini			/* regexp ensures that first and list "
960d18719a4STom Rini			 * in the whole yytext are those at
961d18719a4STom Rini			 * beginning and end of the filename string */
962d18719a4STom Rini			fnstart = memchr(yytext, '"', yyleng);
963d18719a4STom Rini			for (fnend = yytext + yyleng - 1;
964d18719a4STom Rini			     *fnend != '"'; fnend--)
965d18719a4STom Rini				;
966d18719a4STom Rini			assert(fnstart && fnend && (fnend > fnstart));
967d18719a4STom Rini
968d18719a4STom Rini			fn = data_copy_escape_string(fnstart + 1,
969d18719a4STom Rini						     fnend - fnstart - 1);
970d18719a4STom Rini
971d18719a4STom Rini			/* Don't allow nuls in filenames */
972d18719a4STom Rini			if (memchr(fn.val, '\0', fn.len - 1))
973d18719a4STom Rini				lexical_error("nul in line number directive");
974d18719a4STom Rini
975d18719a4STom Rini			/* -1 since #line is the number of the next line */
976d18719a4STom Rini			srcpos_set_line(xstrdup(fn.val), atoi(line) - 1);
977d18719a4STom Rini			data_free(fn);
978d18719a4STom Rini		}
979d18719a4STom Rini	YY_BREAK
980d18719a4STom Rinicase YY_STATE_EOF(INITIAL):
981d18719a4STom Rinicase YY_STATE_EOF(BYTESTRING):
982d18719a4STom Rinicase YY_STATE_EOF(PROPNODENAME):
983d18719a4STom Rinicase YY_STATE_EOF(V1):
984e23ffda2STom Rini#line 105 "dtc-lexer.l"
985d18719a4STom Rini{
986d18719a4STom Rini			if (!pop_input_file()) {
987d18719a4STom Rini				yyterminate();
988d18719a4STom Rini			}
989d18719a4STom Rini		}
990d18719a4STom Rini	YY_BREAK
991d18719a4STom Rinicase 3:
992d18719a4STom Rini/* rule 3 can match eol */
993d18719a4STom RiniYY_RULE_SETUP
994e23ffda2STom Rini#line 111 "dtc-lexer.l"
995d18719a4STom Rini{
996d18719a4STom Rini			DPRINT("String: %s\n", yytext);
997d18719a4STom Rini			yylval.data = data_copy_escape_string(yytext+1,
998d18719a4STom Rini					yyleng-2);
999d18719a4STom Rini			return DT_STRING;
1000d18719a4STom Rini		}
1001d18719a4STom Rini	YY_BREAK
1002d18719a4STom Rinicase 4:
1003d18719a4STom RiniYY_RULE_SETUP
1004e23ffda2STom Rini#line 118 "dtc-lexer.l"
1005d18719a4STom Rini{
1006d18719a4STom Rini			DPRINT("Keyword: /dts-v1/\n");
1007d18719a4STom Rini			dts_version = 1;
1008d18719a4STom Rini			BEGIN_DEFAULT();
1009d18719a4STom Rini			return DT_V1;
1010d18719a4STom Rini		}
1011d18719a4STom Rini	YY_BREAK
1012d18719a4STom Rinicase 5:
1013d18719a4STom RiniYY_RULE_SETUP
1014e23ffda2STom Rini#line 125 "dtc-lexer.l"
1015d18719a4STom Rini{
1016d18719a4STom Rini			DPRINT("Keyword: /plugin/\n");
1017d18719a4STom Rini			return DT_PLUGIN;
1018d18719a4STom Rini		}
1019d18719a4STom Rini	YY_BREAK
1020d18719a4STom Rinicase 6:
1021d18719a4STom RiniYY_RULE_SETUP
1022e23ffda2STom Rini#line 130 "dtc-lexer.l"
1023d18719a4STom Rini{
1024d18719a4STom Rini			DPRINT("Keyword: /memreserve/\n");
1025d18719a4STom Rini			BEGIN_DEFAULT();
1026d18719a4STom Rini			return DT_MEMRESERVE;
1027d18719a4STom Rini		}
1028d18719a4STom Rini	YY_BREAK
1029d18719a4STom Rinicase 7:
1030d18719a4STom RiniYY_RULE_SETUP
1031e23ffda2STom Rini#line 136 "dtc-lexer.l"
1032d18719a4STom Rini{
1033d18719a4STom Rini			DPRINT("Keyword: /bits/\n");
1034d18719a4STom Rini			BEGIN_DEFAULT();
1035d18719a4STom Rini			return DT_BITS;
1036d18719a4STom Rini		}
1037d18719a4STom Rini	YY_BREAK
1038d18719a4STom Rinicase 8:
1039d18719a4STom RiniYY_RULE_SETUP
1040e23ffda2STom Rini#line 142 "dtc-lexer.l"
1041d18719a4STom Rini{
1042d18719a4STom Rini			DPRINT("Keyword: /delete-property/\n");
1043d18719a4STom Rini			DPRINT("<PROPNODENAME>\n");
1044d18719a4STom Rini			BEGIN(PROPNODENAME);
1045d18719a4STom Rini			return DT_DEL_PROP;
1046d18719a4STom Rini		}
1047d18719a4STom Rini	YY_BREAK
1048d18719a4STom Rinicase 9:
1049d18719a4STom RiniYY_RULE_SETUP
1050e23ffda2STom Rini#line 149 "dtc-lexer.l"
1051d18719a4STom Rini{
1052d18719a4STom Rini			DPRINT("Keyword: /delete-node/\n");
1053d18719a4STom Rini			DPRINT("<PROPNODENAME>\n");
1054d18719a4STom Rini			BEGIN(PROPNODENAME);
1055d18719a4STom Rini			return DT_DEL_NODE;
1056d18719a4STom Rini		}
1057d18719a4STom Rini	YY_BREAK
1058d18719a4STom Rinicase 10:
1059d18719a4STom RiniYY_RULE_SETUP
1060e23ffda2STom Rini#line 156 "dtc-lexer.l"
1061d18719a4STom Rini{
1062d18719a4STom Rini			DPRINT("Label: %s\n", yytext);
1063d18719a4STom Rini			yylval.labelref = xstrdup(yytext);
1064d18719a4STom Rini			yylval.labelref[yyleng-1] = '\0';
1065d18719a4STom Rini			return DT_LABEL;
1066d18719a4STom Rini		}
1067d18719a4STom Rini	YY_BREAK
1068d18719a4STom Rinicase 11:
1069d18719a4STom RiniYY_RULE_SETUP
1070e23ffda2STom Rini#line 163 "dtc-lexer.l"
1071d18719a4STom Rini{
1072d18719a4STom Rini			char *e;
1073d18719a4STom Rini			DPRINT("Integer Literal: '%s'\n", yytext);
1074d18719a4STom Rini
1075d18719a4STom Rini			errno = 0;
1076d18719a4STom Rini			yylval.integer = strtoull(yytext, &e, 0);
1077d18719a4STom Rini
1078d18719a4STom Rini			if (*e && e[strspn(e, "UL")]) {
1079d18719a4STom Rini				lexical_error("Bad integer literal '%s'",
1080d18719a4STom Rini					      yytext);
1081d18719a4STom Rini			}
1082d18719a4STom Rini
1083d18719a4STom Rini			if (errno == ERANGE)
1084d18719a4STom Rini				lexical_error("Integer literal '%s' out of range",
1085d18719a4STom Rini					      yytext);
1086d18719a4STom Rini			else
1087d18719a4STom Rini				/* ERANGE is the only strtoull error triggerable
1088d18719a4STom Rini				 *  by strings matching the pattern */
1089d18719a4STom Rini				assert(errno == 0);
1090d18719a4STom Rini			return DT_LITERAL;
1091d18719a4STom Rini		}
1092d18719a4STom Rini	YY_BREAK
1093d18719a4STom Rinicase 12:
1094d18719a4STom Rini/* rule 12 can match eol */
1095d18719a4STom RiniYY_RULE_SETUP
1096e23ffda2STom Rini#line 185 "dtc-lexer.l"
1097d18719a4STom Rini{
1098d18719a4STom Rini			struct data d;
1099d18719a4STom Rini			DPRINT("Character literal: %s\n", yytext);
1100d18719a4STom Rini
1101d18719a4STom Rini			d = data_copy_escape_string(yytext+1, yyleng-2);
1102d18719a4STom Rini			if (d.len == 1) {
1103d18719a4STom Rini				lexical_error("Empty character literal");
1104d18719a4STom Rini				yylval.integer = 0;
1105d18719a4STom Rini			} else {
1106d18719a4STom Rini				yylval.integer = (unsigned char)d.val[0];
1107d18719a4STom Rini
1108d18719a4STom Rini				if (d.len > 2)
1109d18719a4STom Rini					lexical_error("Character literal has %d"
1110d18719a4STom Rini						      " characters instead of 1",
1111d18719a4STom Rini						      d.len - 1);
1112d18719a4STom Rini			}
1113d18719a4STom Rini
1114d18719a4STom Rini			data_free(d);
1115d18719a4STom Rini			return DT_CHAR_LITERAL;
1116d18719a4STom Rini		}
1117d18719a4STom Rini	YY_BREAK
1118d18719a4STom Rinicase 13:
1119d18719a4STom RiniYY_RULE_SETUP
1120e23ffda2STom Rini#line 206 "dtc-lexer.l"
1121d18719a4STom Rini{	/* label reference */
1122d18719a4STom Rini			DPRINT("Ref: %s\n", yytext+1);
1123d18719a4STom Rini			yylval.labelref = xstrdup(yytext+1);
1124d18719a4STom Rini			return DT_REF;
1125d18719a4STom Rini		}
1126d18719a4STom Rini	YY_BREAK
1127d18719a4STom Rinicase 14:
1128d18719a4STom RiniYY_RULE_SETUP
1129e23ffda2STom Rini#line 212 "dtc-lexer.l"
1130d18719a4STom Rini{	/* new-style path reference */
1131d18719a4STom Rini			yytext[yyleng-1] = '\0';
1132d18719a4STom Rini			DPRINT("Ref: %s\n", yytext+2);
1133d18719a4STom Rini			yylval.labelref = xstrdup(yytext+2);
1134d18719a4STom Rini			return DT_REF;
1135d18719a4STom Rini		}
1136d18719a4STom Rini	YY_BREAK
1137d18719a4STom Rinicase 15:
1138d18719a4STom RiniYY_RULE_SETUP
1139e23ffda2STom Rini#line 219 "dtc-lexer.l"
1140d18719a4STom Rini{
1141d18719a4STom Rini			yylval.byte = strtol(yytext, NULL, 16);
1142d18719a4STom Rini			DPRINT("Byte: %02x\n", (int)yylval.byte);
1143d18719a4STom Rini			return DT_BYTE;
1144d18719a4STom Rini		}
1145d18719a4STom Rini	YY_BREAK
1146d18719a4STom Rinicase 16:
1147d18719a4STom RiniYY_RULE_SETUP
1148e23ffda2STom Rini#line 225 "dtc-lexer.l"
1149d18719a4STom Rini{
1150d18719a4STom Rini			DPRINT("/BYTESTRING\n");
1151d18719a4STom Rini			BEGIN_DEFAULT();
1152d18719a4STom Rini			return ']';
1153d18719a4STom Rini		}
1154d18719a4STom Rini	YY_BREAK
1155d18719a4STom Rinicase 17:
1156d18719a4STom RiniYY_RULE_SETUP
1157e23ffda2STom Rini#line 231 "dtc-lexer.l"
1158d18719a4STom Rini{
1159d18719a4STom Rini			DPRINT("PropNodeName: %s\n", yytext);
1160d18719a4STom Rini			yylval.propnodename = xstrdup((yytext[0] == '\\') ?
1161d18719a4STom Rini							yytext + 1 : yytext);
1162d18719a4STom Rini			BEGIN_DEFAULT();
1163d18719a4STom Rini			return DT_PROPNODENAME;
1164d18719a4STom Rini		}
1165d18719a4STom Rini	YY_BREAK
1166d18719a4STom Rinicase 18:
1167d18719a4STom RiniYY_RULE_SETUP
1168e23ffda2STom Rini#line 239 "dtc-lexer.l"
1169d18719a4STom Rini{
1170d18719a4STom Rini			DPRINT("Binary Include\n");
1171d18719a4STom Rini			return DT_INCBIN;
1172d18719a4STom Rini		}
1173d18719a4STom Rini	YY_BREAK
1174d18719a4STom Rinicase 19:
1175d18719a4STom Rini/* rule 19 can match eol */
1176d18719a4STom RiniYY_RULE_SETUP
1177e23ffda2STom Rini#line 244 "dtc-lexer.l"
1178d18719a4STom Rini/* eat whitespace */
1179d18719a4STom Rini	YY_BREAK
1180d18719a4STom Rinicase 20:
1181d18719a4STom Rini/* rule 20 can match eol */
1182d18719a4STom RiniYY_RULE_SETUP
1183e23ffda2STom Rini#line 245 "dtc-lexer.l"
1184d18719a4STom Rini/* eat C-style comments */
1185d18719a4STom Rini	YY_BREAK
1186d18719a4STom Rinicase 21:
1187d18719a4STom Rini/* rule 21 can match eol */
1188d18719a4STom RiniYY_RULE_SETUP
1189e23ffda2STom Rini#line 246 "dtc-lexer.l"
1190d18719a4STom Rini/* eat C++-style comments */
1191d18719a4STom Rini	YY_BREAK
1192d18719a4STom Rinicase 22:
1193d18719a4STom RiniYY_RULE_SETUP
1194e23ffda2STom Rini#line 248 "dtc-lexer.l"
1195d18719a4STom Rini{ return DT_LSHIFT; };
1196d18719a4STom Rini	YY_BREAK
1197d18719a4STom Rinicase 23:
1198d18719a4STom RiniYY_RULE_SETUP
1199e23ffda2STom Rini#line 249 "dtc-lexer.l"
1200d18719a4STom Rini{ return DT_RSHIFT; };
1201d18719a4STom Rini	YY_BREAK
1202d18719a4STom Rinicase 24:
1203d18719a4STom RiniYY_RULE_SETUP
1204e23ffda2STom Rini#line 250 "dtc-lexer.l"
1205d18719a4STom Rini{ return DT_LE; };
1206d18719a4STom Rini	YY_BREAK
1207d18719a4STom Rinicase 25:
1208d18719a4STom RiniYY_RULE_SETUP
1209e23ffda2STom Rini#line 251 "dtc-lexer.l"
1210d18719a4STom Rini{ return DT_GE; };
1211d18719a4STom Rini	YY_BREAK
1212d18719a4STom Rinicase 26:
1213d18719a4STom RiniYY_RULE_SETUP
1214e23ffda2STom Rini#line 252 "dtc-lexer.l"
1215d18719a4STom Rini{ return DT_EQ; };
1216d18719a4STom Rini	YY_BREAK
1217d18719a4STom Rinicase 27:
1218d18719a4STom RiniYY_RULE_SETUP
1219e23ffda2STom Rini#line 253 "dtc-lexer.l"
1220d18719a4STom Rini{ return DT_NE; };
1221d18719a4STom Rini	YY_BREAK
1222d18719a4STom Rinicase 28:
1223d18719a4STom RiniYY_RULE_SETUP
1224e23ffda2STom Rini#line 254 "dtc-lexer.l"
1225d18719a4STom Rini{ return DT_AND; };
1226d18719a4STom Rini	YY_BREAK
1227d18719a4STom Rinicase 29:
1228d18719a4STom RiniYY_RULE_SETUP
1229e23ffda2STom Rini#line 255 "dtc-lexer.l"
1230d18719a4STom Rini{ return DT_OR; };
1231d18719a4STom Rini	YY_BREAK
1232d18719a4STom Rinicase 30:
1233d18719a4STom RiniYY_RULE_SETUP
1234e23ffda2STom Rini#line 257 "dtc-lexer.l"
1235d18719a4STom Rini{
1236d18719a4STom Rini			DPRINT("Char: %c (\\x%02x)\n", yytext[0],
1237d18719a4STom Rini				(unsigned)yytext[0]);
1238d18719a4STom Rini			if (yytext[0] == '[') {
1239d18719a4STom Rini				DPRINT("<BYTESTRING>\n");
1240d18719a4STom Rini				BEGIN(BYTESTRING);
1241d18719a4STom Rini			}
1242d18719a4STom Rini			if ((yytext[0] == '{')
1243d18719a4STom Rini			    || (yytext[0] == ';')) {
1244d18719a4STom Rini				DPRINT("<PROPNODENAME>\n");
1245d18719a4STom Rini				BEGIN(PROPNODENAME);
1246d18719a4STom Rini			}
1247d18719a4STom Rini			return yytext[0];
1248d18719a4STom Rini		}
1249d18719a4STom Rini	YY_BREAK
1250d18719a4STom Rinicase 31:
1251d18719a4STom RiniYY_RULE_SETUP
1252e23ffda2STom Rini#line 272 "dtc-lexer.l"
1253d18719a4STom RiniECHO;
1254d18719a4STom Rini	YY_BREAK
1255*14df9b24SMasahiro Yamada#line 1257 "dtc-lexer.lex.c"
1256d18719a4STom Rini
1257d18719a4STom Rini	case YY_END_OF_BUFFER:
1258d18719a4STom Rini		{
1259d18719a4STom Rini		/* Amount of text matched not including the EOB char. */
1260d18719a4STom Rini		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1261d18719a4STom Rini
1262d18719a4STom Rini		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1263d18719a4STom Rini		*yy_cp = (yy_hold_char);
1264d18719a4STom Rini		YY_RESTORE_YY_MORE_OFFSET
1265d18719a4STom Rini
1266d18719a4STom Rini		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1267d18719a4STom Rini			{
1268d18719a4STom Rini			/* We're scanning a new file or input source.  It's
1269d18719a4STom Rini			 * possible that this happened because the user
1270d18719a4STom Rini			 * just pointed yyin at a new source and called
1271d18719a4STom Rini			 * yylex().  If so, then we have to assure
1272d18719a4STom Rini			 * consistency between YY_CURRENT_BUFFER and our
1273d18719a4STom Rini			 * globals.  Here is the right place to do so, because
1274d18719a4STom Rini			 * this is the first action (other than possibly a
1275d18719a4STom Rini			 * back-up) that will match for the new input source.
1276d18719a4STom Rini			 */
1277d18719a4STom Rini			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1278d18719a4STom Rini			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1279d18719a4STom Rini			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1280d18719a4STom Rini			}
1281d18719a4STom Rini
1282d18719a4STom Rini		/* Note that here we test for yy_c_buf_p "<=" to the position
1283d18719a4STom Rini		 * of the first EOB in the buffer, since yy_c_buf_p will
1284d18719a4STom Rini		 * already have been incremented past the NUL character
1285d18719a4STom Rini		 * (since all states make transitions on EOB to the
1286d18719a4STom Rini		 * end-of-buffer state).  Contrast this with the test
1287d18719a4STom Rini		 * in input().
1288d18719a4STom Rini		 */
1289d18719a4STom Rini		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1290d18719a4STom Rini			{ /* This was really a NUL. */
1291d18719a4STom Rini			yy_state_type yy_next_state;
1292d18719a4STom Rini
1293d18719a4STom Rini			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1294d18719a4STom Rini
1295d18719a4STom Rini			yy_current_state = yy_get_previous_state(  );
1296d18719a4STom Rini
1297d18719a4STom Rini			/* Okay, we're now positioned to make the NUL
1298d18719a4STom Rini			 * transition.  We couldn't have
1299d18719a4STom Rini			 * yy_get_previous_state() go ahead and do it
1300d18719a4STom Rini			 * for us because it doesn't know how to deal
1301d18719a4STom Rini			 * with the possibility of jamming (and we don't
1302d18719a4STom Rini			 * want to build jamming into it because then it
1303d18719a4STom Rini			 * will run more slowly).
1304d18719a4STom Rini			 */
1305d18719a4STom Rini
1306d18719a4STom Rini			yy_next_state = yy_try_NUL_trans( yy_current_state );
1307d18719a4STom Rini
1308d18719a4STom Rini			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1309d18719a4STom Rini
1310d18719a4STom Rini			if ( yy_next_state )
1311d18719a4STom Rini				{
1312d18719a4STom Rini				/* Consume the NUL. */
1313d18719a4STom Rini				yy_cp = ++(yy_c_buf_p);
1314d18719a4STom Rini				yy_current_state = yy_next_state;
1315d18719a4STom Rini				goto yy_match;
1316d18719a4STom Rini				}
1317d18719a4STom Rini
1318d18719a4STom Rini			else
1319d18719a4STom Rini				{
1320d18719a4STom Rini				yy_cp = (yy_last_accepting_cpos);
1321d18719a4STom Rini				yy_current_state = (yy_last_accepting_state);
1322d18719a4STom Rini				goto yy_find_action;
1323d18719a4STom Rini				}
1324d18719a4STom Rini			}
1325d18719a4STom Rini
1326d18719a4STom Rini		else switch ( yy_get_next_buffer(  ) )
1327d18719a4STom Rini			{
1328d18719a4STom Rini			case EOB_ACT_END_OF_FILE:
1329d18719a4STom Rini				{
1330d18719a4STom Rini				(yy_did_buffer_switch_on_eof) = 0;
1331d18719a4STom Rini
1332d18719a4STom Rini				if ( yywrap( ) )
1333d18719a4STom Rini					{
1334d18719a4STom Rini					/* Note: because we've taken care in
1335d18719a4STom Rini					 * yy_get_next_buffer() to have set up
1336d18719a4STom Rini					 * yytext, we can now set up
1337d18719a4STom Rini					 * yy_c_buf_p so that if some total
1338d18719a4STom Rini					 * hoser (like flex itself) wants to
1339d18719a4STom Rini					 * call the scanner after we return the
1340d18719a4STom Rini					 * YY_NULL, it'll still work - another
1341d18719a4STom Rini					 * YY_NULL will get returned.
1342d18719a4STom Rini					 */
1343d18719a4STom Rini					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1344d18719a4STom Rini
1345d18719a4STom Rini					yy_act = YY_STATE_EOF(YY_START);
1346d18719a4STom Rini					goto do_action;
1347d18719a4STom Rini					}
1348d18719a4STom Rini
1349d18719a4STom Rini				else
1350d18719a4STom Rini					{
1351d18719a4STom Rini					if ( ! (yy_did_buffer_switch_on_eof) )
1352d18719a4STom Rini						YY_NEW_FILE;
1353d18719a4STom Rini					}
1354d18719a4STom Rini				break;
1355d18719a4STom Rini				}
1356d18719a4STom Rini
1357d18719a4STom Rini			case EOB_ACT_CONTINUE_SCAN:
1358d18719a4STom Rini				(yy_c_buf_p) =
1359d18719a4STom Rini					(yytext_ptr) + yy_amount_of_matched_text;
1360d18719a4STom Rini
1361d18719a4STom Rini				yy_current_state = yy_get_previous_state(  );
1362d18719a4STom Rini
1363d18719a4STom Rini				yy_cp = (yy_c_buf_p);
1364d18719a4STom Rini				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1365d18719a4STom Rini				goto yy_match;
1366d18719a4STom Rini
1367d18719a4STom Rini			case EOB_ACT_LAST_MATCH:
1368d18719a4STom Rini				(yy_c_buf_p) =
1369d18719a4STom Rini				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1370d18719a4STom Rini
1371d18719a4STom Rini				yy_current_state = yy_get_previous_state(  );
1372d18719a4STom Rini
1373d18719a4STom Rini				yy_cp = (yy_c_buf_p);
1374d18719a4STom Rini				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1375d18719a4STom Rini				goto yy_find_action;
1376d18719a4STom Rini			}
1377d18719a4STom Rini		break;
1378d18719a4STom Rini		}
1379d18719a4STom Rini
1380d18719a4STom Rini	default:
1381d18719a4STom Rini		YY_FATAL_ERROR(
1382d18719a4STom Rini			"fatal flex scanner internal error--no action found" );
1383d18719a4STom Rini	} /* end of action switch */
1384d18719a4STom Rini		} /* end of scanning one token */
1385*14df9b24SMasahiro Yamada	} /* end of user's declarations */
1386d18719a4STom Rini} /* end of yylex */
1387d18719a4STom Rini
1388d18719a4STom Rini/* yy_get_next_buffer - try to read in a new buffer
1389d18719a4STom Rini *
1390d18719a4STom Rini * Returns a code representing an action:
1391d18719a4STom Rini *	EOB_ACT_LAST_MATCH -
1392d18719a4STom Rini *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1393d18719a4STom Rini *	EOB_ACT_END_OF_FILE - end of file
1394d18719a4STom Rini */
1395d18719a4STom Rinistatic int yy_get_next_buffer (void)
1396d18719a4STom Rini{
1397*14df9b24SMasahiro Yamada    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1398*14df9b24SMasahiro Yamada	char *source = (yytext_ptr);
1399*14df9b24SMasahiro Yamada	int number_to_move, i;
1400d18719a4STom Rini	int ret_val;
1401d18719a4STom Rini
1402d18719a4STom Rini	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1403d18719a4STom Rini		YY_FATAL_ERROR(
1404d18719a4STom Rini		"fatal flex scanner internal error--end of buffer missed" );
1405d18719a4STom Rini
1406d18719a4STom Rini	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1407d18719a4STom Rini		{ /* Don't try to fill the buffer, so this is an EOF. */
1408d18719a4STom Rini		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1409d18719a4STom Rini			{
1410d18719a4STom Rini			/* We matched a single character, the EOB, so
1411d18719a4STom Rini			 * treat this as a final EOF.
1412d18719a4STom Rini			 */
1413d18719a4STom Rini			return EOB_ACT_END_OF_FILE;
1414d18719a4STom Rini			}
1415d18719a4STom Rini
1416d18719a4STom Rini		else
1417d18719a4STom Rini			{
1418d18719a4STom Rini			/* We matched some text prior to the EOB, first
1419d18719a4STom Rini			 * process it.
1420d18719a4STom Rini			 */
1421d18719a4STom Rini			return EOB_ACT_LAST_MATCH;
1422d18719a4STom Rini			}
1423d18719a4STom Rini		}
1424d18719a4STom Rini
1425d18719a4STom Rini	/* Try to read more data. */
1426d18719a4STom Rini
1427d18719a4STom Rini	/* First move last chars to start of buffer. */
1428*14df9b24SMasahiro Yamada	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
1429d18719a4STom Rini
1430d18719a4STom Rini	for ( i = 0; i < number_to_move; ++i )
1431d18719a4STom Rini		*(dest++) = *(source++);
1432d18719a4STom Rini
1433d18719a4STom Rini	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1434d18719a4STom Rini		/* don't do the read, it's not guaranteed to return an EOF,
1435d18719a4STom Rini		 * just force an EOF
1436d18719a4STom Rini		 */
1437d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1438d18719a4STom Rini
1439d18719a4STom Rini	else
1440d18719a4STom Rini		{
1441d18719a4STom Rini			int num_to_read =
1442d18719a4STom Rini			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1443d18719a4STom Rini
1444d18719a4STom Rini		while ( num_to_read <= 0 )
1445d18719a4STom Rini			{ /* Not enough room in the buffer - grow it. */
1446d18719a4STom Rini
1447d18719a4STom Rini			/* just a shorter name for the current buffer */
1448*14df9b24SMasahiro Yamada			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1449d18719a4STom Rini
1450d18719a4STom Rini			int yy_c_buf_p_offset =
1451d18719a4STom Rini				(int) ((yy_c_buf_p) - b->yy_ch_buf);
1452d18719a4STom Rini
1453d18719a4STom Rini			if ( b->yy_is_our_buffer )
1454d18719a4STom Rini				{
1455d18719a4STom Rini				int new_size = b->yy_buf_size * 2;
1456d18719a4STom Rini
1457d18719a4STom Rini				if ( new_size <= 0 )
1458d18719a4STom Rini					b->yy_buf_size += b->yy_buf_size / 8;
1459d18719a4STom Rini				else
1460d18719a4STom Rini					b->yy_buf_size *= 2;
1461d18719a4STom Rini
1462d18719a4STom Rini				b->yy_ch_buf = (char *)
1463d18719a4STom Rini					/* Include room in for 2 EOB chars. */
1464d18719a4STom Rini					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1465d18719a4STom Rini				}
1466d18719a4STom Rini			else
1467d18719a4STom Rini				/* Can't grow it, we don't own it. */
1468*14df9b24SMasahiro Yamada				b->yy_ch_buf = NULL;
1469d18719a4STom Rini
1470d18719a4STom Rini			if ( ! b->yy_ch_buf )
1471d18719a4STom Rini				YY_FATAL_ERROR(
1472d18719a4STom Rini				"fatal error - scanner input buffer overflow" );
1473d18719a4STom Rini
1474d18719a4STom Rini			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1475d18719a4STom Rini
1476d18719a4STom Rini			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1477d18719a4STom Rini						number_to_move - 1;
1478d18719a4STom Rini
1479d18719a4STom Rini			}
1480d18719a4STom Rini
1481d18719a4STom Rini		if ( num_to_read > YY_READ_BUF_SIZE )
1482d18719a4STom Rini			num_to_read = YY_READ_BUF_SIZE;
1483d18719a4STom Rini
1484d18719a4STom Rini		/* Read in more data. */
1485d18719a4STom Rini		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1486*14df9b24SMasahiro Yamada			(yy_n_chars), num_to_read );
1487d18719a4STom Rini
1488d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1489d18719a4STom Rini		}
1490d18719a4STom Rini
1491d18719a4STom Rini	if ( (yy_n_chars) == 0 )
1492d18719a4STom Rini		{
1493d18719a4STom Rini		if ( number_to_move == YY_MORE_ADJ )
1494d18719a4STom Rini			{
1495d18719a4STom Rini			ret_val = EOB_ACT_END_OF_FILE;
1496d18719a4STom Rini			yyrestart(yyin  );
1497d18719a4STom Rini			}
1498d18719a4STom Rini
1499d18719a4STom Rini		else
1500d18719a4STom Rini			{
1501d18719a4STom Rini			ret_val = EOB_ACT_LAST_MATCH;
1502d18719a4STom Rini			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1503d18719a4STom Rini				YY_BUFFER_EOF_PENDING;
1504d18719a4STom Rini			}
1505d18719a4STom Rini		}
1506d18719a4STom Rini
1507d18719a4STom Rini	else
1508d18719a4STom Rini		ret_val = EOB_ACT_CONTINUE_SCAN;
1509d18719a4STom Rini
1510*14df9b24SMasahiro Yamada	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1511d18719a4STom Rini		/* Extend the array by 50%, plus the number we really need. */
1512*14df9b24SMasahiro Yamada		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1513d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1514d18719a4STom Rini		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1515d18719a4STom Rini			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1516d18719a4STom Rini	}
1517d18719a4STom Rini
1518d18719a4STom Rini	(yy_n_chars) += number_to_move;
1519d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1520d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1521d18719a4STom Rini
1522d18719a4STom Rini	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1523d18719a4STom Rini
1524d18719a4STom Rini	return ret_val;
1525d18719a4STom Rini}
1526d18719a4STom Rini
1527d18719a4STom Rini/* yy_get_previous_state - get the state just before the EOB char was reached */
1528d18719a4STom Rini
1529d18719a4STom Rini    static yy_state_type yy_get_previous_state (void)
1530d18719a4STom Rini{
1531*14df9b24SMasahiro Yamada	yy_state_type yy_current_state;
1532*14df9b24SMasahiro Yamada	char *yy_cp;
1533d18719a4STom Rini
1534d18719a4STom Rini	yy_current_state = (yy_start);
1535d18719a4STom Rini	yy_current_state += YY_AT_BOL();
1536d18719a4STom Rini
1537d18719a4STom Rini	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1538d18719a4STom Rini		{
1539*14df9b24SMasahiro Yamada		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1540d18719a4STom Rini		if ( yy_accept[yy_current_state] )
1541d18719a4STom Rini			{
1542d18719a4STom Rini			(yy_last_accepting_state) = yy_current_state;
1543d18719a4STom Rini			(yy_last_accepting_cpos) = yy_cp;
1544d18719a4STom Rini			}
1545d18719a4STom Rini		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1546d18719a4STom Rini			{
1547d18719a4STom Rini			yy_current_state = (int) yy_def[yy_current_state];
1548d18719a4STom Rini			if ( yy_current_state >= 166 )
1549d18719a4STom Rini				yy_c = yy_meta[(unsigned int) yy_c];
1550d18719a4STom Rini			}
1551*14df9b24SMasahiro Yamada		yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1552d18719a4STom Rini		}
1553d18719a4STom Rini
1554d18719a4STom Rini	return yy_current_state;
1555d18719a4STom Rini}
1556d18719a4STom Rini
1557d18719a4STom Rini/* yy_try_NUL_trans - try to make a transition on the NUL character
1558d18719a4STom Rini *
1559d18719a4STom Rini * synopsis
1560d18719a4STom Rini *	next_state = yy_try_NUL_trans( current_state );
1561d18719a4STom Rini */
1562d18719a4STom Rini    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1563d18719a4STom Rini{
1564*14df9b24SMasahiro Yamada	int yy_is_jam;
1565*14df9b24SMasahiro Yamada    	char *yy_cp = (yy_c_buf_p);
1566d18719a4STom Rini
1567*14df9b24SMasahiro Yamada	YY_CHAR yy_c = 1;
1568d18719a4STom Rini	if ( yy_accept[yy_current_state] )
1569d18719a4STom Rini		{
1570d18719a4STom Rini		(yy_last_accepting_state) = yy_current_state;
1571d18719a4STom Rini		(yy_last_accepting_cpos) = yy_cp;
1572d18719a4STom Rini		}
1573d18719a4STom Rini	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1574d18719a4STom Rini		{
1575d18719a4STom Rini		yy_current_state = (int) yy_def[yy_current_state];
1576d18719a4STom Rini		if ( yy_current_state >= 166 )
1577d18719a4STom Rini			yy_c = yy_meta[(unsigned int) yy_c];
1578d18719a4STom Rini		}
1579*14df9b24SMasahiro Yamada	yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1580d18719a4STom Rini	yy_is_jam = (yy_current_state == 165);
1581d18719a4STom Rini
1582d18719a4STom Rini		return yy_is_jam ? 0 : yy_current_state;
1583d18719a4STom Rini}
1584d18719a4STom Rini
1585*14df9b24SMasahiro Yamada#ifndef YY_NO_UNPUT
1586*14df9b24SMasahiro Yamada
1587*14df9b24SMasahiro Yamada#endif
1588*14df9b24SMasahiro Yamada
1589d18719a4STom Rini#ifndef YY_NO_INPUT
1590d18719a4STom Rini#ifdef __cplusplus
1591d18719a4STom Rini    static int yyinput (void)
1592d18719a4STom Rini#else
1593d18719a4STom Rini    static int input  (void)
1594d18719a4STom Rini#endif
1595d18719a4STom Rini
1596d18719a4STom Rini{
1597d18719a4STom Rini	int c;
1598d18719a4STom Rini
1599d18719a4STom Rini	*(yy_c_buf_p) = (yy_hold_char);
1600d18719a4STom Rini
1601d18719a4STom Rini	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1602d18719a4STom Rini		{
1603d18719a4STom Rini		/* yy_c_buf_p now points to the character we want to return.
1604d18719a4STom Rini		 * If this occurs *before* the EOB characters, then it's a
1605d18719a4STom Rini		 * valid NUL; if not, then we've hit the end of the buffer.
1606d18719a4STom Rini		 */
1607d18719a4STom Rini		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1608d18719a4STom Rini			/* This was really a NUL. */
1609d18719a4STom Rini			*(yy_c_buf_p) = '\0';
1610d18719a4STom Rini
1611d18719a4STom Rini		else
1612d18719a4STom Rini			{ /* need more input */
1613d18719a4STom Rini			int offset = (yy_c_buf_p) - (yytext_ptr);
1614d18719a4STom Rini			++(yy_c_buf_p);
1615d18719a4STom Rini
1616d18719a4STom Rini			switch ( yy_get_next_buffer(  ) )
1617d18719a4STom Rini				{
1618d18719a4STom Rini				case EOB_ACT_LAST_MATCH:
1619d18719a4STom Rini					/* This happens because yy_g_n_b()
1620d18719a4STom Rini					 * sees that we've accumulated a
1621d18719a4STom Rini					 * token and flags that we need to
1622d18719a4STom Rini					 * try matching the token before
1623d18719a4STom Rini					 * proceeding.  But for input(),
1624d18719a4STom Rini					 * there's no matching to consider.
1625d18719a4STom Rini					 * So convert the EOB_ACT_LAST_MATCH
1626d18719a4STom Rini					 * to EOB_ACT_END_OF_FILE.
1627d18719a4STom Rini					 */
1628d18719a4STom Rini
1629d18719a4STom Rini					/* Reset buffer status. */
1630d18719a4STom Rini					yyrestart(yyin );
1631d18719a4STom Rini
1632d18719a4STom Rini					/*FALLTHROUGH*/
1633d18719a4STom Rini
1634d18719a4STom Rini				case EOB_ACT_END_OF_FILE:
1635d18719a4STom Rini					{
1636d18719a4STom Rini					if ( yywrap( ) )
1637*14df9b24SMasahiro Yamada						return 0;
1638d18719a4STom Rini
1639d18719a4STom Rini					if ( ! (yy_did_buffer_switch_on_eof) )
1640d18719a4STom Rini						YY_NEW_FILE;
1641d18719a4STom Rini#ifdef __cplusplus
1642d18719a4STom Rini					return yyinput();
1643d18719a4STom Rini#else
1644d18719a4STom Rini					return input();
1645d18719a4STom Rini#endif
1646d18719a4STom Rini					}
1647d18719a4STom Rini
1648d18719a4STom Rini				case EOB_ACT_CONTINUE_SCAN:
1649d18719a4STom Rini					(yy_c_buf_p) = (yytext_ptr) + offset;
1650d18719a4STom Rini					break;
1651d18719a4STom Rini				}
1652d18719a4STom Rini			}
1653d18719a4STom Rini		}
1654d18719a4STom Rini
1655d18719a4STom Rini	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
1656d18719a4STom Rini	*(yy_c_buf_p) = '\0';	/* preserve yytext */
1657d18719a4STom Rini	(yy_hold_char) = *++(yy_c_buf_p);
1658d18719a4STom Rini
1659d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
1660d18719a4STom Rini
1661d18719a4STom Rini	return c;
1662d18719a4STom Rini}
1663d18719a4STom Rini#endif	/* ifndef YY_NO_INPUT */
1664d18719a4STom Rini
1665d18719a4STom Rini/** Immediately switch to a different input stream.
1666d18719a4STom Rini * @param input_file A readable stream.
1667d18719a4STom Rini *
1668d18719a4STom Rini * @note This function does not reset the start condition to @c INITIAL .
1669d18719a4STom Rini */
1670d18719a4STom Rini    void yyrestart  (FILE * input_file )
1671d18719a4STom Rini{
1672d18719a4STom Rini
1673d18719a4STom Rini	if ( ! YY_CURRENT_BUFFER ){
1674d18719a4STom Rini        yyensure_buffer_stack ();
1675d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE =
1676d18719a4STom Rini            yy_create_buffer(yyin,YY_BUF_SIZE );
1677d18719a4STom Rini	}
1678d18719a4STom Rini
1679d18719a4STom Rini	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
1680d18719a4STom Rini	yy_load_buffer_state( );
1681d18719a4STom Rini}
1682d18719a4STom Rini
1683d18719a4STom Rini/** Switch to a different input buffer.
1684d18719a4STom Rini * @param new_buffer The new input buffer.
1685d18719a4STom Rini *
1686d18719a4STom Rini */
1687d18719a4STom Rini    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1688d18719a4STom Rini{
1689d18719a4STom Rini
1690d18719a4STom Rini	/* TODO. We should be able to replace this entire function body
1691d18719a4STom Rini	 * with
1692d18719a4STom Rini	 *		yypop_buffer_state();
1693d18719a4STom Rini	 *		yypush_buffer_state(new_buffer);
1694d18719a4STom Rini     */
1695d18719a4STom Rini	yyensure_buffer_stack ();
1696d18719a4STom Rini	if ( YY_CURRENT_BUFFER == new_buffer )
1697d18719a4STom Rini		return;
1698d18719a4STom Rini
1699d18719a4STom Rini	if ( YY_CURRENT_BUFFER )
1700d18719a4STom Rini		{
1701d18719a4STom Rini		/* Flush out information for old buffer. */
1702d18719a4STom Rini		*(yy_c_buf_p) = (yy_hold_char);
1703d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1704d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1705d18719a4STom Rini		}
1706d18719a4STom Rini
1707d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1708d18719a4STom Rini	yy_load_buffer_state( );
1709d18719a4STom Rini
1710d18719a4STom Rini	/* We don't actually know whether we did this switch during
1711d18719a4STom Rini	 * EOF (yywrap()) processing, but the only time this flag
1712d18719a4STom Rini	 * is looked at is after yywrap() is called, so it's safe
1713d18719a4STom Rini	 * to go ahead and always set it.
1714d18719a4STom Rini	 */
1715d18719a4STom Rini	(yy_did_buffer_switch_on_eof) = 1;
1716d18719a4STom Rini}
1717d18719a4STom Rini
1718d18719a4STom Rinistatic void yy_load_buffer_state  (void)
1719d18719a4STom Rini{
1720d18719a4STom Rini    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1721d18719a4STom Rini	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1722d18719a4STom Rini	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1723d18719a4STom Rini	(yy_hold_char) = *(yy_c_buf_p);
1724d18719a4STom Rini}
1725d18719a4STom Rini
1726d18719a4STom Rini/** Allocate and initialize an input buffer state.
1727d18719a4STom Rini * @param file A readable stream.
1728d18719a4STom Rini * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1729d18719a4STom Rini *
1730d18719a4STom Rini * @return the allocated buffer state.
1731d18719a4STom Rini */
1732d18719a4STom Rini    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1733d18719a4STom Rini{
1734d18719a4STom Rini	YY_BUFFER_STATE b;
1735d18719a4STom Rini
1736d18719a4STom Rini	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1737d18719a4STom Rini	if ( ! b )
1738d18719a4STom Rini		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1739d18719a4STom Rini
1740*14df9b24SMasahiro Yamada	b->yy_buf_size = (yy_size_t)size;
1741d18719a4STom Rini
1742d18719a4STom Rini	/* yy_ch_buf has to be 2 characters longer than the size given because
1743d18719a4STom Rini	 * we need to put in 2 end-of-buffer characters.
1744d18719a4STom Rini	 */
1745d18719a4STom Rini	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
1746d18719a4STom Rini	if ( ! b->yy_ch_buf )
1747d18719a4STom Rini		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1748d18719a4STom Rini
1749d18719a4STom Rini	b->yy_is_our_buffer = 1;
1750d18719a4STom Rini
1751d18719a4STom Rini	yy_init_buffer(b,file );
1752d18719a4STom Rini
1753d18719a4STom Rini	return b;
1754d18719a4STom Rini}
1755d18719a4STom Rini
1756d18719a4STom Rini/** Destroy the buffer.
1757d18719a4STom Rini * @param b a buffer created with yy_create_buffer()
1758d18719a4STom Rini *
1759d18719a4STom Rini */
1760d18719a4STom Rini    void yy_delete_buffer (YY_BUFFER_STATE  b )
1761d18719a4STom Rini{
1762d18719a4STom Rini
1763d18719a4STom Rini	if ( ! b )
1764d18719a4STom Rini		return;
1765d18719a4STom Rini
1766d18719a4STom Rini	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1767d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1768d18719a4STom Rini
1769d18719a4STom Rini	if ( b->yy_is_our_buffer )
1770d18719a4STom Rini		yyfree((void *) b->yy_ch_buf  );
1771d18719a4STom Rini
1772d18719a4STom Rini	yyfree((void *) b  );
1773d18719a4STom Rini}
1774d18719a4STom Rini
1775d18719a4STom Rini/* Initializes or reinitializes a buffer.
1776d18719a4STom Rini * This function is sometimes called more than once on the same buffer,
1777d18719a4STom Rini * such as during a yyrestart() or at EOF.
1778d18719a4STom Rini */
1779d18719a4STom Rini    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1780d18719a4STom Rini
1781d18719a4STom Rini{
1782d18719a4STom Rini	int oerrno = errno;
1783d18719a4STom Rini
1784d18719a4STom Rini	yy_flush_buffer(b );
1785d18719a4STom Rini
1786d18719a4STom Rini	b->yy_input_file = file;
1787d18719a4STom Rini	b->yy_fill_buffer = 1;
1788d18719a4STom Rini
1789d18719a4STom Rini    /* If b is the current buffer, then yy_init_buffer was _probably_
1790d18719a4STom Rini     * called from yyrestart() or through yy_get_next_buffer.
1791d18719a4STom Rini     * In that case, we don't want to reset the lineno or column.
1792d18719a4STom Rini     */
1793d18719a4STom Rini    if (b != YY_CURRENT_BUFFER){
1794d18719a4STom Rini        b->yy_bs_lineno = 1;
1795d18719a4STom Rini        b->yy_bs_column = 0;
1796d18719a4STom Rini    }
1797d18719a4STom Rini
1798d18719a4STom Rini        b->yy_is_interactive = 0;
1799d18719a4STom Rini
1800d18719a4STom Rini	errno = oerrno;
1801d18719a4STom Rini}
1802d18719a4STom Rini
1803d18719a4STom Rini/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1804d18719a4STom Rini * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1805d18719a4STom Rini *
1806d18719a4STom Rini */
1807d18719a4STom Rini    void yy_flush_buffer (YY_BUFFER_STATE  b )
1808d18719a4STom Rini{
1809d18719a4STom Rini    	if ( ! b )
1810d18719a4STom Rini		return;
1811d18719a4STom Rini
1812d18719a4STom Rini	b->yy_n_chars = 0;
1813d18719a4STom Rini
1814d18719a4STom Rini	/* We always need two end-of-buffer characters.  The first causes
1815d18719a4STom Rini	 * a transition to the end-of-buffer state.  The second causes
1816d18719a4STom Rini	 * a jam in that state.
1817d18719a4STom Rini	 */
1818d18719a4STom Rini	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1819d18719a4STom Rini	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1820d18719a4STom Rini
1821d18719a4STom Rini	b->yy_buf_pos = &b->yy_ch_buf[0];
1822d18719a4STom Rini
1823d18719a4STom Rini	b->yy_at_bol = 1;
1824d18719a4STom Rini	b->yy_buffer_status = YY_BUFFER_NEW;
1825d18719a4STom Rini
1826d18719a4STom Rini	if ( b == YY_CURRENT_BUFFER )
1827d18719a4STom Rini		yy_load_buffer_state( );
1828d18719a4STom Rini}
1829d18719a4STom Rini
1830d18719a4STom Rini/** Pushes the new state onto the stack. The new state becomes
1831d18719a4STom Rini *  the current state. This function will allocate the stack
1832d18719a4STom Rini *  if necessary.
1833d18719a4STom Rini *  @param new_buffer The new state.
1834d18719a4STom Rini *
1835d18719a4STom Rini */
1836d18719a4STom Rinivoid yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1837d18719a4STom Rini{
1838d18719a4STom Rini    	if (new_buffer == NULL)
1839d18719a4STom Rini		return;
1840d18719a4STom Rini
1841d18719a4STom Rini	yyensure_buffer_stack();
1842d18719a4STom Rini
1843d18719a4STom Rini	/* This block is copied from yy_switch_to_buffer. */
1844d18719a4STom Rini	if ( YY_CURRENT_BUFFER )
1845d18719a4STom Rini		{
1846d18719a4STom Rini		/* Flush out information for old buffer. */
1847d18719a4STom Rini		*(yy_c_buf_p) = (yy_hold_char);
1848d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1849d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1850d18719a4STom Rini		}
1851d18719a4STom Rini
1852d18719a4STom Rini	/* Only push if top exists. Otherwise, replace top. */
1853d18719a4STom Rini	if (YY_CURRENT_BUFFER)
1854d18719a4STom Rini		(yy_buffer_stack_top)++;
1855d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1856d18719a4STom Rini
1857d18719a4STom Rini	/* copied from yy_switch_to_buffer. */
1858d18719a4STom Rini	yy_load_buffer_state( );
1859d18719a4STom Rini	(yy_did_buffer_switch_on_eof) = 1;
1860d18719a4STom Rini}
1861d18719a4STom Rini
1862d18719a4STom Rini/** Removes and deletes the top of the stack, if present.
1863d18719a4STom Rini *  The next element becomes the new top.
1864d18719a4STom Rini *
1865d18719a4STom Rini */
1866d18719a4STom Rinivoid yypop_buffer_state (void)
1867d18719a4STom Rini{
1868d18719a4STom Rini    	if (!YY_CURRENT_BUFFER)
1869d18719a4STom Rini		return;
1870d18719a4STom Rini
1871d18719a4STom Rini	yy_delete_buffer(YY_CURRENT_BUFFER );
1872d18719a4STom Rini	YY_CURRENT_BUFFER_LVALUE = NULL;
1873d18719a4STom Rini	if ((yy_buffer_stack_top) > 0)
1874d18719a4STom Rini		--(yy_buffer_stack_top);
1875d18719a4STom Rini
1876d18719a4STom Rini	if (YY_CURRENT_BUFFER) {
1877d18719a4STom Rini		yy_load_buffer_state( );
1878d18719a4STom Rini		(yy_did_buffer_switch_on_eof) = 1;
1879d18719a4STom Rini	}
1880d18719a4STom Rini}
1881d18719a4STom Rini
1882d18719a4STom Rini/* Allocates the stack if it does not exist.
1883d18719a4STom Rini *  Guarantees space for at least one push.
1884d18719a4STom Rini */
1885d18719a4STom Rinistatic void yyensure_buffer_stack (void)
1886d18719a4STom Rini{
1887d18719a4STom Rini	int num_to_alloc;
1888d18719a4STom Rini
1889d18719a4STom Rini	if (!(yy_buffer_stack)) {
1890d18719a4STom Rini
1891d18719a4STom Rini		/* First allocation is just for 2 elements, since we don't know if this
1892d18719a4STom Rini		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
1893d18719a4STom Rini		 * immediate realloc on the next call.
1894d18719a4STom Rini         */
1895*14df9b24SMasahiro Yamada      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
1896d18719a4STom Rini		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1897d18719a4STom Rini								(num_to_alloc * sizeof(struct yy_buffer_state*)
1898d18719a4STom Rini								);
1899d18719a4STom Rini		if ( ! (yy_buffer_stack) )
1900d18719a4STom Rini			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1901d18719a4STom Rini
1902d18719a4STom Rini		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1903d18719a4STom Rini
1904d18719a4STom Rini		(yy_buffer_stack_max) = num_to_alloc;
1905d18719a4STom Rini		(yy_buffer_stack_top) = 0;
1906d18719a4STom Rini		return;
1907d18719a4STom Rini	}
1908d18719a4STom Rini
1909d18719a4STom Rini	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1910d18719a4STom Rini
1911d18719a4STom Rini		/* Increase the buffer to prepare for a possible push. */
1912*14df9b24SMasahiro Yamada		yy_size_t grow_size = 8 /* arbitrary grow size */;
1913d18719a4STom Rini
1914d18719a4STom Rini		num_to_alloc = (yy_buffer_stack_max) + grow_size;
1915d18719a4STom Rini		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1916d18719a4STom Rini								((yy_buffer_stack),
1917d18719a4STom Rini								num_to_alloc * sizeof(struct yy_buffer_state*)
1918d18719a4STom Rini								);
1919d18719a4STom Rini		if ( ! (yy_buffer_stack) )
1920d18719a4STom Rini			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1921d18719a4STom Rini
1922d18719a4STom Rini		/* zero only the new slots.*/
1923d18719a4STom Rini		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1924d18719a4STom Rini		(yy_buffer_stack_max) = num_to_alloc;
1925d18719a4STom Rini	}
1926d18719a4STom Rini}
1927d18719a4STom Rini
1928d18719a4STom Rini/** Setup the input buffer state to scan directly from a user-specified character buffer.
1929d18719a4STom Rini * @param base the character buffer
1930d18719a4STom Rini * @param size the size in bytes of the character buffer
1931d18719a4STom Rini *
1932d18719a4STom Rini * @return the newly allocated buffer state object.
1933d18719a4STom Rini */
1934d18719a4STom RiniYY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
1935d18719a4STom Rini{
1936d18719a4STom Rini	YY_BUFFER_STATE b;
1937d18719a4STom Rini
1938d18719a4STom Rini	if ( size < 2 ||
1939d18719a4STom Rini	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
1940d18719a4STom Rini	     base[size-1] != YY_END_OF_BUFFER_CHAR )
1941d18719a4STom Rini		/* They forgot to leave room for the EOB's. */
1942*14df9b24SMasahiro Yamada		return NULL;
1943d18719a4STom Rini
1944d18719a4STom Rini	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1945d18719a4STom Rini	if ( ! b )
1946d18719a4STom Rini		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1947d18719a4STom Rini
1948d18719a4STom Rini	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
1949d18719a4STom Rini	b->yy_buf_pos = b->yy_ch_buf = base;
1950d18719a4STom Rini	b->yy_is_our_buffer = 0;
1951*14df9b24SMasahiro Yamada	b->yy_input_file = NULL;
1952d18719a4STom Rini	b->yy_n_chars = b->yy_buf_size;
1953d18719a4STom Rini	b->yy_is_interactive = 0;
1954d18719a4STom Rini	b->yy_at_bol = 1;
1955d18719a4STom Rini	b->yy_fill_buffer = 0;
1956d18719a4STom Rini	b->yy_buffer_status = YY_BUFFER_NEW;
1957d18719a4STom Rini
1958d18719a4STom Rini	yy_switch_to_buffer(b  );
1959d18719a4STom Rini
1960d18719a4STom Rini	return b;
1961d18719a4STom Rini}
1962d18719a4STom Rini
1963d18719a4STom Rini/** Setup the input buffer state to scan a string. The next call to yylex() will
1964d18719a4STom Rini * scan from a @e copy of @a str.
1965d18719a4STom Rini * @param yystr a NUL-terminated string to scan
1966d18719a4STom Rini *
1967d18719a4STom Rini * @return the newly allocated buffer state object.
1968d18719a4STom Rini * @note If you want to scan bytes that may contain NUL values, then use
1969d18719a4STom Rini *       yy_scan_bytes() instead.
1970d18719a4STom Rini */
1971d18719a4STom RiniYY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
1972d18719a4STom Rini{
1973d18719a4STom Rini
1974*14df9b24SMasahiro Yamada	return yy_scan_bytes(yystr,(int) strlen(yystr) );
1975d18719a4STom Rini}
1976d18719a4STom Rini
1977d18719a4STom Rini/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1978d18719a4STom Rini * scan from a @e copy of @a bytes.
1979d18719a4STom Rini * @param yybytes the byte buffer to scan
1980d18719a4STom Rini * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1981d18719a4STom Rini *
1982d18719a4STom Rini * @return the newly allocated buffer state object.
1983d18719a4STom Rini */
1984d18719a4STom RiniYY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
1985d18719a4STom Rini{
1986d18719a4STom Rini	YY_BUFFER_STATE b;
1987d18719a4STom Rini	char *buf;
1988d18719a4STom Rini	yy_size_t n;
1989d18719a4STom Rini	int i;
1990d18719a4STom Rini
1991d18719a4STom Rini	/* Get memory for full buffer, including space for trailing EOB's. */
1992*14df9b24SMasahiro Yamada	n = (yy_size_t) (_yybytes_len + 2);
1993d18719a4STom Rini	buf = (char *) yyalloc(n  );
1994d18719a4STom Rini	if ( ! buf )
1995d18719a4STom Rini		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1996d18719a4STom Rini
1997d18719a4STom Rini	for ( i = 0; i < _yybytes_len; ++i )
1998d18719a4STom Rini		buf[i] = yybytes[i];
1999d18719a4STom Rini
2000d18719a4STom Rini	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2001d18719a4STom Rini
2002d18719a4STom Rini	b = yy_scan_buffer(buf,n );
2003d18719a4STom Rini	if ( ! b )
2004d18719a4STom Rini		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2005d18719a4STom Rini
2006d18719a4STom Rini	/* It's okay to grow etc. this buffer, and we should throw it
2007d18719a4STom Rini	 * away when we're done.
2008d18719a4STom Rini	 */
2009d18719a4STom Rini	b->yy_is_our_buffer = 1;
2010d18719a4STom Rini
2011d18719a4STom Rini	return b;
2012d18719a4STom Rini}
2013d18719a4STom Rini
2014d18719a4STom Rini#ifndef YY_EXIT_FAILURE
2015d18719a4STom Rini#define YY_EXIT_FAILURE 2
2016d18719a4STom Rini#endif
2017d18719a4STom Rini
2018*14df9b24SMasahiro Yamadastatic void yynoreturn yy_fatal_error (yyconst char* msg )
2019d18719a4STom Rini{
2020d18719a4STom Rini			(void) fprintf( stderr, "%s\n", msg );
2021d18719a4STom Rini	exit( YY_EXIT_FAILURE );
2022d18719a4STom Rini}
2023d18719a4STom Rini
2024d18719a4STom Rini/* Redefine yyless() so it works in section 3 code. */
2025d18719a4STom Rini
2026d18719a4STom Rini#undef yyless
2027d18719a4STom Rini#define yyless(n) \
2028d18719a4STom Rini	do \
2029d18719a4STom Rini		{ \
2030d18719a4STom Rini		/* Undo effects of setting up yytext. */ \
2031d18719a4STom Rini        int yyless_macro_arg = (n); \
2032d18719a4STom Rini        YY_LESS_LINENO(yyless_macro_arg);\
2033d18719a4STom Rini		yytext[yyleng] = (yy_hold_char); \
2034d18719a4STom Rini		(yy_c_buf_p) = yytext + yyless_macro_arg; \
2035d18719a4STom Rini		(yy_hold_char) = *(yy_c_buf_p); \
2036d18719a4STom Rini		*(yy_c_buf_p) = '\0'; \
2037d18719a4STom Rini		yyleng = yyless_macro_arg; \
2038d18719a4STom Rini		} \
2039d18719a4STom Rini	while ( 0 )
2040d18719a4STom Rini
2041d18719a4STom Rini/* Accessor  methods (get/set functions) to struct members. */
2042d18719a4STom Rini
2043d18719a4STom Rini/** Get the current line number.
2044d18719a4STom Rini *
2045d18719a4STom Rini */
2046d18719a4STom Riniint yyget_lineno  (void)
2047d18719a4STom Rini{
2048d18719a4STom Rini
2049d18719a4STom Rini    return yylineno;
2050d18719a4STom Rini}
2051d18719a4STom Rini
2052d18719a4STom Rini/** Get the input stream.
2053d18719a4STom Rini *
2054d18719a4STom Rini */
2055d18719a4STom RiniFILE *yyget_in  (void)
2056d18719a4STom Rini{
2057d18719a4STom Rini        return yyin;
2058d18719a4STom Rini}
2059d18719a4STom Rini
2060d18719a4STom Rini/** Get the output stream.
2061d18719a4STom Rini *
2062d18719a4STom Rini */
2063d18719a4STom RiniFILE *yyget_out  (void)
2064d18719a4STom Rini{
2065d18719a4STom Rini        return yyout;
2066d18719a4STom Rini}
2067d18719a4STom Rini
2068d18719a4STom Rini/** Get the length of the current token.
2069d18719a4STom Rini *
2070d18719a4STom Rini */
2071d18719a4STom Riniint yyget_leng  (void)
2072d18719a4STom Rini{
2073d18719a4STom Rini        return yyleng;
2074d18719a4STom Rini}
2075d18719a4STom Rini
2076d18719a4STom Rini/** Get the current token.
2077d18719a4STom Rini *
2078d18719a4STom Rini */
2079d18719a4STom Rini
2080d18719a4STom Rinichar *yyget_text  (void)
2081d18719a4STom Rini{
2082d18719a4STom Rini        return yytext;
2083d18719a4STom Rini}
2084d18719a4STom Rini
2085d18719a4STom Rini/** Set the current line number.
2086*14df9b24SMasahiro Yamada * @param _line_number line number
2087d18719a4STom Rini *
2088d18719a4STom Rini */
2089*14df9b24SMasahiro Yamadavoid yyset_lineno (int  _line_number )
2090d18719a4STom Rini{
2091d18719a4STom Rini
2092*14df9b24SMasahiro Yamada    yylineno = _line_number;
2093d18719a4STom Rini}
2094d18719a4STom Rini
2095d18719a4STom Rini/** Set the input stream. This does not discard the current
2096d18719a4STom Rini * input buffer.
2097*14df9b24SMasahiro Yamada * @param _in_str A readable stream.
2098d18719a4STom Rini *
2099d18719a4STom Rini * @see yy_switch_to_buffer
2100d18719a4STom Rini */
2101*14df9b24SMasahiro Yamadavoid yyset_in (FILE *  _in_str )
2102d18719a4STom Rini{
2103*14df9b24SMasahiro Yamada        yyin = _in_str ;
2104d18719a4STom Rini}
2105d18719a4STom Rini
2106*14df9b24SMasahiro Yamadavoid yyset_out (FILE *  _out_str )
2107d18719a4STom Rini{
2108*14df9b24SMasahiro Yamada        yyout = _out_str ;
2109d18719a4STom Rini}
2110d18719a4STom Rini
2111d18719a4STom Riniint yyget_debug  (void)
2112d18719a4STom Rini{
2113d18719a4STom Rini        return yy_flex_debug;
2114d18719a4STom Rini}
2115d18719a4STom Rini
2116*14df9b24SMasahiro Yamadavoid yyset_debug (int  _bdebug )
2117d18719a4STom Rini{
2118*14df9b24SMasahiro Yamada        yy_flex_debug = _bdebug ;
2119d18719a4STom Rini}
2120d18719a4STom Rini
2121d18719a4STom Rinistatic int yy_init_globals (void)
2122d18719a4STom Rini{
2123d18719a4STom Rini        /* Initialization is the same as for the non-reentrant scanner.
2124d18719a4STom Rini     * This function is called from yylex_destroy(), so don't allocate here.
2125d18719a4STom Rini     */
2126d18719a4STom Rini
2127*14df9b24SMasahiro Yamada    (yy_buffer_stack) = NULL;
2128d18719a4STom Rini    (yy_buffer_stack_top) = 0;
2129d18719a4STom Rini    (yy_buffer_stack_max) = 0;
2130*14df9b24SMasahiro Yamada    (yy_c_buf_p) = NULL;
2131d18719a4STom Rini    (yy_init) = 0;
2132d18719a4STom Rini    (yy_start) = 0;
2133d18719a4STom Rini
2134d18719a4STom Rini/* Defined in main.c */
2135d18719a4STom Rini#ifdef YY_STDINIT
2136d18719a4STom Rini    yyin = stdin;
2137d18719a4STom Rini    yyout = stdout;
2138d18719a4STom Rini#else
2139*14df9b24SMasahiro Yamada    yyin = NULL;
2140*14df9b24SMasahiro Yamada    yyout = NULL;
2141d18719a4STom Rini#endif
2142d18719a4STom Rini
2143d18719a4STom Rini    /* For future reference: Set errno on error, since we are called by
2144d18719a4STom Rini     * yylex_init()
2145d18719a4STom Rini     */
2146d18719a4STom Rini    return 0;
2147d18719a4STom Rini}
2148d18719a4STom Rini
2149d18719a4STom Rini/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2150d18719a4STom Riniint yylex_destroy  (void)
2151d18719a4STom Rini{
2152d18719a4STom Rini
2153d18719a4STom Rini    /* Pop the buffer stack, destroying each element. */
2154d18719a4STom Rini	while(YY_CURRENT_BUFFER){
2155d18719a4STom Rini		yy_delete_buffer(YY_CURRENT_BUFFER  );
2156d18719a4STom Rini		YY_CURRENT_BUFFER_LVALUE = NULL;
2157d18719a4STom Rini		yypop_buffer_state();
2158d18719a4STom Rini	}
2159d18719a4STom Rini
2160d18719a4STom Rini	/* Destroy the stack itself. */
2161d18719a4STom Rini	yyfree((yy_buffer_stack) );
2162d18719a4STom Rini	(yy_buffer_stack) = NULL;
2163d18719a4STom Rini
2164d18719a4STom Rini    /* Reset the globals. This is important in a non-reentrant scanner so the next time
2165d18719a4STom Rini     * yylex() is called, initialization will occur. */
2166d18719a4STom Rini    yy_init_globals( );
2167d18719a4STom Rini
2168d18719a4STom Rini    return 0;
2169d18719a4STom Rini}
2170d18719a4STom Rini
2171d18719a4STom Rini/*
2172d18719a4STom Rini * Internal utility routines.
2173d18719a4STom Rini */
2174d18719a4STom Rini
2175d18719a4STom Rini#ifndef yytext_ptr
2176d18719a4STom Rinistatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2177d18719a4STom Rini{
2178*14df9b24SMasahiro Yamada
2179*14df9b24SMasahiro Yamada	int i;
2180d18719a4STom Rini	for ( i = 0; i < n; ++i )
2181d18719a4STom Rini		s1[i] = s2[i];
2182d18719a4STom Rini}
2183d18719a4STom Rini#endif
2184d18719a4STom Rini
2185d18719a4STom Rini#ifdef YY_NEED_STRLEN
2186d18719a4STom Rinistatic int yy_flex_strlen (yyconst char * s )
2187d18719a4STom Rini{
2188*14df9b24SMasahiro Yamada	int n;
2189d18719a4STom Rini	for ( n = 0; s[n]; ++n )
2190d18719a4STom Rini		;
2191d18719a4STom Rini
2192d18719a4STom Rini	return n;
2193d18719a4STom Rini}
2194d18719a4STom Rini#endif
2195d18719a4STom Rini
2196d18719a4STom Rinivoid *yyalloc (yy_size_t  size )
2197d18719a4STom Rini{
2198*14df9b24SMasahiro Yamada			return malloc(size);
2199d18719a4STom Rini}
2200d18719a4STom Rini
2201d18719a4STom Rinivoid *yyrealloc  (void * ptr, yy_size_t  size )
2202d18719a4STom Rini{
2203*14df9b24SMasahiro Yamada
2204d18719a4STom Rini	/* The cast to (char *) in the following accommodates both
2205d18719a4STom Rini	 * implementations that use char* generic pointers, and those
2206d18719a4STom Rini	 * that use void* generic pointers.  It works with the latter
2207d18719a4STom Rini	 * because both ANSI C and C++ allow castless assignment from
2208d18719a4STom Rini	 * any pointer type to void*, and deal with argument conversions
2209d18719a4STom Rini	 * as though doing an assignment.
2210d18719a4STom Rini	 */
2211*14df9b24SMasahiro Yamada	return realloc(ptr, size);
2212d18719a4STom Rini}
2213d18719a4STom Rini
2214d18719a4STom Rinivoid yyfree (void * ptr )
2215d18719a4STom Rini{
2216d18719a4STom Rini			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
2217d18719a4STom Rini}
2218d18719a4STom Rini
2219d18719a4STom Rini#define YYTABLES_NAME "yytables"
2220d18719a4STom Rini
2221e23ffda2STom Rini#line 272 "dtc-lexer.l"
2222d18719a4STom Rini
2223d18719a4STom Rini
2224d18719a4STom Rini
2225d18719a4STom Rinistatic void push_input_file(const char *filename)
2226d18719a4STom Rini{
2227d18719a4STom Rini	assert(filename);
2228d18719a4STom Rini
2229d18719a4STom Rini	srcfile_push(filename);
2230d18719a4STom Rini
2231d18719a4STom Rini	yyin = current_srcfile->f;
2232d18719a4STom Rini
2233d18719a4STom Rini	yypush_buffer_state(yy_create_buffer(yyin,YY_BUF_SIZE));
2234d18719a4STom Rini}
2235d18719a4STom Rini
2236d18719a4STom Rini
2237d18719a4STom Rinistatic bool pop_input_file(void)
2238d18719a4STom Rini{
2239d18719a4STom Rini	if (srcfile_pop() == 0)
2240d18719a4STom Rini		return false;
2241d18719a4STom Rini
2242d18719a4STom Rini	yypop_buffer_state();
2243d18719a4STom Rini	yyin = current_srcfile->f;
2244d18719a4STom Rini
2245d18719a4STom Rini	return true;
2246d18719a4STom Rini}
2247d18719a4STom Rini
2248d18719a4STom Rinistatic void lexical_error(const char *fmt, ...)
2249d18719a4STom Rini{
2250d18719a4STom Rini	va_list ap;
2251d18719a4STom Rini
2252d18719a4STom Rini	va_start(ap, fmt);
2253d18719a4STom Rini	srcpos_verror(&yylloc, "Lexical error", fmt, ap);
2254d18719a4STom Rini	va_end(ap);
2255d18719a4STom Rini
2256d18719a4STom Rini	treesource_error = true;
2257d18719a4STom Rini}
2258d18719a4STom Rini
2259