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