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