1cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#line 2 "scan-skel.c" 2cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 3cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#line 4 "scan-skel.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 skel__create_buffer 1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_delete_buffer skel__delete_buffer 1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_flex_debug skel__flex_debug 1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_init_buffer skel__init_buffer 1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_flush_buffer skel__flush_buffer 1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_load_buffer_state skel__load_buffer_state 1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yy_switch_to_buffer skel__switch_to_buffer 2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyin skel_in 2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyleng skel_leng 2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylex skel_lex 2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yylineno skel_lineno 2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyout skel_out 2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyrestart skel_restart 2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yytext skel_text 2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yywrap skel_wrap 2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyalloc skel_alloc 2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyrealloc skel_realloc 3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define yyfree skel_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 skel_restart(skel_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 skel_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 *skel_in, *skel_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 skel_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 skel_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 skel_restart()), so that the user can continue scanning by 318cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * just pointing skel_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 skel_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 skel_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 skel_wrap()'s to do buffer switches 370cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * instead of setting up a fresh skel_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 skel_restart (FILE *input_file ); 378cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel__switch_to_buffer (YY_BUFFER_STATE new_buffer ); 379cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE skel__create_buffer (FILE *file,int size ); 380cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel__delete_buffer (YY_BUFFER_STATE b ); 381cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel__flush_buffer (YY_BUFFER_STATE b ); 382cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_push_buffer_state (YY_BUFFER_STATE new_buffer ); 383cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_pop_buffer_state (void ); 384cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 385cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void skel_ensure_buffer_stack (void ); 386cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void skel__load_buffer_state (void ); 387cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void skel__init_buffer (YY_BUFFER_STATE b,FILE *file ); 388cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 389cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_FLUSH_BUFFER skel__flush_buffer(YY_CURRENT_BUFFER ) 390cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 391cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE skel__scan_buffer (char *base,yy_size_t size ); 392cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE skel__scan_string (yyconst char *yy_str ); 39305436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_BUFFER_STATE skel__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 *skel_alloc (yy_size_t ); 398cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *skel_realloc (void *,yy_size_t ); 399cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_free (void * ); 400cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yy_new_buffer skel__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 skel_ensure_buffer_stack (); \ 407cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = \ 408cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__create_buffer(skel_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 skel_ensure_buffer_stack (); \ 417cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = \ 418cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__create_buffer(skel_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] skel_text/skel_in/skel_out/yy_state_type/skel_lineno etc. def's & init go here */ 426cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Begin user sect3 */ 427cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 42805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define skel_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 *skel_in = (FILE *) 0, *skel_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 skel_lineno; 440cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 441cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint skel_lineno = 1; 442cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 443cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern char *skel_text; 444cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yytext_ptr skel_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 skel_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 skel_text and skel_leng for yymore() goes here \ */\ 461cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_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 skel_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 */ 46805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_NUM_RULES 22 46905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_END_OF_BUFFER 23 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[45] = 478cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 47905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 0, 0, 0, 0, 0, 0, 23, 11, 10, 9, 48005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 12, 19, 21, 20, 20, 11, 9, 5, 1, 9, 48105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 4, 9, 2, 3, 12, 19, 17, 18, 13, 16, 48205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 14, 15, 8, 9, 9, 9, 9, 9, 9, 9, 48305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 9, 7, 6, 0 484cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 485cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 486cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yyconst flex_int32_t yy_ec[256] = 487cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 48805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 48905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 490cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 49105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 49205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 5, 1, 1, 5, 1, 1, 1, 1, 1, 1, 493cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 49405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1, 1, 1, 6, 1, 1, 1, 1, 1, 1, 495cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 496cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 49705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1, 1, 1, 1, 7, 8, 7, 7, 7, 7, 498cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 49905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 9, 10, 7, 7, 11, 7, 7, 12, 7, 13, 50005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 50105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 7, 7, 15, 1, 16, 1, 1, 1, 1, 1, 502cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 503cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 504cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 505cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 506cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 507cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 508cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 509cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 510cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 511cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 512cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 513cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 514cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 515cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1, 1, 1, 1, 1 516cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 517cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 51805436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int32_t yy_meta[17] = 519cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 52005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1, 1, 2, 3, 1, 4, 1, 5, 1, 1, 52105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1, 1, 1, 1, 5, 5 522cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 523cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 52405436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_base[53] = 525cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 52605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 0, 1, 60, 26, 6, 8, 29, 0, 105, 11, 52705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 0, 25, 105, 105, 105, 0, 0, 105, 105, 41, 52805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 105, 46, 105, 105, 0, 105, 105, 105, 105, 105, 52905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 105, 105, 105, 60, 4, 23, 25, 28, 43, 38, 53005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 57, 105, 105, 105, 71, 76, 81, 86, 91, 96, 53105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 0, 101 532cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 533cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 53405436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_def[53] = 535cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 53605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 45, 45, 46, 46, 47, 47, 44, 48, 44, 44, 53705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 49, 50, 44, 44, 44, 48, 51, 44, 44, 52, 53805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44, 44, 44, 44, 49, 44, 44, 44, 44, 44, 53905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44, 44, 44, 52, 34, 34, 34, 34, 34, 34, 54005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 34, 44, 44, 0, 44, 44, 44, 44, 44, 44, 54105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44, 44 542cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 543cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 54405436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_nxt[122] = 545cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 54605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 17, 44, 9, 9, 44, 10, 10, 14, 15, 14, 54705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 15, 17, 17, 18, 37, 17, 19, 20, 21, 20, 54805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 20, 20, 20, 20, 22, 23, 24, 27, 44, 28, 54905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 29, 12, 30, 20, 38, 20, 40, 39, 20, 31, 55005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 32, 17, 17, 42, 33, 17, 17, 17, 20, 33, 55105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 17, 41, 20, 20, 20, 34, 20, 35, 20, 20, 55205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 17, 17, 43, 33, 17, 12, 44, 20, 44, 44, 55305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 36, 8, 8, 8, 8, 8, 11, 11, 11, 11, 55405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 11, 13, 13, 13, 13, 13, 16, 44, 16, 44, 55505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 16, 25, 25, 25, 44, 25, 26, 26, 26, 26, 55605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 55705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 26, 20, 44, 20, 7, 44, 44, 44, 44, 44, 55805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 55905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44 560cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 561cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 56205436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_chk[122] = 563cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 56405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 51, 0, 1, 2, 0, 1, 2, 5, 5, 6, 56505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 6, 10, 10, 10, 35, 10, 10, 10, 10, 10, 56605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 10, 10, 10, 10, 10, 10, 10, 12, 7, 12, 56705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 12, 4, 12, 36, 36, 37, 38, 37, 38, 12, 56805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 12, 20, 20, 40, 20, 20, 22, 22, 40, 22, 56905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 22, 39, 22, 39, 22, 22, 22, 22, 22, 22, 57005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 34, 34, 41, 34, 34, 3, 0, 41, 0, 0, 57105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 34, 45, 45, 45, 45, 45, 46, 46, 46, 46, 57205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 46, 47, 47, 47, 47, 47, 48, 0, 48, 0, 57305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 48, 49, 49, 49, 0, 49, 50, 50, 50, 50, 57405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 57505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 50, 52, 0, 52, 44, 44, 44, 44, 44, 44, 57605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 57705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 44 578cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 579cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 580cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic yy_state_type yy_last_accepting_state; 581cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic char *yy_last_accepting_cpos; 582cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 583cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern int skel__flex_debug; 584cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint skel__flex_debug = 1; 585cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 58605436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic yyconst flex_int16_t yy_rule_linenum[22] = 587cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 0, 58805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 72, 73, 74, 75, 76, 78, 79, 81, 90, 91, 58905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 92, 105, 107, 108, 109, 110, 111, 113, 134, 139, 59005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 140 591cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } ; 592cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 593cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* The intent behind this definition is that it'll catch 594cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * any uses of REJECT which flex missed. 595cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 596cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define REJECT reject_used_but_not_detected 597cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yymore() yymore_used_but_not_detected 598cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_MORE_ADJ 0 599cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_RESTORE_YY_MORE_OFFSET 600cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectchar *skel_text; 601cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#line 1 "scan-skel.l" 602cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Scan Bison Skeletons. -*- C -*- 603cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 60405436638acc7c010349a69c3395f1a57c642dc62Ying Wang Copyright (C) 2001-2007, 2009-2012 Free Software Foundation, Inc. 605cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 606cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project This file is part of Bison, the GNU Compiler Compiler. 607cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 60805436638acc7c010349a69c3395f1a57c642dc62Ying Wang This program is free software: you can redistribute it and/or modify 60905436638acc7c010349a69c3395f1a57c642dc62Ying Wang it under the terms of the GNU General Public License as published by 61005436638acc7c010349a69c3395f1a57c642dc62Ying Wang the Free Software Foundation, either version 3 of the License, or 61105436638acc7c010349a69c3395f1a57c642dc62Ying Wang (at your option) any later version. 612cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 61305436638acc7c010349a69c3395f1a57c642dc62Ying Wang This program is distributed in the hope that it will be useful, 61405436638acc7c010349a69c3395f1a57c642dc62Ying Wang but WITHOUT ANY WARRANTY; without even the implied warranty of 61505436638acc7c010349a69c3395f1a57c642dc62Ying Wang MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 61605436638acc7c010349a69c3395f1a57c642dc62Ying Wang GNU General Public License for more details. 617cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 618cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project You should have received a copy of the GNU General Public License 61905436638acc7c010349a69c3395f1a57c642dc62Ying Wang along with this program. If not, see <http://www.gnu.org/licenses/>. */ 62005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_NO_INPUT 1 62105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 24 "scan-skel.l" 622cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Work around a bug in flex 2.5.31. See Debian bug 333231 623cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */ 624cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#undef skel_wrap 625cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define skel_wrap() 1 626cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 62705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define FLEX_PREFIX(Id) skel_ ## Id 62805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include "flex-scanner.h" 629cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 63005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <dirname.h> 631cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <error.h> 632cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <quotearg.h> 633cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "complain.h" 635cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "getargs.h" 636cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "files.h" 637cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "scan-skel.h" 638cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 63905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define YY_DECL static int skel_lex (void) 64005436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_DECL; 641cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 642cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define QPUTS(String) \ 643cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project fputs (quotearg_style (c_quoting_style, String), skel_out) 644cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 64505436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void at_directive_perform (int at_directive_argc, 64605436638acc7c010349a69c3395f1a57c642dc62Ying Wang char *at_directive_argv[], 64705436638acc7c010349a69c3395f1a57c642dc62Ying Wang char **outnamep, int *out_linenop); 64805436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void fail_for_at_directive_too_many_args (char const *at_directive_name); 64905436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void fail_for_at_directive_too_few_args (char const *at_directive_name); 65005436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void fail_for_invalid_at (char const *at); 65105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 652cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 65305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 654 "scan-skel.c" 654cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 655cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define INITIAL 0 65605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_AT_DIRECTIVE_ARGS 1 65705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define SC_AT_DIRECTIVE_SKIP_WS 2 658cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 659cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_NO_UNISTD_H 660cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Special case for "unistd.h", since it is non-ANSI. We include it way 661cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * down here because we want the user's section 1 to have been scanned first. 662cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * The user has a chance to override it with an option. 663cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 664cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 665cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <unistd.h> 666cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 667cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 668cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 669cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 670cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 671cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_EXTRA_TYPE 672cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_EXTRA_TYPE void * 673cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 674cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 675cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Reentrant structure and macros (non-C++). */ 676cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */ 67705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %if-c-only */ 67805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 67905436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int yy_init_globals (void ); 68005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 68105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif */ 682cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */ 683cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 68405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif End reentrant structures and macros. */ 68505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 68605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Accessor methods to globals. 68705436638acc7c010349a69c3395f1a57c642dc62Ying Wang These are made visible to non-reentrant scanners for convenience. */ 68805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 68905436638acc7c010349a69c3395f1a57c642dc62Ying Wangint skel_lex_destroy (void ); 69005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 69105436638acc7c010349a69c3395f1a57c642dc62Ying Wangint skel_get_debug (void ); 69205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 69305436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid skel_set_debug (int debug_flag ); 69405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 69505436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_EXTRA_TYPE skel_get_extra (void ); 69605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 69705436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid skel_set_extra (YY_EXTRA_TYPE user_defined ); 69805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 69905436638acc7c010349a69c3395f1a57c642dc62Ying WangFILE *skel_get_in (void ); 70005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 70105436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid skel_set_in (FILE * in_str ); 70205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 70305436638acc7c010349a69c3395f1a57c642dc62Ying WangFILE *skel_get_out (void ); 70405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 70505436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid skel_set_out (FILE * out_str ); 70605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 70705436638acc7c010349a69c3395f1a57c642dc62Ying Wangyy_size_t skel_get_leng (void ); 70805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 70905436638acc7c010349a69c3395f1a57c642dc62Ying Wangchar *skel_get_text (void ); 71005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 71105436638acc7c010349a69c3395f1a57c642dc62Ying Wangint skel_get_lineno (void ); 71205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 71305436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid skel_set_lineno (int line_number ); 71405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 715cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-bison-bridge */ 716cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 717cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 718cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Macros after this point can all be overridden by user definitions in 719cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * section 1. 720cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 721cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 722cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_SKIP_YYWRAP 723cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus 724cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern "C" int skel_wrap (void ); 725cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else 726cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern int skel_wrap (void ); 727cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 728cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 729cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 730cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */ 731cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 732cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */ 733cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 734cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 735cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 736cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef yytext_ptr 737cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void yy_flex_strncpy (char *,yyconst char *,int ); 738cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 739cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 740cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YY_NEED_STRLEN 741cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_flex_strlen (yyconst char * ); 742cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 743cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 744cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_NO_INPUT 745cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */ 746cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */ 747cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 748cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus 749cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yyinput (void ); 750cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else 751cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int input (void ); 752cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 753cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */ 754cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 755cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 756cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 757cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 758cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 759cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 760cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 761cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 762cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Amount of stuff to slurp up with each read. */ 763cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_READ_BUF_SIZE 764cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_READ_BUF_SIZE 8192 765cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 766cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 767cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Copy whatever the last rule matched to the standard output. */ 768cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef ECHO 769cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */ 770cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* This used to be an fputs(), but since the string might contain NUL's, 771cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * we now use fwrite(). 772cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 77305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define ECHO do { if (fwrite( skel_text, skel_leng, 1, skel_out )) {} } while (0) 774cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 775cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only C++ definition */ 776cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 777cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 778cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 779cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 780cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * is returned in "result". 781cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 782cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_INPUT 783cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_INPUT(buf,result,max_size) \ 784cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\ 785cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 786cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { \ 787cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int c = '*'; \ 788cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project size_t n; \ 789cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project for ( n = 0; n < max_size && \ 790cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (c = getc( skel_in )) != EOF && c != '\n'; ++n ) \ 791cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project buf[n] = (char) c; \ 792cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( c == '\n' ) \ 793cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project buf[n++] = (char) c; \ 794cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( c == EOF && ferror( skel_in ) ) \ 795cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( "input in flex scanner failed" ); \ 796cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project result = n; \ 797cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } \ 798cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else \ 799cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { \ 800cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project errno=0; \ 801cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while ( (result = fread(buf, 1, max_size, skel_in))==0 && ferror(skel_in)) \ 802cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { \ 803cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if( errno != EINTR) \ 804cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { \ 805cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( "input in flex scanner failed" ); \ 806cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project break; \ 807cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } \ 808cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project errno=0; \ 809cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project clearerr(skel_in); \ 810cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } \ 811cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project }\ 812cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project\ 813cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only C++ definition \ */\ 814cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 815cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 816cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 817cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 818cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* No semi-colon after return; correct usage is to write "yyterminate();" - 819cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * we don't want an extra ';' after the "return" because that will cause 820cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * some compilers to complain about unreachable statements. 821cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 822cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef yyterminate 823cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyterminate() return YY_NULL 824cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 825cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 826cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Number of entries by which start-condition stack grows. */ 827cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_START_STACK_INCR 828cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_START_STACK_INCR 25 829cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 830cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 831cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Report a fatal error. */ 832cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_FATAL_ERROR 833cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 834cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 835cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 836cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 837cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 838cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 839cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 840cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-tables-serialization structures and prototypes */ 841cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */ 842cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 843cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */ 844cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 845cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */ 846cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 847cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %tables-yydmap generated elements */ 848cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 849cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* end tables serialization structures and prototypes */ 850cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 851cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */ 852cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 853cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Default declaration of generated scanner - a define so the user can 854cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * easily add parameters. 855cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 856cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_DECL 857cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_DECL_IS_OURS 1 858cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only Standard (non-C++) definition */ 859cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 860cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectextern int skel_lex (void); 861cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 862cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_DECL int skel_lex (void) 863cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 864cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only C++ definition */ 865cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 866cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* !YY_DECL */ 867cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 868cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Code executed at the beginning of each rule, after skel_text and skel_leng 869cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * have been set up. 870cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 871cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_USER_ACTION 872cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_USER_ACTION 873cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 874cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 875cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Code executed at the end of each rule. */ 876cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_BREAK 877cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_BREAK break; 878cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 879cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 880cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [6.0] YY_RULE_SETUP definition goes here */ 881cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_RULE_SETUP \ 882cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_USER_ACTION 883cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 884cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */ 885cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 886cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** The main scanner function which does all the work. 887cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 888cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_DECL 889cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 890cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register yy_state_type yy_current_state; 891cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register char *yy_cp, *yy_bp; 892cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register int yy_act; 893cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 894cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [7.0] user's declarations go here */ 89505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 58 "scan-skel.l" 896cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 897cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 898cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 89905436638acc7c010349a69c3395f1a57c642dc62Ying Wang int out_lineno PACIFY_CC (= 0); 900cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project char *outname = NULL; 901cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 90205436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Currently, only the @warn, @complain, @fatal, @warn_at, @complain_at, and 90305436638acc7c010349a69c3395f1a57c642dc62Ying Wang @fatal_at directives take multiple arguments, and the last three already 90405436638acc7c010349a69c3395f1a57c642dc62Ying Wang can't take more than 7. at_directive_argv[0] is the directive name. */ 90505436638acc7c010349a69c3395f1a57c642dc62Ying Wang #define AT_DIRECTIVE_ARGC_MAX 8 90605436638acc7c010349a69c3395f1a57c642dc62Ying Wang int at_directive_argc = 0; 90705436638acc7c010349a69c3395f1a57c642dc62Ying Wang char *at_directive_argv[AT_DIRECTIVE_ARGC_MAX]; 908cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 909cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 91005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 911 "scan-skel.c" 91105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 91205436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ( !(yy_init) ) 913cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 91405436638acc7c010349a69c3395f1a57c642dc62Ying Wang (yy_init) = 1; 915cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 916cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YY_USER_INIT 917cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_USER_INIT; 918cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 919cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 920cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! (yy_start) ) 921cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_start) = 1; /* first start state */ 922cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 923cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! skel_in ) 924cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 925cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_in = stdin; 926cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 927cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 928cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 929cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 930cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! skel_out ) 931cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 932cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_out = stdout; 933cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 934cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 935cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 936cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 937cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! YY_CURRENT_BUFFER ) { 938cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_ensure_buffer_stack (); 939cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = 940cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__create_buffer(skel_in,YY_BUF_SIZE ); 941cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 942cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 943cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__load_buffer_state( ); 944cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 945cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 946cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while ( 1 ) /* loops until end-of-file is reached */ 947cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 948cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [8.0] yymore()-related code goes here */ 949cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_cp = (yy_c_buf_p); 950cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 951cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Support of skel_text. */ 952cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *yy_cp = (yy_hold_char); 953cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 954cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* yy_bp points to the position in yy_ch_buf of the start of 955cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * the current run. 956cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 957cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_bp = yy_cp; 958cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 959cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [9.0] code to set up and find next match goes here */ 960cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (yy_start); 961cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyy_match: 962cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project do 963cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 964cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 965cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( yy_accept[yy_current_state] ) 966cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 967cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_last_accepting_state) = yy_current_state; 968cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_last_accepting_cpos) = yy_cp; 969cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 970cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 971cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 972cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (int) yy_def[yy_current_state]; 97305436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ( yy_current_state >= 45 ) 974cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_c = yy_meta[(unsigned int) yy_c]; 975cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 976cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 977cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ++yy_cp; 978cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 97905436638acc7c010349a69c3395f1a57c642dc62Ying Wang while ( yy_current_state != 44 ); 980cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_cp = (yy_last_accepting_cpos); 981cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (yy_last_accepting_state); 982cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 983cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectyy_find_action: 984cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [10.0] code to find the action number goes here */ 985cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_act = yy_accept[yy_current_state]; 986cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 987cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_DO_BEFORE_ACTION; 988cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 989cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [11.0] code for skel_lineno update goes here */ 990cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 991cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdo_action: /* This label is used only to access EOF actions. */ 992cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 993cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [12.0] debug code goes here */ 994cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( skel__flex_debug ) 995cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 996cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( yy_act == 0 ) 997cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project fprintf( stderr, "--scanner backing up\n" ); 99805436638acc7c010349a69c3395f1a57c642dc62Ying Wang else if ( yy_act < 22 ) 999cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", 1000cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (long)yy_rule_linenum[yy_act], skel_text ); 100105436638acc7c010349a69c3395f1a57c642dc62Ying Wang else if ( yy_act == 22 ) 1002cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project fprintf( stderr, "--accepting default rule (\"%s\")\n", 1003cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_text ); 100405436638acc7c010349a69c3395f1a57c642dc62Ying Wang else if ( yy_act == 23 ) 1005cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project fprintf( stderr, "--(end of buffer or a NUL)\n" ); 1006cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1007cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); 1008cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1009cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1010cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project switch ( yy_act ) 1011cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { /* beginning of action switch */ 1012cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [13.0] actions go here */ 1013cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case 0: /* must back up */ 1014cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* undo the effects of YY_DO_BEFORE_ACTION */ 1015cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *yy_cp = (yy_hold_char); 1016cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_cp = (yy_last_accepting_cpos); 1017cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (yy_last_accepting_state); 1018cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project goto yy_find_action; 1019cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1020cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 1: 1021cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 102205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 72 "scan-skel.l" 102305436638acc7c010349a69c3395f1a57c642dc62Ying Wangfputc ('@', skel_out); 1024cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1025cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 2: 1026cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 102705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 73 "scan-skel.l" 102805436638acc7c010349a69c3395f1a57c642dc62Ying Wangfputc ('[', skel_out); 1029cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1030cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 3: 1031cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 103205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 74 "scan-skel.l" 103305436638acc7c010349a69c3395f1a57c642dc62Ying Wangfputc (']', skel_out); 1034cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1035cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 4: 1036cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 103705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 75 "scan-skel.l" 103805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcontinue; /* Used by b4_cat in ../data/bison.m4. */ 1039cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1040cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 5: 104105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 5 can match eol */ 1042cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 104305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 76 "scan-skel.l" 104405436638acc7c010349a69c3395f1a57c642dc62Ying Wangcontinue; 1045cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1046cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 6: 1047cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 104805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 78 "scan-skel.l" 104905436638acc7c010349a69c3395f1a57c642dc62Ying Wangfprintf (skel_out, "%d", out_lineno + 1); 1050cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1051cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 7: 1052cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 105305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 79 "scan-skel.l" 105405436638acc7c010349a69c3395f1a57c642dc62Ying WangQPUTS (outname); 1055cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1056cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 8: 1057cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 105805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 81 "scan-skel.l" 105905436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 106005436638acc7c010349a69c3395f1a57c642dc62Ying Wang skel_text[skel_leng-1] = '\0'; 106105436638acc7c010349a69c3395f1a57c642dc62Ying Wang obstack_grow (&obstack_for_string, skel_text, skel_leng); 106205436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[at_directive_argc++] = 106305436638acc7c010349a69c3395f1a57c642dc62Ying Wang obstack_finish (&obstack_for_string); 106405436638acc7c010349a69c3395f1a57c642dc62Ying Wang BEGIN SC_AT_DIRECTIVE_ARGS; 106505436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 1066cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 106705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* This pattern must not match more than the previous @ patterns. */ 1068cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 9: 1069cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 107005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 90 "scan-skel.l" 107105436638acc7c010349a69c3395f1a57c642dc62Ying Wangfail_for_invalid_at (skel_text); 1072cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1073cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 10: 107405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 10 can match eol */ 1075cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 107605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 91 "scan-skel.l" 107705436638acc7c010349a69c3395f1a57c642dc62Ying Wangout_lineno++; ECHO; 1078cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1079cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 11: 1080cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 108105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 92 "scan-skel.l" 1082cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectECHO; 1083cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 1084cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase YY_STATE_EOF(INITIAL): 108505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 94 "scan-skel.l" 1086cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1087cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (outname) 1088cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1089cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project free (outname); 1090cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project xfclose (skel_out); 1091cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1092cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return EOF; 1093cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1094cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 109505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 109605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 109705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 12: 109805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 12 can match eol */ 109905436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 110005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 105 "scan-skel.l" 110105436638acc7c010349a69c3395f1a57c642dc62Ying WangSTRING_GROW; 110205436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 1103cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase 13: 1104cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_RULE_SETUP 110505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 107 "scan-skel.l" 110605436638acc7c010349a69c3395f1a57c642dc62Ying Wangobstack_1grow (&obstack_for_string, '@'); 110705436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 110805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 14: 110905436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 111005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 108 "scan-skel.l" 111105436638acc7c010349a69c3395f1a57c642dc62Ying Wangobstack_1grow (&obstack_for_string, '['); 111205436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 111305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 15: 111405436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 111505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 109 "scan-skel.l" 111605436638acc7c010349a69c3395f1a57c642dc62Ying Wangobstack_1grow (&obstack_for_string, ']'); 111705436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 111805436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 16: 111905436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 112005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 110 "scan-skel.l" 112105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcontinue; /* For starting an argument that begins with whitespace. */ 112205436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 112305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 17: 112405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 17 can match eol */ 112505436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 112605436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 111 "scan-skel.l" 112705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcontinue; 112805436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 112905436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 18: 113005436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 113105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 113 "scan-skel.l" 113205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 113305436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (at_directive_argc >= AT_DIRECTIVE_ARGC_MAX) 113405436638acc7c010349a69c3395f1a57c642dc62Ying Wang fail_for_at_directive_too_many_args (at_directive_argv[0]); 113505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 113605436638acc7c010349a69c3395f1a57c642dc62Ying Wang obstack_1grow (&obstack_for_string, '\0'); 113705436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[at_directive_argc++] = 113805436638acc7c010349a69c3395f1a57c642dc62Ying Wang obstack_finish (&obstack_for_string); 113905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 114005436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Like M4, skip whitespace after a comma. */ 114105436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (skel_text[1] == ',') 114205436638acc7c010349a69c3395f1a57c642dc62Ying Wang BEGIN SC_AT_DIRECTIVE_SKIP_WS; 114305436638acc7c010349a69c3395f1a57c642dc62Ying Wang else 114405436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 114505436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_perform (at_directive_argc, at_directive_argv, 114605436638acc7c010349a69c3395f1a57c642dc62Ying Wang &outname, &out_lineno); 114705436638acc7c010349a69c3395f1a57c642dc62Ying Wang obstack_free (&obstack_for_string, at_directive_argv[0]); 114805436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argc = 0; 114905436638acc7c010349a69c3395f1a57c642dc62Ying Wang BEGIN INITIAL; 115005436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 115105436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 115205436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 115305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 19: 115405436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 115505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 134 "scan-skel.l" 115605436638acc7c010349a69c3395f1a57c642dc62Ying Wangfail_for_invalid_at (skel_text); 115705436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 115805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 115905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 116005436638acc7c010349a69c3395f1a57c642dc62Ying Wang 116105436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 20: 116205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* rule 20 can match eol */ 116305436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 116405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 139 "scan-skel.l" 116505436638acc7c010349a69c3395f1a57c642dc62Ying Wangcontinue; 116605436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 116705436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 21: 116805436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 116905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 140 "scan-skel.l" 117005436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ yyless (0); BEGIN SC_AT_DIRECTIVE_ARGS; } 117105436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 117205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 117305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 117405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 117505436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase YY_STATE_EOF(SC_AT_DIRECTIVE_ARGS): 117605436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase YY_STATE_EOF(SC_AT_DIRECTIVE_SKIP_WS): 117705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 145 "scan-skel.l" 117805436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 117905436638acc7c010349a69c3395f1a57c642dc62Ying Wang fatal (_("unclosed %s directive in skeleton"), at_directive_argv[0]); 118005436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 118105436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BREAK 118205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 118305436638acc7c010349a69c3395f1a57c642dc62Ying Wangcase 22: 118405436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_RULE_SETUP 118505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 150 "scan-skel.l" 1186cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_FATAL_ERROR( "flex scanner jammed" ); 1187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BREAK 118805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 1189 "scan-skel.c" 1189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case YY_END_OF_BUFFER: 1191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1192cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Amount of text matched not including the EOB char. */ 1193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 1194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Undo the effects of YY_DO_BEFORE_ACTION. */ 1196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *yy_cp = (yy_hold_char); 1197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_RESTORE_YY_MORE_OFFSET 1198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 1200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* We're scanning a new file or input source. It's 1202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * possible that this happened because the user 1203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * just pointed skel_in at a new source and called 1204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * skel_lex(). If so, then we have to assure 1205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * consistency between YY_CURRENT_BUFFER and our 1206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * globals. Here is the right place to do so, because 1207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * this is the first action (other than possibly a 1208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * back-up) that will match for the new input source. 1209cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1210cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_input_file = skel_in; 1212cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 1213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1214cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1215cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Note that here we test for yy_c_buf_p "<=" to the position 1216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * of the first EOB in the buffer, since yy_c_buf_p will 1217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * already have been incremented past the NUL character 1218cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * (since all states make transitions on EOB to the 1219cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * end-of-buffer state). Contrast this with the test 1220cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * in input(). 1221cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1222cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 1223cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { /* This was really a NUL. */ 1224cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_state_type yy_next_state; 1225cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 1227cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1228cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = yy_get_previous_state( ); 1229cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1230cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Okay, we're now positioned to make the NUL 1231cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * transition. We couldn't have 1232cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * yy_get_previous_state() go ahead and do it 1233cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * for us because it doesn't know how to deal 1234cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * with the possibility of jamming (and we don't 1235cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * want to build jamming into it because then it 1236cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * will run more slowly). 1237cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1238cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1239cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_next_state = yy_try_NUL_trans( yy_current_state ); 1240cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1241cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1242cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1243cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( yy_next_state ) 1244cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1245cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Consume the NUL. */ 1246cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_cp = ++(yy_c_buf_p); 1247cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = yy_next_state; 1248cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project goto yy_match; 1249cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1250cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1251cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1252cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1253cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */ 1254cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_cp = (yy_last_accepting_cpos); 1255cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (yy_last_accepting_state); 1256cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project goto yy_find_action; 1257cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1258cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1259cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1260cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else switch ( yy_get_next_buffer( ) ) 1261cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1262cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case EOB_ACT_END_OF_FILE: 1263cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1264cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_did_buffer_switch_on_eof) = 0; 1265cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1266cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( skel_wrap( ) ) 1267cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1268cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Note: because we've taken care in 1269cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * yy_get_next_buffer() to have set up 1270cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * skel_text, we can now set up 1271cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * yy_c_buf_p so that if some total 1272cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * hoser (like flex itself) wants to 1273cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * call the scanner after we return the 1274cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * YY_NULL, it'll still work - another 1275cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * YY_NULL will get returned. 1276cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1277cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 1278cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1279cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_act = YY_STATE_EOF(YY_START); 1280cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project goto do_action; 1281cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1282cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1283cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1284cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1285cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! (yy_did_buffer_switch_on_eof) ) 1286cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_NEW_FILE; 1287cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1288cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project break; 1289cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1290cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1291cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case EOB_ACT_CONTINUE_SCAN: 1292cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_c_buf_p) = 1293cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yytext_ptr) + yy_amount_of_matched_text; 1294cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1295cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = yy_get_previous_state( ); 1296cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1297cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_cp = (yy_c_buf_p); 1298cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1299cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project goto yy_match; 1300cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1301cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case EOB_ACT_LAST_MATCH: 1302cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_c_buf_p) = 1303cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 1304cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1305cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = yy_get_previous_state( ); 1306cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1307cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_cp = (yy_c_buf_p); 1308cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1309cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project goto yy_find_action; 1310cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1311cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project break; 1312cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1313cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1314cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project default: 1315cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( 1316cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project "fatal flex scanner internal error--no action found" ); 1317cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } /* end of action switch */ 1318cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } /* end of scanning one token */ 1319cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} /* end of skel_lex */ 1320cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */ 1321cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1322cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1323cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */ 1324cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1325cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */ 1326cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1327cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1328cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1329cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* yy_get_next_buffer - try to read in a new buffer 1330cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1331cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * Returns a code representing an action: 1332cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * EOB_ACT_LAST_MATCH - 1333cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 1334cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * EOB_ACT_END_OF_FILE - end of file 1335cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1336cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1337cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_get_next_buffer (void) 1338cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1339cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1340cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1341cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1342cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 1343cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register char *source = (yytext_ptr); 1344cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register int number_to_move, i; 1345cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int ret_val; 1346cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1347cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 1348cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( 1349cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project "fatal flex scanner internal error--end of buffer missed" ); 1350cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1351cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 1352cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { /* Don't try to fill the buffer, so this is an EOF. */ 1353cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 1354cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1355cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* We matched a single character, the EOB, so 1356cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * treat this as a final EOF. 1357cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1358cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return EOB_ACT_END_OF_FILE; 1359cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1360cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1361cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1362cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1363cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* We matched some text prior to the EOB, first 1364cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * process it. 1365cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1366cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return EOB_ACT_LAST_MATCH; 1367cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1368cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1369cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1370cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Try to read more data. */ 1371cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1372cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* First move last chars to start of buffer. */ 1373cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 1374cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1375cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project for ( i = 0; i < number_to_move; ++i ) 1376cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *(dest++) = *(source++); 1377cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1378cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 1379cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* don't do the read, it's not guaranteed to return an EOF, 1380cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * just force an EOF 1381cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1382cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 1383cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1384cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1385cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 138605436638acc7c010349a69c3395f1a57c642dc62Ying Wang yy_size_t num_to_read = 1387cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 1388cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1389cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while ( num_to_read <= 0 ) 1390cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { /* Not enough room in the buffer - grow it. */ 1391cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1392cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* just a shorter name for the current buffer */ 139305436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; 1394cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1395cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int yy_c_buf_p_offset = 1396cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (int) ((yy_c_buf_p) - b->yy_ch_buf); 1397cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1398cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( b->yy_is_our_buffer ) 1399cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 140005436638acc7c010349a69c3395f1a57c642dc62Ying Wang yy_size_t new_size = b->yy_buf_size * 2; 1401cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1402cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( new_size <= 0 ) 1403cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buf_size += b->yy_buf_size / 8; 1404cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1405cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buf_size *= 2; 1406cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1407cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_ch_buf = (char *) 1408cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Include room in for 2 EOB chars. */ 1409cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); 1410cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1411cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1412cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Can't grow it, we don't own it. */ 1413cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_ch_buf = 0; 1414cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1415cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! b->yy_ch_buf ) 1416cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( 1417cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project "fatal error - scanner input buffer overflow" ); 1418cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1419cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 1420cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1421cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 1422cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project number_to_move - 1; 1423cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1424cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1425cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1426cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( num_to_read > YY_READ_BUF_SIZE ) 1427cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project num_to_read = YY_READ_BUF_SIZE; 1428cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1429cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Read in more data. */ 1430cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 1431cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_n_chars), num_to_read ); 1432cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1433cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1434cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1435cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1436cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( (yy_n_chars) == 0 ) 1437cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1438cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( number_to_move == YY_MORE_ADJ ) 1439cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1440cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ret_val = EOB_ACT_END_OF_FILE; 1441cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_restart(skel_in ); 1442cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1443cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1444cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1445cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1446cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ret_val = EOB_ACT_LAST_MATCH; 1447cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 1448cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BUFFER_EOF_PENDING; 1449cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1450cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1451cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1452cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1453cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ret_val = EOB_ACT_CONTINUE_SCAN; 1454cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 145505436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 145605436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Extend the array by 50%, plus the number we really need. */ 145705436638acc7c010349a69c3395f1a57c642dc62Ying Wang yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 145805436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) skel_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); 145905436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 146005436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 146105436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 146205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1463cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_n_chars) += number_to_move; 1464cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 1465cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 1466cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1467cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 1468cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1469cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return ret_val; 1470cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1471cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1472cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* yy_get_previous_state - get the state just before the EOB char was reached */ 1473cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1474cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1475cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %not-for-header */ 1476cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1477cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project static yy_state_type yy_get_previous_state (void) 1478cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1479cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1480cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1481cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1482cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register yy_state_type yy_current_state; 1483cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register char *yy_cp; 1484cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1485cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [15.0] code to get the start state into yy_current_state goes here */ 1486cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (yy_start); 1487cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1488cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 1489cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1490cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [16.0] code to find the next state goes here */ 1491cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 1492cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( yy_accept[yy_current_state] ) 1493cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1494cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_last_accepting_state) = yy_current_state; 1495cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_last_accepting_cpos) = yy_cp; 1496cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1497cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1498cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1499cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (int) yy_def[yy_current_state]; 150005436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ( yy_current_state >= 45 ) 1501cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_c = yy_meta[(unsigned int) yy_c]; 1502cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1503cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 1504cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1505cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1506cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return yy_current_state; 1507cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1508cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1509cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* yy_try_NUL_trans - try to make a transition on the NUL character 1510cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1511cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * synopsis 1512cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * next_state = yy_try_NUL_trans( current_state ); 1513cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1514cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1515cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 1516cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1517cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1518cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1519cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1520cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register int yy_is_jam; 1521cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ 1522cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register char *yy_cp = (yy_c_buf_p); 1523cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1524cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register YY_CHAR yy_c = 1; 1525cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( yy_accept[yy_current_state] ) 1526cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1527cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_last_accepting_state) = yy_current_state; 1528cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_last_accepting_cpos) = yy_cp; 1529cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1530cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1531cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1532cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = (int) yy_def[yy_current_state]; 153305436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ( yy_current_state >= 45 ) 1534cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_c = yy_meta[(unsigned int) yy_c]; 1535cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1536cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 153705436638acc7c010349a69c3395f1a57c642dc62Ying Wang yy_is_jam = (yy_current_state == 44); 1538cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 153905436638acc7c010349a69c3395f1a57c642dc62Ying Wang return yy_is_jam ? 0 : yy_current_state; 1540cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1541cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1542cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1543cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1544cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1545cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1546cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1547cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_NO_INPUT 1548cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus 1549cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project static int yyinput (void) 1550cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else 1551cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project static int input (void) 1552cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 1553cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1554cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1555cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1556cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1557cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1558cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int c; 1559cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1560cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *(yy_c_buf_p) = (yy_hold_char); 1561cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1562cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 1563cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1564cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* yy_c_buf_p now points to the character we want to return. 1565cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * If this occurs *before* the EOB characters, then it's a 1566cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * valid NUL; if not, then we've hit the end of the buffer. 1567cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1568cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 1569cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* This was really a NUL. */ 1570cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *(yy_c_buf_p) = '\0'; 1571cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1572cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project else 1573cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { /* need more input */ 157405436638acc7c010349a69c3395f1a57c642dc62Ying Wang yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); 1575cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ++(yy_c_buf_p); 1576cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1577cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project switch ( yy_get_next_buffer( ) ) 1578cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1579cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case EOB_ACT_LAST_MATCH: 1580cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* This happens because yy_g_n_b() 1581cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * sees that we've accumulated a 1582cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * token and flags that we need to 1583cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * try matching the token before 1584cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * proceeding. But for input(), 1585cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * there's no matching to consider. 1586cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * So convert the EOB_ACT_LAST_MATCH 1587cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * to EOB_ACT_END_OF_FILE. 1588cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1589cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1590cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Reset buffer status. */ 1591cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_restart(skel_in ); 1592cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1593cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /*FALLTHROUGH*/ 1594cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1595cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case EOB_ACT_END_OF_FILE: 1596cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1597cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( skel_wrap( ) ) 1598cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return EOF; 1599cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1600cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! (yy_did_buffer_switch_on_eof) ) 1601cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_NEW_FILE; 1602cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef __cplusplus 1603cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return yyinput(); 1604cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#else 1605cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return input(); 1606cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 1607cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1608cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1609cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project case EOB_ACT_CONTINUE_SCAN: 1610cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_c_buf_p) = (yytext_ptr) + offset; 1611cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project break; 1612cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1613cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1614cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1615cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1616cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 1617cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *(yy_c_buf_p) = '\0'; /* preserve skel_text */ 1618cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_hold_char) = *++(yy_c_buf_p); 1619cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1620cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %% [19.0] update BOL and skel_lineno */ 1621cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1622cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return c; 1623cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1624cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1625cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif /* ifndef YY_NO_INPUT */ 1626cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1627cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1628cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Immediately switch to a different input stream. 1629cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param input_file A readable stream. 1630cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1631cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @note This function does not reset the start condition to @c INITIAL . 1632cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1633cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1634cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project void skel_restart (FILE * input_file ) 1635cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1636cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1637cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1638cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1639cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1640cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! YY_CURRENT_BUFFER ){ 1641cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_ensure_buffer_stack (); 1642cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = 1643cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__create_buffer(skel_in,YY_BUF_SIZE ); 1644cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1645cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1646cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__init_buffer(YY_CURRENT_BUFFER,input_file ); 1647cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__load_buffer_state( ); 1648cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1649cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1650cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Switch to a different input buffer. 1651cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param new_buffer The new input buffer. 1652cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1653cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1654cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1655cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project void skel__switch_to_buffer (YY_BUFFER_STATE new_buffer ) 1656cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1657cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1658cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1659cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1660cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1661cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* TODO. We should be able to replace this entire function body 1662cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * with 1663cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * skel_pop_buffer_state(); 1664cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * skel_push_buffer_state(new_buffer); 1665cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1666cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_ensure_buffer_stack (); 1667cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( YY_CURRENT_BUFFER == new_buffer ) 1668cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return; 1669cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1670cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( YY_CURRENT_BUFFER ) 1671cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1672cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Flush out information for old buffer. */ 1673cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *(yy_c_buf_p) = (yy_hold_char); 1674cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 1675cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1676cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1677cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1678cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = new_buffer; 1679cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__load_buffer_state( ); 1680cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1681cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* We don't actually know whether we did this switch during 1682cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * EOF (skel_wrap()) processing, but the only time this flag 1683cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * is looked at is after skel_wrap() is called, so it's safe 1684cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * to go ahead and always set it. 1685cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1686cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_did_buffer_switch_on_eof) = 1; 1687cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1688cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1689cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1690cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void skel__load_buffer_state (void) 1691cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1692cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1693cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1694cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1695cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1696cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 1697cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 1698cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_hold_char) = *(yy_c_buf_p); 1699cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1700cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1701cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Allocate and initialize an input buffer state. 1702cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param file A readable stream. 1703cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 1704cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1705cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the allocated buffer state. 1706cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1707cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1708cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BUFFER_STATE skel__create_buffer (FILE * file, int size ) 1709cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1710cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1711cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1712cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1713cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BUFFER_STATE b; 1714cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1715cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b = (YY_BUFFER_STATE) skel_alloc(sizeof( struct yy_buffer_state ) ); 1716cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! b ) 1717cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( "out of dynamic memory in skel__create_buffer()" ); 1718cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1719cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buf_size = size; 1720cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1721cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* yy_ch_buf has to be 2 characters longer than the size given because 1722cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * we need to put in 2 end-of-buffer characters. 1723cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1724cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_ch_buf = (char *) skel_alloc(b->yy_buf_size + 2 ); 1725cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! b->yy_ch_buf ) 1726cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( "out of dynamic memory in skel__create_buffer()" ); 1727cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1728cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_is_our_buffer = 1; 1729cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1730cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__init_buffer(b,file ); 1731cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1732cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return b; 1733cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1734cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1735cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Destroy the buffer. 1736cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param b a buffer created with skel__create_buffer() 1737cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1738cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1739cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1740cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project void skel__delete_buffer (YY_BUFFER_STATE b ) 1741cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1742cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1743cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1744cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1745cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1746cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! b ) 1747cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return; 1748cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1749cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 1750cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 1751cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1752cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( b->yy_is_our_buffer ) 1753cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_free((void *) b->yy_ch_buf ); 1754cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1755cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_free((void *) b ); 1756cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1757cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1758cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Initializes or reinitializes a buffer. 1759cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * This function is sometimes called more than once on the same buffer, 1760cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * such as during a skel_restart() or at EOF. 1761cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1762cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1763cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project static void skel__init_buffer (YY_BUFFER_STATE b, FILE * file ) 1764cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1765cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1766cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1767cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1768cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1769cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int oerrno = errno; 1770cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1771cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__flush_buffer(b ); 1772cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1773cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_input_file = file; 1774cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_fill_buffer = 1; 1775cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1776cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* If b is the current buffer, then skel__init_buffer was _probably_ 1777cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * called from skel_restart() or through yy_get_next_buffer. 1778cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * In that case, we don't want to reset the lineno or column. 1779cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1780cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (b != YY_CURRENT_BUFFER){ 1781cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_bs_lineno = 1; 1782cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_bs_column = 0; 1783cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1784cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1785cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1786cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1787cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_is_interactive = 0; 1788cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1789cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1790cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1791cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1792cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project errno = oerrno; 1793cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1794cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1795cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Discard all buffered characters. On the next scan, YY_INPUT will be called. 1796cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 1797cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1798cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1799cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1800cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project void skel__flush_buffer (YY_BUFFER_STATE b ) 1801cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1802cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1803cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1804cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1805cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! b ) 1806cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return; 1807cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1808cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_n_chars = 0; 1809cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1810cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* We always need two end-of-buffer characters. The first causes 1811cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * a transition to the end-of-buffer state. The second causes 1812cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * a jam in that state. 1813cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1814cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 1815cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 1816cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1817cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buf_pos = &b->yy_ch_buf[0]; 1818cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1819cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_at_bol = 1; 1820cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buffer_status = YY_BUFFER_NEW; 1821cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1822cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( b == YY_CURRENT_BUFFER ) 1823cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__load_buffer_state( ); 1824cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1825cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1826cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-or-c++ */ 1827cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Pushes the new state onto the stack. The new state becomes 1828cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * the current state. This function will allocate the stack 1829cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * if necessary. 1830cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param new_buffer The new state. 1831cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1832cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1833cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1834cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_push_buffer_state (YY_BUFFER_STATE new_buffer ) 1835cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1836cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1837cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1838cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1839cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (new_buffer == NULL) 1840cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return; 1841cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1842cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_ensure_buffer_stack(); 1843cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1844cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* This block is copied from skel__switch_to_buffer. */ 1845cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( YY_CURRENT_BUFFER ) 1846cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 1847cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Flush out information for old buffer. */ 1848cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *(yy_c_buf_p) = (yy_hold_char); 1849cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 1850cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1851cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1852cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1853cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Only push if top exists. Otherwise, replace top. */ 1854cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (YY_CURRENT_BUFFER) 1855cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_buffer_stack_top)++; 1856cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = new_buffer; 1857cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1858cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* copied from skel__switch_to_buffer. */ 1859cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__load_buffer_state( ); 1860cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_did_buffer_switch_on_eof) = 1; 1861cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1862cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1863cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1864cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-or-c++ */ 1865cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Removes and deletes the top of the stack, if present. 1866cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * The next element becomes the new top. 1867cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1868cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1869cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1870cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_pop_buffer_state (void) 1871cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1872cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1873cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1874cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1875cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (!YY_CURRENT_BUFFER) 1876cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return; 1877cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1878cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__delete_buffer(YY_CURRENT_BUFFER ); 1879cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = NULL; 1880cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ((yy_buffer_stack_top) > 0) 1881cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project --(yy_buffer_stack_top); 1882cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1883cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (YY_CURRENT_BUFFER) { 1884cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__load_buffer_state( ); 1885cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_did_buffer_switch_on_eof) = 1; 1886cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1887cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1888cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1889cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1890cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-or-c++ */ 1891cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Allocates the stack if it does not exist. 1892cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * Guarantees space for at least one push. 1893cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1894cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1895cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void skel_ensure_buffer_stack (void) 1896cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1897cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 1898cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1899cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 190005436638acc7c010349a69c3395f1a57c642dc62Ying Wang yy_size_t num_to_alloc; 1901cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1902cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (!(yy_buffer_stack)) { 1903cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1904cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* First allocation is just for 2 elements, since we don't know if this 1905cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * scanner will even need a stack. We use 2 instead of 1 to avoid an 1906cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * immediate realloc on the next call. 1907cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1908cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project num_to_alloc = 1; 1909cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_buffer_stack) = (struct yy_buffer_state**)skel_alloc 1910cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (num_to_alloc * sizeof(struct yy_buffer_state*) 1911cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ); 191205436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ( ! (yy_buffer_stack) ) 191305436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_FATAL_ERROR( "out of dynamic memory in skel_ensure_buffer_stack()" ); 191405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 1915cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 1916cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1917cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_buffer_stack_max) = num_to_alloc; 1918cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_buffer_stack_top) = 0; 1919cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return; 1920cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1921cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1922cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 1923cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1924cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Increase the buffer to prepare for a possible push. */ 1925cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int grow_size = 8 /* arbitrary grow size */; 1926cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1927cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project num_to_alloc = (yy_buffer_stack_max) + grow_size; 1928cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_buffer_stack) = (struct yy_buffer_state**)skel_realloc 1929cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ((yy_buffer_stack), 1930cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project num_to_alloc * sizeof(struct yy_buffer_state*) 1931cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ); 193205436638acc7c010349a69c3395f1a57c642dc62Ying Wang if ( ! (yy_buffer_stack) ) 193305436638acc7c010349a69c3395f1a57c642dc62Ying Wang YY_FATAL_ERROR( "out of dynamic memory in skel_ensure_buffer_stack()" ); 1934cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1935cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* zero only the new slots.*/ 1936cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 1937cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_buffer_stack_max) = num_to_alloc; 1938cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 1939cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1940cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1941cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1942cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1943cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Setup the input buffer state to scan directly from a user-specified character buffer. 1944cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param base the character buffer 1945cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param size the size in bytes of the character buffer 1946cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1947cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the newly allocated buffer state object. 1948cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 1949cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectYY_BUFFER_STATE skel__scan_buffer (char * base, yy_size_t size ) 1950cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1951cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BUFFER_STATE b; 1952cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1953cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( size < 2 || 1954cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project base[size-2] != YY_END_OF_BUFFER_CHAR || 1955cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project base[size-1] != YY_END_OF_BUFFER_CHAR ) 1956cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* They forgot to leave room for the EOB's. */ 1957cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return 0; 1958cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1959cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b = (YY_BUFFER_STATE) skel_alloc(sizeof( struct yy_buffer_state ) ); 1960cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! b ) 1961cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( "out of dynamic memory in skel__scan_buffer()" ); 1962cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1963cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 1964cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buf_pos = b->yy_ch_buf = base; 1965cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_is_our_buffer = 0; 1966cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_input_file = 0; 1967cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_n_chars = b->yy_buf_size; 1968cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_is_interactive = 0; 1969cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_at_bol = 1; 1970cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_fill_buffer = 0; 1971cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_buffer_status = YY_BUFFER_NEW; 1972cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1973cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__switch_to_buffer(b ); 1974cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1975cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return b; 1976cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1977cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1978cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1979cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1980cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Setup the input buffer state to scan a string. The next call to skel_lex() will 1981cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * scan from a @e copy of @a str. 198205436638acc7c010349a69c3395f1a57c642dc62Ying Wang * @param yystr a NUL-terminated string to scan 1983cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 1984cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the newly allocated buffer state object. 1985cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @note If you want to scan bytes that may contain NUL values, then use 1986cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * skel__scan_bytes() instead. 1987cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 198805436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_BUFFER_STATE skel__scan_string (yyconst char * yystr ) 1989cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 1990cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 199105436638acc7c010349a69c3395f1a57c642dc62Ying Wang return skel__scan_bytes(yystr,strlen(yystr) ); 1992cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 1993cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 1994cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1995cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 1996cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Setup the input buffer state to scan the given bytes. The next call to skel_lex() will 1997cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * scan from a @e copy of @a bytes. 199805436638acc7c010349a69c3395f1a57c642dc62Ying Wang * @param yybytes the byte buffer to scan 199905436638acc7c010349a69c3395f1a57c642dc62Ying Wang * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. 2000cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2001cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @return the newly allocated buffer state object. 2002cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 200305436638acc7c010349a69c3395f1a57c642dc62Ying WangYY_BUFFER_STATE skel__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) 2004cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2005cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_BUFFER_STATE b; 2006cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project char *buf; 2007cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project yy_size_t n; 2008cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int i; 2009cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2010cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Get memory for full buffer, including space for trailing EOB's. */ 201105436638acc7c010349a69c3395f1a57c642dc62Ying Wang n = _yybytes_len + 2; 2012cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project buf = (char *) skel_alloc(n ); 2013cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! buf ) 2014cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( "out of dynamic memory in skel__scan_bytes()" ); 2015cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 201605436638acc7c010349a69c3395f1a57c642dc62Ying Wang for ( i = 0; i < _yybytes_len; ++i ) 201705436638acc7c010349a69c3395f1a57c642dc62Ying Wang buf[i] = yybytes[i]; 2018cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 201905436638acc7c010349a69c3395f1a57c642dc62Ying Wang buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 2020cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2021cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b = skel__scan_buffer(buf,n ); 2022cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if ( ! b ) 2023cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_FATAL_ERROR( "bad buffer in skel__scan_bytes()" ); 2024cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2025cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* It's okay to grow etc. this buffer, and we should throw it 2026cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * away when we're done. 2027cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2028cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project b->yy_is_our_buffer = 1; 2029cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2030cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return b; 2031cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2032cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2033cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2034cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef YY_EXIT_FAILURE 2035cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YY_EXIT_FAILURE 2 2036cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 2037cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2038cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 2039cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void yy_fatal_error (yyconst char* msg ) 2040cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2041cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (void) fprintf( stderr, "%s\n", msg ); 2042cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project exit( YY_EXIT_FAILURE ); 2043cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2044cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2045cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c++-only */ 2046cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2047cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2048cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Redefine yyless() so it works in section 3 code. */ 2049cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2050cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#undef yyless 2051cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define yyless(n) \ 2052cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project do \ 2053cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { \ 2054cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Undo effects of setting up skel_text. */ \ 2055cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int yyless_macro_arg = (n); \ 2056cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_LESS_LINENO(yyless_macro_arg);\ 2057cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_text[skel_leng] = (yy_hold_char); \ 2058cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_c_buf_p) = skel_text + yyless_macro_arg; \ 2059cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_hold_char) = *(yy_c_buf_p); \ 2060cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project *(yy_c_buf_p) = '\0'; \ 2061cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_leng = yyless_macro_arg; \ 2062cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } \ 2063cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while ( 0 ) 2064cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2065cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Accessor methods (get/set functions) to struct members. */ 2066cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2067cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only */ 2068cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */ 2069cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2070cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2071cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the current line number. 2072cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2073cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2074cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint skel_get_lineno (void) 2075cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2076cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2077cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return skel_lineno; 2078cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2079cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2080cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the input stream. 2081cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2082cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2083cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectFILE *skel_get_in (void) 2084cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2085cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return skel_in; 2086cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2087cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2088cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the output stream. 2089cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2090cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2091cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectFILE *skel_get_out (void) 2092cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2093cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return skel_out; 2094cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2095cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2096cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the length of the current token. 2097cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2098cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 209905436638acc7c010349a69c3395f1a57c642dc62Ying Wangyy_size_t skel_get_leng (void) 2100cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2101cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return skel_leng; 2102cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2103cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2104cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Get the current token. 2105cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2106cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2107cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2108cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectchar *skel_get_text (void) 2109cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2110cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return skel_text; 2111cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2112cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2113cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */ 2114cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2115cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2116cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Set the current line number. 2117cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param line_number 2118cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2119cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2120cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_set_lineno (int line_number ) 2121cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2122cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2123cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_lineno = line_number; 2124cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2125cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/** Set the input stream. This does not discard the current 2127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * input buffer. 2128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @param in_str A readable stream. 2129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * 2130cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * @see skel__switch_to_buffer 2131cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2132cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_set_in (FILE * in_str ) 2133cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_in = in_str ; 2135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2136cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2137cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_set_out (FILE * out_str ) 2138cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2139cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_out = out_str ; 2140cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2142cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint skel_get_debug (void) 2143cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2144cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return skel__flex_debug; 2145cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_set_debug (int bdebug ) 2148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__flex_debug = bdebug ; 2150cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2151cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2152cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */ 2155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-bison-bridge */ 2156cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 215705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %endif if-c-only */ 215805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 215905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* %if-c-only */ 216005436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic int yy_init_globals (void) 216105436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 216205436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Initialization is the same as for the non-reentrant scanner. 216305436638acc7c010349a69c3395f1a57c642dc62Ying Wang * This function is called from skel_lex_destroy(), so don't allocate here. 216405436638acc7c010349a69c3395f1a57c642dc62Ying Wang */ 216505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 216605436638acc7c010349a69c3395f1a57c642dc62Ying Wang (yy_buffer_stack) = 0; 216705436638acc7c010349a69c3395f1a57c642dc62Ying Wang (yy_buffer_stack_top) = 0; 216805436638acc7c010349a69c3395f1a57c642dc62Ying Wang (yy_buffer_stack_max) = 0; 216905436638acc7c010349a69c3395f1a57c642dc62Ying Wang (yy_c_buf_p) = (char *) 0; 217005436638acc7c010349a69c3395f1a57c642dc62Ying Wang (yy_init) = 0; 217105436638acc7c010349a69c3395f1a57c642dc62Ying Wang (yy_start) = 0; 217205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 217305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Defined in main.c */ 217405436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef YY_STDINIT 217505436638acc7c010349a69c3395f1a57c642dc62Ying Wang skel_in = stdin; 217605436638acc7c010349a69c3395f1a57c642dc62Ying Wang skel_out = stdout; 217705436638acc7c010349a69c3395f1a57c642dc62Ying Wang#else 217805436638acc7c010349a69c3395f1a57c642dc62Ying Wang skel_in = (FILE *) 0; 217905436638acc7c010349a69c3395f1a57c642dc62Ying Wang skel_out = (FILE *) 0; 218005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif 218105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 218205436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* For future reference: Set errno on error, since we are called by 218305436638acc7c010349a69c3395f1a57c642dc62Ying Wang * skel_lex_init() 218405436638acc7c010349a69c3395f1a57c642dc62Ying Wang */ 218505436638acc7c010349a69c3395f1a57c642dc62Ying Wang return 0; 218605436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 2187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2188cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */ 2190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* skel_lex_destroy is for both reentrant and non-reentrant scanners. */ 2191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectint skel_lex_destroy (void) 2192cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Pop the buffer stack, destroying each element. */ 2195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project while(YY_CURRENT_BUFFER){ 2196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__delete_buffer(YY_CURRENT_BUFFER ); 2197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project YY_CURRENT_BUFFER_LVALUE = NULL; 2198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_pop_buffer_state(); 2199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 2200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Destroy the stack itself. */ 2202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_free((yy_buffer_stack) ); 2203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project (yy_buffer_stack) = NULL; 2204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 220505436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* Reset the globals. This is important in a non-reentrant scanner so the next time 220605436638acc7c010349a69c3395f1a57c642dc62Ying Wang * skel_lex() is called, initialization will occur. */ 220705436638acc7c010349a69c3395f1a57c642dc62Ying Wang yy_init_globals( ); 220805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 2209cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-reentrant */ 2210cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return 0; 2212cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2214cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2215cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* 2216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * Internal utility routines. 2217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2218cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2219cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef yytext_ptr 2220cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) 2221cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2222cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register int i; 222305436638acc7c010349a69c3395f1a57c642dc62Ying Wang for ( i = 0; i < n; ++i ) 2224cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project s1[i] = s2[i]; 2225cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 2227cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2228cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifdef YY_NEED_STRLEN 2229cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectstatic int yy_flex_strlen (yyconst char * s ) 2230cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2231cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project register int n; 223205436638acc7c010349a69c3395f1a57c642dc62Ying Wang for ( n = 0; s[n]; ++n ) 2233cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ; 2234cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2235cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return n; 2236cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2237cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#endif 2238cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2239cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *skel_alloc (yy_size_t size ) 2240cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2241cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return (void *) malloc( size ); 2242cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2243cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2244cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid *skel_realloc (void * ptr, yy_size_t size ) 2245cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2246cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* The cast to (char *) in the following accommodates both 2247cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * implementations that use char* generic pointers, and those 2248cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * that use void* generic pointers. It works with the latter 2249cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * because both ANSI C and C++ allow castless assignment from 2250cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * any pointer type to void*, and deal with argument conversions 2251cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project * as though doing an assignment. 2252cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project */ 2253cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return (void *) realloc( (char *) ptr, size ); 2254cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2255cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2256cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid skel_free (void * ptr ) 2257cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 2258cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project free( (char *) ptr ); /* see skel_realloc() for (char *) cast */ 2259cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2260cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2261cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %if-tables-serialization definitions */ 2262cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %define-yytables The name for this specific scanner's tables. */ 2263cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define YYTABLES_NAME "yytables" 2264cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %endif */ 2265cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2266cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* %ok-for-header */ 2267cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 226805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#line 150 "scan-skel.l" 2269cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2270cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2271cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2272cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*------------------------. 2273cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Scan a Bison skeleton. | 2274cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`------------------------*/ 2275cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2276cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid 2277cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectscan_skel (FILE *in) 2278cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 227905436638acc7c010349a69c3395f1a57c642dc62Ying Wang static bool initialized = false; 228005436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (!initialized) 228105436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 228205436638acc7c010349a69c3395f1a57c642dc62Ying Wang initialized = true; 228305436638acc7c010349a69c3395f1a57c642dc62Ying Wang obstack_init (&obstack_for_string); 228405436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 2285cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_in = in; 2286cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel__flex_debug = trace_flag & trace_skeleton; 2287cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project skel_lex (); 228805436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 228905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 229005436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid 229105436638acc7c010349a69c3395f1a57c642dc62Ying Wangskel_scanner_free (void) 229205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 229305436638acc7c010349a69c3395f1a57c642dc62Ying Wang obstack_free (&obstack_for_string, 0); 2294cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project /* Reclaim Flex's buffers. */ 229505436638acc7c010349a69c3395f1a57c642dc62Ying Wang skel_lex_destroy (); 229605436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 229705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 229805436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void 229905436638acc7c010349a69c3395f1a57c642dc62Ying Wangat_directive_perform (int at_directive_argc, 230005436638acc7c010349a69c3395f1a57c642dc62Ying Wang char *at_directive_argv[], 230105436638acc7c010349a69c3395f1a57c642dc62Ying Wang char **outnamep, int *out_linenop) 230205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 230305436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (0 == strcmp (at_directive_argv[0], "@basename")) 230405436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 230505436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (at_directive_argc > 2) 230605436638acc7c010349a69c3395f1a57c642dc62Ying Wang fail_for_at_directive_too_many_args (at_directive_argv[0]); 230705436638acc7c010349a69c3395f1a57c642dc62Ying Wang fputs (last_component (at_directive_argv[1]), skel_out); 230805436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 230905436638acc7c010349a69c3395f1a57c642dc62Ying Wang else if (0 == strcmp (at_directive_argv[0], "@warn") 231005436638acc7c010349a69c3395f1a57c642dc62Ying Wang || 0 == strcmp (at_directive_argv[0], "@complain") 231105436638acc7c010349a69c3395f1a57c642dc62Ying Wang || 0 == strcmp (at_directive_argv[0], "@fatal")) 231205436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 231305436638acc7c010349a69c3395f1a57c642dc62Ying Wang void (*func)(char const *, ...); 231405436638acc7c010349a69c3395f1a57c642dc62Ying Wang switch (at_directive_argv[0][1]) 231505436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 231605436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 'w': func = warn; break; 231705436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 'c': func = complain; break; 231805436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 'f': func = fatal; break; 231905436638acc7c010349a69c3395f1a57c642dc62Ying Wang default: aver (false); break; 232005436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 232105436638acc7c010349a69c3395f1a57c642dc62Ying Wang switch (at_directive_argc) 232205436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 232305436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 2: 232405436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (_(at_directive_argv[1])); 232505436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 232605436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 3: 232705436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (_(at_directive_argv[1]), at_directive_argv[2]); 232805436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 232905436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 4: 233005436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (_(at_directive_argv[1]), at_directive_argv[2], 233105436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[3]); 233205436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 233305436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 5: 233405436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (_(at_directive_argv[1]), at_directive_argv[2], 233505436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[3], at_directive_argv[4]); 233605436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 233705436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 6: 233805436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (_(at_directive_argv[1]), at_directive_argv[2], 233905436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[3], at_directive_argv[4], 234005436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[5]); 234105436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 234205436638acc7c010349a69c3395f1a57c642dc62Ying Wang default: 234305436638acc7c010349a69c3395f1a57c642dc62Ying Wang fail_for_at_directive_too_many_args (at_directive_argv[0]); 234405436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 234505436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 234605436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 234705436638acc7c010349a69c3395f1a57c642dc62Ying Wang else if (0 == strcmp (at_directive_argv[0], "@warn_at") 234805436638acc7c010349a69c3395f1a57c642dc62Ying Wang || 0 == strcmp (at_directive_argv[0], "@complain_at") 234905436638acc7c010349a69c3395f1a57c642dc62Ying Wang || 0 == strcmp (at_directive_argv[0], "@fatal_at")) 235005436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 235105436638acc7c010349a69c3395f1a57c642dc62Ying Wang void (*func)(location, char const *, ...); 235205436638acc7c010349a69c3395f1a57c642dc62Ying Wang location loc; 235305436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (at_directive_argc < 4) 235405436638acc7c010349a69c3395f1a57c642dc62Ying Wang fail_for_at_directive_too_few_args (at_directive_argv[0]); 235505436638acc7c010349a69c3395f1a57c642dc62Ying Wang switch (at_directive_argv[0][1]) 235605436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 235705436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 'w': func = warn_at; break; 235805436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 'c': func = complain_at; break; 235905436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 'f': func = fatal_at; break; 236005436638acc7c010349a69c3395f1a57c642dc62Ying Wang default: aver (false); break; 236105436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 236205436638acc7c010349a69c3395f1a57c642dc62Ying Wang boundary_set_from_string (&loc.start, at_directive_argv[1]); 236305436638acc7c010349a69c3395f1a57c642dc62Ying Wang boundary_set_from_string (&loc.end, at_directive_argv[2]); 236405436638acc7c010349a69c3395f1a57c642dc62Ying Wang switch (at_directive_argc) 236505436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 236605436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 4: 236705436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (loc, _(at_directive_argv[3])); 236805436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 236905436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 5: 237005436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (loc, _(at_directive_argv[3]), at_directive_argv[4]); 237105436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 237205436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 6: 237305436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (loc, _(at_directive_argv[3]), at_directive_argv[4], 237405436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[5]); 237505436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 237605436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 7: 237705436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (loc, _(at_directive_argv[3]), at_directive_argv[4], 237805436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[5], at_directive_argv[6]); 237905436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 238005436638acc7c010349a69c3395f1a57c642dc62Ying Wang case 8: 238105436638acc7c010349a69c3395f1a57c642dc62Ying Wang func (loc, _(at_directive_argv[3]), at_directive_argv[4], 238205436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[5], at_directive_argv[6], 238305436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_argv[7]); 238405436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 238505436638acc7c010349a69c3395f1a57c642dc62Ying Wang default: 238605436638acc7c010349a69c3395f1a57c642dc62Ying Wang fail_for_at_directive_too_many_args (at_directive_argv[0]); 238705436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 238805436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 238905436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 239005436638acc7c010349a69c3395f1a57c642dc62Ying Wang else if (0 == strcmp (at_directive_argv[0], "@output")) 239105436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 239205436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (at_directive_argc > 2) 239305436638acc7c010349a69c3395f1a57c642dc62Ying Wang fail_for_at_directive_too_many_args (at_directive_argv[0]); 239405436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (*outnamep) 239505436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 239605436638acc7c010349a69c3395f1a57c642dc62Ying Wang free (*outnamep); 239705436638acc7c010349a69c3395f1a57c642dc62Ying Wang xfclose (skel_out); 239805436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 239905436638acc7c010349a69c3395f1a57c642dc62Ying Wang *outnamep = xstrdup (at_directive_argv[1]); 240005436638acc7c010349a69c3395f1a57c642dc62Ying Wang output_file_name_check (outnamep); 240105436638acc7c010349a69c3395f1a57c642dc62Ying Wang skel_out = xfopen (*outnamep, "w"); 240205436638acc7c010349a69c3395f1a57c642dc62Ying Wang *out_linenop = 1; 240305436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 240405436638acc7c010349a69c3395f1a57c642dc62Ying Wang else 240505436638acc7c010349a69c3395f1a57c642dc62Ying Wang fail_for_invalid_at (at_directive_argv[0]); 240605436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 240705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 240805436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void 240905436638acc7c010349a69c3395f1a57c642dc62Ying Wangfail_for_at_directive_too_few_args (char const *at_directive_name) 241005436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 241105436638acc7c010349a69c3395f1a57c642dc62Ying Wang fatal (_("too few arguments for %s directive in skeleton"), 241205436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_name); 241305436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 241405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 241505436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void 241605436638acc7c010349a69c3395f1a57c642dc62Ying Wangfail_for_at_directive_too_many_args (char const *at_directive_name) 241705436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 241805436638acc7c010349a69c3395f1a57c642dc62Ying Wang fatal (_("too many arguments for %s directive in skeleton"), 241905436638acc7c010349a69c3395f1a57c642dc62Ying Wang at_directive_name); 242005436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 242105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 242205436638acc7c010349a69c3395f1a57c642dc62Ying Wangstatic void 242305436638acc7c010349a69c3395f1a57c642dc62Ying Wangfail_for_invalid_at (char const *at) 242405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 242505436638acc7c010349a69c3395f1a57c642dc62Ying Wang fatal ("invalid @ in skeleton: %s", at); 2426cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 2427cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2428