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