1cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#line 2 "scan-gram.c"
2cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#line 4 "scan-gram.c"
4cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
5cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define  YY_INT_ALIGNED short int
6cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
7cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* A lexical scanner generated by flex */
8cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %not-for-header */
1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %if-c-only */
1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %if-not-reentrant */
1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_create_buffer gram__create_buffer
1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_delete_buffer gram__delete_buffer
1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_flex_debug gram__flex_debug
1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_init_buffer gram__init_buffer
1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_flush_buffer gram__flush_buffer
1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_load_buffer_state gram__load_buffer_state
1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_switch_to_buffer gram__switch_to_buffer
2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyin gram_in
2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyleng gram_leng
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylex gram_lex
2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylineno gram_lineno
2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyout gram_out
2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyrestart gram_restart
2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yytext gram_text
2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yywrap gram_wrap
2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyalloc gram_alloc
2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyrealloc gram_realloc
3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyfree gram_free
3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif */
3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif */
3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %ok-for-header */
3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
36cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define FLEX_SCANNER
37cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_FLEX_MAJOR_VERSION 2
38cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_FLEX_MINOR_VERSION 5
3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_FLEX_SUBMINOR_VERSION 37
40cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if YY_FLEX_SUBMINOR_VERSION > 0
41cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define FLEX_BETA
42cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
43cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
44cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
45cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
46cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
47cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
48cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
49cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
50cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
51cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
52cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
53cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
54cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
55cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* First, we deal with  platform-specific or compiler-specific issues. */
56cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
57cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* begin standard C headers. */
58cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
59cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <stdio.h>
60cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <string.h>
61cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <errno.h>
62cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <stdlib.h>
63cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
64cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
65cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-tables-serialization */
66cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
67cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* end standard C headers. */
68cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
69cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-or-c++ */
70cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* flex integer type definitions */
71cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
72cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef FLEXINT_H
73cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define FLEXINT_H
74cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
75cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
76cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
7805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang * if you want the limit (max/min) macros for int types.
8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
8205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef __STDC_LIMIT_MACROS
8305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define __STDC_LIMIT_MACROS 1
8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
8505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
86cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <inttypes.h>
87cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef int8_t flex_int8_t;
88cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef uint8_t flex_uint8_t;
89cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef int16_t flex_int16_t;
90cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef uint16_t flex_uint16_t;
91cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef int32_t flex_int32_t;
92cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef uint32_t flex_uint32_t;
93cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
94cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef signed char flex_int8_t;
95cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef short int flex_int16_t;
96cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef int flex_int32_t;
97cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef unsigned char flex_uint8_t;
98cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef unsigned short int flex_uint16_t;
99cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef unsigned int flex_uint32_t;
100cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
101cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Limits of integral types. */
102cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef INT8_MIN
103cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INT8_MIN               (-128)
104cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
105cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef INT16_MIN
106cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INT16_MIN              (-32767-1)
107cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
108cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef INT32_MIN
109cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INT32_MIN              (-2147483647-1)
110cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
111cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef INT8_MAX
112cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INT8_MAX               (127)
113cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
114cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef INT16_MAX
115cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INT16_MAX              (32767)
116cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
117cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef INT32_MAX
118cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INT32_MAX              (2147483647)
119cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
120cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef UINT8_MAX
121cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define UINT8_MAX              (255U)
122cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
123cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef UINT16_MAX
124cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define UINT16_MAX             (65535U)
125cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef UINT32_MAX
127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define UINT32_MAX             (4294967295U)
128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
13005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* ! C99 */
13105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
132cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* ! FLEXINT_H */
133cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
136cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
137cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
138cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
139cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus
140cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* The "const" storage-class-modifier is valid. */
142cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_USE_CONST
143cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
144cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else	/* ! __cplusplus */
145cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
14605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* C99 requires __STDC__ to be defined as 1. */
14705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#if defined (__STDC__)
148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_USE_CONST
150cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif	/* defined (__STDC__) */
152cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif	/* ! __cplusplus */
153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YY_USE_CONST
155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyconst const
156cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyconst
158cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
161cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
162cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Returned upon end-of-file. */
163cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_NULL 0
164cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
165cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
166cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
168cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Promotes a possibly negative, possibly signed char to an unsigned
169cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * integer for use as an array index.  If the signed char is negative,
170cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * we want to instead treat it as an 8-bit unsigned char, hence the
171cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * double cast.
172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
173cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
174cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
175cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
176cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */
177cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
178cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
179cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-not-reentrant */
180cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
181cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
182cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
183cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Enter a start condition.  This macro really ought to take a parameter,
184cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * but we do it the disgusting crufty way forced on us by the ()-less
185cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * definition of BEGIN.
186cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define BEGIN (yy_start) = 1 + 2 *
188cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Translate the current start state into a value that can be later handed
190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * to BEGIN to return to the state.  The YYSTATE alias is for lex
191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * compatibility.
192cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_START (((yy_start) - 1) / 2)
194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYSTATE YY_START
195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Action number for EOF rule of a given start state. */
197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Special action meaning "start processing a new file". */
200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_NEW_FILE gram_restart(gram_in  )
201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_END_OF_BUFFER_CHAR 0
203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Size of default input buffer. */
205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_BUF_SIZE
206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_BUF_SIZE 16384
207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
20905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The state buf must be large enough to hold one state per character in the main buffer.
21005436638acc7c010349a69c3395f1a57c642dc62Ying Wang */
21105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
21205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_TYPEDEF_YY_BUFFER_STATE
214cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_TYPEDEF_YY_BUFFER_STATE
215cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef struct yy_buffer_state *YY_BUFFER_STATE;
216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
21805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef YY_TYPEDEF_YY_SIZE_T
21905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_TYPEDEF_YY_SIZE_T
22005436638acc7c010349a69c3395f1a57c642dc62Ying Wangtypedef size_t yy_size_t;
22105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
223cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-not-reentrant */
22405436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern yy_size_t gram_leng;
225cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
227cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
228cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-not-reentrant */
229cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern FILE *gram_in, *gram_out;
230cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
231cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
232cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
233cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define EOB_ACT_CONTINUE_SCAN 0
234cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define EOB_ACT_END_OF_FILE 1
235cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define EOB_ACT_LAST_MATCH 2
236cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
237cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    #define YY_LESS_LINENO(n)
238cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
239cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Return all but the first "n" matched characters back to the input stream. */
240cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyless(n) \
241cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	do \
242cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{ \
243cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Undo effects of setting up gram_text. */ \
244cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        int yyless_macro_arg = (n); \
245cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        YY_LESS_LINENO(yyless_macro_arg);\
246cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		*yy_cp = (yy_hold_char); \
247cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_RESTORE_YY_MORE_OFFSET \
248cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
249cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_DO_BEFORE_ACTION; /* set up gram_text again */ \
250cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		} \
251cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	while ( 0 )
252cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
253cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define unput(c) yyunput( c, (yytext_ptr)  )
254cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
255cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_STRUCT_YY_BUFFER_STATE
256cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_STRUCT_YY_BUFFER_STATE
257cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstruct yy_buffer_state
258cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{
259cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
260cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	FILE *yy_input_file;
261cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
262cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
263cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
264cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
265cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
266cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	char *yy_ch_buf;		/* input buffer */
267cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	char *yy_buf_pos;		/* current position in input buffer */
268cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
269cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Size of input buffer in bytes, not including room for EOB
270cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * characters.
271cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
272cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yy_size_t yy_buf_size;
273cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
274cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Number of characters read into yy_ch_buf, not including EOB
275cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * characters.
276cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
27705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	yy_size_t yy_n_chars;
278cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
279cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Whether we "own" the buffer - i.e., we know we created it,
280cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * and can realloc() it to grow it, and should free() it to
281cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * delete it.
282cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
283cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int yy_is_our_buffer;
284cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
285cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Whether this is an "interactive" input source; if so, and
286cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * if we're using stdio for input, then we want to use getc()
287cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * instead of fread(), to make sure we stop fetching input after
288cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * each newline.
289cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
290cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int yy_is_interactive;
291cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
292cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Whether we're considered to be at the beginning of a line.
293cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * If so, '^' rules will be active on the next match, otherwise
294cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * not.
295cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
296cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int yy_at_bol;
297cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
298cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    int yy_bs_lineno; /**< The line count. */
299cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    int yy_bs_column; /**< The column count. */
300cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
301cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Whether to try to fill the input buffer when we reach the
302cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * end of it.
303cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
304cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int yy_fill_buffer;
305cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
306cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int yy_buffer_status;
307cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
308cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_BUFFER_NEW 0
309cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_BUFFER_NORMAL 1
310cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* When an EOF's been seen but there's still some text to process
311cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
312cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * shouldn't try reading from the input source any more.  We might
313cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * still have a bunch of tokens to match, though, because of
314cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * possible backing-up.
315cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 *
316cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * When we actually see the EOF, we change the status to "new"
317cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * (via gram_restart()), so that the user can continue scanning by
318cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * just pointing gram_in at a new input file.
319cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
320cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_BUFFER_EOF_PENDING 2
321cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
322cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	};
323cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* !YY_STRUCT_YY_BUFFER_STATE */
324cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
325cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */
326cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
327cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
328cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-not-reentrant */
329cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
330cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Stack of input buffers. */
331cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
332cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
333cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
334cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
335cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
336cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
337cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
338cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
339cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* We provide macros for accessing buffer states in case in the
340cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * future we want to put the buffer states in a more general
341cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * "scanner state".
342cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
343cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * Returns the top of the stack, or NULL.
344cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
345cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
346cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
347cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project                          : NULL)
348cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
349cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Same as previous macro, but useful when we know that the buffer stack is not
350cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * NULL or when we need an lvalue. For internal use only.
351cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
352cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
353cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
354cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */
355cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
356cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-not-reentrant */
357cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
358cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
359cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* yy_hold_char holds the character lost when gram_text is formed. */
360cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic char yy_hold_char;
36105436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
36205436638acc7c010349a69c3395f1a57c642dc62Ying Wangyy_size_t gram_leng;
363cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
364cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Points to current character in buffer. */
365cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic char *yy_c_buf_p = (char *) 0;
36605436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int yy_init = 0;		/* whether we need to initialize */
367cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_start = 0;	/* start state number */
368cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
369cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Flag which is used to allow gram_wrap()'s to do buffer switches
370cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * instead of setting up a fresh gram_in.  A bit of a hack ...
371cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
372cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_did_buffer_switch_on_eof;
373cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
374cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
375cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
376cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
377cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_restart (FILE *input_file  );
378cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
379cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE gram__create_buffer (FILE *file,int size  );
380cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram__delete_buffer (YY_BUFFER_STATE b  );
381cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram__flush_buffer (YY_BUFFER_STATE b  );
382cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_push_buffer_state (YY_BUFFER_STATE new_buffer  );
383cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_pop_buffer_state (void );
384cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
385cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void gram_ensure_buffer_stack (void );
386cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void gram__load_buffer_state (void );
387cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void gram__init_buffer (YY_BUFFER_STATE b,FILE *file  );
388cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
389cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_FLUSH_BUFFER gram__flush_buffer(YY_CURRENT_BUFFER )
390cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
391cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE gram__scan_buffer (char *base,yy_size_t size  );
392cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE gram__scan_string (yyconst char *yy_str  );
39305436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_BUFFER_STATE gram__scan_bytes (yyconst char *bytes,yy_size_t len  );
394cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
395cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
396cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
397cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *gram_alloc (yy_size_t  );
398cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *gram_realloc (void *,yy_size_t  );
399cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_free (void *  );
400cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yy_new_buffer gram__create_buffer
402cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
403cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yy_set_interactive(is_interactive) \
404cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{ \
405cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! YY_CURRENT_BUFFER ){ \
406cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        gram_ensure_buffer_stack (); \
407cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE =    \
408cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project            gram__create_buffer(gram_in,YY_BUF_SIZE ); \
409cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	} \
410cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
411cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
412cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
413cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yy_set_bol(at_bol) \
414cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{ \
415cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! YY_CURRENT_BUFFER ){\
416cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        gram_ensure_buffer_stack (); \
417cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE =    \
418cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project            gram__create_buffer(gram_in,YY_BUF_SIZE ); \
419cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	} \
420cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
421cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
422cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
423cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
424cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
425cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [1.0] gram_text/gram_in/gram_out/yy_state_type/gram_lineno etc. def's & init go here */
426cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Begin user sect3 */
427cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
42805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define gram_wrap() 1
429cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_SKIP_YYWRAP
430cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
431cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define FLEX_DEBUG
432cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
433cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef unsigned char YY_CHAR;
434cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
435cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectFILE *gram_in = (FILE *) 0, *gram_out = (FILE *) 0;
436cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
437cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttypedef int yy_state_type;
438cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
439cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern int gram_lineno;
440cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
441cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint gram_lineno = 1;
442cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
443cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern char *gram_text;
444cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yytext_ptr gram_text
445cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
446cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */
447cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
448cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yy_state_type yy_get_previous_state (void );
449cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
450cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_get_next_buffer (void );
451cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void yy_fatal_error (yyconst char msg[]  );
452cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
453cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
454cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
455cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Done after the current pattern has been matched and before the
456cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * corresponding action - sets up gram_text.
457cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
458cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_DO_BEFORE_ACTION \
459cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yytext_ptr) = yy_bp; \
460cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [2.0] code to fiddle gram_text and gram_leng for yymore() goes here \ */\
461cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram_leng = (size_t) (yy_cp - yy_bp); \
462cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_hold_char) = *yy_cp; \
463cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	*yy_cp = '\0'; \
464cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [3.0] code to copy yytext_ptr to gram_text[] goes here, if %array \ */\
465cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_c_buf_p) = yy_cp;
466cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
467cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
468cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_NUM_RULES 109
469cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_END_OF_BUFFER 110
470cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* This struct is not used in this scanner,
471cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   but its presence is necessary. */
472cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstruct yy_trans_info
473cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{
474cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	flex_int32_t yy_verify;
475cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	flex_int32_t yy_nxt;
476cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	};
47705436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_accept[482] =
478cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
47905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
48005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,    0,    0,    0,    0,    0,    0,    0,   77,   77,
48105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       93,   93,   93,   93,    0,    0,    0,    0,  110,   65,
48205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        2,    2,   59,   65,   58,   65,    1,   54,   65,   55,
48305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       55,   51,   65,   49,   54,   64,   61,   50,   65,   74,
48405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       74,  107,   78,   78,  107,   80,   79,   79,   68,    2,
48505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        1,   68,   67,   66,   68,  108,   99,  107,   98,  107,
48605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      107,  107,  102,  104,  107,   76,  107,   97,   96,  107,
48705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       95,   94,   71,    2,    1,   69,   71,   71,   70,   71,
48805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       72,    2,    1,   72,   72,   65,    0,   63,   48,   48,
48905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
49005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
49105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   60,   54,   54,
49205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        4,    3,   57,   55,   57,    0,    0,   53,    0,   73,
49305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       92,   90,   81,   92,   83,   84,   85,   86,   87,   88,
49405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       92,   89,   92,  106,  100,  101,    0,  103,    0,  102,
49505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      105,    0,   75,    0,    0,   77,   93,   93,   93,   93,
49605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       71,   69,   48,   48,   48,   48,   48,   48,   48,   48,
49705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
49805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
49905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,    3,   57,   56,   62,   52,    0,
50005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
50105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       81,    0,    0,   82,    0,    0,    0,    0,    0,    0,
50205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,    0,    0,    0,    0,    0,    0,   48,   48,   48,
50305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
50405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
50505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
50605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,    0,   81,    0,    0,   48,    7,   48,
50705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
50805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   22,   48,   48,   48,   48,   48,   48,   48,   48,
50905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   34,   48,   48,   48,   48,   48,   48,
51005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       41,   48,   44,   48,   48,   47,    0,    0,    0,   48,
51105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
51205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        8,   48,   48,   48,   13,   48,   48,   48,   48,   48,
51305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   25,   48,   48,   48,   48,   48,
51405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       31,   48,   48,   48,   48,   48,   38,   48,   40,   42,
51505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       45,   48,    0,    0,   91,    6,   48,   10,   48,   48,
51605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       15,   48,   48,   48,   48,   48,   48,   48,   48,   48,
51705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   32,   48,   48,   48,   48,   48,   48,
51805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,    0,   48,   11,   48,   48,   48,   48,   48,   48,
51905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
52005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       35,   48,   37,   48,   48,   46,    5,    0,   48,   48,
52105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,   48,   21,   48,   48,   48,
52205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
52305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   28,   29,   48,   48,   48,   39,   48,    0,   48,
52405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   16,   48,   48,   48,   48,   23,   24,   48,
52505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   48,   48,    0,    0,   48,   12,   48,
52605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   20,   48,   48,   48,   48,   48,   48,   48,
52705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   17,   48,   48,   26,   48,   48,   33,   36,
52805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       43,    9,   48,   48,   48,   48,   48,   14,   48,   48,
52905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   19,   48,   48,   48,   27,   48,   48,
53005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       48,   48,   48,   18,   48,   48,   48,   48,   48,   30,
53105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0
532cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
533cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
534cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yyconst flex_int32_t yy_ec[256] =
535cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
536cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
537cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        2,    2,    1,    1,    1,    1,    1,    1,    1,    1,
538cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
53905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        1,    4,    5,    6,    7,    5,    8,    5,    9,    5,
54005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        5,   10,    5,   11,   12,   13,   14,   15,   16,   16,
541cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       16,   16,   16,   16,   16,   17,   17,   18,   19,   20,
54205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       21,   22,   23,    5,   24,   24,   24,   24,   24,   24,
54305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
54405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   25,   26,   25,   25,   27,   25,   25,
54505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       28,   29,   30,    5,   31,    5,   32,   33,   34,   35,
54605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
54705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       36,   37,   38,   39,   40,   25,   41,   42,   43,   44,
54805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       45,   46,   47,   48,   49,   50,   51,   52,   25,   53,
54905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       54,   25,   55,   56,   57,    5,    1,    1,    1,    1,
550cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
551cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
552cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
553cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
554cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
555cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
556cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
557cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
558cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
559cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
560cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
561cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
562cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
563cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1
564cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
565cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
566cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yyconst flex_int32_t yy_meta[59] =
567cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
56805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        1,    2,    3,    2,    4,    5,    4,    5,    5,    5,
56905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        5,    6,    7,    8,    9,    9,    9,    4,    5,    5,
57005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        5,    5,    4,    9,   10,   10,   10,   11,    4,   12,
57105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       10,    9,    9,    9,    9,    9,    9,   10,   10,   10,
57205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
57305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       10,   10,   10,   10,    5,    5,    5,   13
574cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
575cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
57605436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_base[508] =
577cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
57805436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  899,  895,  894,   56,   57,   58,   61,   70,   89,
57905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       96,  115,  119,  128,   62,  129,   72,   91,   66,   77,
58005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      138,  143,   80,  142,  185,  896,  150,  155,  902,    0,
58105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,  907,  907,  243,  907,  907,  907,  301,   98,  288,
58205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       62,  907,  146,  907,  315,  907,  907,  907,  859,  907,
58305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      886,  907,  907,  907,  368,  907,  907,  907,  907,  907,
58405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,  116,  907,  907,  857,  907,  907,  841,  907,  297,
58505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       91,  155,  907,  907,  126,  907,  175,  907,  907,  325,
58605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,  907,    0,  907,    0,    0,  307,  907,  907,  855,
58705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,  907,  907,  322,  854,    0,    0,  907,    0,  855,
58805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
58905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      849,  114,  117,  853,  850,  847,  303,  854,  302,  838,
59005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      305,  306,  132,  304,  844,  851,  854,  907,  421,    0,
59105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,    0,    0,  345,  465,  863,  862,  907,  843,  907,
59205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,  907,  165,    0,  907,  907,  907,  907,  907,  907,
59305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  907,    0,  907,  907,  907,  361,  907,  364,  907,
59405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,  367,  907,  376,  383,  853,  907,  386,  852,  400,
59505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,    0,    0,    0,  836,  844,  359,  830,  829,  830,
59605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      270,  827,  834,  829,  272,  838,  823,  827,  383,  833,
59705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      818,  819,  315,  818,  818,  826,  827,  830,  813,  819,
59805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      813,  818,  809,  822,    0,    0,    0,  907,  907,  811,
59905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
60005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      360,    0,    0,    0,  407,  403,  421,  321,  427,  427,
60105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      434,  343,  438,  450,  455,  458,  378,  822,  817,  801,
60205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      278,  801,  814,  804,  812,  811,  810,  833,  794,  805,
60305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      792,  829,  808,  801,  802,  364,  411,  789,  790,  786,
60405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      800,  789,  796,  780,  791,  787,  780,  784,  790,  789,
60505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      779,  790,  788,  785,  907,    0,    0,  772,    0,  781,
60605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      767,  773,  768,  781,  766,  779,  800,  776,  764,  769,
60705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      757,    0,  761,  756,  769,  433,  768,  763,  753,  765,
60805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      757,  748,  762,    0,  747,  436,  756,  745,  758,  743,
60905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  748,    0,  747,  745,    0,  785,    0,    0,  734,
61005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
61105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  745,  750,  734,    0,  437,  734,  737,  443,  750,
61205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      749,  748,  747,  738,    0,  731,  739,  731,  725,  723,
61305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  722,  759,  734,  723,  720,    0,  717,    0,  453,
61405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  717,  454,    0,  907,    0,  715,  715,  729,  710,
61505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      454,  713,  715,  711,  716,  719,  708,  710,  706,  721,
61605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      716,  706,  714,    0,  703,  700,  715,  710,  700,  694,
61705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      707,  488,  463,    0,  692,  705,  692,  703,  687,  688,
61805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      724,  699,  702,  689,  696,  680,  681,  695,  680,  695,
61905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  678,    0,  681,  692,    0,  907,  717,  676,  676,
62005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      672,  671,  681,  667,  680,  683,    0,  671,  664,  675,
62105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
62205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      669,    0,    0,  667,  661,  659,    0,  674,  700,  657,
62305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      656,  670,    0,  662,  655,  652,  665,    0,    0,  658,
62405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      647,  656,  663,  658,  651,  686,  470,  655,    0,  645,
62505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      626,  623,    0,  611,  603,  465,  598,  595,  588,  599,
62605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      600,  584,    0,  579,  588,    0,  579,  584,    0,    0,
62705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,    0,  555,  475,  541,  534,  530,    0,  539,  530,
62805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      537,  519,  528,    0,  533,  526,  521,    0,  527,  524,
62905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      483,  444,  444,    0,  456,  438,  434,  442,  424,    0,
63005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      907,  506,  519,  532,  545,  558,  571,  578,  588,  600,
63105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      613,  626,  634,  641,  648,  658,  666,  454,  406,  389,
63205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
63305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      384,  373,  138,  102,   88,   57,  676
634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
635cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
63605436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_def[508] =
637cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
63805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,    1,  482,  482,  483,  483,  483,  483,  484,  484,
63905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      483,  483,  483,  483,  483,  483,  483,  483,  483,  483,
64005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      483,  483,  483,  483,  481,   25,  485,  485,  481,  486,
64105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  487,  481,  488,
64205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      488,  481,  489,  481,  487,  481,  481,  481,  486,  481,
64305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  490,  481,  481,  481,  481,  481,
64405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
64505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  491,
64605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  492,  481,  492,  493,  481,  481,  481,  492,
64705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  486,  494,  481,  495,  495,
64805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
64905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
65005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  481,  487,   45,
65105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  496,  497,  488,  497,  489,  489,  481,  481,  481,
65205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  498,  481,  481,  481,  481,  481,  481,
65305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      499,  481,  500,  481,  481,  481,  481,  481,  481,  481,
65405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
65505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      492,  493,  494,  495,  495,  495,  495,  495,  495,  495,
65605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
65705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
65805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  496,  497,  125,  481,  481,  481,
65905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
66005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  501,  502,  500,  481,  481,  481,  481,  481,  481,
66105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  491,  495,  495,  495,
66205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
66305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
66405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
66505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  481,  481,  503,  504,  495,  495,  495,
66605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
66705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
66805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
66905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  481,  505,  506,  495,
67005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
67105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
67205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
67305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
67405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  481,  499,  481,  495,  495,  495,  495,  495,
67505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
67605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
67705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  481,  495,  495,  495,  495,  495,  495,  495,  495,
67805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
67905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  481,  481,  495,  495,
68005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
68105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
68205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  507,  495,
68305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
68405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  507,  507,  495,  495,  495,
68505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
68605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
68705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
68805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
68905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      495,  495,  495,  495,  495,  495,  495,  495,  495,  495,
69005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        0,  481,  481,  481,  481,  481,  481,  481,  481,  481,
69105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
69205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
69305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481
694cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
695cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
69605436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_nxt[966] =
697cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
69805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       30,   31,   32,   31,   30,   33,   30,   34,   35,   36,
69905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       37,   30,   38,   39,   40,   41,   41,   30,   42,   43,
70005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       44,   36,   30,   45,   45,   45,   45,   46,   30,   30,
70105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
70205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
70305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       45,   45,   45,   45,   47,   48,   36,   30,   53,   53,
70405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       57,   54,   54,   57,   66,  335,   58,   67,   76,   58,
70505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       69,   60,   32,   60,   66,   70,  124,  124,  124,   76,
70605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       61,   75,   81,   62,   55,   55,   55,   63,   82,   55,
70705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       60,   32,   60,   66,   77,   65,  334,   64,   66,   61,
70805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
70905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       75,   67,   62,   68,   69,   77,   63,  121,   80,   70,
71005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      299,  122,  148,   56,   56,   56,   64,   66,   56,  149,
71105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       67,   66,   68,   69,   67,  121,   71,   69,   70,  122,
71205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       66,   66,   70,   67,   67,   71,   69,   69,   72,  153,
71305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       78,   70,   70,   79,   81,   78,  298,   72,   79,  167,
71405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       82,   92,   32,   92,  154,  127,   92,   32,   92,  168,
71505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       93,   95,  150,   94,  169,   93,   80,  128,   94,  170,
71605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       80,   80,  187,   73,  151,   74,  155,  156,  155,  201,
71705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      201,  188,   73,  152,   74,   83,   84,   32,   84,   83,
71805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       83,   83,   83,   83,   83,   85,   83,   86,   87,   88,
71905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
72005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       88,   88,   83,   83,   83,   83,   83,   83,   86,   86,
72105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       86,   86,   83,   83,   89,   86,   86,   86,   86,   86,
72205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
72305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       86,   86,   86,   86,   86,   86,   86,   86,   86,   83,
72405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       83,   83,   83,   97,   97,   97,   97,   97,   97,   97,
72505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       98,   97,   97,   97,   97,   99,   97,   97,   97,   97,
72605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       97,   97,   97,   97,   97,   97,   99,   99,   99,   99,
72705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       97,   97,   97,   99,   99,  100,  101,  102,  103,  104,
72805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      105,   99,  106,   99,  107,  108,  109,  110,  111,   99,
72905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      112,  113,  114,  115,  116,   99,  117,  118,   97,   97,
73005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
73105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       97,   96,  124,  124,  124,   96,  145,   96,  231,  261,
73205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      146,  226,  119,  119,  125,  481,  121,  262,   96,  481,
73305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      122,  481,  227,   96,  232,  147,  158,  159,  158,   96,
73405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       96,  121,  481,  178,  174,  122,  182,  481,  175,  189,
73505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      125,  185,  148,  481,  481,  186,  179,  176,  190,  149,
73605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      241,  180,  183,  160,  242,  184,  153,  191,   96,  124,
73705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      124,  124,  205,  206,  205,  207,  208,  207,  209,  210,
73805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      209,  154,  481,  132,  255,  255,  132,  211,  212,  211,
73905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  257,  133,  133,  155,  156,  155,  214,  159,  214,
74005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      132,  220,  256,  134,  236,  221,  132,  204,  277,  135,
74105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
74205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      136,  216,  217,  216,  137,  278,  160,  222,  205,  206,
74305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      205,  138,  145,  236,  203,  139,  146,  140,  141,  142,
74405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      143,   96,  207,  208,  207,   96,  237,   96,  209,  210,
74505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      209,  147,  119,  119,  150,  211,  212,  211,   96,  155,
74605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      156,  155,  279,   96,  316,  280,  151,  325,  340,   96,
74705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       96,  214,  159,  214,  343,  152,  214,  159,  214,  216,
74805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      217,  216,  202,  316,  360,  367,  325,  340,  362,  362,
74905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      362,  480,  387,  343,  389,  427,  447,  479,   96,  197,
75005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      197,  197,  478,  360,  367,  477,  459,  476,  197,  475,
75105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      387,  388,  474,  389,  473,  447,  197,  197,  197,  197,
75205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
75305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      197,  197,  362,  362,  362,  459,   50,   50,   50,   50,
75405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       50,   50,   50,   50,   50,   50,   50,   50,   50,   52,
75505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
75605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       52,   52,   59,   59,   59,   59,   59,   59,   59,   59,
75705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       59,   59,   59,   59,   59,   91,   91,   91,   91,   91,
75805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       91,   91,   91,   91,   91,   91,   91,   91,   96,  472,
75905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      471,   96,  470,   96,   96,  469,  468,  467,  466,   96,
76005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       96,  120,  465,  464,  120,  463,  120,  120,  462,  120,
76105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      120,  461,  120,  120,  123,  460,  123,  123,  126,  126,
76205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      458,  126,  126,  126,  126,  126,  126,  126,  126,  126,
76305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
76405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
76505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      131,  131,  131,  157,  157,  157,  157,  157,  157,  157,
76605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      157,  157,  157,  457,  456,  157,  161,  455,  454,  161,
76705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      161,  161,  453,  452,  451,  450,  161,  449,  161,  162,
76805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      162,  448,  162,  162,  163,  163,  163,  163,  163,  163,
76905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      163,  163,  163,  164,  164,  446,  164,  164,  195,  195,
77005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      445,  195,  195,  195,  195,  195,  195,  195,  195,  195,
77105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      195,  196,  196,  444,  196,  196,  426,  426,  443,  426,
77205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      426,  426,  426,  426,  426,  426,  426,  426,  426,  442,
77305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      441,  427,  440,  439,  438,  437,  436,  435,  434,  433,
77405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
77505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      432,  431,  430,  429,  428,  427,  425,  424,  423,  422,
77605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      421,  420,  419,  418,  417,  416,  415,  414,  413,  412,
77705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      411,  410,  409,  408,  407,  406,  405,  404,  403,  402,
77805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      401,  400,  399,  398,  397,  396,  395,  394,  393,  392,
77905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      391,  390,  386,  385,  384,  383,  382,  381,  380,  379,
78005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
78105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      368,  366,  365,  364,  363,  361,  359,  358,  357,  356,
78205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      355,  354,  353,  352,  351,  350,  349,  348,  347,  346,
78305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      345,  344,  342,  341,  339,  338,  337,  336,  333,  332,
78405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      331,  330,  329,  328,  327,  326,  324,  323,  322,  321,
78505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
78605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      320,  319,  318,  317,  315,  314,  313,  312,  311,  310,
78705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      309,  308,  307,  306,  305,  304,  303,  302,  301,  300,
78805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
78905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      287,  286,  285,  284,  283,  282,  281,  276,  275,  274,
79005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      273,  272,  271,  270,  269,  268,  267,  266,  265,  264,
79105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      263,  260,  259,  258,  254,  253,  252,  251,  250,  249,
79205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      248,  247,  246,  245,  244,  243,  240,  239,  238,  235,
79305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      234,  233,  230,  229,  228,  225,  224,  223,  219,  218,
79405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      215,  213,  200,  199,  198,  194,  193,  192,  181,  177,
79505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      173,  172,  171,  166,  165,  129,  129,  144,  129,  130,
79605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
79705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      129,  481,   90,   51,   51,   49,   29,  481,  481,  481,
79805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
79905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
80005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
80105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
80205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
80305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481
804cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
805cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
80605436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_chk[966] =
807cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
808cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
810cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
81305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        1,    1,    1,    1,    1,    1,    1,    1,    5,    6,
81405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        7,    5,    6,    8,   15,  506,    7,   15,   19,    8,
81505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       15,    9,    9,    9,   17,   15,   41,   41,   41,   20,
81605436638acc7c010349a69c3395f1a57c642dc62Ying Wang        9,   17,   23,    9,    5,    6,    7,    9,   23,    8,
81705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       10,   10,   10,   18,   19,   10,  505,    9,   11,   10,
81805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
81905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       18,   11,   10,   11,   11,   20,   10,   39,   23,   11,
82005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      504,   39,   71,    5,    6,    7,   10,   12,    8,   71,
82105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       12,   13,   12,   12,   13,   62,   13,   13,   12,   62,
82205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       14,   16,   13,   14,   16,   14,   14,   16,   13,   75,
82305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       21,   14,   16,   21,   24,   22,  503,   14,   22,  102,
82405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       24,   27,   27,   27,   75,   43,   28,   28,   28,  102,
82505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       27,   28,   72,   27,  103,   28,   21,   43,   28,  103,
82605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       24,   22,  113,   13,   72,   13,   77,   77,   77,  133,
82705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      133,  113,   14,   72,   14,   25,   25,   25,   25,   25,
82805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
82905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
83005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
83105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
83205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
83305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
83405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       25,   25,   25,   34,   34,   34,   34,   34,   34,   34,
83505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
83605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
83705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
83805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
83905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
84005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
84105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       34,   38,   40,   40,   40,   38,   70,   38,  175,  221,
84205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       70,  171,   38,   38,   40,   45,   87,  221,   38,   45,
84305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       87,   45,  171,   38,  175,   70,   80,   80,   80,   38,
84405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       38,   94,   45,  109,  107,   94,  111,   45,  107,  114,
84505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       40,  112,  208,   45,   45,  112,  109,  107,  114,  208,
84605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      183,  109,  111,   80,  183,  111,  212,  114,   38,  124,
84705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      124,  124,  147,  147,  147,  149,  149,  149,  152,  152,
84805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      152,  212,   45,   55,  201,  201,   55,  154,  154,  154,
84905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      217,  502,   55,   55,  155,  155,  155,  158,  158,  158,
85005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       55,  167,  501,   55,  179,  167,   55,  500,  236,   55,
85105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
85205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       55,  160,  160,  160,   55,  236,  217,  167,  205,  205,
85305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      205,   55,  206,  179,  499,   55,  206,   55,   55,   55,
85405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       55,  119,  207,  207,  207,  119,  179,  119,  209,  209,
85505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      209,  206,  119,  119,  210,  211,  211,  211,  119,  213,
85605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      213,  213,  237,  119,  276,  237,  210,  286,  306,  119,
85705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      119,  214,  214,  214,  309,  210,  215,  215,  215,  216,
85805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      216,  216,  498,  276,  330,  341,  286,  306,  333,  333,
85905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      333,  479,  427,  309,  363,  427,  436,  478,  119,  125,
86005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      125,  125,  477,  330,  341,  476,  454,  475,  125,  473,
86105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      362,  362,  472,  363,  471,  436,  125,  125,  125,  125,
86205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
86305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      125,  125,  362,  362,  362,  454,  482,  482,  482,  482,
86405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      482,  482,  482,  482,  482,  482,  482,  482,  482,  483,
86505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      483,  483,  483,  483,  483,  483,  483,  483,  483,  483,
86605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      483,  483,  484,  484,  484,  484,  484,  484,  484,  484,
86705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      484,  484,  484,  484,  484,  485,  485,  485,  485,  485,
86805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      485,  485,  485,  485,  485,  485,  485,  485,  486,  470,
86905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      469,  486,  467,  486,  486,  466,  465,  463,  462,  486,
87005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      486,  487,  461,  460,  487,  459,  487,  487,  457,  487,
87105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      487,  456,  487,  487,  488,  455,  488,  488,  489,  489,
87205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      453,  489,  489,  489,  489,  489,  489,  489,  489,  489,
87305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
87405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      490,  490,  490,  490,  490,  490,  490,  490,  490,  490,
87505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      490,  490,  490,  491,  491,  491,  491,  491,  491,  491,
87605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      491,  491,  491,  448,  447,  491,  492,  445,  444,  492,
87705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      492,  492,  442,  441,  440,  439,  492,  438,  492,  493,
87805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      493,  437,  493,  493,  494,  494,  494,  494,  494,  494,
87905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      494,  494,  494,  495,  495,  435,  495,  495,  496,  496,
88005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      434,  496,  496,  496,  496,  496,  496,  496,  496,  496,
88105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      496,  497,  497,  432,  497,  497,  507,  507,  431,  507,
88205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      507,  507,  507,  507,  507,  507,  507,  507,  507,  430,
88305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      428,  426,  425,  424,  423,  422,  421,  420,  417,  416,
88405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
88505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      415,  414,  412,  411,  410,  409,  408,  406,  405,  404,
88605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      401,  400,  399,  398,  396,  395,  394,  393,  392,  391,
88705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      390,  389,  388,  385,  384,  382,  380,  379,  378,  377,
88805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      376,  375,  374,  373,  372,  371,  370,  369,  368,  367,
88905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      366,  365,  361,  360,  359,  358,  357,  356,  355,  353,
89005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
89105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      342,  340,  339,  338,  337,  332,  328,  326,  325,  324,
89205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      323,  322,  320,  319,  318,  317,  316,  314,  313,  312,
89305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      311,  310,  308,  307,  304,  303,  302,  300,  297,  295,
89405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      294,  292,  290,  289,  288,  287,  285,  283,  282,  281,
89505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
89605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      280,  279,  278,  277,  275,  274,  273,  271,  270,  269,
89705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      268,  267,  266,  265,  264,  263,  262,  261,  260,  258,
89805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      254,  253,  252,  251,  250,  249,  248,  247,  246,  245,
89905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      244,  243,  242,  241,  240,  239,  238,  235,  234,  233,
90005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      232,  231,  230,  229,  228,  227,  226,  225,  224,  223,
90105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      222,  220,  219,  218,  200,  194,  193,  192,  191,  190,
90205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      189,  188,  187,  186,  185,  184,  182,  181,  180,  178,
90305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      177,  176,  174,  173,  172,  170,  169,  168,  166,  165,
90405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      159,  156,  129,  127,  126,  117,  116,  115,  110,  108,
90505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      106,  105,  104,  101,  100,   95,   90,   68,   65,   51,
90605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
90705436638acc7c010349a69c3395f1a57c642dc62Ying Wang       49,   29,   26,    4,    3,    2,  481,  481,  481,  481,
90805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
90905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
91005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
91105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
91205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481,  481,  481,  481,  481,  481,
91305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      481,  481,  481,  481,  481
914cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
915cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
916cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yy_state_type yy_last_accepting_state;
917cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic char *yy_last_accepting_cpos;
918cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
919cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern int gram__flex_debug;
920cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint gram__flex_debug = 1;
921cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
922cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yyconst flex_int16_t yy_rule_linenum[109] =
923cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {   0,
92405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      149,  150,  151,  152,  160,  178,  179,  180,  181,  182,
92505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      183,  184,  185,  186,  187,  188,  189,  190,  191,  192,
92605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      193,  194,  195,  196,  197,  198,  199,  200,  201,  202,
92705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      203,  204,  205,  206,  207,  208,  209,  210,  211,  212,
92805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      213,  214,  215,  216,  217,  218,  219,  221,  225,  226,
92905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      227,  228,  229,  231,  238,  242,  249,  254,  257,  260,
93005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      263,  271,  279,  286,  293,  312,  327,  332,  351,  363,
93105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      379,  394,  411,  412,  423,  434,  435,  447,  473,  518,
93205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      528,  537,  547,  548,  549,  550,  551,  552,  553,  556,
93305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      558,  566,  583,  588,  589,  595,  596,  607,  613,  619,
93405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
93505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      625,  641,  642,  643,  659,  678,  718,  719
936cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    } ;
937cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
938cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* The intent behind this definition is that it'll catch
939cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * any uses of REJECT which flex missed.
940cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
941cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define REJECT reject_used_but_not_detected
942cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yymore() yymore_used_but_not_detected
943cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_MORE_ADJ 0
944cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_RESTORE_YY_MORE_OFFSET
945cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectchar *gram_text;
946cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#line 1 "scan-gram.l"
947cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Bison Grammar Scanner                             -*- C -*-
948cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
94905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Copyright (C) 2002-2012 Free Software Foundation, Inc.
950cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
951cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   This file is part of Bison, the GNU Compiler Compiler.
952cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
95305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is free software: you can redistribute it and/or modify
954cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   it under the terms of the GNU General Public License as published by
95505436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the Free Software Foundation, either version 3 of the License, or
956cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   (at your option) any later version.
957cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
958cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   This program is distributed in the hope that it will be useful,
959cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   but WITHOUT ANY WARRANTY; without even the implied warranty of
960cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
961cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   GNU General Public License for more details.
962cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
963cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   You should have received a copy of the GNU General Public License
96405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
96505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_NO_INPUT 1
96605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 24 "scan-gram.l"
967cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Work around a bug in flex 2.5.31.  See Debian bug 333231
968cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.  */
969cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#undef gram_wrap
970cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define gram_wrap() 1
971cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
97205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define FLEX_PREFIX(Id) gram_ ## Id
97305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include "flex-scanner.h"
974cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
975cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "complain.h"
976cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "files.h"
977cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "gram.h"
978cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "quotearg.h"
979cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "reader.h"
980cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "uniqstr.h"
981cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
98205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <c-ctype.h>
98305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <mbswidth.h>
98405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <quote.h>
98505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
98605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include "scan-gram.h"
98705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
98805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_DECL GRAM_LEX_DECL
98905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
990cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_USER_INIT					\
99105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   code_start = scanner_cursor = loc->start;		\
992cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
993cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Location of scanner cursor.  */
99405436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic boundary scanner_cursor;
995cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
99605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_USER_ACTION  location_compute (loc, &scanner_cursor, gram_text, gram_leng);
997cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
998cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic size_t no_cr_read (FILE *, char *, size_t);
999cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_INPUT(buf, result, size) ((result) = no_cr_read (gram_in, buf, size))
1000cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
100105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define ROLLBACK_CURRENT_TOKEN                                  \
100205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  do {                                                          \
100305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    scanner_cursor.column -= mbsnwidth (gram_text, gram_leng, 0);	\
100405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yyless (0);                                                 \
100505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  } while (0)
1006cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1007cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* A string representing the most recently saved token.  */
100805436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic char *last_string;
1009cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
101005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Bracketed identifier. */
101105436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic uniqstr bracketed_id_str = 0;
101205436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic location bracketed_id_loc;
101305436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic boundary bracketed_id_start;
101405436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int bracketed_id_context_state = 0;
1015cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1016cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid
101705436638acc7c010349a69c3395f1a57c642dc62Ying Wanggram_scanner_last_string_free (void)
1018cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1019cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  STRING_FREE;
1020cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
1021cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1022cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void handle_syncline (char *, location);
1023cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic unsigned long int scan_integer (char const *p, int base, location loc);
1024cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int convert_ucn_to_byte (char const *hex_text);
1025cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void unexpected_eof (boundary, char const *);
1026cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void unexpected_newline (boundary, char const *);
1027cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
102805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* A C-like comment in directives/rules. */
102905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
103005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Strings and characters in directives/rules. */
1031cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
103205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* A identifier was just read in directives/rules.  Special state
103305436638acc7c010349a69c3395f1a57c642dc62Ying Wangto capture the sequence 'identifier :'. */
1034cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
103505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Three types of user code:
103605436638acc7c010349a69c3395f1a57c642dc62Ying Wang- prologue (code between '%{' '%}' in the first section, before %%);
103705436638acc7c010349a69c3395f1a57c642dc62Ying Wang- actions, printers, union, etc, (between braced in the middle section);
103805436638acc7c010349a69c3395f1a57c642dc62Ying Wang- epilogue (everything after the second %%). */
1039cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
104005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* C and C++ comments in code. */
1041cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
104205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Strings and characters in code. */
104305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
104405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Bracketed identifiers support. */
1045cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1046cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* POSIX says that a tag must be both an id and a C union member, but
1047cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   historically almost any character is allowed in a tag.  We disallow
1048cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   NUL and newline, as this simplifies our implementation.  */
1049cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Zero or more instances of backslash-newline.  Following GCC, allow
1050cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   white space between the backslash and the newline.  */
105105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 1052 "scan-gram.c"
1052cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1053cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INITIAL 0
105405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_YACC_COMMENT 1
105505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_ESCAPED_STRING 2
105605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_ESCAPED_CHARACTER 3
105705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_AFTER_IDENTIFIER 4
105805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_PROLOGUE 5
105905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_BRACED_CODE 6
106005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_EPILOGUE 7
106105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_COMMENT 8
106205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_LINE_COMMENT 9
106305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_STRING 10
106405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_CHARACTER 11
106505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_BRACKETED_ID 12
106605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_RETURN_BRACKETED_ID 13
1067cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1068cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_NO_UNISTD_H
1069cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Special case for "unistd.h", since it is non-ANSI. We include it way
1070cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * down here because we want the user's section 1 to have been scanned first.
1071cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * The user has a chance to override it with an option.
1072cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
1073cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
1074cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <unistd.h>
1075cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1076cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
1077cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1078cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1079cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1080cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_EXTRA_TYPE
1081cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_EXTRA_TYPE void *
1082cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1083cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1084cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Reentrant structure and macros (non-C++). */
1085cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */
108605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %if-c-only */
108705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
108805436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int yy_init_globals (void );
108905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
109005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif */
1091cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */
1092cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
109305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif End reentrant structures and macros. */
109405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
109505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Accessor methods to globals.
109605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   These are made visible to non-reentrant scanners for convenience. */
109705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
109805436638acc7c010349a69c3395f1a57c642dc62Ying Wangint gram_lex_destroy (void );
109905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
110005436638acc7c010349a69c3395f1a57c642dc62Ying Wangint gram_get_debug (void );
110105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
110205436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid gram_set_debug (int debug_flag  );
110305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
110405436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_EXTRA_TYPE gram_get_extra (void );
110505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
110605436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid gram_set_extra (YY_EXTRA_TYPE user_defined  );
110705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
110805436638acc7c010349a69c3395f1a57c642dc62Ying WangFILE *gram_get_in (void );
110905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
111005436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid gram_set_in  (FILE * in_str  );
111105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
111205436638acc7c010349a69c3395f1a57c642dc62Ying WangFILE *gram_get_out (void );
111305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
111405436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid gram_set_out  (FILE * out_str  );
111505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
111605436638acc7c010349a69c3395f1a57c642dc62Ying Wangyy_size_t gram_get_leng (void );
111705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
111805436638acc7c010349a69c3395f1a57c642dc62Ying Wangchar *gram_get_text (void );
111905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
112005436638acc7c010349a69c3395f1a57c642dc62Ying Wangint gram_get_lineno (void );
112105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
112205436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid gram_set_lineno (int line_number  );
112305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1124cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-bison-bridge */
1125cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Macros after this point can all be overridden by user definitions in
1128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * section 1.
1129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
1130cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1131cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_SKIP_YYWRAP
1132cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus
1133cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern "C" int gram_wrap (void );
1134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
1135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern int gram_wrap (void );
1136cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1137cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1138cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1139cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
1140cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
1142cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1143cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1144cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1145cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef yytext_ptr
1146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void yy_flex_strncpy (char *,yyconst char *,int );
1147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YY_NEED_STRLEN
1150cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_flex_strlen (yyconst char * );
1151cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1152cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_NO_INPUT
1154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */
1155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
1156cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus
1158cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yyinput (void );
1159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
1160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int input (void );
1161cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1162cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
1163cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1164cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1165cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1166cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
1168cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1169cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1170cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1171cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Amount of stuff to slurp up with each read. */
1172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_READ_BUF_SIZE
1173cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_READ_BUF_SIZE 8192
1174cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1175cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1176cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Copy whatever the last rule matched to the standard output. */
1177cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef ECHO
1178cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */
1179cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* This used to be an fputs(), but since the string might contain NUL's,
1180cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * we now use fwrite().
1181cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
118205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define ECHO do { if (fwrite( gram_text, gram_leng, 1, gram_out )) {} } while (0)
1183cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1184cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only C++ definition */
1185cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1186cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1188cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * is returned in "result".
1190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
1191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_INPUT
1192cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_INPUT(buf,result,max_size) \
1193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{ \
1196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		int c = '*'; \
1197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		size_t n; \
1198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		for ( n = 0; n < max_size && \
1199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			     (c = getc( gram_in )) != EOF && c != '\n'; ++n ) \
1200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			buf[n] = (char) c; \
1201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( c == '\n' ) \
1202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			buf[n++] = (char) c; \
1203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( c == EOF && ferror( gram_in ) ) \
1204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		result = n; \
1206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		} \
1207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	else \
1208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{ \
1209cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		errno=0; \
1210cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		while ( (result = fread(buf, 1, max_size, gram_in))==0 && ferror(gram_in)) \
1211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{ \
1212cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			if( errno != EINTR) \
1213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{ \
1214cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				YY_FATAL_ERROR( "input in flex scanner failed" ); \
1215cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				break; \
1216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				} \
1217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			errno=0; \
1218cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			clearerr(gram_in); \
1219cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			} \
1220cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}\
1221cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project\
1222cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only C++ definition \ */\
1223cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1224cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1225cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1227cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* No semi-colon after return; correct usage is to write "yyterminate();" -
1228cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * we don't want an extra ';' after the "return" because that will cause
1229cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * some compilers to complain about unreachable statements.
1230cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
1231cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef yyterminate
1232cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyterminate() return YY_NULL
1233cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1234cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1235cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Number of entries by which start-condition stack grows. */
1236cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_START_STACK_INCR
1237cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_START_STACK_INCR 25
1238cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1239cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1240cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Report a fatal error. */
1241cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_FATAL_ERROR
1242cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
1243cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1244cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1245cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
1246cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1247cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1248cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1249cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-tables-serialization structures and prototypes */
1250cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
1251cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1252cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
1253cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1254cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
1255cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1256cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %tables-yydmap generated elements */
1257cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1258cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* end tables serialization structures and prototypes */
1259cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1260cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
1261cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1262cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Default declaration of generated scanner - a define so the user can
1263cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * easily add parameters.
1264cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
1265cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_DECL
1266cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_DECL_IS_OURS 1
1267cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */
1268cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1269cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern int gram_lex (void);
1270cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1271cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_DECL int gram_lex (void)
1272cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1273cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only C++ definition */
1274cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1275cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* !YY_DECL */
1276cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1277cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Code executed at the beginning of each rule, after gram_text and gram_leng
1278cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * have been set up.
1279cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
1280cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_USER_ACTION
1281cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_USER_ACTION
1282cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1283cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1284cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Code executed at the end of each rule. */
1285cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_BREAK
1286cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_BREAK break;
1287cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1288cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1289cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [6.0] YY_RULE_SETUP definition goes here */
1290cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_RULE_SETUP \
1291cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( gram_leng > 0 ) \
1292cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1293cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				(gram_text[gram_leng - 1] == '\n'); \
1294cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_USER_ACTION
1295cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1296cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
1297cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1298cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** The main scanner function which does all the work.
1299cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
1300cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_DECL
1301cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1302cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register yy_state_type yy_current_state;
1303cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register char *yy_cp, *yy_bp;
1304cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register int yy_act;
1305cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1306cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [7.0] user's declarations go here */
130705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 120 "scan-gram.l"
1308cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1309cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1310cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Nesting level of the current code in braces.  */
131105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int braces_level PACIFY_CC (= 0);
1312cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1313cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Parent context state, when applicable.  */
131405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  int context_state PACIFY_CC (= 0);
1315cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1316cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Location of most recent identifier, when applicable.  */
131705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  location id_loc PACIFY_CC (= empty_location);
1318cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1319cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Where containing code started, when applicable.  Its initial
1320cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     value is relevant only when gram_lex is invoked in the SC_EPILOGUE
1321cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     start condition.  */
1322cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  boundary code_start = scanner_cursor;
1323cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1324cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Where containing comment or string or character literal started,
1325cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     when applicable.  */
132605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  boundary token_start PACIFY_CC (= scanner_cursor);
1327cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1328cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1329cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1330cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /*-----------------------.
1331cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning white space.  |
1332cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `-----------------------*/
1333cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
133405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 1335 "scan-gram.c"
1335cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
133605436638acc7c010349a69c3395f1a57c642dc62Ying Wang	if ( !(yy_init) )
1337cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
133805436638acc7c010349a69c3395f1a57c642dc62Ying Wang		(yy_init) = 1;
1339cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1340cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YY_USER_INIT
1341cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_USER_INIT;
1342cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
1343cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1344cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( ! (yy_start) )
1345cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			(yy_start) = 1;	/* first start state */
1346cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1347cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( ! gram_in )
1348cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
1349cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			gram_in = stdin;
1350cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1351cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
1352cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1353cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1354cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( ! gram_out )
1355cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
1356cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			gram_out = stdout;
1357cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1358cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
1359cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
1360cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1361cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( ! YY_CURRENT_BUFFER ) {
1362cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			gram_ensure_buffer_stack ();
1363cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			YY_CURRENT_BUFFER_LVALUE =
1364cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				gram__create_buffer(gram_in,YY_BUF_SIZE );
1365cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
1366cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1367cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram__load_buffer_state( );
1368cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
1369cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1370cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	while ( 1 )		/* loops until end-of-file is reached */
1371cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
1372cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [8.0] yymore()-related code goes here */
1373cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_cp = (yy_c_buf_p);
1374cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1375cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Support of gram_text. */
1376cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		*yy_cp = (yy_hold_char);
1377cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1378cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* yy_bp points to the position in yy_ch_buf of the start of
1379cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * the current run.
1380cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 */
1381cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_bp = yy_cp;
1382cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1383cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [9.0] code to set up and find next match goes here */
1384cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_current_state = (yy_start);
1385cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_current_state += YY_AT_BOL();
1386cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyy_match:
1387cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		do
1388cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
1389cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1390cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			if ( yy_accept[yy_current_state] )
1391cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{
1392cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				(yy_last_accepting_state) = yy_current_state;
1393cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				(yy_last_accepting_cpos) = yy_cp;
1394cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				}
1395cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1396cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{
1397cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_current_state = (int) yy_def[yy_current_state];
139805436638acc7c010349a69c3395f1a57c642dc62Ying Wang				if ( yy_current_state >= 482 )
1399cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					yy_c = yy_meta[(unsigned int) yy_c];
1400cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				}
1401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1402cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			++yy_cp;
1403cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
140405436638acc7c010349a69c3395f1a57c642dc62Ying Wang		while ( yy_current_state != 481 );
1405cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_cp = (yy_last_accepting_cpos);
1406cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_current_state = (yy_last_accepting_state);
1407cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1408cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyy_find_action:
1409cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [10.0] code to find the action number goes here */
1410cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_act = yy_accept[yy_current_state];
1411cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1412cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_DO_BEFORE_ACTION;
1413cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1414cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [11.0] code for gram_lineno update goes here */
1415cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1416cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdo_action:	/* This label is used only to access EOF actions. */
1417cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1418cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [12.0] debug code goes here */
1419cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( gram__flex_debug )
1420cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
1421cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			if ( yy_act == 0 )
1422cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				fprintf( stderr, "--scanner backing up\n" );
1423cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			else if ( yy_act < 109 )
1424cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
1425cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				         (long)yy_rule_linenum[yy_act], gram_text );
1426cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			else if ( yy_act == 109 )
1427cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				fprintf( stderr, "--accepting default rule (\"%s\")\n",
1428cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				         gram_text );
1429cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			else if ( yy_act == 110 )
1430cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				fprintf( stderr, "--(end of buffer or a NUL)\n" );
1431cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			else
1432cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
1433cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
1434cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1435cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		switch ( yy_act )
1436cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{ /* beginning of action switch */
1437cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [13.0] actions go here */
1438cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			case 0: /* must back up */
1439cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			/* undo the effects of YY_DO_BEFORE_ACTION */
1440cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			*yy_cp = (yy_hold_char);
1441cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_cp = (yy_last_accepting_cpos);
1442cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_current_state = (yy_last_accepting_state);
1443cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			goto yy_find_action;
1444cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1445cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Comments and white space.  */
1446cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 1:
1447cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
144805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 149 "scan-gram.l"
144905436638acc7c010349a69c3395f1a57c642dc62Ying Wangwarn_at (*loc, _("stray ',' treated as white space"));
1450cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1451cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 2:
1452cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* rule 2 can match eol */
145305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 151 "scan-gram.l"
1454cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 3:
1455cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* rule 3 can match eol */
1456cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
145705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 151 "scan-gram.l"
145805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcontinue;
1459cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1460cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 4:
1461cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
146205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 152 "scan-gram.l"
1463cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1464cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    token_start = loc->start;
1465cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    context_state = YY_START;
1466cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN SC_YACC_COMMENT;
1467cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1468cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1469cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* #line directives are not documented, and may be withdrawn or
1470cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     modified in future versions of Bison.  */
1471cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 5:
1472cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* rule 5 can match eol */
1473cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
147405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 160 "scan-gram.l"
1475cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1476cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    handle_syncline (gram_text + sizeof "#line " - 1, *loc);
1477cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1478cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1479cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1480cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*----------------------------.
1481cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning Bison directives.  |
1482cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `----------------------------*/
148305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* For directives that are also command line options, the regex must be
148405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	"%..."
148505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     after "[-_]"s are removed, and the directive must match the --long
148605436638acc7c010349a69c3395f1a57c642dc62Ying Wang     option name, with a single string argument.  Otherwise, add exceptions
148705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     to ../build-aux/cross-options.pl.  */
1488cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1489cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1490cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 6:
1491cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
149205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 178 "scan-gram.l"
1493cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectreturn PERCENT_NONASSOC;
1494cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1495cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 7:
1496cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
149705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 179 "scan-gram.l"
149805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_CODE;
1499cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1500cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 8:
1501cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
150205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 180 "scan-gram.l"
150305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_DEBUG;
1504cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1505cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 9:
1506cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
150705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 181 "scan-gram.l"
150805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_DEFAULT_PREC;
1509cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1510cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 10:
1511cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
151205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 182 "scan-gram.l"
151305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_DEFINE;
1514cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1515cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 11:
1516cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
151705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 183 "scan-gram.l"
151805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_DEFINES;
1519cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1520cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 12:
1521cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
152205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 184 "scan-gram.l"
152305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_DESTRUCTOR;
1524cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1525cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 13:
1526cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
152705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 185 "scan-gram.l"
152805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_DPREC;
1529cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1530cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 14:
1531cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
153205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 186 "scan-gram.l"
153305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_ERROR_VERBOSE;
1534cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1535cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 15:
1536cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
153705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 187 "scan-gram.l"
153805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_EXPECT;
1539cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1540cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 16:
1541cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
154205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 188 "scan-gram.l"
154305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_EXPECT_RR;
1544cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1545cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 17:
1546cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
154705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 189 "scan-gram.l"
154805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_FILE_PREFIX;
1549cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1550cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 18:
1551cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
155205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 190 "scan-gram.l"
155305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_YACC;
1554cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1555cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 19:
1556cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
155705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 191 "scan-gram.l"
155805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_INITIAL_ACTION;
1559cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1560cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 20:
1561cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
156205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 192 "scan-gram.l"
156305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_GLR_PARSER;
1564cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1565cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 21:
1566cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
156705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 193 "scan-gram.l"
156805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_LANGUAGE;
1569cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1570cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 22:
1571cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
157205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 194 "scan-gram.l"
157305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_LEFT;
1574cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1575cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 23:
1576cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
157705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 195 "scan-gram.l"
157805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_LEX_PARAM;
1579cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1580cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 24:
1581cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
158205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 196 "scan-gram.l"
158305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_LOCATIONS;
1584cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1585cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 25:
1586cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
158705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 197 "scan-gram.l"
158805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_MERGE;
1589cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1590cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 26:
1591cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
159205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 198 "scan-gram.l"
159305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_NAME_PREFIX;
1594cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1595cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 27:
1596cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
159705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 199 "scan-gram.l"
159805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_NO_DEFAULT_PREC;
1599cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1600cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 28:
1601cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
160205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 200 "scan-gram.l"
160305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_NO_LINES;
1604cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1605cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 29:
1606cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
160705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 201 "scan-gram.l"
160805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_NONASSOC;
1609cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1610cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 30:
1611cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
161205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 202 "scan-gram.l"
161305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_NONDETERMINISTIC_PARSER;
1614cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1615cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 31:
1616cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
161705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 203 "scan-gram.l"
161805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_NTERM;
1619cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1620cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 32:
1621cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
162205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 204 "scan-gram.l"
162305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_OUTPUT;
1624cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1625cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 33:
1626cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
162705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 205 "scan-gram.l"
162805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_PARSE_PARAM;
1629cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1630cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 34:
1631cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
163205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 206 "scan-gram.l"
163305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_PREC;
1634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1635cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 35:
1636cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
163705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 207 "scan-gram.l"
163805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_PRINTER;
1639cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1640cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 36:
1641cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
164205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 208 "scan-gram.l"
164305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_PURE_PARSER;
1644cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1645cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 37:
1646cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
164705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 209 "scan-gram.l"
164805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_REQUIRE;
1649cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1650cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 38:
1651cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
165205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 210 "scan-gram.l"
165305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_RIGHT;
1654cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1655cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 39:
1656cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
165705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 211 "scan-gram.l"
165805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_SKELETON;
1659cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1660cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 40:
1661cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
166205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 212 "scan-gram.l"
166305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_START;
1664cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1665cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 41:
1666cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
166705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 213 "scan-gram.l"
166805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_TOKEN;
1669cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1670cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 42:
1671cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
167205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 214 "scan-gram.l"
167305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_TOKEN;
1674cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1675cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 43:
1676cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
167705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 215 "scan-gram.l"
167805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_TOKEN_TABLE;
1679cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1680cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 44:
1681cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
168205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 216 "scan-gram.l"
168305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_TYPE;
1684cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1685cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 45:
1686cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
168705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 217 "scan-gram.l"
168805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_UNION;
1689cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1690cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 46:
1691cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
169205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 218 "scan-gram.l"
169305436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_VERBOSE;
169405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
169505436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 47:
169605436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
169705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 219 "scan-gram.l"
169805436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PERCENT_YACC;
169905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
170005436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 48:
170105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 48 can match eol */
170205436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
170305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 221 "scan-gram.l"
1704cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1705cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    complain_at (*loc, _("invalid directive: %s"), quote (gram_text));
1706cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1707cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
170805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 49:
1709cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
171005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 225 "scan-gram.l"
1711cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectreturn EQUAL;
1712cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
171305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 50:
1714cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
171505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 226 "scan-gram.l"
171605436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn PIPE;
1717cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
171805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 51:
1719cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
172005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 227 "scan-gram.l"
1721cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectreturn SEMICOLON;
1722cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
172305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 52:
1724cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
172505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 228 "scan-gram.l"
172605436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn TYPE_TAG_ANY;
172705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
172805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 53:
172905436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
173005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 229 "scan-gram.l"
173105436638acc7c010349a69c3395f1a57c642dc62Ying Wangreturn TYPE_TAG_NONE;
173205436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
173305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 54:
173405436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
173505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 231 "scan-gram.l"
1736cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
173705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    val->uniqstr = uniqstr_new (gram_text);
1738cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    id_loc = *loc;
173905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    bracketed_id_str = NULL;
1740cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN SC_AFTER_IDENTIFIER;
1741cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1742cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
174305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 55:
1744cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
174505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 238 "scan-gram.l"
1746cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1747cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    val->integer = scan_integer (gram_text, 10, *loc);
1748cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return INT;
1749cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1750cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
175105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 56:
1752cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
175305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 242 "scan-gram.l"
1754cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1755cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    val->integer = scan_integer (gram_text, 16, *loc);
1756cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return INT;
1757cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1758cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
175905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Identifiers may not start with a digit.  Yet, don't silently
176005436638acc7c010349a69c3395f1a57c642dc62Ying Wang     accept "1FOO" as "1 FOO".  */
176105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 57:
1762cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
176305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 249 "scan-gram.l"
176405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
176505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    complain_at (*loc, _("invalid identifier: %s"), quote (gram_text));
176605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
176705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
176805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Characters.  */
176905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 58:
177005436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
177105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 254 "scan-gram.l"
177205436638acc7c010349a69c3395f1a57c642dc62Ying Wangtoken_start = loc->start; BEGIN SC_ESCAPED_CHARACTER;
1773cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1774cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Strings. */
177505436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 59:
1776cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
177705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 257 "scan-gram.l"
1778cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecttoken_start = loc->start; BEGIN SC_ESCAPED_STRING;
1779cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1780cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Prologue. */
178105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 60:
1782cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
178305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 260 "scan-gram.l"
1784cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcode_start = loc->start; BEGIN SC_PROLOGUE;
1785cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1786cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Code in between braces.  */
178705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 61:
1788cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
178905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 263 "scan-gram.l"
1790cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1791cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_GROW;
1792cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    braces_level = 0;
1793cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    code_start = loc->start;
1794cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN SC_BRACED_CODE;
1795cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1796cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1797cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* A type. */
179805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 62:
1799cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
180005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 271 "scan-gram.l"
1801cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1802cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    obstack_grow (&obstack_for_string, gram_text + 1, gram_leng - 2);
1803cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_FINISH;
1804cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    val->uniqstr = uniqstr_new (last_string);
1805cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_FREE;
1806cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return TYPE;
1807cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1808cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
180905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 63:
1810cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
181105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 279 "scan-gram.l"
1812cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1813cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    static int percent_percent_count;
1814cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    if (++percent_percent_count == 2)
1815cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      BEGIN SC_EPILOGUE;
1816cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return PERCENT_PERCENT;
1817cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1818cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
181905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 64:
1820cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
182105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 286 "scan-gram.l"
1822cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
182305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    bracketed_id_str = NULL;
182405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    bracketed_id_start = loc->start;
182505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    bracketed_id_context_state = YY_START;
182605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN SC_BRACKETED_ID;
182705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
182805436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
182905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 65:
183005436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
183105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 293 "scan-gram.l"
183205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
183305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    complain_at (*loc, "%s: %s",
183405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 ngettext ("invalid character", "invalid characters", gram_leng),
183505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 quote_mem (gram_text, gram_leng));
1836cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1837cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1838cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(INITIAL):
183905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 299 "scan-gram.l"
1840cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
1841cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    loc->start = loc->end = scanner_cursor;
1842cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    yyterminate ();
1843cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1844cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1845cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1846cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-----------------------------------------------------------------.
1847cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning after an identifier, checking whether a colon is next.  |
1848cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `-----------------------------------------------------------------*/
1849cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1850cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
185105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 66:
185205436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
185305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 312 "scan-gram.l"
185405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
185505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (bracketed_id_str)
185605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
185705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	ROLLBACK_CURRENT_TOKEN;
185805436638acc7c010349a69c3395f1a57c642dc62Ying Wang	BEGIN SC_RETURN_BRACKETED_ID;
185905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	*loc = id_loc;
186005436638acc7c010349a69c3395f1a57c642dc62Ying Wang	return ID;
186105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
186205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    else
186305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
186405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	bracketed_id_start = loc->start;
186505436638acc7c010349a69c3395f1a57c642dc62Ying Wang	bracketed_id_context_state = YY_START;
186605436638acc7c010349a69c3395f1a57c642dc62Ying Wang	BEGIN SC_BRACKETED_ID;
186705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
186805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
186905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
187005436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 67:
1871cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
187205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 327 "scan-gram.l"
1873cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
187405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
1875cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    *loc = id_loc;
1876cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return ID_COLON;
1877cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1878cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
187905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 68:
1880cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
188105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 332 "scan-gram.l"
1882cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
188305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    ROLLBACK_CURRENT_TOKEN;
188405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
1885cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    *loc = id_loc;
1886cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return ID;
1887cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1888cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1889cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_AFTER_IDENTIFIER):
189005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 338 "scan-gram.l"
1891cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
189205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
1893cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    *loc = id_loc;
1894cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return ID;
1895cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
1896cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1897cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
189805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*--------------------------------.
189905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  | Scanning bracketed identifiers. |
190005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  `--------------------------------*/
190105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
190205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
190305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 69:
190405436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
190505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 351 "scan-gram.l"
190605436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
190705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (bracketed_id_str)
190805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
190905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	complain_at (*loc, _("unexpected identifier in bracketed name: %s"),
191005436638acc7c010349a69c3395f1a57c642dc62Ying Wang		     quote (gram_text));
191105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
191205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    else
191305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
191405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	bracketed_id_str = uniqstr_new (gram_text);
191505436638acc7c010349a69c3395f1a57c642dc62Ying Wang	bracketed_id_loc = *loc;
191605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
191705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
191805436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
191905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 70:
192005436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
192105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 363 "scan-gram.l"
192205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
192305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN bracketed_id_context_state;
192405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (bracketed_id_str)
192505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      {
192605436638acc7c010349a69c3395f1a57c642dc62Ying Wang	if (INITIAL == bracketed_id_context_state)
192705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	  {
192805436638acc7c010349a69c3395f1a57c642dc62Ying Wang	    val->uniqstr = bracketed_id_str;
192905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	    bracketed_id_str = 0;
193005436638acc7c010349a69c3395f1a57c642dc62Ying Wang	    *loc = bracketed_id_loc;
193105436638acc7c010349a69c3395f1a57c642dc62Ying Wang	    return BRACKETED_ID;
193205436638acc7c010349a69c3395f1a57c642dc62Ying Wang	  }
193305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      }
193405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    else
193505436638acc7c010349a69c3395f1a57c642dc62Ying Wang      complain_at (*loc, _("an identifier expected"));
193605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
193705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
193805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 71:
193905436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
194005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 379 "scan-gram.l"
194105436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
194205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    complain_at (*loc, "%s: %s",
194305436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 ngettext ("invalid character in bracketed name",
194405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                           "invalid characters in bracketed name", gram_leng),
194505436638acc7c010349a69c3395f1a57c642dc62Ying Wang                 quote_mem (gram_text, gram_leng));
194605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
194705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
194805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase YY_STATE_EOF(SC_BRACKETED_ID):
194905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 386 "scan-gram.l"
195005436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
195105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN bracketed_id_context_state;
195205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    unexpected_eof (bracketed_id_start, "]");
195305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
195405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
195505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
195605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
195705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
195805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 72:
195905436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP
196005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 394 "scan-gram.l"
196105436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
196205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    ROLLBACK_CURRENT_TOKEN;
196305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    val->uniqstr = bracketed_id_str;
196405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    bracketed_id_str = 0;
196505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    *loc = bracketed_id_loc;
196605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN INITIAL;
196705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return BRACKETED_ID;
196805436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
196905436638acc7c010349a69c3395f1a57c642dc62Ying Wang	YY_BREAK
197005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1971cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*---------------------------------------------------------------.
197205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  | Scanning a Yacc comment.  The initial '/ *' is already eaten.  |
1973cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `---------------------------------------------------------------*/
1974cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1975cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
197605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 73:
1977cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
197805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 411 "scan-gram.l"
1979cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectBEGIN context_state;
1980cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
198105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 74:
198205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 74 can match eol */
1983cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
198405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 412 "scan-gram.l"
198505436638acc7c010349a69c3395f1a57c642dc62Ying Wangcontinue;
1986cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1987cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_YACC_COMMENT):
198805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 413 "scan-gram.l"
1989cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_eof (token_start, "*/"); BEGIN context_state;
1990cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
1991cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1992cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------------------.
199305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  | Scanning a C comment.  The initial '/ *' is already eaten.  |
1994cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `------------------------------------------------------------*/
1995cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
1996cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
199705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 75:
199805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 75 can match eol */
1999cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
200005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 423 "scan-gram.l"
2001cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW; BEGIN context_state;
2002cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2003cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_COMMENT):
200405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 424 "scan-gram.l"
2005cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_eof (token_start, "*/"); BEGIN context_state;
2006cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2007cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2008cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*--------------------------------------------------------------.
200905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  | Scanning a line comment.  The initial '//' is already eaten.  |
2010cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `--------------------------------------------------------------*/
2011cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2012cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
201305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 76:
201405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 76 can match eol */
2015cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
201605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 434 "scan-gram.l"
2017cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW; BEGIN context_state;
2018cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
201905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 77:
202005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 77 can match eol */
2021cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
202205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 435 "scan-gram.l"
2023cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW;
2024cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2025cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_LINE_COMMENT):
202605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 436 "scan-gram.l"
2027cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectBEGIN context_state;
2028cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2029cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2030cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------.
2031cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning a Bison string, including its escapes. |
2032cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | The initial quote is already eaten.             |
2033cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `------------------------------------------------*/
2034cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2035cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
203605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 78:
203705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 78 can match eol */
2038cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
203905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 447 "scan-gram.l"
2040cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
204105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (gram_text[0] == '\n')
204205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      unexpected_newline (token_start, "\"");
2043cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_FINISH;
2044cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    loc->start = token_start;
2045cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    val->chars = last_string;
2046cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN INITIAL;
2047cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return STRING;
2048cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2049cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2050cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_ESCAPED_STRING):
205105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 456 "scan-gram.l"
205205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
205305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    unexpected_eof (token_start, "\"");
205405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    STRING_FINISH;
205505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    loc->start = token_start;
205605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    val->chars = last_string;
205705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN INITIAL;
205805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return STRING;
205905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
2060cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2061cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2062cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*----------------------------------------------------------.
2063cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning a Bison character literal, decoding its escapes. |
2064cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | The initial quote is already eaten.			      |
2065cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `----------------------------------------------------------*/
2066cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2067cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
206805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 79:
206905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 79 can match eol */
2070cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
207105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 473 "scan-gram.l"
2072cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2073cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_FINISH;
2074cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    loc->start = token_start;
207505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    val->character = last_string[0];
207605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
207705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      /* FIXME: Eventually, make these errors.  */
207805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (last_string[0] == '\0')
207905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
208005436638acc7c010349a69c3395f1a57c642dc62Ying Wang          warn_at (*loc, _("empty character literal"));
208105436638acc7c010349a69c3395f1a57c642dc62Ying Wang          /* '\0' seems dangerous even if we are about to complain.  */
208205436638acc7c010349a69c3395f1a57c642dc62Ying Wang          val->character = '\'';
208305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
208405436638acc7c010349a69c3395f1a57c642dc62Ying Wang      else if (last_string[1] != '\0')
208505436638acc7c010349a69c3395f1a57c642dc62Ying Wang        warn_at (*loc, _("extra characters in character literal"));
208605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
208705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (gram_text[0] == '\n')
208805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      unexpected_newline (token_start, "'");
2089cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_FREE;
2090cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN INITIAL;
209105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return CHAR;
2092cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2093cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2094cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_ESCAPED_CHARACTER):
209505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 494 "scan-gram.l"
209605436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
209705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    STRING_FINISH;
209805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    loc->start = token_start;
209905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    val->character = last_string[0];
210005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
210105436638acc7c010349a69c3395f1a57c642dc62Ying Wang      /* FIXME: Eventually, make these errors.  */
210205436638acc7c010349a69c3395f1a57c642dc62Ying Wang      if (last_string[0] == '\0')
210305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        {
210405436638acc7c010349a69c3395f1a57c642dc62Ying Wang          warn_at (*loc, _("empty character literal"));
210505436638acc7c010349a69c3395f1a57c642dc62Ying Wang          /* '\0' seems dangerous even if we are about to complain.  */
210605436638acc7c010349a69c3395f1a57c642dc62Ying Wang          val->character = '\'';
210705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        }
210805436638acc7c010349a69c3395f1a57c642dc62Ying Wang      else if (last_string[1] != '\0')
210905436638acc7c010349a69c3395f1a57c642dc62Ying Wang        warn_at (*loc, _("extra characters in character literal"));
211005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
211105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    unexpected_eof (token_start, "'");
211205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    STRING_FREE;
211305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN INITIAL;
211405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return CHAR;
211505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
2116cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2117cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2118cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2119cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
212005436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 80:
2121cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
212205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 518 "scan-gram.l"
2123cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcomplain_at (*loc, _("invalid null character"));
2124cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2125cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*----------------------------.
2127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Decode escaped characters.  |
2128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `----------------------------*/
2129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2130cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
213105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 81:
2132cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
213305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 528 "scan-gram.l"
2134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    unsigned long int c = strtoul (gram_text + 1, NULL, 8);
213605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (!c || UCHAR_MAX < c)
213705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      complain_at (*loc, _("invalid number after \\-escape: %s"),
213805436638acc7c010349a69c3395f1a57c642dc62Ying Wang                   gram_text+1);
2139cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    else
2140cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      obstack_1grow (&obstack_for_string, c);
2141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2142cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
214305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 82:
2144cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
214505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 537 "scan-gram.l"
2146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    verify (UCHAR_MAX < ULONG_MAX);
2148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    unsigned long int c = strtoul (gram_text + 2, NULL, 16);
214905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (!c || UCHAR_MAX < c)
215005436638acc7c010349a69c3395f1a57c642dc62Ying Wang      complain_at (*loc, _("invalid number after \\-escape: %s"),
215105436638acc7c010349a69c3395f1a57c642dc62Ying Wang                   gram_text+1);
2152cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    else
2153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      obstack_1grow (&obstack_for_string, c);
2154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
215605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 83:
2157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
215805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 547 "scan-gram.l"
2159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, '\a');
2160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
216105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 84:
2162cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
216305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 548 "scan-gram.l"
2164cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, '\b');
2165cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
216605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 85:
2167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
216805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 549 "scan-gram.l"
2169cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, '\f');
2170cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
217105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 86:
2172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
217305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 550 "scan-gram.l"
2174cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, '\n');
2175cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
217605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 87:
2177cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
217805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 551 "scan-gram.l"
2179cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, '\r');
2180cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
218105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 88:
2182cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
218305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 552 "scan-gram.l"
2184cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, '\t');
2185cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
218605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 89:
2187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
218805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 553 "scan-gram.l"
2189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, '\v');
2190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* \\[\"\'?\\] would be shorter, but it confuses xgettext.  */
219205436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 90:
2193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
219405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 556 "scan-gram.l"
2195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectobstack_1grow (&obstack_for_string, gram_text[1]);
2196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
219705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 91:
2198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
219905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 558 "scan-gram.l"
2200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    int c = convert_ucn_to_byte (gram_text);
220205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (c <= 0)
220305436638acc7c010349a69c3395f1a57c642dc62Ying Wang      complain_at (*loc, _("invalid number after \\-escape: %s"),
220405436638acc7c010349a69c3395f1a57c642dc62Ying Wang                   gram_text+1);
2205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    else
2206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      obstack_1grow (&obstack_for_string, c);
2207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
220905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 92:
221005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 92 can match eol */
2211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
221205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 566 "scan-gram.l"
2213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
221405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    char const *p = gram_text + 1;
221505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* Quote only if escaping won't make the character visible.  */
221605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (c_isspace ((unsigned char) *p) && c_isprint ((unsigned char) *p))
221705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      p = quote (p);
221805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    else
221905436638acc7c010349a69c3395f1a57c642dc62Ying Wang      p = quotearg_style_mem (escape_quoting_style, p, 1);
222005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    complain_at (*loc, _("invalid character after \\-escape: %s"), p);
2221cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2222cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2223cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2224cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*--------------------------------------------.
2225cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning user-code characters and strings.  |
2226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `--------------------------------------------*/
2227cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2228cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
222905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 93:
223005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 93 can match eol */
2231cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
223205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 583 "scan-gram.l"
2233cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW;
2234cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2235cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2236cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2237cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
223805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 94:
2239cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
224005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 588 "scan-gram.l"
2241cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW; BEGIN context_state;
2242cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
224305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 95:
224405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 95 can match eol */
2245cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
224605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 589 "scan-gram.l"
2247cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_newline (token_start, "'"); BEGIN context_state;
2248cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2249cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_CHARACTER):
225005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 590 "scan-gram.l"
2251cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_eof (token_start, "'"); BEGIN context_state;
2252cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2253cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2254cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2255cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
225605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 96:
2257cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
225805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 595 "scan-gram.l"
2259cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW; BEGIN context_state;
2260cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
226105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 97:
226205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 97 can match eol */
2263cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
226405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 596 "scan-gram.l"
2265cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_newline (token_start, "\""); BEGIN context_state;
2266cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2267cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_STRING):
226805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 597 "scan-gram.l"
2269cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_eof (token_start, "\""); BEGIN context_state;
2270cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2271cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2272cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*---------------------------------------------------.
2273cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Strings, comments etc. can be found in user code.  |
2274cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `---------------------------------------------------*/
2275cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2276cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
227705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 98:
2278cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
227905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 607 "scan-gram.l"
2280cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2281cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_GROW;
2282cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    context_state = YY_START;
2283cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    token_start = loc->start;
2284cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN SC_CHARACTER;
2285cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2286cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
228705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 99:
2288cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
228905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 613 "scan-gram.l"
2290cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2291cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_GROW;
2292cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    context_state = YY_START;
2293cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    token_start = loc->start;
2294cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN SC_STRING;
2295cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2296cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
229705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 100:
229805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 100 can match eol */
2299cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
230005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 619 "scan-gram.l"
2301cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2302cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_GROW;
2303cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    context_state = YY_START;
2304cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    token_start = loc->start;
2305cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN SC_COMMENT;
2306cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2307cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
230805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 101:
230905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 101 can match eol */
2310cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
231105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 625 "scan-gram.l"
2312cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2313cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_GROW;
2314cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    context_state = YY_START;
2315cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN SC_LINE_COMMENT;
2316cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2317cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2318cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
231905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*-----------------------------------------------------------.
232005436638acc7c010349a69c3395f1a57c642dc62Ying Wang  | Scanning some code in braces (actions). The initial "{" is |
232105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  | already eaten.                                             |
232205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  `-----------------------------------------------------------*/
2323cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2324cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
232505436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 102:
232605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 102 can match eol */
2327cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
232805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 641 "scan-gram.l"
2329cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW; braces_level++;
2330cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
233105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 103:
233205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 103 can match eol */
2333cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
233405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 642 "scan-gram.l"
2335cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW; braces_level--;
2336cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
233705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 104:
2338cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
233905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 643 "scan-gram.l"
2340cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2341cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    obstack_1grow (&obstack_for_string, '}');
2342cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
234305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    --braces_level;
234405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    if (braces_level < 0)
2345cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      {
2346cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	STRING_FINISH;
2347cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	loc->start = code_start;
234805436638acc7c010349a69c3395f1a57c642dc62Ying Wang	val->code = last_string;
2349cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	BEGIN INITIAL;
235005436638acc7c010349a69c3395f1a57c642dc62Ying Wang	return BRACED_CODE;
2351cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      }
2352cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2353cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
235405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Tokenize '<<%' correctly (as '<<' '%') rather than incorrrectly
235505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     (as '<' '<%').  */
235605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 105:
235705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 105 can match eol */
2358cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
235905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 659 "scan-gram.l"
2360cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW;
2361cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
236205436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase YY_STATE_EOF(SC_BRACED_CODE):
236305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 661 "scan-gram.l"
2364cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
236505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    unexpected_eof (code_start, "}");
236605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    STRING_FINISH;
236705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    loc->start = code_start;
236805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    val->code = last_string;
236905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN INITIAL;
237005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return BRACED_CODE;
2371cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2372cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2373cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2374cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*--------------------------------------------------------------.
2375cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning some prologue: from "%{" (already scanned) to "%}".  |
2376cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `--------------------------------------------------------------*/
2377cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2378cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
237905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 106:
2380cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
238105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 678 "scan-gram.l"
2382cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2383cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_FINISH;
2384cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    loc->start = code_start;
2385cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    val->chars = last_string;
2386cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN INITIAL;
2387cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return PROLOGUE;
2388cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2389cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2390cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_PROLOGUE):
239105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 686 "scan-gram.l"
239205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
239305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    unexpected_eof (code_start, "%}");
239405436638acc7c010349a69c3395f1a57c642dc62Ying Wang    STRING_FINISH;
239505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    loc->start = code_start;
239605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    val->chars = last_string;
239705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    BEGIN INITIAL;
239805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return PROLOGUE;
239905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  }
2400cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2402cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*---------------------------------------------------------------.
2403cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | Scanning the epilogue (everything after the second "%%", which |
2404cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | has already been eaten).                                       |
2405cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `---------------------------------------------------------------*/
2406cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2407cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2408cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(SC_EPILOGUE):
240905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 704 "scan-gram.l"
2410cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2411cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    STRING_FINISH;
2412cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    loc->start = code_start;
2413cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    val->chars = last_string;
2414cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    BEGIN INITIAL;
2415cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return EPILOGUE;
2416cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
2417cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2418cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2419cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-----------------------------------------------------.
2420cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  | By default, grow the string obstack with the input.  |
2421cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  `-----------------------------------------------------*/
2422cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 107:
242305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 719 "scan-gram.l"
2424cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 108:
2425cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* rule 108 can match eol */
2426cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
242705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 719 "scan-gram.l"
2428cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectSTRING_GROW;
2429cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
2430cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 109:
2431cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP
243205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 721 "scan-gram.l"
2433cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_FATAL_ERROR( "flex scanner jammed" );
2434cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BREAK
243505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 2436 "scan-gram.c"
243605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase YY_STATE_EOF(SC_RETURN_BRACKETED_ID):
243705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	yyterminate();
2438cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2439cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	case YY_END_OF_BUFFER:
2440cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
2441cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Amount of text matched not including the EOB char. */
2442cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2443cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2444cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2445cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		*yy_cp = (yy_hold_char);
2446cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_RESTORE_YY_MORE_OFFSET
2447cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2448cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2449cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2450cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			/* We're scanning a new file or input source.  It's
2451cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * possible that this happened because the user
2452cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * just pointed gram_in at a new source and called
2453cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * gram_lex().  If so, then we have to assure
2454cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * consistency between YY_CURRENT_BUFFER and our
2455cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * globals.  Here is the right place to do so, because
2456cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * this is the first action (other than possibly a
2457cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * back-up) that will match for the new input source.
2458cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 */
2459cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2460cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			YY_CURRENT_BUFFER_LVALUE->yy_input_file = gram_in;
2461cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2462cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2463cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2464cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Note that here we test for yy_c_buf_p "<=" to the position
2465cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * of the first EOB in the buffer, since yy_c_buf_p will
2466cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * already have been incremented past the NUL character
2467cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * (since all states make transitions on EOB to the
2468cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * end-of-buffer state).  Contrast this with the test
2469cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * in input().
2470cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 */
2471cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2472cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{ /* This was really a NUL. */
2473cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_state_type yy_next_state;
2474cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2475cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2476cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2477cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_current_state = yy_get_previous_state(  );
2478cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2479cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			/* Okay, we're now positioned to make the NUL
2480cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * transition.  We couldn't have
2481cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * yy_get_previous_state() go ahead and do it
2482cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * for us because it doesn't know how to deal
2483cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * with the possibility of jamming (and we don't
2484cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * want to build jamming into it because then it
2485cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * will run more slowly).
2486cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 */
2487cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2488cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_next_state = yy_try_NUL_trans( yy_current_state );
2489cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2490cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2491cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2492cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			if ( yy_next_state )
2493cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{
2494cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				/* Consume the NUL. */
2495cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_cp = ++(yy_c_buf_p);
2496cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_current_state = yy_next_state;
2497cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				goto yy_match;
2498cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				}
2499cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2500cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			else
2501cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{
2502cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2503cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_cp = (yy_last_accepting_cpos);
2504cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_current_state = (yy_last_accepting_state);
2505cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				goto yy_find_action;
2506cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				}
2507cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2508cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2509cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		else switch ( yy_get_next_buffer(  ) )
2510cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2511cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			case EOB_ACT_END_OF_FILE:
2512cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{
2513cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				(yy_did_buffer_switch_on_eof) = 0;
2514cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2515cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				if ( gram_wrap( ) )
2516cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					{
2517cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					/* Note: because we've taken care in
2518cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * yy_get_next_buffer() to have set up
2519cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * gram_text, we can now set up
2520cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * yy_c_buf_p so that if some total
2521cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * hoser (like flex itself) wants to
2522cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * call the scanner after we return the
2523cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * YY_NULL, it'll still work - another
2524cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * YY_NULL will get returned.
2525cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 */
2526cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2527cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2528cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					yy_act = YY_STATE_EOF(YY_START);
2529cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					goto do_action;
2530cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					}
2531cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2532cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				else
2533cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					{
2534cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					if ( ! (yy_did_buffer_switch_on_eof) )
2535cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project						YY_NEW_FILE;
2536cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					}
2537cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				break;
2538cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				}
2539cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2540cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			case EOB_ACT_CONTINUE_SCAN:
2541cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				(yy_c_buf_p) =
2542cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					(yytext_ptr) + yy_amount_of_matched_text;
2543cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2544cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_current_state = yy_get_previous_state(  );
2545cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2546cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_cp = (yy_c_buf_p);
2547cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2548cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				goto yy_match;
2549cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2550cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			case EOB_ACT_LAST_MATCH:
2551cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				(yy_c_buf_p) =
2552cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2553cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2554cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_current_state = yy_get_previous_state(  );
2555cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2556cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_cp = (yy_c_buf_p);
2557cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2558cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				goto yy_find_action;
2559cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2560cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		break;
2561cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2562cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2563cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	default:
2564cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_FATAL_ERROR(
2565cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			"fatal flex scanner internal error--no action found" );
2566cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	} /* end of action switch */
2567cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		} /* end of scanning one token */
2568cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} /* end of gram_lex */
2569cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
2570cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2571cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2572cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
2573cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2574cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
2575cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2576cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2577cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2578cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* yy_get_next_buffer - try to read in a new buffer
2579cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
2580cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * Returns a code representing an action:
2581cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *	EOB_ACT_LAST_MATCH -
2582cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2583cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *	EOB_ACT_END_OF_FILE - end of file
2584cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
2585cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2586cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_get_next_buffer (void)
2587cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2588cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2589cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2590cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2591cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2592cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register char *source = (yytext_ptr);
2593cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register int number_to_move, i;
2594cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int ret_val;
2595cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2596cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2597cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_FATAL_ERROR(
2598cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		"fatal flex scanner internal error--end of buffer missed" );
2599cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2600cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2601cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{ /* Don't try to fill the buffer, so this is an EOF. */
2602cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2603cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2604cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			/* We matched a single character, the EOB, so
2605cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * treat this as a final EOF.
2606cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 */
2607cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			return EOB_ACT_END_OF_FILE;
2608cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2609cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2610cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		else
2611cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2612cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			/* We matched some text prior to the EOB, first
2613cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 * process it.
2614cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			 */
2615cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			return EOB_ACT_LAST_MATCH;
2616cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2617cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2618cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2619cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Try to read more data. */
2620cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2621cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* First move last chars to start of buffer. */
2622cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2623cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2624cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	for ( i = 0; i < number_to_move; ++i )
2625cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		*(dest++) = *(source++);
2626cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2627cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2628cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* don't do the read, it's not guaranteed to return an EOF,
2629cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * just force an EOF
2630cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 */
2631cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2632cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2633cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	else
2634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
263505436638acc7c010349a69c3395f1a57c642dc62Ying Wang			yy_size_t num_to_read =
2636cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2637cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2638cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		while ( num_to_read <= 0 )
2639cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{ /* Not enough room in the buffer - grow it. */
2640cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2641cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			/* just a shorter name for the current buffer */
264205436638acc7c010349a69c3395f1a57c642dc62Ying Wang			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
2643cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2644cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			int yy_c_buf_p_offset =
2645cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				(int) ((yy_c_buf_p) - b->yy_ch_buf);
2646cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2647cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			if ( b->yy_is_our_buffer )
2648cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{
264905436638acc7c010349a69c3395f1a57c642dc62Ying Wang				yy_size_t new_size = b->yy_buf_size * 2;
2650cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2651cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				if ( new_size <= 0 )
2652cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					b->yy_buf_size += b->yy_buf_size / 8;
2653cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				else
2654cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					b->yy_buf_size *= 2;
2655cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2656cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				b->yy_ch_buf = (char *)
2657cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					/* Include room in for 2 EOB chars. */
2658cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					gram_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
2659cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				}
2660cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			else
2661cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				/* Can't grow it, we don't own it. */
2662cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				b->yy_ch_buf = 0;
2663cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2664cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			if ( ! b->yy_ch_buf )
2665cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				YY_FATAL_ERROR(
2666cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				"fatal error - scanner input buffer overflow" );
2667cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2668cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2669cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2670cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2671cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project						number_to_move - 1;
2672cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2673cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2674cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2675cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( num_to_read > YY_READ_BUF_SIZE )
2676cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			num_to_read = YY_READ_BUF_SIZE;
2677cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2678cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Read in more data. */
2679cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2680cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			(yy_n_chars), num_to_read );
2681cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2682cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2683cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2684cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2685cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( (yy_n_chars) == 0 )
2686cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
2687cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( number_to_move == YY_MORE_ADJ )
2688cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2689cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			ret_val = EOB_ACT_END_OF_FILE;
2690cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			gram_restart(gram_in  );
2691cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2692cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2693cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		else
2694cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2695cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			ret_val = EOB_ACT_LAST_MATCH;
2696cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2697cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				YY_BUFFER_EOF_PENDING;
2698cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2699cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2700cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2701cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	else
2702cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		ret_val = EOB_ACT_CONTINUE_SCAN;
2703cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
270405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
270505436638acc7c010349a69c3395f1a57c642dc62Ying Wang		/* Extend the array by 50%, plus the number we really need. */
270605436638acc7c010349a69c3395f1a57c642dc62Ying Wang		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
270705436638acc7c010349a69c3395f1a57c642dc62Ying Wang		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) gram_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
270805436638acc7c010349a69c3395f1a57c642dc62Ying Wang		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
270905436638acc7c010349a69c3395f1a57c642dc62Ying Wang			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
271005436638acc7c010349a69c3395f1a57c642dc62Ying Wang	}
271105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2712cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_n_chars) += number_to_move;
2713cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2714cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2715cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2716cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2717cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2718cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return ret_val;
2719cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2720cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2721cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* yy_get_previous_state - get the state just before the EOB char was reached */
2722cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2723cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2724cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */
2725cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2726cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    static yy_state_type yy_get_previous_state (void)
2727cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2728cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2729cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2730cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2731cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register yy_state_type yy_current_state;
2732cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register char *yy_cp;
2733cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2734cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [15.0] code to get the start state into yy_current_state goes here */
2735cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yy_current_state = (yy_start);
2736cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yy_current_state += YY_AT_BOL();
2737cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2738cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2739cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
2740cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [16.0] code to find the next state goes here */
2741cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 58);
2742cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( yy_accept[yy_current_state] )
2743cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2744cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			(yy_last_accepting_state) = yy_current_state;
2745cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			(yy_last_accepting_cpos) = yy_cp;
2746cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2747cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2748cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{
2749cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_current_state = (int) yy_def[yy_current_state];
275005436638acc7c010349a69c3395f1a57c642dc62Ying Wang			if ( yy_current_state >= 482 )
2751cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				yy_c = yy_meta[(unsigned int) yy_c];
2752cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2753cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2754cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2755cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2756cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return yy_current_state;
2757cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2758cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2759cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* yy_try_NUL_trans - try to make a transition on the NUL character
2760cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
2761cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * synopsis
2762cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *	next_state = yy_try_NUL_trans( current_state );
2763cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
2764cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2765cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
2766cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2767cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2768cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2769cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2770cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register int yy_is_jam;
2771cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2772cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register char *yy_cp = (yy_c_buf_p);
2773cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2774cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register YY_CHAR yy_c = 58;
2775cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( yy_accept[yy_current_state] )
2776cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
2777cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_last_accepting_state) = yy_current_state;
2778cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_last_accepting_cpos) = yy_cp;
2779cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2780cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2781cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
2782cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		yy_current_state = (int) yy_def[yy_current_state];
278305436638acc7c010349a69c3395f1a57c642dc62Ying Wang		if ( yy_current_state >= 482 )
2784cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			yy_c = yy_meta[(unsigned int) yy_c];
2785cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2786cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
278705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	yy_is_jam = (yy_current_state == 481);
2788cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
278905436638acc7c010349a69c3395f1a57c642dc62Ying Wang		return yy_is_jam ? 0 : yy_current_state;
2790cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2791cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2792cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2793cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2794cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2795cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2796cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2797cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_NO_INPUT
2798cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus
2799cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    static int yyinput (void)
2800cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
2801cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    static int input  (void)
2802cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
2803cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2804cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2805cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2806cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2807cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2808cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int c;
2809cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2810cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	*(yy_c_buf_p) = (yy_hold_char);
2811cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2812cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2813cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
2814cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* yy_c_buf_p now points to the character we want to return.
2815cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * If this occurs *before* the EOB characters, then it's a
2816cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * valid NUL; if not, then we've hit the end of the buffer.
2817cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 */
2818cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2819cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			/* This was really a NUL. */
2820cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			*(yy_c_buf_p) = '\0';
2821cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2822cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		else
2823cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			{ /* need more input */
282405436638acc7c010349a69c3395f1a57c642dc62Ying Wang			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2825cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			++(yy_c_buf_p);
2826cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2827cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			switch ( yy_get_next_buffer(  ) )
2828cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				{
2829cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				case EOB_ACT_LAST_MATCH:
2830cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					/* This happens because yy_g_n_b()
2831cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * sees that we've accumulated a
2832cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * token and flags that we need to
2833cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * try matching the token before
2834cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * proceeding.  But for input(),
2835cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * there's no matching to consider.
2836cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * So convert the EOB_ACT_LAST_MATCH
2837cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 * to EOB_ACT_END_OF_FILE.
2838cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					 */
2839cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2840cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					/* Reset buffer status. */
2841cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					gram_restart(gram_in );
2842cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2843cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					/*FALLTHROUGH*/
2844cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2845cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				case EOB_ACT_END_OF_FILE:
2846cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					{
2847cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					if ( gram_wrap( ) )
2848cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project						return EOF;
2849cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2850cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					if ( ! (yy_did_buffer_switch_on_eof) )
2851cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project						YY_NEW_FILE;
2852cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus
2853cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					return yyinput();
2854cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else
2855cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					return input();
2856cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
2857cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					}
2858cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2859cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				case EOB_ACT_CONTINUE_SCAN:
2860cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					(yy_c_buf_p) = (yytext_ptr) + offset;
2861cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project					break;
2862cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project				}
2863cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project			}
2864cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2865cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2866cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
2867cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	*(yy_c_buf_p) = '\0';	/* preserve gram_text */
2868cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_hold_char) = *++(yy_c_buf_p);
2869cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2870cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [19.0] update BOL and gram_lineno */
2871cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2872cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2873cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return c;
2874cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2875cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2876cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif	/* ifndef YY_NO_INPUT */
2877cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2878cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2879cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Immediately switch to a different input stream.
2880cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param input_file A readable stream.
2881cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
2882cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @note This function does not reset the start condition to @c INITIAL .
2883cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
2884cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2885cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    void gram_restart  (FILE * input_file )
2886cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2887cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2888cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2889cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2890cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2891cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! YY_CURRENT_BUFFER ){
2892cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        gram_ensure_buffer_stack ();
2893cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE =
2894cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project            gram__create_buffer(gram_in,YY_BUF_SIZE );
2895cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
2896cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2897cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__init_buffer(YY_CURRENT_BUFFER,input_file );
2898cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__load_buffer_state( );
2899cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2900cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2901cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Switch to a different input buffer.
2902cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param new_buffer The new input buffer.
2903cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
2904cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
2905cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2906cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    void gram__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
2907cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2908cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2909cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2910cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2911cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2912cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* TODO. We should be able to replace this entire function body
2913cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * with
2914cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 *		gram_pop_buffer_state();
2915cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 *		gram_push_buffer_state(new_buffer);
2916cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     */
2917cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram_ensure_buffer_stack ();
2918cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( YY_CURRENT_BUFFER == new_buffer )
2919cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		return;
2920cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2921cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( YY_CURRENT_BUFFER )
2922cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
2923cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Flush out information for old buffer. */
2924cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		*(yy_c_buf_p) = (yy_hold_char);
2925cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2926cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2927cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
2928cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2929cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2930cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__load_buffer_state( );
2931cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2932cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* We don't actually know whether we did this switch during
2933cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * EOF (gram_wrap()) processing, but the only time this flag
2934cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * is looked at is after gram_wrap() is called, so it's safe
2935cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * to go ahead and always set it.
2936cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
2937cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_did_buffer_switch_on_eof) = 1;
2938cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2939cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2940cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2941cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void gram__load_buffer_state  (void)
2942cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2943cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2944cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2945cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2946cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2947cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2948cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2949cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_hold_char) = *(yy_c_buf_p);
2950cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2951cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2952cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Allocate and initialize an input buffer state.
2953cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param file A readable stream.
2954cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2955cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
2956cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the allocated buffer state.
2957cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
2958cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2959cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    YY_BUFFER_STATE gram__create_buffer  (FILE * file, int  size )
2960cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2961cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2962cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2963cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2964cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BUFFER_STATE b;
2965cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2966cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b = (YY_BUFFER_STATE) gram_alloc(sizeof( struct yy_buffer_state )  );
2967cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! b )
2968cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_FATAL_ERROR( "out of dynamic memory in gram__create_buffer()" );
2969cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2970cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_buf_size = size;
2971cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2972cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* yy_ch_buf has to be 2 characters longer than the size given because
2973cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * we need to put in 2 end-of-buffer characters.
2974cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
2975cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_ch_buf = (char *) gram_alloc(b->yy_buf_size + 2  );
2976cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! b->yy_ch_buf )
2977cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_FATAL_ERROR( "out of dynamic memory in gram__create_buffer()" );
2978cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2979cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_is_our_buffer = 1;
2980cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2981cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__init_buffer(b,file );
2982cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2983cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return b;
2984cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
2985cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2986cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Destroy the buffer.
2987cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param b a buffer created with gram__create_buffer()
2988cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
2989cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
2990cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
2991cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    void gram__delete_buffer (YY_BUFFER_STATE  b )
2992cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2993cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
2994cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
2995cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
2996cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
2997cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! b )
2998cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		return;
2999cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3000cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3001cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3002cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3003cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( b->yy_is_our_buffer )
3004cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram_free((void *) b->yy_ch_buf  );
3005cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3006cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram_free((void *) b  );
3007cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3008cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3009cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Initializes or reinitializes a buffer.
3010cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * This function is sometimes called more than once on the same buffer,
3011cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * such as during a gram_restart() or at EOF.
3012cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3013cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3014cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    static void gram__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3015cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3016cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
3017cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3018cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3019cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3020cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int oerrno = errno;
3021cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3022cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__flush_buffer(b );
3023cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3024cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_input_file = file;
3025cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_fill_buffer = 1;
3026cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3027cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    /* If b is the current buffer, then gram__init_buffer was _probably_
3028cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     * called from gram_restart() or through yy_get_next_buffer.
3029cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     * In that case, we don't want to reset the lineno or column.
3030cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     */
3031cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    if (b != YY_CURRENT_BUFFER){
3032cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        b->yy_bs_lineno = 1;
3033cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        b->yy_bs_column = 0;
3034cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
3035cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3036cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3037cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3038cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        b->yy_is_interactive = 0;
3039cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3040cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3041cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
3042cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3043cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	errno = oerrno;
3044cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3045cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3046cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3047cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3048cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3049cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3050cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3051cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    void gram__flush_buffer (YY_BUFFER_STATE  b )
3052cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3053cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
3054cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3055cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3056cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    	if ( ! b )
3057cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		return;
3058cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3059cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_n_chars = 0;
3060cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3061cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* We always need two end-of-buffer characters.  The first causes
3062cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * a transition to the end-of-buffer state.  The second causes
3063cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * a jam in that state.
3064cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
3065cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3066cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3067cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3068cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_buf_pos = &b->yy_ch_buf[0];
3069cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3070cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_at_bol = 1;
3071cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_buffer_status = YY_BUFFER_NEW;
3072cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3073cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( b == YY_CURRENT_BUFFER )
3074cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram__load_buffer_state( );
3075cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3076cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3077cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-or-c++ */
3078cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Pushes the new state onto the stack. The new state becomes
3079cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *  the current state. This function will allocate the stack
3080cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *  if necessary.
3081cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *  @param new_buffer The new state.
3082cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3083cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3084cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3085cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_push_buffer_state (YY_BUFFER_STATE new_buffer )
3086cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3087cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
3088cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3089cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3090cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    	if (new_buffer == NULL)
3091cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		return;
3092cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3093cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram_ensure_buffer_stack();
3094cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3095cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* This block is copied from gram__switch_to_buffer. */
3096cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( YY_CURRENT_BUFFER )
3097cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
3098cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Flush out information for old buffer. */
3099cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		*(yy_c_buf_p) = (yy_hold_char);
3100cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3101cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3102cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
3103cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3104cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Only push if top exists. Otherwise, replace top. */
3105cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if (YY_CURRENT_BUFFER)
3106cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_buffer_stack_top)++;
3107cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE = new_buffer;
3108cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3109cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* copied from gram__switch_to_buffer. */
3110cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__load_buffer_state( );
3111cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_did_buffer_switch_on_eof) = 1;
3112cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3113cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3114cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3115cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-or-c++ */
3116cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Removes and deletes the top of the stack, if present.
3117cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *  The next element becomes the new top.
3118cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3119cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3120cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3121cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_pop_buffer_state (void)
3122cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3123cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
3124cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3125cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    	if (!YY_CURRENT_BUFFER)
3127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		return;
3128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__delete_buffer(YY_CURRENT_BUFFER );
3130cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_CURRENT_BUFFER_LVALUE = NULL;
3131cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ((yy_buffer_stack_top) > 0)
3132cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		--(yy_buffer_stack_top);
3133cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if (YY_CURRENT_BUFFER) {
3135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram__load_buffer_state( );
3136cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_did_buffer_switch_on_eof) = 1;
3137cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
3138cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3139cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3140cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-or-c++ */
3142cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Allocates the stack if it does not exist.
3143cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *  Guarantees space for at least one push.
3144cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3145cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void gram_ensure_buffer_stack (void)
3147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
3149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3150cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
315105436638acc7c010349a69c3395f1a57c642dc62Ying Wang	yy_size_t num_to_alloc;
3152cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if (!(yy_buffer_stack)) {
3154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* First allocation is just for 2 elements, since we don't know if this
3156cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 * immediate realloc on the next call.
3158cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project         */
3159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		num_to_alloc = 1;
3160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_buffer_stack) = (struct yy_buffer_state**)gram_alloc
3161cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project								(num_to_alloc * sizeof(struct yy_buffer_state*)
3162cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project								);
316305436638acc7c010349a69c3395f1a57c642dc62Ying Wang		if ( ! (yy_buffer_stack) )
316405436638acc7c010349a69c3395f1a57c642dc62Ying Wang			YY_FATAL_ERROR( "out of dynamic memory in gram_ensure_buffer_stack()" );
316505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3166cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3168cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_buffer_stack_max) = num_to_alloc;
3169cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_buffer_stack_top) = 0;
3170cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		return;
3171cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
3172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3173cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3174cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3175cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Increase the buffer to prepare for a possible push. */
3176cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		int grow_size = 8 /* arbitrary grow size */;
3177cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3178cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		num_to_alloc = (yy_buffer_stack_max) + grow_size;
3179cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_buffer_stack) = (struct yy_buffer_state**)gram_realloc
3180cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project								((yy_buffer_stack),
3181cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project								num_to_alloc * sizeof(struct yy_buffer_state*)
3182cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project								);
318305436638acc7c010349a69c3395f1a57c642dc62Ying Wang		if ( ! (yy_buffer_stack) )
318405436638acc7c010349a69c3395f1a57c642dc62Ying Wang			YY_FATAL_ERROR( "out of dynamic memory in gram_ensure_buffer_stack()" );
3185cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3186cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* zero only the new slots.*/
3187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3188cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_buffer_stack_max) = num_to_alloc;
3189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
3190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3192cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Setup the input buffer state to scan directly from a user-specified character buffer.
3195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param base the character buffer
3196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param size the size in bytes of the character buffer
3197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the newly allocated buffer state object.
3199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE gram__scan_buffer  (char * base, yy_size_t  size )
3201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BUFFER_STATE b;
3203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( size < 2 ||
3205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
3206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	     base[size-1] != YY_END_OF_BUFFER_CHAR )
3207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* They forgot to leave room for the EOB's. */
3208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		return 0;
3209cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3210cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b = (YY_BUFFER_STATE) gram_alloc(sizeof( struct yy_buffer_state )  );
3211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! b )
3212cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_FATAL_ERROR( "out of dynamic memory in gram__scan_buffer()" );
3213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3214cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
3215cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_buf_pos = b->yy_ch_buf = base;
3216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_is_our_buffer = 0;
3217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_input_file = 0;
3218cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_n_chars = b->yy_buf_size;
3219cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_is_interactive = 0;
3220cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_at_bol = 1;
3221cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_fill_buffer = 0;
3222cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_buffer_status = YY_BUFFER_NEW;
3223cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3224cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram__switch_to_buffer(b  );
3225cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return b;
3227cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3228cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3229cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3230cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3231cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Setup the input buffer state to scan a string. The next call to gram_lex() will
3232cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * scan from a @e copy of @a str.
323305436638acc7c010349a69c3395f1a57c642dc62Ying Wang * @param yystr a NUL-terminated string to scan
3234cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3235cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the newly allocated buffer state object.
3236cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @note If you want to scan bytes that may contain NUL values, then use
3237cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *       gram__scan_bytes() instead.
3238cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
323905436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_BUFFER_STATE gram__scan_string (yyconst char * yystr )
3240cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3241cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
324205436638acc7c010349a69c3395f1a57c642dc62Ying Wang	return gram__scan_bytes(yystr,strlen(yystr) );
3243cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3244cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3245cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3246cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3247cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Setup the input buffer state to scan the given bytes. The next call to gram_lex() will
3248cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * scan from a @e copy of @a bytes.
324905436638acc7c010349a69c3395f1a57c642dc62Ying Wang * @param yybytes the byte buffer to scan
325005436638acc7c010349a69c3395f1a57c642dc62Ying Wang * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3251cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3252cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the newly allocated buffer state object.
3253cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
325405436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_BUFFER_STATE gram__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
3255cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3256cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	YY_BUFFER_STATE b;
3257cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	char *buf;
3258cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	yy_size_t n;
3259cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	int i;
3260cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3261cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Get memory for full buffer, including space for trailing EOB's. */
326205436638acc7c010349a69c3395f1a57c642dc62Ying Wang	n = _yybytes_len + 2;
3263cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	buf = (char *) gram_alloc(n  );
3264cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! buf )
3265cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_FATAL_ERROR( "out of dynamic memory in gram__scan_bytes()" );
3266cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
326705436638acc7c010349a69c3395f1a57c642dc62Ying Wang	for ( i = 0; i < _yybytes_len; ++i )
326805436638acc7c010349a69c3395f1a57c642dc62Ying Wang		buf[i] = yybytes[i];
3269cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
327005436638acc7c010349a69c3395f1a57c642dc62Ying Wang	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3271cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3272cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b = gram__scan_buffer(buf,n );
3273cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	if ( ! b )
3274cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_FATAL_ERROR( "bad buffer in gram__scan_bytes()" );
3275cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3276cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* It's okay to grow etc. this buffer, and we should throw it
3277cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * away when we're done.
3278cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
3279cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	b->yy_is_our_buffer = 1;
3280cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3281cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return b;
3282cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3283cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3284cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3285cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_EXIT_FAILURE
3286cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_EXIT_FAILURE 2
3287cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
3288cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3289cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3290cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void yy_fatal_error (yyconst char* msg )
3291cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3292cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    	(void) fprintf( stderr, "%s\n", msg );
3293cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	exit( YY_EXIT_FAILURE );
3294cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3295cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3296cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */
3297cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3298cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3299cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Redefine yyless() so it works in section 3 code. */
3300cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3301cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#undef yyless
3302cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyless(n) \
3303cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	do \
3304cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{ \
3305cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		/* Undo effects of setting up gram_text. */ \
3306cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        int yyless_macro_arg = (n); \
3307cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        YY_LESS_LINENO(yyless_macro_arg);\
3308cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram_text[gram_leng] = (yy_hold_char); \
3309cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_c_buf_p) = gram_text + yyless_macro_arg; \
3310cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		(yy_hold_char) = *(yy_c_buf_p); \
3311cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		*(yy_c_buf_p) = '\0'; \
3312cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram_leng = yyless_macro_arg; \
3313cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		} \
3314cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	while ( 0 )
3315cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3316cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Accessor  methods (get/set functions) to struct members. */
3317cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3318cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */
3319cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */
3320cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3321cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3322cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the current line number.
3323cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3324cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3325cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint gram_get_lineno  (void)
3326cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3327cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3328cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return gram_lineno;
3329cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3330cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3331cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the input stream.
3332cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3333cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3334cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectFILE *gram_get_in  (void)
3335cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3336cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        return gram_in;
3337cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3338cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3339cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the output stream.
3340cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3341cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3342cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectFILE *gram_get_out  (void)
3343cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3344cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        return gram_out;
3345cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3346cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3347cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the length of the current token.
3348cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3349cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
335005436638acc7c010349a69c3395f1a57c642dc62Ying Wangyy_size_t gram_get_leng  (void)
3351cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3352cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        return gram_leng;
3353cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3354cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3355cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the current token.
3356cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3357cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3358cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3359cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectchar *gram_get_text  (void)
3360cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3361cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        return gram_text;
3362cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3363cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3364cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */
3365cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3366cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3367cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Set the current line number.
3368cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param line_number
3369cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3370cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3371cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_set_lineno (int  line_number )
3372cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3373cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3374cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    gram_lineno = line_number;
3375cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3376cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3377cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Set the input stream. This does not discard the current
3378cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * input buffer.
3379cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param in_str A readable stream.
3380cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *
3381cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @see gram__switch_to_buffer
3382cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3383cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_set_in (FILE *  in_str )
3384cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3385cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        gram_in = in_str ;
3386cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3387cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3388cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_set_out (FILE *  out_str )
3389cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3390cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        gram_out = out_str ;
3391cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3392cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3393cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint gram_get_debug  (void)
3394cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3395cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        return gram__flex_debug;
3396cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3397cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3398cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_set_debug (int  bdebug )
3399cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3400cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        gram__flex_debug = bdebug ;
3401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3402cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3403cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3404cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3405cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */
3406cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-bison-bridge */
3407cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
340805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif if-c-only */
340905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
341005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %if-c-only */
341105436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int yy_init_globals (void)
341205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{
341305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        /* Initialization is the same as for the non-reentrant scanner.
341405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     * This function is called from gram_lex_destroy(), so don't allocate here.
341505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     */
341605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
341705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    (yy_buffer_stack) = 0;
341805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    (yy_buffer_stack_top) = 0;
341905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    (yy_buffer_stack_max) = 0;
342005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    (yy_c_buf_p) = (char *) 0;
342105436638acc7c010349a69c3395f1a57c642dc62Ying Wang    (yy_init) = 0;
342205436638acc7c010349a69c3395f1a57c642dc62Ying Wang    (yy_start) = 0;
342305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
342405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Defined in main.c */
342505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef YY_STDINIT
342605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gram_in = stdin;
342705436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gram_out = stdout;
342805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else
342905436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gram_in = (FILE *) 0;
343005436638acc7c010349a69c3395f1a57c642dc62Ying Wang    gram_out = (FILE *) 0;
343105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
343205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
343305436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* For future reference: Set errno on error, since we are called by
343405436638acc7c010349a69c3395f1a57c642dc62Ying Wang     * gram_lex_init()
343505436638acc7c010349a69c3395f1a57c642dc62Ying Wang     */
343605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    return 0;
343705436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
3438cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3439cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3440cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3441cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* gram_lex_destroy is for both reentrant and non-reentrant scanners. */
3442cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint gram_lex_destroy  (void)
3443cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3444cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3445cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    /* Pop the buffer stack, destroying each element. */
3446cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	while(YY_CURRENT_BUFFER){
3447cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram__delete_buffer(YY_CURRENT_BUFFER  );
3448cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		YY_CURRENT_BUFFER_LVALUE = NULL;
3449cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		gram_pop_buffer_state();
3450cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
3451cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3452cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* Destroy the stack itself. */
3453cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	gram_free((yy_buffer_stack) );
3454cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	(yy_buffer_stack) = NULL;
3455cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
345605436638acc7c010349a69c3395f1a57c642dc62Ying Wang    /* Reset the globals. This is important in a non-reentrant scanner so the next time
345705436638acc7c010349a69c3395f1a57c642dc62Ying Wang     * gram_lex() is called, initialization will occur. */
345805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    yy_init_globals( );
345905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3460cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */
3461cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3462cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return 0;
3463cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3464cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3465cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3466cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*
3467cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * Internal utility routines.
3468cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */
3469cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3470cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef yytext_ptr
3471cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3472cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3473cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register int i;
347405436638acc7c010349a69c3395f1a57c642dc62Ying Wang	for ( i = 0; i < n; ++i )
3475cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		s1[i] = s2[i];
3476cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3477cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
3478cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3479cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YY_NEED_STRLEN
3480cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_flex_strlen (yyconst char * s )
3481cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3482cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	register int n;
348305436638acc7c010349a69c3395f1a57c642dc62Ying Wang	for ( n = 0; s[n]; ++n )
3484cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		;
3485cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3486cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return n;
3487cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3488cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
3489cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3490cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *gram_alloc (yy_size_t  size )
3491cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3492cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return (void *) malloc( size );
3493cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3494cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3495cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *gram_realloc  (void * ptr, yy_size_t  size )
3496cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3497cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	/* The cast to (char *) in the following accommodates both
3498cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * implementations that use char* generic pointers, and those
3499cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * that use void* generic pointers.  It works with the latter
3500cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * because both ANSI C and C++ allow castless assignment from
3501cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * any pointer type to void*, and deal with argument conversions
3502cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 * as though doing an assignment.
3503cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 */
3504cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	return (void *) realloc( (char *) ptr, size );
3505cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3506cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3507cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid gram_free (void * ptr )
3508cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3509cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	free( (char *) ptr );	/* see gram_realloc() for (char *) cast */
3510cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3511cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3512cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-tables-serialization definitions */
3513cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %define-yytables   The name for this specific scanner's tables. */
3514cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYTABLES_NAME "yytables"
3515cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */
3516cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3517cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */
3518cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
351905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 721 "scan-gram.l"
3520cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3521cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3522cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3523cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Read bytes from FP into buffer BUF of size SIZE.  Return the
3524cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   number of bytes read.  Remove '\r' from input, treating \r\n
3525cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project   and isolated \r as \n.  */
3526cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3527cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic size_t
3528cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectno_cr_read (FILE *fp, char *buf, size_t size)
3529cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3530cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  size_t bytes_read = fread (buf, 1, size, fp);
3531cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (bytes_read)
3532cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
3533cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      char *w = memchr (buf, '\r', bytes_read);
3534cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if (w)
3535cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	{
3536cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  char const *r = ++w;
3537cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  char const *lim = buf + bytes_read;
3538cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3539cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  for (;;)
3540cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    {
3541cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      /* Found an '\r'.  Treat it like '\n', but ignore any
3542cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		 '\n' that immediately follows.  */
3543cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      w[-1] = '\n';
3544cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      if (r == lim)
3545cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
3546cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		  int ch = getc (fp);
3547cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		  if (ch != '\n' && ungetc (ch, fp) != ch)
3548cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		    break;
3549cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
3550cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      else if (*r == '\n')
3551cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		r++;
3552cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3553cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      /* Copy until the next '\r'.  */
3554cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      do
3555cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		{
3556cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		  if (r == lim)
3557cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		    return w - buf;
3558cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project		}
3559cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	      while ((*w++ = *r++) != '\r');
3560cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	    }
3561cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3562cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  return w - buf;
3563cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	}
3564cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
3565cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3566cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  return bytes_read;
3567cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3568cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3569cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3570cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3571cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------------.
3572cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Scan NUMBER for a base-BASE integer at location LOC.  |
3573cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------------------------------------*/
3574cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3575cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic unsigned long int
3576cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectscan_integer (char const *number, int base, location loc)
3577cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3578cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  verify (INT_MAX < ULONG_MAX);
3579cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  unsigned long int num = strtoul (number, NULL, base);
3580cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3581cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (INT_MAX < num)
3582cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
3583cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      complain_at (loc, _("integer out of range: %s"), quote (number));
3584cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      num = INT_MAX;
3585cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
3586cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3587cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  return num;
3588cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3589cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3590cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3591cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------------------------.
3592cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Convert universal character name UCN to a single-byte character,  |
3593cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| and return that character.  Return -1 if UCN does not correspond  |
3594cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| to a single-byte character.					    |
3595cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------------------------------------------------*/
3596cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3597cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int
3598cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectconvert_ucn_to_byte (char const *ucn)
3599cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3600cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  verify (UCHAR_MAX <= INT_MAX);
3601cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  unsigned long int code = strtoul (ucn + 2, NULL, 16);
3602cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3603cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* FIXME: Currently we assume Unicode-compatible unibyte characters
3604cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     on ASCII hosts (i.e., Latin-1 on hosts with 8-bit bytes).  On
3605cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     non-ASCII hosts we support only the portable C character set.
3606cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     These limitations should be removed once we add support for
3607cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project     multibyte characters.  */
3608cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3609cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (UCHAR_MAX < code)
3610cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    return -1;
3611cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3612cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#if ! ('$' == 0x24 && '@' == 0x40 && '`' == 0x60 && '~' == 0x7e)
3613cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  {
3614cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    /* A non-ASCII host.  Use CODE to index into a table of the C
3615cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       basic execution character set, which is guaranteed to exist on
3616cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       all Standard C platforms.  This table also includes '$', '@',
3617cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       and '`', which are not in the basic execution character set but
3618cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       which are unibyte characters on all the platforms that we know
3619cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project       about.  */
3620cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    static signed char const table[] =
3621cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      {
3622cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	'\0',   -1,   -1,   -1,   -1,   -1,   -1, '\a',
3623cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	'\b', '\t', '\n', '\v', '\f', '\r',   -1,   -1,
3624cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3625cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3626cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 ' ',  '!',  '"',  '#',  '$',  '%',  '&', '\'',
3627cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 '(',  ')',  '*',  '+',  ',',  '-',  '.',  '/',
3628cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',
3629cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 '8',  '9',  ':',  ';',  '<',  '=',  '>',  '?',
3630cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 '@',  'A',  'B',  'C',  'D',  'E',  'F',  'G',
3631cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 'H',  'I',  'J',  'K',  'L',  'M',  'N',  'O',
3632cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 'P',  'Q',  'R',  'S',  'T',  'U',  'V',  'W',
3633cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 'X',  'Y',  'Z',  '[', '\\',  ']',  '^',  '_',
3634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 '`',  'a',  'b',  'c',  'd',  'e',  'f',  'g',
3635cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 'h',  'i',  'j',  'k',  'l',  'm',  'n',  'o',
3636cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 'p',  'q',  'r',  's',  't',  'u',  'v',  'w',
3637cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project	 'x',  'y',  'z',  '{',  '|',  '}',  '~'
3638cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      };
3639cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3640cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    code = code < sizeof table ? table[code] : -1;
3641cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  }
3642cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif
3643cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3644cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  return code;
3645cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3646cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3647cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
364805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*---------------------------------------------------------------------.
364905436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Handle '#line INT( "FILE")?\n'.  ARGS has already skipped '#line '.  |
365005436638acc7c010349a69c3395f1a57c642dc62Ying Wang`---------------------------------------------------------------------*/
3651cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3652cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void
3653cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projecthandle_syncline (char *args, location loc)
3654cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
365505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  char *file;
365605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  unsigned long int lineno = strtoul (args, &file, 10);
3657cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if (INT_MAX <= lineno)
3658cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    {
3659cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      warn_at (loc, _("line number overflow"));
3660cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      lineno = INT_MAX;
3661cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    }
3662cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
366305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  file = mbschr (file, '"');
366405436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (file)
366505436638acc7c010349a69c3395f1a57c642dc62Ying Wang    {
366605436638acc7c010349a69c3395f1a57c642dc62Ying Wang      *mbschr (file + 1, '"') = '\0';
366705436638acc7c010349a69c3395f1a57c642dc62Ying Wang      current_file = uniqstr_new (file + 1);
366805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    }
366905436638acc7c010349a69c3395f1a57c642dc62Ying Wang  boundary_set (&scanner_cursor, current_file, lineno, 1);
3670cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3671cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3672cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3673cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*----------------------------------------------------------------.
3674cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| For a token or comment starting at START, report message MSGID, |
3675cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| which should say that an end marker was found before		  |
3676cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| the expected TOKEN_END.					  |
3677cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`----------------------------------------------------------------*/
3678cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3679cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void
3680cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_end (boundary start, char const *msgid, char const *token_end)
3681cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3682cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  location loc;
3683cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  loc.start = start;
3684cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  loc.end = scanner_cursor;
368505436638acc7c010349a69c3395f1a57c642dc62Ying Wang  token_end = quote (token_end);
368605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  /* Instead of '\'', display "'".  */
368705436638acc7c010349a69c3395f1a57c642dc62Ying Wang  if (!strcmp (token_end, "'\\''"))
368805436638acc7c010349a69c3395f1a57c642dc62Ying Wang    token_end = "\"'\"";
3689cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  complain_at (loc, _(msgid), token_end);
3690cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3691cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3692cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3693cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------------------------------------------------------.
3694cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Report an unexpected EOF in a token or comment starting at START.       |
3695cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| An end of file was encountered and the expected TOKEN_END was missing.  |
3696cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------------------------------------------------------*/
3697cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3698cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void
3699cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_eof (boundary start, char const *token_end)
3700cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
370105436638acc7c010349a69c3395f1a57c642dc62Ying Wang  unexpected_end (start, N_("missing %s at end of file"), token_end);
3702cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3703cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3704cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3705cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*----------------------------------------.
3706cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Likewise, but for unexpected newlines.  |
3707cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`----------------------------------------*/
3708cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3709cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void
3710cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectunexpected_newline (boundary start, char const *token_end)
3711cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
371205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  unexpected_end (start, N_("missing %s at end of line"), token_end);
3713cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3714cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3715cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3716cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-------------------------.
3717cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Initialize the scanner.  |
3718cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-------------------------*/
3719cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3720cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid
372105436638acc7c010349a69c3395f1a57c642dc62Ying Wanggram_scanner_initialize (void)
3722cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3723cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  obstack_init (&obstack_for_string);
3724cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3725cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3726cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3727cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*-----------------------------------------------.
3728cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Free all the memory allocated to the scanner.  |
3729cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`-----------------------------------------------*/
3730cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3731cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid
373205436638acc7c010349a69c3395f1a57c642dc62Ying Wanggram_scanner_free (void)
3733cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{
3734cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  obstack_free (&obstack_for_string, 0);
3735cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  /* Reclaim Flex's buffers.  */
373605436638acc7c010349a69c3395f1a57c642dc62Ying Wang  gram_lex_destroy ();
3737cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project}
3738cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
3739