125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 3 "i386_lex.c"
325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define  YY_INT_ALIGNED short int
525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* A lexical scanner generated by flex */
725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_create_buffer i386__create_buffer
925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_delete_buffer i386__delete_buffer
1025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_flex_debug i386__flex_debug
1125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_init_buffer i386__init_buffer
1225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_flush_buffer i386__flush_buffer
1325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_load_buffer_state i386__load_buffer_state
1425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_switch_to_buffer i386__switch_to_buffer
1525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyin i386_in
1625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyleng i386_leng
1725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yylex i386_lex
1825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yylineno i386_lineno
1925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyout i386_out
2025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyrestart i386_restart
2125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yytext i386_text
2225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yywrap i386_wrap
2325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyalloc i386_alloc
2425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyrealloc i386_realloc
2525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyfree i386_free
2625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
2725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define FLEX_SCANNER
2825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_FLEX_MAJOR_VERSION 2
2925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_FLEX_MINOR_VERSION 5
3025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_FLEX_SUBMINOR_VERSION 35
3125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#if YY_FLEX_SUBMINOR_VERSION > 0
3225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define FLEX_BETA
3325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
3425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
3525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* First, we deal with  platform-specific or compiler-specific issues. */
3625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
3725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* begin standard C headers. */
3825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <stdio.h>
3925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <string.h>
4025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <errno.h>
4125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <stdlib.h>
4225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
4325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* end standard C headers. */
4425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
4525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* flex integer type definitions */
4625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
4725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef FLEXINT_H
4825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define FLEXINT_H
4925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
5025b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
5125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
5225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
5325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
5425b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
5525b3c049e70834cf33790a28643ab058b507b35cBen Cheng * if you want the limit (max/min) macros for int types.
5625b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
5725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef __STDC_LIMIT_MACROS
5825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define __STDC_LIMIT_MACROS 1
5925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
6025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
6125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <inttypes.h>
6225b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef int8_t flex_int8_t;
6325b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef uint8_t flex_uint8_t;
6425b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef int16_t flex_int16_t;
6525b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef uint16_t flex_uint16_t;
6625b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef int32_t flex_int32_t;
6725b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef uint32_t flex_uint32_t;
6825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else
6925b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef signed char flex_int8_t;
7025b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef short int flex_int16_t;
7125b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef int flex_int32_t;
7225b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef unsigned char flex_uint8_t;
7325b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef unsigned short int flex_uint16_t;
7425b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef unsigned int flex_uint32_t;
7525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif /* ! C99 */
7625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
7725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Limits of integral types. */
7825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef INT8_MIN
7925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define INT8_MIN               (-128)
8025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
8125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef INT16_MIN
8225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define INT16_MIN              (-32767-1)
8325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
8425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef INT32_MIN
8525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define INT32_MIN              (-2147483647-1)
8625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
8725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef INT8_MAX
8825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define INT8_MAX               (127)
8925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
9025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef INT16_MAX
9125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define INT16_MAX              (32767)
9225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
9325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef INT32_MAX
9425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define INT32_MAX              (2147483647)
9525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
9625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef UINT8_MAX
9725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define UINT8_MAX              (255U)
9825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
9925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef UINT16_MAX
10025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define UINT16_MAX             (65535U)
10125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
10225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef UINT32_MAX
10325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define UINT32_MAX             (4294967295U)
10425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
10525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
10625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif /* ! FLEXINT_H */
10725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
10825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef __cplusplus
10925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
11025b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* The "const" storage-class-modifier is valid. */
11125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_USE_CONST
11225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
11325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else	/* ! __cplusplus */
11425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
11525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* C99 requires __STDC__ to be defined as 1. */
11625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#if defined (__STDC__)
11725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
11825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_USE_CONST
11925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
12025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif	/* defined (__STDC__) */
12125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif	/* ! __cplusplus */
12225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
12325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef YY_USE_CONST
12425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyconst const
12525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else
12625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyconst
12725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
12825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
12925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Returned upon end-of-file. */
13025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_NULL 0
13125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
13225b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Promotes a possibly negative, possibly signed char to an unsigned
13325b3c049e70834cf33790a28643ab058b507b35cBen Cheng * integer for use as an array index.  If the signed char is negative,
13425b3c049e70834cf33790a28643ab058b507b35cBen Cheng * we want to instead treat it as an 8-bit unsigned char, hence the
13525b3c049e70834cf33790a28643ab058b507b35cBen Cheng * double cast.
13625b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
13725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
13825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
13925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Enter a start condition.  This macro really ought to take a parameter,
14025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * but we do it the disgusting crufty way forced on us by the ()-less
14125b3c049e70834cf33790a28643ab058b507b35cBen Cheng * definition of BEGIN.
14225b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
14325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define BEGIN (yy_start) = 1 + 2 *
14425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
14525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Translate the current start state into a value that can be later handed
14625b3c049e70834cf33790a28643ab058b507b35cBen Cheng * to BEGIN to return to the state.  The YYSTATE alias is for lex
14725b3c049e70834cf33790a28643ab058b507b35cBen Cheng * compatibility.
14825b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
14925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_START (((yy_start) - 1) / 2)
15025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YYSTATE YY_START
15125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
15225b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Action number for EOF rule of a given start state. */
15325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
15425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
15525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Special action meaning "start processing a new file". */
15625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_NEW_FILE i386_restart(i386_in  )
15725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
15825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_END_OF_BUFFER_CHAR 0
15925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
16025b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Size of default input buffer. */
16125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_BUF_SIZE
16225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_BUF_SIZE 16384
16325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
16425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
16525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* The state buf must be large enough to hold one state per character in the main buffer.
16625b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
16725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
16825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
16925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_TYPEDEF_YY_BUFFER_STATE
17025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_TYPEDEF_YY_BUFFER_STATE
17125b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef struct yy_buffer_state *YY_BUFFER_STATE;
17225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
17325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
17425b3c049e70834cf33790a28643ab058b507b35cBen Chengextern int i386_leng;
17525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
17625b3c049e70834cf33790a28643ab058b507b35cBen Chengextern FILE *i386_in, *i386_out;
17725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
17825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define EOB_ACT_CONTINUE_SCAN 0
17925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define EOB_ACT_END_OF_FILE 1
18025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define EOB_ACT_LAST_MATCH 2
18125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
18225b3c049e70834cf33790a28643ab058b507b35cBen Cheng    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
18325b3c049e70834cf33790a28643ab058b507b35cBen Cheng     *       access to the local variable yy_act. Since yyless() is a macro, it would break
18425b3c049e70834cf33790a28643ab058b507b35cBen Cheng     *       existing scanners that call yyless() from OUTSIDE i386_lex.
18525b3c049e70834cf33790a28643ab058b507b35cBen Cheng     *       One obvious solution it to make yy_act a global. I tried that, and saw
18625b3c049e70834cf33790a28643ab058b507b35cBen Cheng     *       a 5% performance hit in a non-i386_lineno scanner, because yy_act is
18725b3c049e70834cf33790a28643ab058b507b35cBen Cheng     *       normally declared as a register variable-- so it is not worth it.
18825b3c049e70834cf33790a28643ab058b507b35cBen Cheng     */
18925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    #define  YY_LESS_LINENO(n) \
19025b3c049e70834cf33790a28643ab058b507b35cBen Cheng            do { \
19125b3c049e70834cf33790a28643ab058b507b35cBen Cheng                int yyl;\
19225b3c049e70834cf33790a28643ab058b507b35cBen Cheng                for ( yyl = n; yyl < i386_leng; ++yyl )\
19325b3c049e70834cf33790a28643ab058b507b35cBen Cheng                    if ( i386_text[yyl] == '\n' )\
19425b3c049e70834cf33790a28643ab058b507b35cBen Cheng                        --i386_lineno;\
19525b3c049e70834cf33790a28643ab058b507b35cBen Cheng            }while(0)
19625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
19725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Return all but the first "n" matched characters back to the input stream. */
19825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyless(n) \
19925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	do \
20025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{ \
20125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Undo effects of setting up i386_text. */ \
20225b3c049e70834cf33790a28643ab058b507b35cBen Cheng        int yyless_macro_arg = (n); \
20325b3c049e70834cf33790a28643ab058b507b35cBen Cheng        YY_LESS_LINENO(yyless_macro_arg);\
20425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		*yy_cp = (yy_hold_char); \
20525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_RESTORE_YY_MORE_OFFSET \
20625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
20725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_DO_BEFORE_ACTION; /* set up i386_text again */ \
20825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		} \
20925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	while ( 0 )
21025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
21125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define unput(c) yyunput( c, (yytext_ptr)  )
21225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
21325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_TYPEDEF_YY_SIZE_T
21425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_TYPEDEF_YY_SIZE_T
21525b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef size_t yy_size_t;
21625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
21725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
21825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_STRUCT_YY_BUFFER_STATE
21925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_STRUCT_YY_BUFFER_STATE
22025b3c049e70834cf33790a28643ab058b507b35cBen Chengstruct yy_buffer_state
22125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	{
22225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	FILE *yy_input_file;
22325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
22425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	char *yy_ch_buf;		/* input buffer */
22525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	char *yy_buf_pos;		/* current position in input buffer */
22625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
22725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Size of input buffer in bytes, not including room for EOB
22825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * characters.
22925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
23025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	yy_size_t yy_buf_size;
23125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
23225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Number of characters read into yy_ch_buf, not including EOB
23325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * characters.
23425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
23525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int yy_n_chars;
23625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
23725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Whether we "own" the buffer - i.e., we know we created it,
23825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * and can realloc() it to grow it, and should free() it to
23925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * delete it.
24025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
24125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int yy_is_our_buffer;
24225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
24325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Whether this is an "interactive" input source; if so, and
24425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * if we're using stdio for input, then we want to use getc()
24525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * instead of fread(), to make sure we stop fetching input after
24625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * each newline.
24725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
24825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int yy_is_interactive;
24925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
25025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Whether we're considered to be at the beginning of a line.
25125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * If so, '^' rules will be active on the next match, otherwise
25225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * not.
25325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
25425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int yy_at_bol;
25525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
25625b3c049e70834cf33790a28643ab058b507b35cBen Cheng    int yy_bs_lineno; /**< The line count. */
25725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    int yy_bs_column; /**< The column count. */
25825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
25925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Whether to try to fill the input buffer when we reach the
26025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * end of it.
26125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
26225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int yy_fill_buffer;
26325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
26425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int yy_buffer_status;
26525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
26625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_BUFFER_NEW 0
26725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_BUFFER_NORMAL 1
26825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* When an EOF's been seen but there's still some text to process
26925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
27025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * shouldn't try reading from the input source any more.  We might
27125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * still have a bunch of tokens to match, though, because of
27225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * possible backing-up.
27325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 *
27425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * When we actually see the EOF, we change the status to "new"
27525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * (via i386_restart()), so that the user can continue scanning by
27625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * just pointing i386_in at a new input file.
27725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
27825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_BUFFER_EOF_PENDING 2
27925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
28025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	};
28125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif /* !YY_STRUCT_YY_BUFFER_STATE */
28225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
28325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Stack of input buffers. */
28425b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
28525b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
28625b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
28725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
28825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* We provide macros for accessing buffer states in case in the
28925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * future we want to put the buffer states in a more general
29025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * "scanner state".
29125b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
29225b3c049e70834cf33790a28643ab058b507b35cBen Cheng * Returns the top of the stack, or NULL.
29325b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
29425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
29525b3c049e70834cf33790a28643ab058b507b35cBen Cheng                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
29625b3c049e70834cf33790a28643ab058b507b35cBen Cheng                          : NULL)
29725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
29825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Same as previous macro, but useful when we know that the buffer stack is not
29925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * NULL or when we need an lvalue. For internal use only.
30025b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
30125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
30225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
30325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* yy_hold_char holds the character lost when i386_text is formed. */
30425b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic char yy_hold_char;
30525b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_n_chars;		/* number of characters read into yy_ch_buf */
30625b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_leng;
30725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
30825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Points to current character in buffer. */
30925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic char *yy_c_buf_p = (char *) 0;
31025b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_init = 0;		/* whether we need to initialize */
31125b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_start = 0;	/* start state number */
31225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
31325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Flag which is used to allow i386_wrap()'s to do buffer switches
31425b3c049e70834cf33790a28643ab058b507b35cBen Cheng * instead of setting up a fresh i386_in.  A bit of a hack ...
31525b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
31625b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_did_buffer_switch_on_eof;
31725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
31825b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_restart (FILE *input_file  );
31925b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
32025b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_BUFFER_STATE i386__create_buffer (FILE *file,int size  );
32125b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386__delete_buffer (YY_BUFFER_STATE b  );
32225b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386__flush_buffer (YY_BUFFER_STATE b  );
32325b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_push_buffer_state (YY_BUFFER_STATE new_buffer  );
32425b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_pop_buffer_state (void );
32525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
32625b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void i386_ensure_buffer_stack (void );
32725b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void i386__load_buffer_state (void );
32825b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void i386__init_buffer (YY_BUFFER_STATE b,FILE *file  );
32925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
33025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_FLUSH_BUFFER i386__flush_buffer(YY_CURRENT_BUFFER )
33125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
33225b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_BUFFER_STATE i386__scan_buffer (char *base,yy_size_t size  );
33325b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_BUFFER_STATE i386__scan_string (yyconst char *yy_str  );
33425b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_BUFFER_STATE i386__scan_bytes (yyconst char *bytes,int len  );
33525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
33625b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid *i386_alloc (yy_size_t  );
33725b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid *i386_realloc (void *,yy_size_t  );
33825b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_free (void *  );
33925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
34025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_new_buffer i386__create_buffer
34125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
34225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_set_interactive(is_interactive) \
34325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	{ \
34425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! YY_CURRENT_BUFFER ){ \
34525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        i386_ensure_buffer_stack (); \
34625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE =    \
34725b3c049e70834cf33790a28643ab058b507b35cBen Cheng            i386__create_buffer(i386_in,YY_BUF_SIZE ); \
34825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	} \
34925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
35025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
35125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
35225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yy_set_bol(at_bol) \
35325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	{ \
35425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! YY_CURRENT_BUFFER ){\
35525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        i386_ensure_buffer_stack (); \
35625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE =    \
35725b3c049e70834cf33790a28643ab058b507b35cBen Cheng            i386__create_buffer(i386_in,YY_BUF_SIZE ); \
35825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	} \
35925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
36025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
36125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
36225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
36325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
36425b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Begin user sect3 */
36525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
36625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define i386_wrap(n) 1
36725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_SKIP_YYWRAP
36825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
36925b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef unsigned char YY_CHAR;
37025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
37125b3c049e70834cf33790a28643ab058b507b35cBen ChengFILE *i386_in = (FILE *) 0, *i386_out = (FILE *) 0;
37225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
37325b3c049e70834cf33790a28643ab058b507b35cBen Chengtypedef int yy_state_type;
37425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
37525b3c049e70834cf33790a28643ab058b507b35cBen Chengextern int i386_lineno;
37625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
37725b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_lineno = 1;
37825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
37925b3c049e70834cf33790a28643ab058b507b35cBen Chengextern char *i386_text;
38025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yytext_ptr i386_text
38125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
38225b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yy_state_type yy_get_previous_state (void );
38325b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
38425b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_get_next_buffer (void );
38525b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void yy_fatal_error (yyconst char msg[]  );
38625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
38725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Done after the current pattern has been matched and before the
38825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * corresponding action - sets up i386_text.
38925b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
39025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_DO_BEFORE_ACTION \
39125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yytext_ptr) = yy_bp; \
39225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386_leng = (size_t) (yy_cp - yy_bp); \
39325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_hold_char) = *yy_cp; \
39425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	*yy_cp = '\0'; \
39525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_c_buf_p) = yy_cp;
39625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
39725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_NUM_RULES 21
39825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_END_OF_BUFFER 22
39925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* This struct is not used in this scanner,
40025b3c049e70834cf33790a28643ab058b507b35cBen Cheng   but its presence is necessary. */
40125b3c049e70834cf33790a28643ab058b507b35cBen Chengstruct yy_trans_info
40225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	{
40325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	flex_int32_t yy_verify;
40425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	flex_int32_t yy_nxt;
40525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	};
40625b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int16_t yy_accept[62] =
40725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
40825b3c049e70834cf33790a28643ab058b507b35cBen Cheng        0,    0,    0,    0,   22,   20,   17,   15,   20,    5,
40925b3c049e70834cf33790a28643ab058b507b35cBen Cheng       20,   14,   16,   19,   18,   15,   12,    7,    8,   13,
41025b3c049e70834cf33790a28643ab058b507b35cBen Cheng       11,   11,   19,   14,   16,   17,    6,    0,    0,    0,
41125b3c049e70834cf33790a28643ab058b507b35cBen Cheng        5,    0,    9,   18,   11,   11,    0,    0,    0,    0,
41225b3c049e70834cf33790a28643ab058b507b35cBen Cheng       11,    0,    0,    0,    0,   11,    1,    0,    0,    0,
41325b3c049e70834cf33790a28643ab058b507b35cBen Cheng       11,    0,    0,    0,   11,    2,    3,    0,   10,    4,
41425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        0
41525b3c049e70834cf33790a28643ab058b507b35cBen Cheng    } ;
41625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
41725b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int32_t yy_ec[256] =
41825b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
41925b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
42025b3c049e70834cf33790a28643ab058b507b35cBen Cheng        2,    2,    2,    1,    1,    1,    1,    1,    1,    1,
42125b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
42225b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    2,    1,    1,    4,    1,    5,    1,    1,    1,
42325b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    6,    1,    1,    7,    8,    9,   10,
42425b3c049e70834cf33790a28643ab058b507b35cBen Cheng       10,   10,   10,   10,   10,   10,   10,   11,    1,    1,
42525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,   12,   13,   13,   14,   13,   13,
42625b3c049e70834cf33790a28643ab058b507b35cBen Cheng       13,   13,   15,   13,   13,   16,   13,   17,   13,   13,
42725b3c049e70834cf33790a28643ab058b507b35cBen Cheng       13,   13,   13,   13,   13,   18,   13,   13,   13,   13,
42825b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,   13,    1,   19,   13,   13,   13,
42925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
43025b3c049e70834cf33790a28643ab058b507b35cBen Cheng       20,   21,   13,   13,   22,   13,   23,   13,   24,   25,
43125b3c049e70834cf33790a28643ab058b507b35cBen Cheng       26,   27,   13,   28,   29,   13,   30,   13,   13,   31,
43225b3c049e70834cf33790a28643ab058b507b35cBen Cheng       32,   13,   33,    1,   34,    1,    1,    1,    1,    1,
43325b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
43425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
43525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
43625b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
43725b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
43825b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
43925b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
44025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
44125b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
44225b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
44325b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
44425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
44525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
44625b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1
44725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    } ;
44825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
44925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int32_t yy_meta[35] =
45025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
45125b3c049e70834cf33790a28643ab058b507b35cBen Cheng        1,    1,    1,    1,    1,    1,    2,    2,    2,    2,
45225b3c049e70834cf33790a28643ab058b507b35cBen Cheng        3,    2,    2,    2,    2,    2,    2,    2,    2,    2,
45325b3c049e70834cf33790a28643ab058b507b35cBen Cheng        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
45425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        2,    2,    1,    3
45525b3c049e70834cf33790a28643ab058b507b35cBen Cheng    } ;
45625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
45725b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int16_t yy_base[65] =
45825b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
45925b3c049e70834cf33790a28643ab058b507b35cBen Cheng        0,   32,   65,    3,  113,  114,    9,   11,   19,    7,
46025b3c049e70834cf33790a28643ab058b507b35cBen Cheng       78,   16,  114,  114,   18,   20,  114,  114,  114,  114,
46125b3c049e70834cf33790a28643ab058b507b35cBen Cheng        0,   94,   76,   23,  114,   25,  114,   90,   80,    0,
46225b3c049e70834cf33790a28643ab058b507b35cBen Cheng       41,   73,  114,   36,    0,   88,   76,   44,   42,   37,
46325b3c049e70834cf33790a28643ab058b507b35cBen Cheng       49,   37,   38,   37,   31,   40,  114,   33,   32,   28,
46425b3c049e70834cf33790a28643ab058b507b35cBen Cheng       37,   16,   14,   12,   17,  114,  114,    5,    0,  114,
46525b3c049e70834cf33790a28643ab058b507b35cBen Cheng      114,   99,  101,    2
46625b3c049e70834cf33790a28643ab058b507b35cBen Cheng    } ;
46725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
46825b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int16_t yy_def[65] =
46925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
47025b3c049e70834cf33790a28643ab058b507b35cBen Cheng       62,   62,   61,    3,   61,   61,   61,   61,   61,   61,
47125b3c049e70834cf33790a28643ab058b507b35cBen Cheng       63,   61,   61,   61,   61,   61,   61,   61,   61,   61,
47225b3c049e70834cf33790a28643ab058b507b35cBen Cheng       64,   64,   63,   61,   61,   61,   61,   61,   61,   61,
47325b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,   63,   61,   61,   64,   64,   61,   61,   61,   61,
47425b3c049e70834cf33790a28643ab058b507b35cBen Cheng       64,   61,   61,   61,   61,   64,   61,   61,   61,   61,
47525b3c049e70834cf33790a28643ab058b507b35cBen Cheng       64,   61,   61,   61,   64,   61,   61,   61,   64,   61,
47625b3c049e70834cf33790a28643ab058b507b35cBen Cheng        0,   61,   61,   61
47725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    } ;
47825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
47925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int16_t yy_nxt[149] =
48025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
48125b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,    7,    8,   35,    9,   24,   25,   10,   10,   10,
48225b3c049e70834cf33790a28643ab058b507b35cBen Cheng       26,   26,   26,   26,   31,   31,   31,   26,   26,   34,
48325b3c049e70834cf33790a28643ab058b507b35cBen Cheng       34,   34,   34,   27,   34,   34,   26,   26,   60,   39,
48425b3c049e70834cf33790a28643ab058b507b35cBen Cheng       59,   40,   11,    7,   12,   13,    9,   34,   34,   10,
48525b3c049e70834cf33790a28643ab058b507b35cBen Cheng       10,   10,   28,   58,   57,   29,   56,   30,   31,   31,
48625b3c049e70834cf33790a28643ab058b507b35cBen Cheng       31,   55,   54,   53,   52,   51,   50,   49,   48,   47,
48725b3c049e70834cf33790a28643ab058b507b35cBen Cheng       46,   45,   44,   43,   11,   14,   15,   16,   14,   14,
48825b3c049e70834cf33790a28643ab058b507b35cBen Cheng       17,   14,   18,   19,   14,   20,   21,   21,   21,   22,
48925b3c049e70834cf33790a28643ab058b507b35cBen Cheng       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
49025b3c049e70834cf33790a28643ab058b507b35cBen Cheng       21,   21,   21,   21,   21,   21,   21,   23,   14,    6,
49125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
49225b3c049e70834cf33790a28643ab058b507b35cBen Cheng        6,    6,   32,   32,   42,   41,   33,   38,   37,   33,
49325b3c049e70834cf33790a28643ab058b507b35cBen Cheng       36,   33,   61,    5,   61,   61,   61,   61,   61,   61,
49425b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
49525b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
49625b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,   61,   61,   61,   61,   61,   61,   61
49725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    } ;
49825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
49925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int16_t yy_chk[149] =
50025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
50125b3c049e70834cf33790a28643ab058b507b35cBen Cheng        0,    1,    1,   64,    1,    4,    4,    1,    1,    1,
50225b3c049e70834cf33790a28643ab058b507b35cBen Cheng        7,    7,    8,    8,   10,   10,   10,   12,   12,   15,
50325b3c049e70834cf33790a28643ab058b507b35cBen Cheng       15,   16,   16,    9,   24,   24,   26,   26,   58,   30,
50425b3c049e70834cf33790a28643ab058b507b35cBen Cheng       55,   30,    1,    2,    2,    2,    2,   34,   34,    2,
50525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        2,    2,    9,   54,   53,    9,   52,    9,   31,   31,
50625b3c049e70834cf33790a28643ab058b507b35cBen Cheng       31,   51,   50,   49,   48,   46,   45,   44,   43,   42,
50725b3c049e70834cf33790a28643ab058b507b35cBen Cheng       41,   40,   39,   38,    2,    3,    3,    3,    3,    3,
50825b3c049e70834cf33790a28643ab058b507b35cBen Cheng        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
50925b3c049e70834cf33790a28643ab058b507b35cBen Cheng        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
51025b3c049e70834cf33790a28643ab058b507b35cBen Cheng        3,    3,    3,    3,    3,    3,    3,    3,    3,   62,
51125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
51225b3c049e70834cf33790a28643ab058b507b35cBen Cheng       62,   62,   63,   63,   37,   36,   32,   29,   28,   23,
51325b3c049e70834cf33790a28643ab058b507b35cBen Cheng       22,   11,    5,   61,   61,   61,   61,   61,   61,   61,
51425b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
51525b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
51625b3c049e70834cf33790a28643ab058b507b35cBen Cheng       61,   61,   61,   61,   61,   61,   61,   61
51725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    } ;
51825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
51925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Table of booleans, true if rule could match eol. */
52025b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yyconst flex_int32_t yy_rule_can_match_eol[22] =
52125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {   0,
52225b3c049e70834cf33790a28643ab058b507b35cBen Cheng0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0,
52325b3c049e70834cf33790a28643ab058b507b35cBen Cheng    0, 0,     };
52425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
52525b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic yy_state_type yy_last_accepting_state;
52625b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic char *yy_last_accepting_cpos;
52725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
52825b3c049e70834cf33790a28643ab058b507b35cBen Chengextern int i386__flex_debug;
52925b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386__flex_debug = 0;
53025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
53125b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* The intent behind this definition is that it'll catch
53225b3c049e70834cf33790a28643ab058b507b35cBen Cheng * any uses of REJECT which flex missed.
53325b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
53425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define REJECT reject_used_but_not_detected
53525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yymore() yymore_used_but_not_detected
53625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_MORE_ADJ 0
53725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_RESTORE_YY_MORE_OFFSET
53825b3c049e70834cf33790a28643ab058b507b35cBen Chengchar *i386_text;
53925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 1 "i386_lex.l"
54025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 2 "i386_lex.l"
54125b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Copyright (C) 2004, 2005, 2007, 2008 Red Hat, Inc.
54225b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Written by Ulrich Drepper <drepper@redhat.com>, 2004.
54325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
54425b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Red Hat elfutils is free software; you can redistribute it and/or modify
54525b3c049e70834cf33790a28643ab058b507b35cBen Cheng   it under the terms of the GNU General Public License as published by the
54625b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Free Software Foundation; version 2 of the License.
54725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
54825b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Red Hat elfutils is distributed in the hope that it will be useful, but
54925b3c049e70834cf33790a28643ab058b507b35cBen Cheng   WITHOUT ANY WARRANTY; without even the implied warranty of
55025b3c049e70834cf33790a28643ab058b507b35cBen Cheng   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
55125b3c049e70834cf33790a28643ab058b507b35cBen Cheng   General Public License for more details.
55225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
55325b3c049e70834cf33790a28643ab058b507b35cBen Cheng   You should have received a copy of the GNU General Public License along
55425b3c049e70834cf33790a28643ab058b507b35cBen Cheng   with Red Hat elfutils; if not, write to the Free Software Foundation,
55525b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
55625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
55725b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Red Hat elfutils is an included package of the Open Invention Network.
55825b3c049e70834cf33790a28643ab058b507b35cBen Cheng   An included package of the Open Invention Network is a package for which
55925b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Open Invention Network licensees cross-license their patents.  No patent
56025b3c049e70834cf33790a28643ab058b507b35cBen Cheng   license is granted, either expressly or impliedly, by designation as an
56125b3c049e70834cf33790a28643ab058b507b35cBen Cheng   included package.  Should you wish to participate in the Open Invention
56225b3c049e70834cf33790a28643ab058b507b35cBen Cheng   Network licensing program, please visit www.openinventionnetwork.com
56325b3c049e70834cf33790a28643ab058b507b35cBen Cheng   <http://www.openinventionnetwork.com>.  */
56425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
56525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef HAVE_CONFIG_H
56625b3c049e70834cf33790a28643ab058b507b35cBen Cheng# include <config.h>
56725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
56825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
56925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <ctype.h>
57025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <error.h>
57125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <libintl.h>
57225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
57325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <system.h>
57425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include "i386_parse.h"
57525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
57625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
57725b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void eat_to_eol (void);
57825b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void invalid_char (int ch);
57925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
58025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 581 "i386_lex.c"
58125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
58225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define INITIAL 0
58325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define MAIN 1
58425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
58525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_NO_UNISTD_H
58625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Special case for "unistd.h", since it is non-ANSI. We include it way
58725b3c049e70834cf33790a28643ab058b507b35cBen Cheng * down here because we want the user's section 1 to have been scanned first.
58825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * The user has a chance to override it with an option.
58925b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
59025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#include <unistd.h>
59125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
59225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
59325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_EXTRA_TYPE
59425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_EXTRA_TYPE void *
59525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
59625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
59725b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_init_globals (void );
59825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
59925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Accessor methods to globals.
60025b3c049e70834cf33790a28643ab058b507b35cBen Cheng   These are made visible to non-reentrant scanners for convenience. */
60125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
60225b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_lex_destroy (void );
60325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
60425b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_get_debug (void );
60525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
60625b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_debug (int debug_flag  );
60725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
60825b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_EXTRA_TYPE i386_get_extra (void );
60925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
61025b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_extra (YY_EXTRA_TYPE user_defined  );
61125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
61225b3c049e70834cf33790a28643ab058b507b35cBen ChengFILE *i386_get_in (void );
61325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
61425b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_in  (FILE * in_str  );
61525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
61625b3c049e70834cf33790a28643ab058b507b35cBen ChengFILE *i386_get_out (void );
61725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
61825b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_out  (FILE * out_str  );
61925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
62025b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_get_leng (void );
62125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
62225b3c049e70834cf33790a28643ab058b507b35cBen Chengchar *i386_get_text (void );
62325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
62425b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_get_lineno (void );
62525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
62625b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_lineno (int line_number  );
62725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
62825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Macros after this point can all be overridden by user definitions in
62925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * section 1.
63025b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
63125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
63225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_SKIP_YYWRAP
63325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef __cplusplus
63425b3c049e70834cf33790a28643ab058b507b35cBen Chengextern "C" int i386_wrap (void );
63525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else
63625b3c049e70834cf33790a28643ab058b507b35cBen Chengextern int i386_wrap (void );
63725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
63825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
63925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
64025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    static void yyunput (int c,char *buf_ptr  );
64125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
64225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef yytext_ptr
64325b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void yy_flex_strncpy (char *,yyconst char *,int );
64425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
64525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
64625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef YY_NEED_STRLEN
64725b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_flex_strlen (yyconst char * );
64825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
64925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
65025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_NO_INPUT
65125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
65225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef __cplusplus
65325b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yyinput (void );
65425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else
65525b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int input (void );
65625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
65725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
65825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
65925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
66025b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Amount of stuff to slurp up with each read. */
66125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_READ_BUF_SIZE
66225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_READ_BUF_SIZE 8192
66325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
66425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
66525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Copy whatever the last rule matched to the standard output. */
66625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef ECHO
66725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* This used to be an fputs(), but since the string might contain NUL's,
66825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * we now use fwrite().
66925b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
67025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define ECHO do { if (fwrite( i386_text, i386_leng, 1, i386_out )) {} } while (0)
67125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
67225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
67325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
67425b3c049e70834cf33790a28643ab058b507b35cBen Cheng * is returned in "result".
67525b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
67625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_INPUT
67725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_INPUT(buf,result,max_size) \
67825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
67925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{ \
68025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		int c = '*'; \
68125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		unsigned n; \
68225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		for ( n = 0; n < max_size && \
68325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			     (c = getc( i386_in )) != EOF && c != '\n'; ++n ) \
68425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			buf[n] = (char) c; \
68525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( c == '\n' ) \
68625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			buf[n++] = (char) c; \
68725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( c == EOF && ferror( i386_in ) ) \
68825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_FATAL_ERROR( "input in flex scanner failed" ); \
68925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		result = n; \
69025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		} \
69125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	else \
69225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{ \
69325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		errno=0; \
69425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		while ( (result = fread(buf, 1, max_size, i386_in))==0 && ferror(i386_in)) \
69525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{ \
69625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			if( errno != EINTR) \
69725b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{ \
69825b3c049e70834cf33790a28643ab058b507b35cBen Cheng				YY_FATAL_ERROR( "input in flex scanner failed" ); \
69925b3c049e70834cf33790a28643ab058b507b35cBen Cheng				break; \
70025b3c049e70834cf33790a28643ab058b507b35cBen Cheng				} \
70125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			errno=0; \
70225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			clearerr(i386_in); \
70325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			} \
70425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}\
70525b3c049e70834cf33790a28643ab058b507b35cBen Cheng\
70625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
70725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
70825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
70925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* No semi-colon after return; correct usage is to write "yyterminate();" -
71025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * we don't want an extra ';' after the "return" because that will cause
71125b3c049e70834cf33790a28643ab058b507b35cBen Cheng * some compilers to complain about unreachable statements.
71225b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
71325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef yyterminate
71425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyterminate() return YY_NULL
71525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
71625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
71725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Number of entries by which start-condition stack grows. */
71825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_START_STACK_INCR
71925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_START_STACK_INCR 25
72025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
72125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
72225b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Report a fatal error. */
72325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_FATAL_ERROR
72425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
72525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
72625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
72725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* end tables serialization structures and prototypes */
72825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
72925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Default declaration of generated scanner - a define so the user can
73025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * easily add parameters.
73125b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
73225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_DECL
73325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_DECL_IS_OURS 1
73425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
73525b3c049e70834cf33790a28643ab058b507b35cBen Chengextern int i386_lex (void);
73625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
73725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_DECL int i386_lex (void)
73825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif /* !YY_DECL */
73925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
74025b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Code executed at the beginning of each rule, after i386_text and i386_leng
74125b3c049e70834cf33790a28643ab058b507b35cBen Cheng * have been set up.
74225b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
74325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_USER_ACTION
74425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_USER_ACTION
74525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
74625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
74725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Code executed at the end of each rule. */
74825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_BREAK
74925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_BREAK break;
75025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
75125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
75225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_RULE_SETUP \
75325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( i386_leng > 0 ) \
75425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
75525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				(i386_text[i386_leng - 1] == '\n'); \
75625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_USER_ACTION
75725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
75825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** The main scanner function which does all the work.
75925b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
76025b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_DECL
76125b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
76225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register yy_state_type yy_current_state;
76325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register char *yy_cp, *yy_bp;
76425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register int yy_act;
76525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
76625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 54 "i386_lex.l"
76725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
76825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
76925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 770 "i386_lex.c"
77025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
77125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( !(yy_init) )
77225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
77325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_init) = 1;
77425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
77525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef YY_USER_INIT
77625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_USER_INIT;
77725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
77825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
77925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( ! (yy_start) )
78025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_start) = 1;	/* first start state */
78125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
78225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( ! i386_in )
78325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			i386_in = stdin;
78425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
78525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( ! i386_out )
78625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			i386_out = stdout;
78725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
78825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( ! YY_CURRENT_BUFFER ) {
78925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			i386_ensure_buffer_stack ();
79025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_CURRENT_BUFFER_LVALUE =
79125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				i386__create_buffer(i386_in,YY_BUF_SIZE );
79225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
79325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
79425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386__load_buffer_state( );
79525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
79625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
79725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	while ( 1 )		/* loops until end-of-file is reached */
79825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
79925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_cp = (yy_c_buf_p);
80025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
80125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Support of i386_text. */
80225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		*yy_cp = (yy_hold_char);
80325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
80425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* yy_bp points to the position in yy_ch_buf of the start of
80525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * the current run.
80625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 */
80725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_bp = yy_cp;
80825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
80925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_current_state = (yy_start);
81025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_current_state += YY_AT_BOL();
81125b3c049e70834cf33790a28643ab058b507b35cBen Chengyy_match:
81225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		do
81325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
81425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
81525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			if ( yy_accept[yy_current_state] )
81625b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{
81725b3c049e70834cf33790a28643ab058b507b35cBen Cheng				(yy_last_accepting_state) = yy_current_state;
81825b3c049e70834cf33790a28643ab058b507b35cBen Cheng				(yy_last_accepting_cpos) = yy_cp;
81925b3c049e70834cf33790a28643ab058b507b35cBen Cheng				}
82025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
82125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{
82225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_current_state = (int) yy_def[yy_current_state];
82325b3c049e70834cf33790a28643ab058b507b35cBen Cheng				if ( yy_current_state >= 62 )
82425b3c049e70834cf33790a28643ab058b507b35cBen Cheng					yy_c = yy_meta[(unsigned int) yy_c];
82525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				}
82625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
82725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			++yy_cp;
82825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
82925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		while ( yy_current_state != 61 );
83025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_cp = (yy_last_accepting_cpos);
83125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_current_state = (yy_last_accepting_state);
83225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
83325b3c049e70834cf33790a28643ab058b507b35cBen Chengyy_find_action:
83425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_act = yy_accept[yy_current_state];
83525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
83625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_DO_BEFORE_ACTION;
83725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
83825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
83925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
84025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			int yyl;
84125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			for ( yyl = 0; yyl < i386_leng; ++yyl )
84225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				if ( i386_text[yyl] == '\n' )
84325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
84425b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_lineno++;
84525b3c049e70834cf33790a28643ab058b507b35cBen Cheng;
84625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
84725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
84825b3c049e70834cf33790a28643ab058b507b35cBen Chengdo_action:	/* This label is used only to access EOF actions. */
84925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
85025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		switch ( yy_act )
85125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	{ /* beginning of action switch */
85225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			case 0: /* must back up */
85325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			/* undo the effects of YY_DO_BEFORE_ACTION */
85425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			*yy_cp = (yy_hold_char);
85525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_cp = (yy_last_accepting_cpos);
85625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_current_state = (yy_last_accepting_state);
85725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			goto yy_find_action;
85825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
85925b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 1:
86025b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
86125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 56 "i386_lex.l"
86225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return kMASK; }
86325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
86425b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 2:
86525b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
86625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 58 "i386_lex.l"
86725b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return kPREFIX; }
86825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
86925b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 3:
87025b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
87125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 59 "i386_lex.l"
87225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return kSUFFIX; }
87325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
87425b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 4:
87525b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
87625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 61 "i386_lex.l"
87725b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return kSYNONYM; }
87825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
87925b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 5:
88025b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
88125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 63 "i386_lex.l"
88225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ i386_lval.num = strtoul (i386_text, NULL, 10);
88325b3c049e70834cf33790a28643ab058b507b35cBen Cheng				  return kNUMBER; }
88425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
88525b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 6:
88625b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
88725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 66 "i386_lex.l"
88825b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ BEGIN (MAIN); return kPERCPERC; }
88925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
89025b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 7:
89125b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
89225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 69 "i386_lex.l"
89325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return '0'; }
89425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
89525b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 8:
89625b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
89725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 70 "i386_lex.l"
89825b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return '1'; }
89925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
90025b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 9:
90125b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
90225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 72 "i386_lex.l"
90325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ i386_lval.str = xstrndup (i386_text + 1,
90425b3c049e70834cf33790a28643ab058b507b35cBen Cheng							    i386_leng - 2);
90525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				  return kBITFIELD; }
90625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
90725b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 10:
90825b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
90925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 76 "i386_lex.l"
91025b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ i386_lval.str = (void *) -1l;
91125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				  return kID; }
91225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
91325b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 11:
91425b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
91525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 79 "i386_lex.l"
91625b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ i386_lval.str = xstrndup (i386_text, i386_leng);
91725b3c049e70834cf33790a28643ab058b507b35cBen Cheng				  return kID; }
91825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
91925b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 12:
92025b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
92125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 82 "i386_lex.l"
92225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return ','; }
92325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
92425b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 13:
92525b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
92625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 84 "i386_lex.l"
92725b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return ':'; }
92825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
92925b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 14:
93025b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* rule 14 can match eol */
93125b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
93225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 86 "i386_lex.l"
93325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ /* IGNORE */ }
93425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
93525b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 15:
93625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* rule 15 can match eol */
93725b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
93825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 88 "i386_lex.l"
93925b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return '\n'; }
94025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
94125b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 16:
94225b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
94325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 90 "i386_lex.l"
94425b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ eat_to_eol (); }
94525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
94625b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 17:
94725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* rule 17 can match eol */
94825b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
94925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 92 "i386_lex.l"
95025b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ /* IGNORE */ }
95125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
95225b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 18:
95325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* rule 18 can match eol */
95425b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
95525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 94 "i386_lex.l"
95625b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ return kSPACE; }
95725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
95825b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 19:
95925b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
96025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 96 "i386_lex.l"
96125b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ i386_lval.ch = *i386_text; return kCHAR; }
96225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
96325b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 20:
96425b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
96525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 98 "i386_lex.l"
96625b3c049e70834cf33790a28643ab058b507b35cBen Cheng{ invalid_char (*i386_text); }
96725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
96825b3c049e70834cf33790a28643ab058b507b35cBen Chengcase 21:
96925b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_RULE_SETUP
97025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 101 "i386_lex.l"
97125b3c049e70834cf33790a28643ab058b507b35cBen ChengECHO;
97225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BREAK
97325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 974 "i386_lex.c"
97425b3c049e70834cf33790a28643ab058b507b35cBen Chengcase YY_STATE_EOF(INITIAL):
97525b3c049e70834cf33790a28643ab058b507b35cBen Chengcase YY_STATE_EOF(MAIN):
97625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	yyterminate();
97725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
97825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	case YY_END_OF_BUFFER:
97925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
98025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Amount of text matched not including the EOB char. */
98125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
98225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
98325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Undo the effects of YY_DO_BEFORE_ACTION. */
98425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		*yy_cp = (yy_hold_char);
98525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_RESTORE_YY_MORE_OFFSET
98625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
98725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
98825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
98925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			/* We're scanning a new file or input source.  It's
99025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * possible that this happened because the user
99125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * just pointed i386_in at a new source and called
99225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * i386_lex().  If so, then we have to assure
99325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * consistency between YY_CURRENT_BUFFER and our
99425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * globals.  Here is the right place to do so, because
99525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * this is the first action (other than possibly a
99625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * back-up) that will match for the new input source.
99725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 */
99825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
99925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_CURRENT_BUFFER_LVALUE->yy_input_file = i386_in;
100025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
100125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
100225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
100325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Note that here we test for yy_c_buf_p "<=" to the position
100425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * of the first EOB in the buffer, since yy_c_buf_p will
100525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * already have been incremented past the NUL character
100625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * (since all states make transitions on EOB to the
100725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * end-of-buffer state).  Contrast this with the test
100825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * in input().
100925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 */
101025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
101125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{ /* This was really a NUL. */
101225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_state_type yy_next_state;
101325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
101425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
101525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
101625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_current_state = yy_get_previous_state(  );
101725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
101825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			/* Okay, we're now positioned to make the NUL
101925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * transition.  We couldn't have
102025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * yy_get_previous_state() go ahead and do it
102125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * for us because it doesn't know how to deal
102225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * with the possibility of jamming (and we don't
102325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * want to build jamming into it because then it
102425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * will run more slowly).
102525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 */
102625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
102725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_next_state = yy_try_NUL_trans( yy_current_state );
102825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
102925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
103025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
103125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			if ( yy_next_state )
103225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{
103325b3c049e70834cf33790a28643ab058b507b35cBen Cheng				/* Consume the NUL. */
103425b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_cp = ++(yy_c_buf_p);
103525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_current_state = yy_next_state;
103625b3c049e70834cf33790a28643ab058b507b35cBen Cheng				goto yy_match;
103725b3c049e70834cf33790a28643ab058b507b35cBen Cheng				}
103825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
103925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			else
104025b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{
104125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_cp = (yy_last_accepting_cpos);
104225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_current_state = (yy_last_accepting_state);
104325b3c049e70834cf33790a28643ab058b507b35cBen Cheng				goto yy_find_action;
104425b3c049e70834cf33790a28643ab058b507b35cBen Cheng				}
104525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
104625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
104725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		else switch ( yy_get_next_buffer(  ) )
104825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
104925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			case EOB_ACT_END_OF_FILE:
105025b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{
105125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				(yy_did_buffer_switch_on_eof) = 0;
105225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
105325b3c049e70834cf33790a28643ab058b507b35cBen Cheng				if ( i386_wrap( ) )
105425b3c049e70834cf33790a28643ab058b507b35cBen Cheng					{
105525b3c049e70834cf33790a28643ab058b507b35cBen Cheng					/* Note: because we've taken care in
105625b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * yy_get_next_buffer() to have set up
105725b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * i386_text, we can now set up
105825b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * yy_c_buf_p so that if some total
105925b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * hoser (like flex itself) wants to
106025b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * call the scanner after we return the
106125b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * YY_NULL, it'll still work - another
106225b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * YY_NULL will get returned.
106325b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 */
106425b3c049e70834cf33790a28643ab058b507b35cBen Cheng					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
106525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
106625b3c049e70834cf33790a28643ab058b507b35cBen Cheng					yy_act = YY_STATE_EOF(YY_START);
106725b3c049e70834cf33790a28643ab058b507b35cBen Cheng					goto do_action;
106825b3c049e70834cf33790a28643ab058b507b35cBen Cheng					}
106925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
107025b3c049e70834cf33790a28643ab058b507b35cBen Cheng				else
107125b3c049e70834cf33790a28643ab058b507b35cBen Cheng					{
107225b3c049e70834cf33790a28643ab058b507b35cBen Cheng					if ( ! (yy_did_buffer_switch_on_eof) )
107325b3c049e70834cf33790a28643ab058b507b35cBen Cheng						YY_NEW_FILE;
107425b3c049e70834cf33790a28643ab058b507b35cBen Cheng					}
107525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				break;
107625b3c049e70834cf33790a28643ab058b507b35cBen Cheng				}
107725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
107825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			case EOB_ACT_CONTINUE_SCAN:
107925b3c049e70834cf33790a28643ab058b507b35cBen Cheng				(yy_c_buf_p) =
108025b3c049e70834cf33790a28643ab058b507b35cBen Cheng					(yytext_ptr) + yy_amount_of_matched_text;
108125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
108225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_current_state = yy_get_previous_state(  );
108325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
108425b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_cp = (yy_c_buf_p);
108525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
108625b3c049e70834cf33790a28643ab058b507b35cBen Cheng				goto yy_match;
108725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
108825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			case EOB_ACT_LAST_MATCH:
108925b3c049e70834cf33790a28643ab058b507b35cBen Cheng				(yy_c_buf_p) =
109025b3c049e70834cf33790a28643ab058b507b35cBen Cheng				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
109125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
109225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_current_state = yy_get_previous_state(  );
109325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
109425b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_cp = (yy_c_buf_p);
109525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
109625b3c049e70834cf33790a28643ab058b507b35cBen Cheng				goto yy_find_action;
109725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
109825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		break;
109925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
110025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
110125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	default:
110225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_FATAL_ERROR(
110325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			"fatal flex scanner internal error--no action found" );
110425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	} /* end of action switch */
110525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		} /* end of scanning one token */
110625b3c049e70834cf33790a28643ab058b507b35cBen Cheng} /* end of i386_lex */
110725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
110825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* yy_get_next_buffer - try to read in a new buffer
110925b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
111025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * Returns a code representing an action:
111125b3c049e70834cf33790a28643ab058b507b35cBen Cheng *	EOB_ACT_LAST_MATCH -
111225b3c049e70834cf33790a28643ab058b507b35cBen Cheng *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
111325b3c049e70834cf33790a28643ab058b507b35cBen Cheng *	EOB_ACT_END_OF_FILE - end of file
111425b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
111525b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_get_next_buffer (void)
111625b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
111725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
111825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register char *source = (yytext_ptr);
111925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register int number_to_move, i;
112025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int ret_val;
112125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
112225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
112325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_FATAL_ERROR(
112425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		"fatal flex scanner internal error--end of buffer missed" );
112525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
112625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
112725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{ /* Don't try to fill the buffer, so this is an EOF. */
112825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
112925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
113025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			/* We matched a single character, the EOB, so
113125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * treat this as a final EOF.
113225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 */
113325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			return EOB_ACT_END_OF_FILE;
113425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
113525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
113625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		else
113725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
113825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			/* We matched some text prior to the EOB, first
113925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 * process it.
114025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			 */
114125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			return EOB_ACT_LAST_MATCH;
114225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
114325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
114425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
114525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Try to read more data. */
114625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
114725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* First move last chars to start of buffer. */
114825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
114925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
115025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	for ( i = 0; i < number_to_move; ++i )
115125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		*(dest++) = *(source++);
115225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
115325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
115425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* don't do the read, it's not guaranteed to return an EOF,
115525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * just force an EOF
115625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 */
115725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
115825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
115925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	else
116025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
116125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			int num_to_read =
116225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
116325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
116425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		while ( num_to_read <= 0 )
116525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{ /* Not enough room in the buffer - grow it. */
116625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
116725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			/* just a shorter name for the current buffer */
116825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
116925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
117025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			int yy_c_buf_p_offset =
117125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				(int) ((yy_c_buf_p) - b->yy_ch_buf);
117225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
117325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			if ( b->yy_is_our_buffer )
117425b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{
117525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				int new_size = b->yy_buf_size * 2;
117625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
117725b3c049e70834cf33790a28643ab058b507b35cBen Cheng				if ( new_size <= 0 )
117825b3c049e70834cf33790a28643ab058b507b35cBen Cheng					b->yy_buf_size += b->yy_buf_size / 8;
117925b3c049e70834cf33790a28643ab058b507b35cBen Cheng				else
118025b3c049e70834cf33790a28643ab058b507b35cBen Cheng					b->yy_buf_size *= 2;
118125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
118225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				b->yy_ch_buf = (char *)
118325b3c049e70834cf33790a28643ab058b507b35cBen Cheng					/* Include room in for 2 EOB chars. */
118425b3c049e70834cf33790a28643ab058b507b35cBen Cheng					i386_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
118525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				}
118625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			else
118725b3c049e70834cf33790a28643ab058b507b35cBen Cheng				/* Can't grow it, we don't own it. */
118825b3c049e70834cf33790a28643ab058b507b35cBen Cheng				b->yy_ch_buf = 0;
118925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
119025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			if ( ! b->yy_ch_buf )
119125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				YY_FATAL_ERROR(
119225b3c049e70834cf33790a28643ab058b507b35cBen Cheng				"fatal error - scanner input buffer overflow" );
119325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
119425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
119525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
119625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
119725b3c049e70834cf33790a28643ab058b507b35cBen Cheng						number_to_move - 1;
119825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
119925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
120025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
120125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( num_to_read > YY_READ_BUF_SIZE )
120225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			num_to_read = YY_READ_BUF_SIZE;
120325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
120425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Read in more data. */
120525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
120625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_n_chars), (size_t) num_to_read );
120725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
120825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
120925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
121025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
121125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( (yy_n_chars) == 0 )
121225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
121325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( number_to_move == YY_MORE_ADJ )
121425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
121525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			ret_val = EOB_ACT_END_OF_FILE;
121625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			i386_restart(i386_in  );
121725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
121825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
121925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		else
122025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
122125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			ret_val = EOB_ACT_LAST_MATCH;
122225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
122325b3c049e70834cf33790a28643ab058b507b35cBen Cheng				YY_BUFFER_EOF_PENDING;
122425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
122525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
122625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
122725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	else
122825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		ret_val = EOB_ACT_CONTINUE_SCAN;
122925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
123025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
123125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Extend the array by 50%, plus the number we really need. */
123225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
123325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) i386_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
123425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
123525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
123625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
123725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
123825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_n_chars) += number_to_move;
123925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
124025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
124125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
124225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
124325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
124425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return ret_val;
124525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
124625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
124725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* yy_get_previous_state - get the state just before the EOB char was reached */
124825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
124925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    static yy_state_type yy_get_previous_state (void)
125025b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
125125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register yy_state_type yy_current_state;
125225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register char *yy_cp;
125325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
125425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	yy_current_state = (yy_start);
125525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	yy_current_state += YY_AT_BOL();
125625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
125725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
125825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
125925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
126025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( yy_accept[yy_current_state] )
126125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
126225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_last_accepting_state) = yy_current_state;
126325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_last_accepting_cpos) = yy_cp;
126425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
126525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
126625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{
126725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_current_state = (int) yy_def[yy_current_state];
126825b3c049e70834cf33790a28643ab058b507b35cBen Cheng			if ( yy_current_state >= 62 )
126925b3c049e70834cf33790a28643ab058b507b35cBen Cheng				yy_c = yy_meta[(unsigned int) yy_c];
127025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
127125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
127225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
127325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
127425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return yy_current_state;
127525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
127625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
127725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* yy_try_NUL_trans - try to make a transition on the NUL character
127825b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
127925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * synopsis
128025b3c049e70834cf33790a28643ab058b507b35cBen Cheng *	next_state = yy_try_NUL_trans( current_state );
128125b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
128225b3c049e70834cf33790a28643ab058b507b35cBen Cheng    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
128325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
128425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register int yy_is_jam;
128525b3c049e70834cf33790a28643ab058b507b35cBen Cheng    	register char *yy_cp = (yy_c_buf_p);
128625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
128725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register YY_CHAR yy_c = 1;
128825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( yy_accept[yy_current_state] )
128925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
129025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_last_accepting_state) = yy_current_state;
129125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_last_accepting_cpos) = yy_cp;
129225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
129325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
129425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
129525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_current_state = (int) yy_def[yy_current_state];
129625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( yy_current_state >= 62 )
129725b3c049e70834cf33790a28643ab058b507b35cBen Cheng			yy_c = yy_meta[(unsigned int) yy_c];
129825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
129925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
130025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	yy_is_jam = (yy_current_state == 61);
130125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
130225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return yy_is_jam ? 0 : yy_current_state;
130325b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
130425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
130525b3c049e70834cf33790a28643ab058b507b35cBen Cheng    static void yyunput (int c, register char * yy_bp )
130625b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
130725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register char *yy_cp;
130825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
130925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    yy_cp = (yy_c_buf_p);
131025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
131125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* undo effects of setting up i386_text */
131225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	*yy_cp = (yy_hold_char);
131325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
131425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
131525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{ /* need to shift things up to make room */
131625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* +2 for EOB chars. */
131725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		register int number_to_move = (yy_n_chars) + 2;
131825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
131925b3c049e70834cf33790a28643ab058b507b35cBen Cheng					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
132025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		register char *source =
132125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
132225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
132325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
132425b3c049e70834cf33790a28643ab058b507b35cBen Cheng			*--dest = *--source;
132525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
132625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_cp += (int) (dest - source);
132725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		yy_bp += (int) (dest - source);
132825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
132925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
133025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
133125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
133225b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_FATAL_ERROR( "flex scanner push-back overflow" );
133325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
133425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
133525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	*--yy_cp = (char) c;
133625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
133725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    if ( c == '\n' ){
133825b3c049e70834cf33790a28643ab058b507b35cBen Cheng        --i386_lineno;
133925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    }
134025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
134125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yytext_ptr) = yy_bp;
134225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_hold_char) = *yy_cp;
134325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_c_buf_p) = yy_cp;
134425b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
134525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
134625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_NO_INPUT
134725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef __cplusplus
134825b3c049e70834cf33790a28643ab058b507b35cBen Cheng    static int yyinput (void)
134925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else
135025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    static int input  (void)
135125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
135225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
135325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
135425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int c;
135525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
135625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	*(yy_c_buf_p) = (yy_hold_char);
135725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
135825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
135925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
136025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* yy_c_buf_p now points to the character we want to return.
136125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * If this occurs *before* the EOB characters, then it's a
136225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * valid NUL; if not, then we've hit the end of the buffer.
136325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 */
136425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
136525b3c049e70834cf33790a28643ab058b507b35cBen Cheng			/* This was really a NUL. */
136625b3c049e70834cf33790a28643ab058b507b35cBen Cheng			*(yy_c_buf_p) = '\0';
136725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
136825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		else
136925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			{ /* need more input */
137025b3c049e70834cf33790a28643ab058b507b35cBen Cheng			int offset = (yy_c_buf_p) - (yytext_ptr);
137125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			++(yy_c_buf_p);
137225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
137325b3c049e70834cf33790a28643ab058b507b35cBen Cheng			switch ( yy_get_next_buffer(  ) )
137425b3c049e70834cf33790a28643ab058b507b35cBen Cheng				{
137525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				case EOB_ACT_LAST_MATCH:
137625b3c049e70834cf33790a28643ab058b507b35cBen Cheng					/* This happens because yy_g_n_b()
137725b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * sees that we've accumulated a
137825b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * token and flags that we need to
137925b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * try matching the token before
138025b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * proceeding.  But for input(),
138125b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * there's no matching to consider.
138225b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * So convert the EOB_ACT_LAST_MATCH
138325b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 * to EOB_ACT_END_OF_FILE.
138425b3c049e70834cf33790a28643ab058b507b35cBen Cheng					 */
138525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
138625b3c049e70834cf33790a28643ab058b507b35cBen Cheng					/* Reset buffer status. */
138725b3c049e70834cf33790a28643ab058b507b35cBen Cheng					i386_restart(i386_in );
138825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
138925b3c049e70834cf33790a28643ab058b507b35cBen Cheng					/*FALLTHROUGH*/
139025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
139125b3c049e70834cf33790a28643ab058b507b35cBen Cheng				case EOB_ACT_END_OF_FILE:
139225b3c049e70834cf33790a28643ab058b507b35cBen Cheng					{
139325b3c049e70834cf33790a28643ab058b507b35cBen Cheng					if ( i386_wrap( ) )
139425b3c049e70834cf33790a28643ab058b507b35cBen Cheng						return EOF;
139525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
139625b3c049e70834cf33790a28643ab058b507b35cBen Cheng					if ( ! (yy_did_buffer_switch_on_eof) )
139725b3c049e70834cf33790a28643ab058b507b35cBen Cheng						YY_NEW_FILE;
139825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef __cplusplus
139925b3c049e70834cf33790a28643ab058b507b35cBen Cheng					return yyinput();
140025b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else
140125b3c049e70834cf33790a28643ab058b507b35cBen Cheng					return input();
140225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
140325b3c049e70834cf33790a28643ab058b507b35cBen Cheng					}
140425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
140525b3c049e70834cf33790a28643ab058b507b35cBen Cheng				case EOB_ACT_CONTINUE_SCAN:
140625b3c049e70834cf33790a28643ab058b507b35cBen Cheng					(yy_c_buf_p) = (yytext_ptr) + offset;
140725b3c049e70834cf33790a28643ab058b507b35cBen Cheng					break;
140825b3c049e70834cf33790a28643ab058b507b35cBen Cheng				}
140925b3c049e70834cf33790a28643ab058b507b35cBen Cheng			}
141025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
141125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
141225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
141325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	*(yy_c_buf_p) = '\0';	/* preserve i386_text */
141425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_hold_char) = *++(yy_c_buf_p);
141525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
141625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
141725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
141825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
141925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_lineno++;
142025b3c049e70834cf33790a28643ab058b507b35cBen Cheng;
142125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
142225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return c;
142325b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
142425b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif	/* ifndef YY_NO_INPUT */
142525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
142625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Immediately switch to a different input stream.
142725b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param input_file A readable stream.
142825b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
142925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @note This function does not reset the start condition to @c INITIAL .
143025b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
143125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    void i386_restart  (FILE * input_file )
143225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
143325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
143425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! YY_CURRENT_BUFFER ){
143525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        i386_ensure_buffer_stack ();
143625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE =
143725b3c049e70834cf33790a28643ab058b507b35cBen Cheng            i386__create_buffer(i386_in,YY_BUF_SIZE );
143825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
143925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
144025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__init_buffer(YY_CURRENT_BUFFER,input_file );
144125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__load_buffer_state( );
144225b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
144325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
144425b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Switch to a different input buffer.
144525b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param new_buffer The new input buffer.
144625b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
144725b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
144825b3c049e70834cf33790a28643ab058b507b35cBen Cheng    void i386__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
144925b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
145025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
145125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* TODO. We should be able to replace this entire function body
145225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * with
145325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 *		i386_pop_buffer_state();
145425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 *		i386_push_buffer_state(new_buffer);
145525b3c049e70834cf33790a28643ab058b507b35cBen Cheng     */
145625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386_ensure_buffer_stack ();
145725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( YY_CURRENT_BUFFER == new_buffer )
145825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		return;
145925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
146025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( YY_CURRENT_BUFFER )
146125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
146225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Flush out information for old buffer. */
146325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		*(yy_c_buf_p) = (yy_hold_char);
146425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
146525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
146625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
146725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
146825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE = new_buffer;
146925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__load_buffer_state( );
147025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
147125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* We don't actually know whether we did this switch during
147225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * EOF (i386_wrap()) processing, but the only time this flag
147325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * is looked at is after i386_wrap() is called, so it's safe
147425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * to go ahead and always set it.
147525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
147625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_did_buffer_switch_on_eof) = 1;
147725b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
147825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
147925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void i386__load_buffer_state  (void)
148025b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
148125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
148225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
148325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
148425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_hold_char) = *(yy_c_buf_p);
148525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
148625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
148725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Allocate and initialize an input buffer state.
148825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param file A readable stream.
148925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
149025b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
149125b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @return the allocated buffer state.
149225b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
149325b3c049e70834cf33790a28643ab058b507b35cBen Cheng    YY_BUFFER_STATE i386__create_buffer  (FILE * file, int  size )
149425b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
149525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BUFFER_STATE b;
149625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
149725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b = (YY_BUFFER_STATE) i386_alloc(sizeof( struct yy_buffer_state )  );
149825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! b )
149925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_FATAL_ERROR( "out of dynamic memory in i386__create_buffer()" );
150025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
150125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_buf_size = size;
150225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
150325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* yy_ch_buf has to be 2 characters longer than the size given because
150425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * we need to put in 2 end-of-buffer characters.
150525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
150625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_ch_buf = (char *) i386_alloc(b->yy_buf_size + 2  );
150725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! b->yy_ch_buf )
150825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_FATAL_ERROR( "out of dynamic memory in i386__create_buffer()" );
150925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
151025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_is_our_buffer = 1;
151125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
151225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__init_buffer(b,file );
151325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
151425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return b;
151525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
151625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
151725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Destroy the buffer.
151825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param b a buffer created with i386__create_buffer()
151925b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
152025b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
152125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    void i386__delete_buffer (YY_BUFFER_STATE  b )
152225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
152325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
152425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! b )
152525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		return;
152625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
152725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
152825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
152925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
153025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( b->yy_is_our_buffer )
153125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386_free((void *) b->yy_ch_buf  );
153225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
153325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386_free((void *) b  );
153425b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
153525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
153625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Initializes or reinitializes a buffer.
153725b3c049e70834cf33790a28643ab058b507b35cBen Cheng * This function is sometimes called more than once on the same buffer,
153825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * such as during a i386_restart() or at EOF.
153925b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
154025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    static void i386__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
154125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
154225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
154325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int oerrno = errno;
154425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
154525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__flush_buffer(b );
154625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
154725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_input_file = file;
154825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_fill_buffer = 1;
154925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
155025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    /* If b is the current buffer, then i386__init_buffer was _probably_
155125b3c049e70834cf33790a28643ab058b507b35cBen Cheng     * called from i386_restart() or through yy_get_next_buffer.
155225b3c049e70834cf33790a28643ab058b507b35cBen Cheng     * In that case, we don't want to reset the lineno or column.
155325b3c049e70834cf33790a28643ab058b507b35cBen Cheng     */
155425b3c049e70834cf33790a28643ab058b507b35cBen Cheng    if (b != YY_CURRENT_BUFFER){
155525b3c049e70834cf33790a28643ab058b507b35cBen Cheng        b->yy_bs_lineno = 1;
155625b3c049e70834cf33790a28643ab058b507b35cBen Cheng        b->yy_bs_column = 0;
155725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    }
155825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
155925b3c049e70834cf33790a28643ab058b507b35cBen Cheng        b->yy_is_interactive = 0;
156025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
156125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	errno = oerrno;
156225b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
156325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
156425b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
156525b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
156625b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
156725b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
156825b3c049e70834cf33790a28643ab058b507b35cBen Cheng    void i386__flush_buffer (YY_BUFFER_STATE  b )
156925b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
157025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    	if ( ! b )
157125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		return;
157225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
157325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_n_chars = 0;
157425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
157525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* We always need two end-of-buffer characters.  The first causes
157625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * a transition to the end-of-buffer state.  The second causes
157725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * a jam in that state.
157825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
157925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
158025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
158125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
158225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_buf_pos = &b->yy_ch_buf[0];
158325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
158425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_at_bol = 1;
158525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_buffer_status = YY_BUFFER_NEW;
158625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
158725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( b == YY_CURRENT_BUFFER )
158825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386__load_buffer_state( );
158925b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
159025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
159125b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Pushes the new state onto the stack. The new state becomes
159225b3c049e70834cf33790a28643ab058b507b35cBen Cheng *  the current state. This function will allocate the stack
159325b3c049e70834cf33790a28643ab058b507b35cBen Cheng *  if necessary.
159425b3c049e70834cf33790a28643ab058b507b35cBen Cheng *  @param new_buffer The new state.
159525b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
159625b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
159725b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_push_buffer_state (YY_BUFFER_STATE new_buffer )
159825b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
159925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    	if (new_buffer == NULL)
160025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		return;
160125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
160225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386_ensure_buffer_stack();
160325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
160425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* This block is copied from i386__switch_to_buffer. */
160525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( YY_CURRENT_BUFFER )
160625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{
160725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Flush out information for old buffer. */
160825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		*(yy_c_buf_p) = (yy_hold_char);
160925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
161025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
161125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		}
161225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
161325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Only push if top exists. Otherwise, replace top. */
161425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if (YY_CURRENT_BUFFER)
161525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_buffer_stack_top)++;
161625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE = new_buffer;
161725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
161825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* copied from i386__switch_to_buffer. */
161925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__load_buffer_state( );
162025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_did_buffer_switch_on_eof) = 1;
162125b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
162225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
162325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Removes and deletes the top of the stack, if present.
162425b3c049e70834cf33790a28643ab058b507b35cBen Cheng *  The next element becomes the new top.
162525b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
162625b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
162725b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_pop_buffer_state (void)
162825b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
162925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    	if (!YY_CURRENT_BUFFER)
163025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		return;
163125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
163225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__delete_buffer(YY_CURRENT_BUFFER );
163325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_CURRENT_BUFFER_LVALUE = NULL;
163425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ((yy_buffer_stack_top) > 0)
163525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		--(yy_buffer_stack_top);
163625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
163725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if (YY_CURRENT_BUFFER) {
163825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386__load_buffer_state( );
163925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_did_buffer_switch_on_eof) = 1;
164025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
164125b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
164225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
164325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Allocates the stack if it does not exist.
164425b3c049e70834cf33790a28643ab058b507b35cBen Cheng *  Guarantees space for at least one push.
164525b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
164625b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void i386_ensure_buffer_stack (void)
164725b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
164825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int num_to_alloc;
164925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
165025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if (!(yy_buffer_stack)) {
165125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
165225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* First allocation is just for 2 elements, since we don't know if this
165325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
165425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		 * immediate realloc on the next call.
165525b3c049e70834cf33790a28643ab058b507b35cBen Cheng         */
165625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		num_to_alloc = 1;
165725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_buffer_stack) = (struct yy_buffer_state**)i386_alloc
165825b3c049e70834cf33790a28643ab058b507b35cBen Cheng								(num_to_alloc * sizeof(struct yy_buffer_state*)
165925b3c049e70834cf33790a28643ab058b507b35cBen Cheng								);
166025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( ! (yy_buffer_stack) )
166125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_FATAL_ERROR( "out of dynamic memory in i386_ensure_buffer_stack()" );
166225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
166325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
166425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
166525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_buffer_stack_max) = num_to_alloc;
166625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_buffer_stack_top) = 0;
166725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		return;
166825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
166925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
167025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
167125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
167225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Increase the buffer to prepare for a possible push. */
167325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		int grow_size = 8 /* arbitrary grow size */;
167425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
167525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		num_to_alloc = (yy_buffer_stack_max) + grow_size;
167625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_buffer_stack) = (struct yy_buffer_state**)i386_realloc
167725b3c049e70834cf33790a28643ab058b507b35cBen Cheng								((yy_buffer_stack),
167825b3c049e70834cf33790a28643ab058b507b35cBen Cheng								num_to_alloc * sizeof(struct yy_buffer_state*)
167925b3c049e70834cf33790a28643ab058b507b35cBen Cheng								);
168025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		if ( ! (yy_buffer_stack) )
168125b3c049e70834cf33790a28643ab058b507b35cBen Cheng			YY_FATAL_ERROR( "out of dynamic memory in i386_ensure_buffer_stack()" );
168225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
168325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* zero only the new slots.*/
168425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
168525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_buffer_stack_max) = num_to_alloc;
168625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
168725b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
168825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
168925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Setup the input buffer state to scan directly from a user-specified character buffer.
169025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param base the character buffer
169125b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param size the size in bytes of the character buffer
169225b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
169325b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @return the newly allocated buffer state object.
169425b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
169525b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_BUFFER_STATE i386__scan_buffer  (char * base, yy_size_t  size )
169625b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
169725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BUFFER_STATE b;
169825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
169925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( size < 2 ||
170025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
170125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	     base[size-1] != YY_END_OF_BUFFER_CHAR )
170225b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* They forgot to leave room for the EOB's. */
170325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		return 0;
170425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
170525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b = (YY_BUFFER_STATE) i386_alloc(sizeof( struct yy_buffer_state )  );
170625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! b )
170725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_FATAL_ERROR( "out of dynamic memory in i386__scan_buffer()" );
170825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
170925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
171025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_buf_pos = b->yy_ch_buf = base;
171125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_is_our_buffer = 0;
171225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_input_file = 0;
171325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_n_chars = b->yy_buf_size;
171425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_is_interactive = 0;
171525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_at_bol = 1;
171625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_fill_buffer = 0;
171725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_buffer_status = YY_BUFFER_NEW;
171825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
171925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386__switch_to_buffer(b  );
172025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
172125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return b;
172225b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
172325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
172425b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Setup the input buffer state to scan a string. The next call to i386_lex() will
172525b3c049e70834cf33790a28643ab058b507b35cBen Cheng * scan from a @e copy of @a str.
172625b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param yystr a NUL-terminated string to scan
172725b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
172825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @return the newly allocated buffer state object.
172925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @note If you want to scan bytes that may contain NUL values, then use
173025b3c049e70834cf33790a28643ab058b507b35cBen Cheng *       i386__scan_bytes() instead.
173125b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
173225b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_BUFFER_STATE i386__scan_string (yyconst char * yystr )
173325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
173425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
173525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return i386__scan_bytes(yystr,strlen(yystr) );
173625b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
173725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
173825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Setup the input buffer state to scan the given bytes. The next call to i386_lex() will
173925b3c049e70834cf33790a28643ab058b507b35cBen Cheng * scan from a @e copy of @a bytes.
174025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param bytes the byte buffer to scan
174125b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param len the number of bytes in the buffer pointed to by @a bytes.
174225b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
174325b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @return the newly allocated buffer state object.
174425b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
174525b3c049e70834cf33790a28643ab058b507b35cBen ChengYY_BUFFER_STATE i386__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
174625b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
174725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	YY_BUFFER_STATE b;
174825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	char *buf;
174925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	yy_size_t n;
175025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	int i;
175125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
175225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Get memory for full buffer, including space for trailing EOB's. */
175325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	n = _yybytes_len + 2;
175425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	buf = (char *) i386_alloc(n  );
175525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! buf )
175625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_FATAL_ERROR( "out of dynamic memory in i386__scan_bytes()" );
175725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
175825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	for ( i = 0; i < _yybytes_len; ++i )
175925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		buf[i] = yybytes[i];
176025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
176125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
176225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
176325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b = i386__scan_buffer(buf,n );
176425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	if ( ! b )
176525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_FATAL_ERROR( "bad buffer in i386__scan_bytes()" );
176625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
176725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* It's okay to grow etc. this buffer, and we should throw it
176825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * away when we're done.
176925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
177025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	b->yy_is_our_buffer = 1;
177125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
177225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return b;
177325b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
177425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
177525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef YY_EXIT_FAILURE
177625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YY_EXIT_FAILURE 2
177725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
177825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
177925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void yy_fatal_error (yyconst char* msg )
178025b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
178125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    	(void) fprintf( stderr, "%s\n", msg );
178225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	exit( YY_EXIT_FAILURE );
178325b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
178425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
178525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Redefine yyless() so it works in section 3 code. */
178625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
178725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#undef yyless
178825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define yyless(n) \
178925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	do \
179025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		{ \
179125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		/* Undo effects of setting up i386_text. */ \
179225b3c049e70834cf33790a28643ab058b507b35cBen Cheng        int yyless_macro_arg = (n); \
179325b3c049e70834cf33790a28643ab058b507b35cBen Cheng        YY_LESS_LINENO(yyless_macro_arg);\
179425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386_text[i386_leng] = (yy_hold_char); \
179525b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_c_buf_p) = i386_text + yyless_macro_arg; \
179625b3c049e70834cf33790a28643ab058b507b35cBen Cheng		(yy_hold_char) = *(yy_c_buf_p); \
179725b3c049e70834cf33790a28643ab058b507b35cBen Cheng		*(yy_c_buf_p) = '\0'; \
179825b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386_leng = yyless_macro_arg; \
179925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		} \
180025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	while ( 0 )
180125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
180225b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Accessor  methods (get/set functions) to struct members. */
180325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
180425b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Get the current line number.
180525b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
180625b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
180725b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_get_lineno  (void)
180825b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
180925b3c049e70834cf33790a28643ab058b507b35cBen Cheng
181025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    return i386_lineno;
181125b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
181225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
181325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Get the input stream.
181425b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
181525b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
181625b3c049e70834cf33790a28643ab058b507b35cBen ChengFILE *i386_get_in  (void)
181725b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
181825b3c049e70834cf33790a28643ab058b507b35cBen Cheng        return i386_in;
181925b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
182025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
182125b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Get the output stream.
182225b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
182325b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
182425b3c049e70834cf33790a28643ab058b507b35cBen ChengFILE *i386_get_out  (void)
182525b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
182625b3c049e70834cf33790a28643ab058b507b35cBen Cheng        return i386_out;
182725b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
182825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
182925b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Get the length of the current token.
183025b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
183125b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
183225b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_get_leng  (void)
183325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
183425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        return i386_leng;
183525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
183625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
183725b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Get the current token.
183825b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
183925b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
184025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
184125b3c049e70834cf33790a28643ab058b507b35cBen Chengchar *i386_get_text  (void)
184225b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
184325b3c049e70834cf33790a28643ab058b507b35cBen Cheng        return i386_text;
184425b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
184525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
184625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Set the current line number.
184725b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param line_number
184825b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
184925b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
185025b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_lineno (int  line_number )
185125b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
185225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
185325b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_lineno = line_number;
185425b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
185525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
185625b3c049e70834cf33790a28643ab058b507b35cBen Cheng/** Set the input stream. This does not discard the current
185725b3c049e70834cf33790a28643ab058b507b35cBen Cheng * input buffer.
185825b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @param in_str A readable stream.
185925b3c049e70834cf33790a28643ab058b507b35cBen Cheng *
186025b3c049e70834cf33790a28643ab058b507b35cBen Cheng * @see i386__switch_to_buffer
186125b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
186225b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_in (FILE *  in_str )
186325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
186425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        i386_in = in_str ;
186525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
186625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
186725b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_out (FILE *  out_str )
186825b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
186925b3c049e70834cf33790a28643ab058b507b35cBen Cheng        i386_out = out_str ;
187025b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
187125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
187225b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_get_debug  (void)
187325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
187425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        return i386__flex_debug;
187525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
187625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
187725b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_set_debug (int  bdebug )
187825b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
187925b3c049e70834cf33790a28643ab058b507b35cBen Cheng        i386__flex_debug = bdebug ;
188025b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
188125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
188225b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_init_globals (void)
188325b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
188425b3c049e70834cf33790a28643ab058b507b35cBen Cheng        /* Initialization is the same as for the non-reentrant scanner.
188525b3c049e70834cf33790a28643ab058b507b35cBen Cheng     * This function is called from i386_lex_destroy(), so don't allocate here.
188625b3c049e70834cf33790a28643ab058b507b35cBen Cheng     */
188725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
188825b3c049e70834cf33790a28643ab058b507b35cBen Cheng    /* We do not touch i386_lineno unless the option is enabled. */
188925b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_lineno =  1;
189025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
189125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    (yy_buffer_stack) = 0;
189225b3c049e70834cf33790a28643ab058b507b35cBen Cheng    (yy_buffer_stack_top) = 0;
189325b3c049e70834cf33790a28643ab058b507b35cBen Cheng    (yy_buffer_stack_max) = 0;
189425b3c049e70834cf33790a28643ab058b507b35cBen Cheng    (yy_c_buf_p) = (char *) 0;
189525b3c049e70834cf33790a28643ab058b507b35cBen Cheng    (yy_init) = 0;
189625b3c049e70834cf33790a28643ab058b507b35cBen Cheng    (yy_start) = 0;
189725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
189825b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* Defined in main.c */
189925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef YY_STDINIT
190025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_in = stdin;
190125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_out = stdout;
190225b3c049e70834cf33790a28643ab058b507b35cBen Cheng#else
190325b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_in = (FILE *) 0;
190425b3c049e70834cf33790a28643ab058b507b35cBen Cheng    i386_out = (FILE *) 0;
190525b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
190625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
190725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    /* For future reference: Set errno on error, since we are called by
190825b3c049e70834cf33790a28643ab058b507b35cBen Cheng     * i386_lex_init()
190925b3c049e70834cf33790a28643ab058b507b35cBen Cheng     */
191025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    return 0;
191125b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
191225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
191325b3c049e70834cf33790a28643ab058b507b35cBen Cheng/* i386_lex_destroy is for both reentrant and non-reentrant scanners. */
191425b3c049e70834cf33790a28643ab058b507b35cBen Chengint i386_lex_destroy  (void)
191525b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
191625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
191725b3c049e70834cf33790a28643ab058b507b35cBen Cheng    /* Pop the buffer stack, destroying each element. */
191825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	while(YY_CURRENT_BUFFER){
191925b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386__delete_buffer(YY_CURRENT_BUFFER  );
192025b3c049e70834cf33790a28643ab058b507b35cBen Cheng		YY_CURRENT_BUFFER_LVALUE = NULL;
192125b3c049e70834cf33790a28643ab058b507b35cBen Cheng		i386_pop_buffer_state();
192225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	}
192325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
192425b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* Destroy the stack itself. */
192525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	i386_free((yy_buffer_stack) );
192625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	(yy_buffer_stack) = NULL;
192725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
192825b3c049e70834cf33790a28643ab058b507b35cBen Cheng    /* Reset the globals. This is important in a non-reentrant scanner so the next time
192925b3c049e70834cf33790a28643ab058b507b35cBen Cheng     * i386_lex() is called, initialization will occur. */
193025b3c049e70834cf33790a28643ab058b507b35cBen Cheng    yy_init_globals( );
193125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
193225b3c049e70834cf33790a28643ab058b507b35cBen Cheng    return 0;
193325b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
193425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
193525b3c049e70834cf33790a28643ab058b507b35cBen Cheng/*
193625b3c049e70834cf33790a28643ab058b507b35cBen Cheng * Internal utility routines.
193725b3c049e70834cf33790a28643ab058b507b35cBen Cheng */
193825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
193925b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifndef yytext_ptr
194025b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
194125b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
194225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register int i;
194325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	for ( i = 0; i < n; ++i )
194425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		s1[i] = s2[i];
194525b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
194625b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
194725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
194825b3c049e70834cf33790a28643ab058b507b35cBen Cheng#ifdef YY_NEED_STRLEN
194925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic int yy_flex_strlen (yyconst char * s )
195025b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
195125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	register int n;
195225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	for ( n = 0; s[n]; ++n )
195325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		;
195425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
195525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return n;
195625b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
195725b3c049e70834cf33790a28643ab058b507b35cBen Cheng#endif
195825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
195925b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid *i386_alloc (yy_size_t  size )
196025b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
196125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return (void *) malloc( size );
196225b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
196325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
196425b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid *i386_realloc  (void * ptr, yy_size_t  size )
196525b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
196625b3c049e70834cf33790a28643ab058b507b35cBen Cheng	/* The cast to (char *) in the following accommodates both
196725b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * implementations that use char* generic pointers, and those
196825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * that use void* generic pointers.  It works with the latter
196925b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * because both ANSI C and C++ allow castless assignment from
197025b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * any pointer type to void*, and deal with argument conversions
197125b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 * as though doing an assignment.
197225b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 */
197325b3c049e70834cf33790a28643ab058b507b35cBen Cheng	return (void *) realloc( (char *) ptr, size );
197425b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
197525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
197625b3c049e70834cf33790a28643ab058b507b35cBen Chengvoid i386_free (void * ptr )
197725b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
197825b3c049e70834cf33790a28643ab058b507b35cBen Cheng	free( (char *) ptr );	/* see i386_realloc() for (char *) cast */
197925b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
198025b3c049e70834cf33790a28643ab058b507b35cBen Cheng
198125b3c049e70834cf33790a28643ab058b507b35cBen Cheng#define YYTABLES_NAME "yytables"
198225b3c049e70834cf33790a28643ab058b507b35cBen Cheng
198325b3c049e70834cf33790a28643ab058b507b35cBen Cheng#line 101 "i386_lex.l"
198425b3c049e70834cf33790a28643ab058b507b35cBen Cheng
198525b3c049e70834cf33790a28643ab058b507b35cBen Cheng
198625b3c049e70834cf33790a28643ab058b507b35cBen Cheng
198725b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void
198825b3c049e70834cf33790a28643ab058b507b35cBen Chengeat_to_eol (void)
198925b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
199025b3c049e70834cf33790a28643ab058b507b35cBen Cheng  while (1)
199125b3c049e70834cf33790a28643ab058b507b35cBen Cheng    {
199225b3c049e70834cf33790a28643ab058b507b35cBen Cheng      int c = input ();
199325b3c049e70834cf33790a28643ab058b507b35cBen Cheng
199425b3c049e70834cf33790a28643ab058b507b35cBen Cheng      if (c == EOF || c == '\n')
199525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	break;
199625b3c049e70834cf33790a28643ab058b507b35cBen Cheng    }
199725b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
199825b3c049e70834cf33790a28643ab058b507b35cBen Cheng
199925b3c049e70834cf33790a28643ab058b507b35cBen Chengstatic void
200025b3c049e70834cf33790a28643ab058b507b35cBen Chenginvalid_char (int ch)
200125b3c049e70834cf33790a28643ab058b507b35cBen Cheng{
200225b3c049e70834cf33790a28643ab058b507b35cBen Cheng  error (0, 0, (isascii (ch)
200325b3c049e70834cf33790a28643ab058b507b35cBen Cheng		? gettext ("invalid character '%c' at line %d; ignored")
200425b3c049e70834cf33790a28643ab058b507b35cBen Cheng		: gettext ("invalid character '\\%o' at line %d; ignored")),
200525b3c049e70834cf33790a28643ab058b507b35cBen Cheng	 ch, i386_lineno);
200625b3c049e70834cf33790a28643ab058b507b35cBen Cheng}
200725b3c049e70834cf33790a28643ab058b507b35cBen Cheng
200825b3c049e70834cf33790a28643ab058b507b35cBen Cheng// Local Variables:
200925b3c049e70834cf33790a28643ab058b507b35cBen Cheng// mode: C
201025b3c049e70834cf33790a28643ab058b507b35cBen Cheng// End:
201125b3c049e70834cf33790a28643ab058b507b35cBen Cheng
2012