2006-04-06 11:32:54 +00:00
2007-07-03 08:00:08 +00:00
# line 3 "lex.c"
2007-06-13 05:44:24 +00:00
# define YY_INT_ALIGNED short int
/* A lexical scanner generated by flex */
2006-04-06 11:32:54 +00:00
# define FLEX_SCANNER
# define YY_FLEX_MAJOR_VERSION 2
# define YY_FLEX_MINOR_VERSION 5
2007-06-13 05:44:24 +00:00
# define YY_FLEX_SUBMINOR_VERSION 33
# if YY_FLEX_SUBMINOR_VERSION > 0
# define FLEX_BETA
# endif
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* First, we deal with platform-specific or compiler-specific issues. */
/* begin standard C headers. */
2006-04-06 11:32:54 +00:00
# include <stdio.h>
2007-06-13 05:44:24 +00:00
# include <string.h>
# include <errno.h>
# include <stdlib.h>
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* end standard C headers. */
2006-04-24 09:36:24 +00:00
2007-06-13 05:44:24 +00:00
/* flex integer type definitions */
# ifndef FLEXINT_H
# define FLEXINT_H
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
# if __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit ( max / min ) macros for int types .
*/
# ifndef __STDC_LIMIT_MACROS
# define __STDC_LIMIT_MACROS 1
2007-01-10 11:16:11 +00:00
# endif
2006-04-24 09:36:24 +00:00
2007-06-13 05:44:24 +00:00
# include <inttypes.h>
typedef int8_t flex_int8_t ;
typedef uint8_t flex_uint8_t ;
typedef int16_t flex_int16_t ;
typedef uint16_t flex_uint16_t ;
typedef int32_t flex_int32_t ;
typedef uint32_t flex_uint32_t ;
# else
typedef signed char flex_int8_t ;
typedef short int flex_int16_t ;
typedef int flex_int32_t ;
typedef unsigned char flex_uint8_t ;
typedef unsigned short int flex_uint16_t ;
typedef unsigned int flex_uint32_t ;
# endif /* ! C99 */
2006-11-07 06:59:56 +00:00
2007-06-13 05:44:24 +00:00
/* Limits of integral types. */
# ifndef INT8_MIN
# define INT8_MIN (-128)
# endif
# ifndef INT16_MIN
# define INT16_MIN (-32767-1)
# endif
# ifndef INT32_MIN
# define INT32_MIN (-2147483647-1)
# endif
# ifndef INT8_MAX
# define INT8_MAX (127)
# endif
# ifndef INT16_MAX
# define INT16_MAX (32767)
# endif
# ifndef INT32_MAX
# define INT32_MAX (2147483647)
# endif
# ifndef UINT8_MAX
# define UINT8_MAX (255U)
# endif
# ifndef UINT16_MAX
# define UINT16_MAX (65535U)
# endif
# ifndef UINT32_MAX
# define UINT32_MAX (4294967295U)
# endif
2006-11-07 06:59:56 +00:00
2007-06-13 05:44:24 +00:00
# endif /* ! FLEXINT_H */
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
# ifdef __cplusplus
2007-01-10 11:50:33 +00:00
2006-04-06 11:32:54 +00:00
/* The "const" storage-class-modifier is valid. */
# define YY_USE_CONST
# else /* ! __cplusplus */
# if __STDC__
# define YY_USE_CONST
# endif /* __STDC__ */
# endif /* ! __cplusplus */
# ifdef YY_USE_CONST
# define yyconst const
# else
# define yyconst
# endif
/* Returned upon end-of-file. */
# define YY_NULL 0
/* Promotes a possibly negative, possibly signed char to an unsigned
* integer for use as an array index . If the signed char is negative ,
* we want to instead treat it as an 8 - bit unsigned char , hence the
* double cast .
*/
# define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
/* Enter a start condition. This macro really ought to take a parameter,
* but we do it the disgusting crufty way forced on us by the ( ) - less
* definition of BEGIN .
*/
2007-06-13 05:44:24 +00:00
# define BEGIN (yy_start) = 1 + 2 *
2006-04-06 11:32:54 +00:00
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state . The YYSTATE alias is for lex
* compatibility .
*/
2007-06-13 05:44:24 +00:00
# define YY_START (((yy_start) - 1) / 2)
2006-04-06 11:32:54 +00:00
# define YYSTATE YY_START
/* Action number for EOF rule of a given start state. */
# define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* Special action meaning "start processing a new file". */
2007-06-13 05:44:24 +00:00
# define YY_NEW_FILE yyrestart(yyin )
2006-04-06 11:32:54 +00:00
# define YY_END_OF_BUFFER_CHAR 0
/* Size of default input buffer. */
2007-06-13 05:44:24 +00:00
# ifndef YY_BUF_SIZE
2006-04-06 11:32:54 +00:00
# define YY_BUF_SIZE 16384
2007-06-13 05:44:24 +00:00
# endif
2006-08-30 11:29:34 +00:00
2007-06-13 05:44:24 +00:00
/* The state buf must be large enough to hold one state per character in the main buffer.
*/
# define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
# ifndef YY_TYPEDEF_YY_BUFFER_STATE
# define YY_TYPEDEF_YY_BUFFER_STATE
2006-04-06 11:32:54 +00:00
typedef struct yy_buffer_state * YY_BUFFER_STATE ;
2007-06-13 05:44:24 +00:00
# endif
2006-04-06 11:32:54 +00:00
extern int yyleng ;
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
extern FILE * yyin , * yyout ;
# define EOB_ACT_CONTINUE_SCAN 0
# define EOB_ACT_END_OF_FILE 1
# define EOB_ACT_LAST_MATCH 2
2007-06-13 05:44:24 +00:00
# define YY_LESS_LINENO(n)
/* Return all but the first "n" matched characters back to the input stream. */
2006-04-06 11:32:54 +00:00
# define yyless(n) \
do \
{ \
/* Undo effects of setting up yytext. */ \
2007-06-13 05:44:24 +00:00
int yyless_macro_arg = ( n ) ; \
YY_LESS_LINENO ( yyless_macro_arg ) ; \
* yy_cp = ( yy_hold_char ) ; \
2006-04-06 11:32:54 +00:00
YY_RESTORE_YY_MORE_OFFSET \
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ ; \
2006-04-06 11:32:54 +00:00
YY_DO_BEFORE_ACTION ; /* set up yytext again */ \
} \
while ( 0 )
2007-06-13 05:44:24 +00:00
# define unput(c) yyunput( c, (yytext_ptr) )
2006-04-06 11:32:54 +00:00
/* The following is because we cannot portably get our hands on size_t
* ( without autoconf ' s help , which isn ' t available because we want
* flex - generated scanners to compile on their own ) .
*/
2006-11-07 06:59:56 +00:00
2007-06-13 05:44:24 +00:00
# ifndef YY_TYPEDEF_YY_SIZE_T
# define YY_TYPEDEF_YY_SIZE_T
typedef unsigned int yy_size_t ;
# endif
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
# ifndef YY_STRUCT_YY_BUFFER_STATE
# define YY_STRUCT_YY_BUFFER_STATE
2006-04-06 11:32:54 +00:00
struct yy_buffer_state
{
FILE * yy_input_file ;
char * yy_ch_buf ; /* input buffer */
char * yy_buf_pos ; /* current position in input buffer */
/* Size of input buffer in bytes, not including room for EOB
* characters .
*/
yy_size_t yy_buf_size ;
/* Number of characters read into yy_ch_buf, not including EOB
* characters .
*/
int yy_n_chars ;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc ( ) it to grow it , and should free ( ) it to
* delete it .
*/
int yy_is_our_buffer ;
/* Whether this is an "interactive" input source; if so, and
* if we ' re using stdio for input , then we want to use getc ( )
* instead of fread ( ) , to make sure we stop fetching input after
* each newline .
*/
int yy_is_interactive ;
/* Whether we're considered to be at the beginning of a line.
* If so , ' ^ ' rules will be active on the next match , otherwise
* not .
*/
int yy_at_bol ;
2007-06-13 05:44:24 +00:00
int yy_bs_lineno ; /**< The line count. */
int yy_bs_column ; /**< The column count. */
2006-04-06 11:32:54 +00:00
/* Whether to try to fill the input buffer when we reach the
* end of it .
*/
int yy_fill_buffer ;
int yy_buffer_status ;
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
# define YY_BUFFER_NEW 0
# define YY_BUFFER_NORMAL 1
/* When an EOF's been seen but there's still some text to process
* then we mark the buffer as YY_EOF_PENDING , to indicate that we
* shouldn ' t try reading from the input source any more . We might
* still have a bunch of tokens to match , though , because of
* possible backing - up .
*
* When we actually see the EOF , we change the status to " new "
* ( via yyrestart ( ) ) , so that the user can continue scanning by
* just pointing yyin at a new input file .
*/
# define YY_BUFFER_EOF_PENDING 2
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
} ;
2007-06-13 05:44:24 +00:00
# endif /* !YY_STRUCT_YY_BUFFER_STATE */
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* Stack of input buffers. */
static size_t yy_buffer_stack_top = 0 ; /**< index of top of stack. */
static size_t yy_buffer_stack_max = 0 ; /**< capacity of stack. */
static YY_BUFFER_STATE * yy_buffer_stack = 0 ; /**< Stack as an array. */
2006-04-06 11:32:54 +00:00
/* We provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* " scanner state " .
2007-06-13 05:44:24 +00:00
*
* Returns the top of the stack , or NULL .
2006-04-06 11:32:54 +00:00
*/
2007-06-13 05:44:24 +00:00
# define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
? ( yy_buffer_stack ) [ ( yy_buffer_stack_top ) ] \
: NULL )
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* Same as previous macro, but useful when we know that the buffer stack is not
* NULL or when we need an lvalue . For internal use only .
*/
# define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
2006-04-06 11:32:54 +00:00
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char ;
static int yy_n_chars ; /* number of characters read into yy_ch_buf */
int yyleng ;
/* Points to current character in buffer. */
static char * yy_c_buf_p = ( char * ) 0 ;
2007-06-13 05:44:24 +00:00
static int yy_init = 0 ; /* whether we need to initialize */
2006-04-06 11:32:54 +00:00
static int yy_start = 0 ; /* start state number */
/* Flag which is used to allow yywrap()'s to do buffer switches
* instead of setting up a fresh yyin . A bit of a hack . . .
*/
static int yy_did_buffer_switch_on_eof ;
2007-06-13 05:44:24 +00:00
void yyrestart ( FILE * input_file ) ;
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ) ;
YY_BUFFER_STATE yy_create_buffer ( FILE * file , int size ) ;
void yy_delete_buffer ( YY_BUFFER_STATE b ) ;
void yy_flush_buffer ( YY_BUFFER_STATE b ) ;
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ) ;
void yypop_buffer_state ( void ) ;
static void yyensure_buffer_stack ( void ) ;
static void yy_load_buffer_state ( void ) ;
static void yy_init_buffer ( YY_BUFFER_STATE b , FILE * file ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
# define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
YY_BUFFER_STATE yy_scan_buffer ( char * base , yy_size_t size ) ;
YY_BUFFER_STATE yy_scan_string ( yyconst char * yy_str ) ;
YY_BUFFER_STATE yy_scan_bytes ( yyconst char * bytes , int len ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
void * yyalloc ( yy_size_t ) ;
void * yyrealloc ( void * , yy_size_t ) ;
void yyfree ( void * ) ;
2006-04-06 11:32:54 +00:00
# define yy_new_buffer yy_create_buffer
# define yy_set_interactive(is_interactive) \
{ \
2007-06-13 05:44:24 +00:00
if ( ! YY_CURRENT_BUFFER ) { \
yyensure_buffer_stack ( ) ; \
YY_CURRENT_BUFFER_LVALUE = \
yy_create_buffer ( yyin , YY_BUF_SIZE ) ; \
} \
YY_CURRENT_BUFFER_LVALUE - > yy_is_interactive = is_interactive ; \
2006-04-06 11:32:54 +00:00
}
# define yy_set_bol(at_bol) \
{ \
2007-06-13 05:44:24 +00:00
if ( ! YY_CURRENT_BUFFER ) { \
yyensure_buffer_stack ( ) ; \
YY_CURRENT_BUFFER_LVALUE = \
yy_create_buffer ( yyin , YY_BUF_SIZE ) ; \
} \
YY_CURRENT_BUFFER_LVALUE - > yy_at_bol = at_bol ; \
2006-04-06 11:32:54 +00:00
}
2007-06-13 05:44:24 +00:00
# define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
/* Begin user sect3 */
2006-04-06 11:32:54 +00:00
typedef unsigned char YY_CHAR ;
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
FILE * yyin = ( FILE * ) 0 , * yyout = ( FILE * ) 0 ;
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
typedef int yy_state_type ;
2007-06-13 05:44:24 +00:00
extern int yylineno ;
2007-07-03 08:00:08 +00:00
int yylineno = 1 ;
2006-04-06 11:32:54 +00:00
extern char * yytext ;
# define yytext_ptr yytext
2007-06-13 05:44:24 +00:00
static yy_state_type yy_get_previous_state ( void ) ;
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ) ;
static int yy_get_next_buffer ( void ) ;
static void yy_fatal_error ( yyconst char msg [ ] ) ;
2006-04-06 11:32:54 +00:00
/* Done after the current pattern has been matched and before the
* corresponding action - sets up yytext .
*/
# define YY_DO_BEFORE_ACTION \
2007-06-13 05:44:24 +00:00
( yytext_ptr ) = yy_bp ; \
yyleng = ( size_t ) ( yy_cp - yy_bp ) ; \
( yy_hold_char ) = * yy_cp ; \
2006-04-06 11:32:54 +00:00
* yy_cp = ' \0 ' ; \
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) = yy_cp ;
2006-04-06 11:32:54 +00:00
# define YY_NUM_RULES 95
# define YY_END_OF_BUFFER 96
2007-06-13 05:44:24 +00:00
/* This struct is not used in this scanner,
but its presence is necessary . */
struct yy_trans_info
{
flex_int32_t yy_verify ;
flex_int32_t yy_nxt ;
} ;
static yyconst flex_int16_t yy_accept [ 568 ] =
2006-04-06 11:32:54 +00:00
{ 0 ,
0 , 0 , 96 , 94 , 90 , 91 , 87 , 81 , 81 , 94 ,
94 , 88 , 88 , 94 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 82 , 83 , 85 , 88 , 88 , 93 , 86 ,
0 , 0 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 10 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 51 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 92 , 88 , 84 ,
89 , 3 , 89 , 89 , 89 , 7 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 22 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 44 , 45 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 55 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 63 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 30 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
47 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 60 , 89 , 89 , 64 , 89 , 89 , 89 , 68 , 69 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
80 , 89 , 89 , 89 , 89 , 6 , 89 , 89 , 89 , 89 ,
13 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 29 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 50 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 72 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 1 , 89 , 89 , 89 , 89 , 89 , 89 , 12 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 24 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 49 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 65 , 66 , 89 ,
89 , 89 , 73 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 9 , 89 , 89 , 89 , 89 , 18 , 89 ,
89 , 21 , 89 , 89 , 26 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 37 , 38 , 89 , 89 , 41 , 89 , 89 , 89 ,
89 , 89 , 89 , 54 , 89 , 57 , 58 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 75 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 20 , 89 ,
25 , 89 , 28 , 89 , 89 , 89 , 89 , 89 , 36 , 39 ,
40 , 89 , 89 , 89 , 89 , 52 , 89 , 89 , 89 , 89 ,
62 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 5 , 8 , 11 , 14 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 34 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 67 , 89 , 89 , 74 , 89 , 89 , 89 ,
89 , 89 , 89 , 15 , 89 , 17 , 89 , 23 , 89 , 89 ,
89 , 89 , 35 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 76 , 89 , 89 , 89 , 89 , 4 , 16 ,
19 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 , 89 ,
89 , 89 , 89 , 42 , 43 , 89 , 89 , 89 , 89 , 89 ,
61 , 89 , 89 , 89 , 89 , 89 , 89 , 27 , 31 , 89 ,
33 , 89 , 48 , 89 , 56 , 89 , 89 , 71 , 89 , 89 ,
79 , 89 , 89 , 46 , 89 , 89 , 89 , 89 , 78 , 2 ,
32 , 89 , 59 , 70 , 77 , 53 , 0
} ;
2007-06-13 05:44:24 +00:00
static yyconst flex_int32_t yy_ec [ 256 ] =
2006-04-06 11:32:54 +00:00
{ 0 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 3 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 2 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 5 ,
5 , 6 , 1 , 5 , 7 , 8 , 9 , 10 , 11 , 12 ,
12 , 13 , 14 , 15 , 12 , 16 , 12 , 17 , 5 , 1 ,
18 , 1 , 1 , 1 , 19 , 20 , 21 , 22 , 23 , 24 ,
25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 ,
35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 ,
45 , 1 , 46 , 1 , 47 , 1 , 48 , 49 , 50 , 51 ,
52 , 53 , 54 , 55 , 56 , 57 , 29 , 58 , 59 , 60 ,
61 , 62 , 29 , 63 , 64 , 65 , 66 , 67 , 29 , 68 ,
29 , 69 , 5 , 5 , 5 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1
} ;
2007-06-13 05:44:24 +00:00
static yyconst flex_int32_t yy_meta [ 70 ] =
2006-04-06 11:32:54 +00:00
{ 0 ,
1 , 1 , 1 , 1 , 1 , 1 , 2 , 1 , 1 , 3 ,
3 , 3 , 3 , 3 , 3 , 3 , 1 , 1 , 3 , 3 ,
3 , 3 , 3 , 3 , 2 , 2 , 2 , 2 , 2 , 2 ,
2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ,
2 , 2 , 2 , 2 , 1 , 1 , 2 , 3 , 3 , 3 ,
3 , 3 , 3 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ,
2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2
} ;
2007-06-13 05:44:24 +00:00
static yyconst flex_int16_t yy_base [ 570 ] =
2006-04-06 11:32:54 +00:00
{ 0 ,
0 , 0 , 636 , 637 , 637 , 637 , 637 , 637 , 63 , 627 ,
628 , 70 , 77 , 616 , 74 , 72 , 76 , 609 , 65 , 81 ,
49 , 0 , 92 , 91 , 32 , 101 , 97 , 608 , 103 , 113 ,
99 , 574 , 602 , 637 , 637 , 637 , 156 , 163 , 620 , 637 ,
0 , 609 , 0 , 589 , 595 , 590 , 585 , 597 , 583 , 586 ,
586 , 0 , 101 , 599 , 108 , 593 , 596 , 122 , 124 , 585 ,
581 , 553 , 564 , 597 , 587 , 575 , 115 , 575 , 565 , 574 ,
575 , 545 , 575 , 564 , 0 , 563 , 543 , 561 , 558 , 558 ,
124 , 540 , 161 , 119 , 551 , 558 , 561 , 581 , 566 , 551 ,
555 , 530 , 560 , 160 , 530 , 91 , 547 , 637 , 0 , 637 ,
125 , 0 , 554 , 550 , 555 , 0 , 544 , 550 , 543 , 551 ,
540 , 542 , 145 , 166 , 552 , 541 , 0 , 542 , 549 , 156 ,
548 , 533 , 538 , 516 , 505 , 529 , 533 , 157 , 534 , 525 ,
539 , 546 , 0 , 521 , 529 , 506 , 534 , 533 , 528 , 502 ,
515 , 0 , 515 , 514 , 510 , 489 , 518 , 528 , 507 , 0 ,
522 , 517 , 505 , 505 , 504 , 517 , 516 , 486 , 159 , 499 ,
520 , 468 , 482 , 477 , 506 , 499 , 494 , 502 , 497 , 495 ,
461 , 502 , 505 , 502 , 485 , 488 , 482 , 500 , 479 , 485 ,
494 , 493 , 491 , 479 , 485 , 475 , 164 , 487 , 0 , 446 ,
453 , 442 , 468 , 478 , 468 , 464 , 483 , 170 , 488 , 463 ,
0 , 436 , 477 , 459 , 463 , 445 , 471 , 486 , 469 , 472 ,
425 , 0 , 451 , 465 , 0 , 455 , 467 , 420 , 0 , 0 ,
477 , 418 , 450 , 442 , 457 , 423 , 441 , 425 , 415 , 426 ,
0 , 436 , 454 , 451 , 452 , 0 , 407 , 450 , 447 , 444 ,
0 , 434 , 429 , 437 , 433 , 435 , 439 , 437 , 423 , 420 ,
436 , 418 , 418 , 422 , 0 , 405 , 396 , 388 , 423 , 180 ,
411 , 426 , 415 , 423 , 408 , 429 , 436 , 386 , 403 , 0 ,
408 , 374 , 402 , 410 , 404 , 397 , 386 , 406 , 400 , 406 ,
388 , 366 , 401 , 375 , 0 , 403 , 389 , 365 , 358 , 359 ,
356 , 362 , 0 , 398 , 399 , 379 , 360 , 383 , 376 , 0 ,
390 , 393 , 379 , 372 , 371 , 385 , 385 , 387 , 0 , 378 ,
367 , 376 , 383 , 343 , 350 , 343 , 374 , 370 , 374 , 358 ,
371 , 372 , 356 , 368 , 353 , 362 , 338 , 0 , 368 , 364 ,
353 , 352 , 345 , 359 , 332 , 340 , 358 , 0 , 0 , 322 ,
355 , 308 , 0 , 338 , 322 , 310 , 308 , 319 , 318 , 331 ,
330 , 340 , 306 , 0 , 342 , 332 , 336 , 335 , 0 , 334 ,
338 , 0 , 321 , 320 , 0 , 337 , 326 , 151 , 318 , 294 ,
326 , 314 , 0 , 0 , 314 , 327 , 0 , 328 , 283 , 315 ,
309 , 315 , 292 , 0 , 319 , 0 , 0 , 284 , 318 , 317 ,
279 , 315 , 300 , 317 , 0 , 279 , 286 , 265 , 295 , 324 ,
303 , 308 , 274 , 291 , 288 , 293 , 292 , 290 , 0 , 299 ,
0 , 294 , 0 , 255 , 250 , 253 , 263 , 293 , 0 , 0 ,
0 , 277 , 251 , 289 , 247 , 0 , 247 , 283 , 257 , 261 ,
0 , 253 , 274 , 240 , 274 , 243 , 244 , 264 , 235 , 262 ,
265 , 0 , 0 , 0 , 260 , 273 , 270 , 262 , 271 , 262 ,
228 , 238 , 226 , 0 , 252 , 260 , 230 , 258 , 221 , 233 ,
250 , 244 , 247 , 0 , 241 , 215 , 0 , 223 , 239 , 210 ,
211 , 230 , 240 , 0 , 249 , 0 , 233 , 0 , 242 , 212 ,
216 , 210 , 0 , 232 , 204 , 231 , 206 , 198 , 233 , 194 ,
231 , 230 , 200 , 0 , 190 , 191 , 197 , 220 , 0 , 0 ,
0 , 213 , 190 , 211 , 188 , 215 , 192 , 218 , 184 , 187 ,
204 , 178 , 218 , 215 , 178 , 174 , 180 , 175 , 196 , 190 ,
178 , 175 , 176 , 0 , 0 , 191 , 174 , 165 , 180 , 166 ,
0 , 194 , 166 , 163 , 158 , 163 , 197 , 0 , 0 , 156 ,
0 , 171 , 0 , 148 , 0 , 152 , 188 , 0 , 150 , 155 ,
0 , 166 , 153 , 0 , 143 , 148 , 162 , 143 , 0 , 0 ,
0 , 101 , 0 , 0 , 0 , 0 , 637 , 223 , 69
} ;
2007-06-13 05:44:24 +00:00
static yyconst flex_int16_t yy_def [ 570 ] =
2006-04-06 11:32:54 +00:00
{ 0 ,
567 , 1 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
569 , 567 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 567 , 569 , 567 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 , 568 ,
568 , 568 , 568 , 568 , 568 , 568 , 0 , 567 , 567
} ;
2007-06-13 05:44:24 +00:00
static yyconst flex_int16_t yy_nxt [ 707 ] =
2006-04-06 11:32:54 +00:00
{ 0 ,
4 , 5 , 6 , 7 , 8 , 4 , 9 , 10 , 11 , 12 ,
13 , 13 , 13 , 13 , 13 , 13 , 14 , 4 , 15 , 16 ,
17 , 18 , 19 , 20 , 21 , 22 , 23 , 22 , 22 , 22 ,
24 , 25 , 26 , 27 , 22 , 28 , 29 , 30 , 31 , 32 ,
33 , 22 , 22 , 22 , 34 , 35 , 4 , 22 , 22 , 22 ,
22 , 22 , 22 , 22 , 22 , 22 , 22 , 22 , 22 , 22 ,
22 , 22 , 22 , 22 , 22 , 22 , 22 , 22 , 22 , 36 ,
71 , 99 , 37 , 38 , 38 , 38 , 38 , 38 , 38 , 38 ,
38 , 38 , 38 , 38 , 38 , 38 , 38 , 38 , 38 , 38 ,
38 , 38 , 38 , 44 , 48 , 57 , 58 , 72 , 49 , 60 ,
62 , 53 , 50 , 45 , 51 , 54 , 59 , 46 , 55 , 69 ,
64 , 63 , 47 , 65 , 52 , 78 , 61 , 70 , 79 , 109 ,
73 , 74 , 66 , 67 , 75 , 84 , 80 , 88 , 68 , 85 ,
93 , 89 , 81 , 110 , 76 , 129 , 94 , 41 , 112 , 113 ,
86 , 163 , 116 , 117 , 119 , 87 , 144 , 166 , 90 , 77 ,
145 , 130 , 131 , 149 , 164 , 91 , 150 , 120 , 95 , 82 ,
118 , 121 , 167 , 566 , 92 , 38 , 38 , 38 , 38 , 38 ,
38 , 38 , 38 , 38 , 38 , 38 , 38 , 38 , 38 , 147 ,
160 , 177 , 178 , 161 , 179 , 185 , 194 , 414 , 186 , 195 ,
148 , 223 , 180 , 224 , 264 , 253 , 565 , 564 , 225 , 254 ,
318 , 563 , 319 , 562 , 561 , 265 , 415 , 560 , 559 , 558 ,
557 , 556 , 555 , 554 , 553 , 552 , 551 , 550 , 549 , 548 ,
547 , 546 , 545 , 41 , 43 , 43 , 544 , 543 , 542 , 541 ,
540 , 539 , 538 , 537 , 536 , 535 , 534 , 533 , 532 , 531 ,
530 , 529 , 528 , 527 , 526 , 525 , 524 , 523 , 522 , 521 ,
520 , 519 , 518 , 517 , 516 , 515 , 514 , 513 , 512 , 511 ,
510 , 509 , 508 , 507 , 506 , 505 , 504 , 503 , 502 , 501 ,
500 , 499 , 498 , 497 , 496 , 495 , 494 , 493 , 492 , 491 ,
490 , 489 , 488 , 487 , 486 , 485 , 484 , 483 , 482 , 481 ,
480 , 479 , 478 , 477 , 476 , 475 , 474 , 473 , 472 , 471 ,
470 , 469 , 468 , 467 , 466 , 465 , 464 , 463 , 462 , 461 ,
460 , 459 , 458 , 457 , 456 , 455 , 454 , 453 , 452 , 451 ,
450 , 449 , 448 , 447 , 446 , 445 , 444 , 443 , 442 , 441 ,
440 , 439 , 438 , 437 , 436 , 435 , 434 , 433 , 432 , 431 ,
430 , 429 , 428 , 427 , 426 , 425 , 424 , 423 , 422 , 421 ,
420 , 419 , 418 , 417 , 416 , 413 , 412 , 411 , 410 , 409 ,
408 , 407 , 406 , 405 , 404 , 403 , 402 , 401 , 400 , 399 ,
398 , 397 , 396 , 395 , 394 , 393 , 392 , 391 , 390 , 389 ,
388 , 387 , 386 , 385 , 384 , 383 , 382 , 381 , 380 , 379 ,
378 , 377 , 376 , 375 , 374 , 373 , 372 , 371 , 370 , 369 ,
368 , 367 , 366 , 365 , 364 , 363 , 362 , 361 , 360 , 359 ,
358 , 357 , 356 , 355 , 354 , 353 , 352 , 351 , 350 , 349 ,
348 , 347 , 346 , 345 , 344 , 343 , 342 , 341 , 340 , 339 ,
338 , 337 , 336 , 335 , 334 , 333 , 332 , 331 , 330 , 329 ,
328 , 327 , 326 , 325 , 324 , 323 , 322 , 321 , 320 , 317 ,
316 , 315 , 314 , 313 , 312 , 311 , 310 , 309 , 308 , 307 ,
306 , 305 , 304 , 303 , 302 , 301 , 300 , 299 , 298 , 297 ,
296 , 295 , 294 , 293 , 292 , 291 , 290 , 289 , 288 , 287 ,
286 , 285 , 284 , 283 , 282 , 281 , 280 , 279 , 278 , 277 ,
276 , 275 , 274 , 273 , 272 , 271 , 270 , 269 , 268 , 267 ,
266 , 263 , 262 , 261 , 260 , 259 , 258 , 257 , 256 , 255 ,
252 , 251 , 250 , 249 , 248 , 247 , 246 , 245 , 244 , 243 ,
242 , 241 , 240 , 239 , 238 , 237 , 236 , 235 , 234 , 233 ,
232 , 231 , 230 , 229 , 228 , 227 , 226 , 222 , 221 , 220 ,
219 , 218 , 217 , 216 , 215 , 214 , 213 , 212 , 211 , 210 ,
209 , 208 , 207 , 206 , 205 , 204 , 203 , 202 , 201 , 200 ,
199 , 198 , 197 , 196 , 193 , 192 , 191 , 190 , 189 , 188 ,
187 , 184 , 183 , 182 , 181 , 176 , 175 , 174 , 173 , 172 ,
171 , 170 , 169 , 168 , 165 , 162 , 159 , 158 , 157 , 156 ,
155 , 154 , 153 , 152 , 151 , 146 , 143 , 142 , 141 , 140 ,
139 , 138 , 137 , 136 , 135 , 134 , 133 , 132 , 128 , 127 ,
126 , 125 , 124 , 123 , 122 , 115 , 114 , 111 , 108 , 107 ,
106 , 105 , 104 , 103 , 102 , 101 , 100 , 98 , 97 , 96 ,
83 , 56 , 42 , 40 , 39 , 567 , 3 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567
} ;
2007-06-13 05:44:24 +00:00
static yyconst flex_int16_t yy_chk [ 707 ] =
2006-04-06 11:32:54 +00:00
{ 0 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 9 ,
25 , 569 , 9 , 9 , 9 , 9 , 9 , 9 , 9 , 12 ,
12 , 12 , 12 , 12 , 12 , 12 , 13 , 13 , 13 , 13 ,
13 , 13 , 13 , 15 , 16 , 19 , 19 , 25 , 16 , 20 ,
21 , 17 , 16 , 15 , 16 , 17 , 19 , 15 , 17 , 24 ,
23 , 21 , 15 , 23 , 16 , 27 , 20 , 24 , 27 , 53 ,
26 , 26 , 23 , 23 , 26 , 29 , 27 , 30 , 23 , 29 ,
31 , 30 , 27 , 53 , 26 , 67 , 31 , 12 , 55 , 55 ,
29 , 96 , 58 , 58 , 59 , 29 , 81 , 101 , 30 , 26 ,
81 , 67 , 67 , 84 , 96 , 30 , 84 , 59 , 31 , 27 ,
58 , 59 , 101 , 562 , 30 , 37 , 37 , 37 , 37 , 37 ,
37 , 37 , 38 , 38 , 38 , 38 , 38 , 38 , 38 , 83 ,
94 , 113 , 113 , 94 , 114 , 120 , 128 , 368 , 120 , 128 ,
83 , 159 , 114 , 159 , 198 , 187 , 558 , 557 , 159 , 187 ,
260 , 556 , 260 , 555 , 553 , 198 , 368 , 552 , 550 , 549 ,
547 , 546 , 544 , 542 , 540 , 537 , 536 , 535 , 534 , 533 ,
532 , 530 , 529 , 37 , 568 , 568 , 528 , 527 , 526 , 523 ,
522 , 521 , 520 , 519 , 518 , 517 , 516 , 515 , 514 , 513 ,
512 , 511 , 510 , 509 , 508 , 507 , 506 , 505 , 504 , 503 ,
502 , 498 , 497 , 496 , 495 , 493 , 492 , 491 , 490 , 489 ,
488 , 487 , 486 , 485 , 484 , 482 , 481 , 480 , 479 , 477 ,
475 , 473 , 472 , 471 , 470 , 469 , 468 , 466 , 465 , 463 ,
462 , 461 , 460 , 459 , 458 , 457 , 456 , 455 , 453 , 452 ,
451 , 450 , 449 , 448 , 447 , 446 , 445 , 441 , 440 , 439 ,
438 , 437 , 436 , 435 , 434 , 433 , 432 , 430 , 429 , 428 ,
427 , 425 , 424 , 423 , 422 , 418 , 417 , 416 , 415 , 414 ,
412 , 410 , 408 , 407 , 406 , 405 , 404 , 403 , 402 , 401 ,
400 , 399 , 398 , 397 , 396 , 394 , 393 , 392 , 391 , 390 ,
389 , 388 , 385 , 383 , 382 , 381 , 380 , 379 , 378 , 376 ,
375 , 372 , 371 , 370 , 369 , 367 , 366 , 364 , 363 , 361 ,
360 , 358 , 357 , 356 , 355 , 353 , 352 , 351 , 350 , 349 ,
348 , 347 , 346 , 345 , 344 , 342 , 341 , 340 , 337 , 336 ,
335 , 334 , 333 , 332 , 331 , 330 , 329 , 327 , 326 , 325 ,
324 , 323 , 322 , 321 , 320 , 319 , 318 , 317 , 316 , 315 ,
314 , 313 , 312 , 311 , 310 , 308 , 307 , 306 , 305 , 304 ,
303 , 302 , 301 , 299 , 298 , 297 , 296 , 295 , 294 , 292 ,
291 , 290 , 289 , 288 , 287 , 286 , 284 , 283 , 282 , 281 ,
280 , 279 , 278 , 277 , 276 , 275 , 274 , 273 , 272 , 271 ,
269 , 268 , 267 , 266 , 265 , 264 , 263 , 262 , 261 , 259 ,
258 , 257 , 256 , 254 , 253 , 252 , 251 , 250 , 249 , 248 ,
247 , 246 , 245 , 244 , 243 , 242 , 240 , 239 , 238 , 237 ,
235 , 234 , 233 , 232 , 230 , 229 , 228 , 227 , 226 , 225 ,
224 , 223 , 222 , 221 , 218 , 217 , 216 , 214 , 213 , 211 ,
210 , 209 , 208 , 207 , 206 , 205 , 204 , 203 , 202 , 200 ,
199 , 197 , 196 , 195 , 194 , 193 , 192 , 191 , 190 , 188 ,
186 , 185 , 184 , 183 , 182 , 181 , 180 , 179 , 178 , 177 ,
176 , 175 , 174 , 173 , 172 , 171 , 170 , 169 , 168 , 167 ,
166 , 165 , 164 , 163 , 162 , 161 , 160 , 158 , 157 , 156 ,
155 , 154 , 153 , 152 , 151 , 149 , 148 , 147 , 146 , 145 ,
144 , 143 , 141 , 140 , 139 , 138 , 137 , 136 , 135 , 134 ,
132 , 131 , 130 , 129 , 127 , 126 , 125 , 124 , 123 , 122 ,
121 , 119 , 118 , 116 , 115 , 112 , 111 , 110 , 109 , 108 ,
107 , 105 , 104 , 103 , 97 , 95 , 93 , 92 , 91 , 90 ,
89 , 88 , 87 , 86 , 85 , 82 , 80 , 79 , 78 , 77 ,
76 , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 66 , 65 ,
64 , 63 , 62 , 61 , 60 , 57 , 56 , 54 , 51 , 50 ,
49 , 48 , 47 , 46 , 45 , 44 , 42 , 39 , 33 , 32 ,
28 , 18 , 14 , 11 , 10 , 3 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 , 567 ,
567 , 567 , 567 , 567 , 567 , 567
} ;
static yy_state_type yy_last_accepting_state ;
static char * yy_last_accepting_cpos ;
2007-06-13 05:44:24 +00:00
extern int yy_flex_debug ;
int yy_flex_debug = 0 ;
2006-04-06 11:32:54 +00:00
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed .
*/
# define REJECT reject_used_but_not_detected
# define yymore() yymore_used_but_not_detected
# define YY_MORE_ADJ 0
# define YY_RESTORE_YY_MORE_OFFSET
char * yytext ;
# line 1 "lex.l"
# line 2 "lex.l"
/*
* Copyright ( c ) 1997 - 2005 Kungliga Tekniska H <EFBFBD> gskolan
* ( Royal Institute of Technology , Stockholm , Sweden ) .
* All rights reserved .
*
* Redistribution and use in source and binary forms , with or without
* modification , are permitted provided that the following conditions
* are met :
*
* 1. Redistributions of source code must retain the above copyright
* notice , this list of conditions and the following disclaimer .
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice , this list of conditions and the following disclaimer in the
* documentation and / or other materials provided with the distribution .
*
* 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission .
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ` ` AS IS ' ' AND
* ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED . IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL
* DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION )
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT
* LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE .
*/
2007-07-03 08:00:08 +00:00
/* $Id: lex.l 18738 2006-10-21 11:57:22Z lha $ */
2006-04-06 11:32:54 +00:00
# ifdef HAVE_CONFIG_H
# include <config.h>
# endif
# include <stdio.h>
# include <stdarg.h>
# include <stdlib.h>
# include <string.h>
# ifdef HAVE_UNISTD_H
# include <unistd.h>
# endif
# undef ECHO
# include "symbol.h"
# include "parse.h"
# include "lex.h"
# include "gen_locl.h"
static unsigned lineno = 1 ;
# undef ECHO
static void unterminated ( const char * , unsigned ) ;
2006-11-07 06:59:56 +00:00
/* This is for broken old lexes (solaris 10 and hpux) */
2007-07-03 08:00:08 +00:00
# line 855 "lex.c"
2007-06-13 05:44:24 +00:00
# define INITIAL 0
# ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
* down here because we want the user ' s section 1 to have been scanned first .
* The user has a chance to override it with an option .
*/
# include <unistd.h>
# endif
# ifndef YY_EXTRA_TYPE
# define YY_EXTRA_TYPE void *
# endif
static int yy_init_globals ( void ) ;
2006-04-06 11:32:54 +00:00
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
# ifndef YY_SKIP_YYWRAP
# ifdef __cplusplus
2007-06-13 05:44:24 +00:00
extern " C " int yywrap ( void ) ;
2006-04-06 11:32:54 +00:00
# else
2007-06-13 05:44:24 +00:00
extern int yywrap ( void ) ;
2006-11-07 06:59:56 +00:00
# endif
2006-04-06 11:32:54 +00:00
# endif
2006-11-07 06:59:56 +00:00
2007-06-13 05:44:24 +00:00
static void yyunput ( int c , char * buf_ptr ) ;
2006-04-06 11:32:54 +00:00
# ifndef yytext_ptr
2007-06-13 05:44:24 +00:00
static void yy_flex_strncpy ( char * , yyconst char * , int ) ;
2006-04-06 11:32:54 +00:00
# endif
# ifdef YY_NEED_STRLEN
2007-06-13 05:44:24 +00:00
static int yy_flex_strlen ( yyconst char * ) ;
2006-04-06 11:32:54 +00:00
# endif
# ifndef YY_NO_INPUT
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
# ifdef __cplusplus
static int yyinput ( void ) ;
2006-04-24 09:36:24 +00:00
# else
2007-06-13 05:44:24 +00:00
static int input ( void ) ;
2006-04-24 09:36:24 +00:00
# endif
2006-04-06 11:32:54 +00:00
# endif
/* Amount of stuff to slurp up with each read. */
# ifndef YY_READ_BUF_SIZE
# define YY_READ_BUF_SIZE 8192
# endif
/* Copy whatever the last rule matched to the standard output. */
# ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite ( ) .
*/
# define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
# endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
* is returned in " result " .
*/
# ifndef YY_INPUT
# define YY_INPUT(buf,result,max_size) \
2007-06-13 05:44:24 +00:00
if ( YY_CURRENT_BUFFER_LVALUE - > yy_is_interactive ) \
2006-04-06 11:32:54 +00:00
{ \
2007-06-13 05:44:24 +00:00
int c = ' * ' ; \
size_t n ; \
2006-04-06 11:32:54 +00:00
for ( n = 0 ; n < max_size & & \
( c = getc ( yyin ) ) ! = EOF & & c ! = ' \n ' ; + + n ) \
buf [ n ] = ( char ) c ; \
if ( c = = ' \n ' ) \
buf [ n + + ] = ( char ) c ; \
if ( c = = EOF & & ferror ( yyin ) ) \
YY_FATAL_ERROR ( " input in flex scanner failed " ) ; \
result = n ; \
} \
2007-06-13 05:44:24 +00:00
else \
{ \
errno = 0 ; \
while ( ( result = fread ( buf , 1 , max_size , yyin ) ) = = 0 & & ferror ( yyin ) ) \
{ \
if ( errno ! = EINTR ) \
{ \
YY_FATAL_ERROR ( " input in flex scanner failed " ) ; \
break ; \
} \
errno = 0 ; \
clearerr ( yyin ) ; \
} \
} \
\
2006-04-06 11:32:54 +00:00
# endif
/* No semi-colon after return; correct usage is to write "yyterminate();" -
* we don ' t want an extra ' ; ' after the " return " because that will cause
* some compilers to complain about unreachable statements .
*/
# ifndef yyterminate
# define yyterminate() return YY_NULL
# endif
/* Number of entries by which start-condition stack grows. */
# ifndef YY_START_STACK_INCR
# define YY_START_STACK_INCR 25
# endif
/* Report a fatal error. */
# ifndef YY_FATAL_ERROR
# define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
# endif
2007-06-13 05:44:24 +00:00
/* end tables serialization structures and prototypes */
2006-04-06 11:32:54 +00:00
/* Default declaration of generated scanner - a define so the user can
* easily add parameters .
*/
# ifndef YY_DECL
2007-06-13 05:44:24 +00:00
# define YY_DECL_IS_OURS 1
extern int yylex ( void ) ;
# define YY_DECL int yylex (void)
# endif /* !YY_DECL */
2006-04-06 11:32:54 +00:00
/* Code executed at the beginning of each rule, after yytext and yyleng
* have been set up .
*/
# ifndef YY_USER_ACTION
# define YY_USER_ACTION
# endif
/* Code executed at the end of each rule. */
# ifndef YY_BREAK
# define YY_BREAK break;
# endif
# define YY_RULE_SETUP \
YY_USER_ACTION
2007-06-13 05:44:24 +00:00
/** The main scanner function which does all the work.
*/
2006-04-06 11:32:54 +00:00
YY_DECL
2007-06-13 05:44:24 +00:00
{
2006-04-06 11:32:54 +00:00
register yy_state_type yy_current_state ;
2007-06-13 05:44:24 +00:00
register char * yy_cp , * yy_bp ;
2006-04-06 11:32:54 +00:00
register int yy_act ;
2007-06-13 05:44:24 +00:00
2006-11-07 06:59:56 +00:00
# line 68 "lex.l"
2007-07-03 08:00:08 +00:00
# line 1010 "lex.c"
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
if ( ! ( yy_init ) )
2006-04-06 11:32:54 +00:00
{
2007-06-13 05:44:24 +00:00
( yy_init ) = 1 ;
2006-04-06 11:32:54 +00:00
# ifdef YY_USER_INIT
YY_USER_INIT ;
# endif
2007-06-13 05:44:24 +00:00
if ( ! ( yy_start ) )
( yy_start ) = 1 ; /* first start state */
2006-04-06 11:32:54 +00:00
if ( ! yyin )
yyin = stdin ;
if ( ! yyout )
yyout = stdout ;
2007-06-13 05:44:24 +00:00
if ( ! YY_CURRENT_BUFFER ) {
yyensure_buffer_stack ( ) ;
YY_CURRENT_BUFFER_LVALUE =
yy_create_buffer ( yyin , YY_BUF_SIZE ) ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
yy_load_buffer_state ( ) ;
2006-04-06 11:32:54 +00:00
}
while ( 1 ) /* loops until end-of-file is reached */
{
2007-06-13 05:44:24 +00:00
yy_cp = ( yy_c_buf_p ) ;
2006-04-06 11:32:54 +00:00
/* Support of yytext. */
2007-06-13 05:44:24 +00:00
* yy_cp = ( yy_hold_char ) ;
2006-04-06 11:32:54 +00:00
/* yy_bp points to the position in yy_ch_buf of the start of
* the current run .
*/
yy_bp = yy_cp ;
2007-06-13 05:44:24 +00:00
yy_current_state = ( yy_start ) ;
2006-04-06 11:32:54 +00:00
yy_match :
do
{
register YY_CHAR yy_c = yy_ec [ YY_SC_TO_UI ( * yy_cp ) ] ;
if ( yy_accept [ yy_current_state ] )
{
2007-06-13 05:44:24 +00:00
( yy_last_accepting_state ) = yy_current_state ;
( yy_last_accepting_cpos ) = yy_cp ;
2006-04-06 11:32:54 +00:00
}
while ( yy_chk [ yy_base [ yy_current_state ] + yy_c ] ! = yy_current_state )
{
yy_current_state = ( int ) yy_def [ yy_current_state ] ;
if ( yy_current_state > = 568 )
yy_c = yy_meta [ ( unsigned int ) yy_c ] ;
}
yy_current_state = yy_nxt [ yy_base [ yy_current_state ] + ( unsigned int ) yy_c ] ;
+ + yy_cp ;
}
while ( yy_base [ yy_current_state ] ! = 637 ) ;
yy_find_action :
yy_act = yy_accept [ yy_current_state ] ;
if ( yy_act = = 0 )
{ /* have to back up */
2007-06-13 05:44:24 +00:00
yy_cp = ( yy_last_accepting_cpos ) ;
yy_current_state = ( yy_last_accepting_state ) ;
2006-04-06 11:32:54 +00:00
yy_act = yy_accept [ yy_current_state ] ;
}
YY_DO_BEFORE_ACTION ;
do_action : /* This label is used only to access EOF actions. */
switch ( yy_act )
{ /* beginning of action switch */
case 0 : /* must back up */
/* undo the effects of YY_DO_BEFORE_ACTION */
2007-06-13 05:44:24 +00:00
* yy_cp = ( yy_hold_char ) ;
yy_cp = ( yy_last_accepting_cpos ) ;
yy_current_state = ( yy_last_accepting_state ) ;
2006-04-06 11:32:54 +00:00
goto yy_find_action ;
case 1 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 69 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_ABSENT ; }
YY_BREAK
case 2 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 70 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_ABSTRACT_SYNTAX ; }
YY_BREAK
case 3 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 71 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_ALL ; }
YY_BREAK
case 4 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 72 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_APPLICATION ; }
YY_BREAK
case 5 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 73 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_AUTOMATIC ; }
YY_BREAK
case 6 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 74 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_BEGIN ; }
YY_BREAK
case 7 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 75 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_BIT ; }
YY_BREAK
case 8 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 76 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_BMPString ; }
YY_BREAK
case 9 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 77 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_BOOLEAN ; }
YY_BREAK
case 10 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 78 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_BY ; }
YY_BREAK
case 11 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 79 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_CHARACTER ; }
YY_BREAK
case 12 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 80 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_CHOICE ; }
YY_BREAK
case 13 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 81 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_CLASS ; }
YY_BREAK
case 14 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 82 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_COMPONENT ; }
YY_BREAK
case 15 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 83 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_COMPONENTS ; }
YY_BREAK
case 16 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 84 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_CONSTRAINED ; }
YY_BREAK
case 17 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 85 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_CONTAINING ; }
YY_BREAK
case 18 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 86 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_DEFAULT ; }
YY_BREAK
case 19 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 87 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_DEFINITIONS ; }
YY_BREAK
case 20 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 88 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_EMBEDDED ; }
YY_BREAK
case 21 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 89 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_ENCODED ; }
YY_BREAK
case 22 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 90 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_END ; }
YY_BREAK
case 23 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 91 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_ENUMERATED ; }
YY_BREAK
case 24 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 92 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_EXCEPT ; }
YY_BREAK
case 25 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 93 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_EXPLICIT ; }
YY_BREAK
case 26 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 94 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_EXPORTS ; }
YY_BREAK
case 27 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 95 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_EXTENSIBILITY ; }
YY_BREAK
case 28 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 96 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_EXTERNAL ; }
YY_BREAK
case 29 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 97 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_FALSE ; }
YY_BREAK
case 30 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 98 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_FROM ; }
YY_BREAK
case 31 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 99 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_GeneralString ; }
YY_BREAK
case 32 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 100 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_GeneralizedTime ; }
YY_BREAK
case 33 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 101 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_GraphicString ; }
YY_BREAK
case 34 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 102 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_IA5String ; }
YY_BREAK
case 35 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 103 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_IDENTIFIER ; }
YY_BREAK
case 36 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 104 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_IMPLICIT ; }
YY_BREAK
case 37 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 105 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_IMPLIED ; }
YY_BREAK
case 38 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 106 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_IMPORTS ; }
YY_BREAK
case 39 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 107 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_INCLUDES ; }
YY_BREAK
case 40 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 108 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_INSTANCE ; }
YY_BREAK
case 41 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 109 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_INTEGER ; }
YY_BREAK
case 42 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 110 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_INTERSECTION ; }
YY_BREAK
case 43 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 111 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_ISO646String ; }
YY_BREAK
case 44 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 112 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_MAX ; }
YY_BREAK
case 45 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 113 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_MIN ; }
YY_BREAK
case 46 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 114 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_MINUS_INFINITY ; }
YY_BREAK
case 47 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 115 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_NULL ; }
YY_BREAK
case 48 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 116 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_NumericString ; }
YY_BREAK
case 49 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 117 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_OBJECT ; }
YY_BREAK
case 50 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 118 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_OCTET ; }
YY_BREAK
case 51 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 119 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_OF ; }
YY_BREAK
case 52 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 120 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_OPTIONAL ; }
YY_BREAK
case 53 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 121 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_ObjectDescriptor ; }
YY_BREAK
case 54 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 122 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_PATTERN ; }
YY_BREAK
case 55 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 123 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_PDV ; }
YY_BREAK
case 56 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 124 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_PLUS_INFINITY ; }
YY_BREAK
case 57 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 125 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_PRESENT ; }
YY_BREAK
case 58 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 126 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_PRIVATE ; }
YY_BREAK
case 59 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 127 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_PrintableString ; }
YY_BREAK
case 60 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 128 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_REAL ; }
YY_BREAK
case 61 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 129 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_RELATIVE_OID ; }
YY_BREAK
case 62 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 130 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_SEQUENCE ; }
YY_BREAK
case 63 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 131 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_SET ; }
YY_BREAK
case 64 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 132 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_SIZE ; }
YY_BREAK
case 65 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 133 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_STRING ; }
YY_BREAK
case 66 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 134 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_SYNTAX ; }
YY_BREAK
case 67 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 135 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_T61String ; }
YY_BREAK
case 68 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 136 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_TAGS ; }
YY_BREAK
case 69 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 137 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_TRUE ; }
YY_BREAK
case 70 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 138 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_TYPE_IDENTIFIER ; }
YY_BREAK
case 71 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 139 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_TeletexString ; }
YY_BREAK
case 72 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 140 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_UNION ; }
YY_BREAK
case 73 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 141 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_UNIQUE ; }
YY_BREAK
case 74 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 142 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_UNIVERSAL ; }
YY_BREAK
case 75 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 143 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_UTCTime ; }
YY_BREAK
case 76 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 144 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_UTF8String ; }
YY_BREAK
case 77 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 145 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_UniversalString ; }
YY_BREAK
case 78 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 146 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_VideotexString ; }
YY_BREAK
case 79 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 147 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_VisibleString ; }
YY_BREAK
case 80 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 148 "lex.l"
2006-04-06 11:32:54 +00:00
{ return kw_WITH ; }
YY_BREAK
case 81 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 149 "lex.l"
2006-04-06 11:32:54 +00:00
{ return * yytext ; }
YY_BREAK
case 82 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 150 "lex.l"
2006-04-06 11:32:54 +00:00
{ return * yytext ; }
YY_BREAK
case 83 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 151 "lex.l"
2006-04-06 11:32:54 +00:00
{ return * yytext ; }
YY_BREAK
case 84 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 152 "lex.l"
2006-04-06 11:32:54 +00:00
{ return EEQUAL ; }
YY_BREAK
case 85 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 153 "lex.l"
2006-04-06 11:32:54 +00:00
{
int c , start_lineno = lineno ;
int f = 0 ;
while ( ( c = input ( ) ) ! = EOF ) {
if ( f & & c = = ' - ' )
break ;
if ( c = = ' - ' ) {
f = 1 ;
continue ;
}
if ( c = = ' \n ' ) {
lineno + + ;
break ;
}
f = 0 ;
}
if ( c = = EOF )
unterminated ( " comment " , start_lineno ) ;
}
YY_BREAK
case 86 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 172 "lex.l"
2006-04-06 11:32:54 +00:00
{
int c , start_lineno = lineno ;
int level = 1 ;
int seen_star = 0 ;
int seen_slash = 0 ;
while ( ( c = input ( ) ) ! = EOF ) {
if ( c = = ' / ' ) {
if ( seen_star ) {
if ( - - level = = 0 )
break ;
seen_star = 0 ;
continue ;
}
seen_slash = 1 ;
continue ;
}
if ( seen_star & & c = = ' / ' ) {
if ( - - level = = 0 )
break ;
seen_star = 0 ;
continue ;
}
if ( c = = ' * ' ) {
if ( seen_slash ) {
level + + ;
seen_star = seen_slash = 0 ;
continue ;
}
seen_star = 1 ;
continue ;
}
seen_star = seen_slash = 0 ;
if ( c = = ' \n ' ) {
lineno + + ;
continue ;
}
}
if ( c = = EOF )
unterminated ( " comment " , start_lineno ) ;
}
YY_BREAK
case 87 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 212 "lex.l"
2006-04-06 11:32:54 +00:00
{
int start_lineno = lineno ;
int c ;
char buf [ 1024 ] ;
char * p = buf ;
int f = 0 ;
int skip_ws = 0 ;
while ( ( c = input ( ) ) ! = EOF ) {
if ( isspace ( c ) & & skip_ws ) {
if ( c = = ' \n ' )
lineno + + ;
continue ;
}
skip_ws = 0 ;
if ( c = = ' " ' ) {
if ( f ) {
* p + + = ' " ' ;
f = 0 ;
} else
f = 1 ;
continue ;
}
if ( f = = 1 ) {
unput ( c ) ;
break ;
}
if ( c = = ' \n ' ) {
lineno + + ;
while ( p > buf & & isspace ( ( unsigned char ) p [ - 1 ] ) )
p - - ;
skip_ws = 1 ;
continue ;
}
* p + + = c ;
}
if ( c = = EOF )
unterminated ( " string " , start_lineno ) ;
* p + + = ' \0 ' ;
fprintf ( stderr , " string -- %s \n " , buf ) ;
yylval . name = estrdup ( buf ) ;
return STRING ;
}
YY_BREAK
case 88 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 257 "lex.l"
2006-04-06 11:32:54 +00:00
{ char * e , * y = yytext ;
yylval . constant = strtol ( ( const char * ) yytext ,
& e , 0 ) ;
if ( e = = y )
error_message ( " malformed constant (%s) " , yytext ) ;
else
return NUMBER ;
}
YY_BREAK
case 89 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 265 "lex.l"
2006-04-06 11:32:54 +00:00
{
yylval . name = estrdup ( ( const char * ) yytext ) ;
return IDENTIFIER ;
}
YY_BREAK
case 90 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 269 "lex.l"
2006-04-06 11:32:54 +00:00
;
YY_BREAK
case 91 :
2007-06-13 05:44:24 +00:00
/* rule 91 can match eol */
2006-04-06 11:32:54 +00:00
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 270 "lex.l"
2006-04-06 11:32:54 +00:00
{ + + lineno ; }
YY_BREAK
case 92 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 271 "lex.l"
2006-04-06 11:32:54 +00:00
{ return ELLIPSIS ; }
YY_BREAK
case 93 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 272 "lex.l"
2006-04-06 11:32:54 +00:00
{ return RANGE ; }
YY_BREAK
case 94 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 273 "lex.l"
2006-04-06 11:32:54 +00:00
{ error_message ( " Ignoring char(%c) \n " , * yytext ) ; }
YY_BREAK
case 95 :
YY_RULE_SETUP
2006-11-07 06:59:56 +00:00
# line 274 "lex.l"
2006-04-06 11:32:54 +00:00
ECHO ;
YY_BREAK
2007-07-03 08:00:08 +00:00
# line 1679 "lex.c"
2006-04-06 11:32:54 +00:00
case YY_STATE_EOF ( INITIAL ) :
yyterminate ( ) ;
case YY_END_OF_BUFFER :
{
/* Amount of text matched not including the EOB char. */
2007-06-13 05:44:24 +00:00
int yy_amount_of_matched_text = ( int ) ( yy_cp - ( yytext_ptr ) ) - 1 ;
2006-04-06 11:32:54 +00:00
/* Undo the effects of YY_DO_BEFORE_ACTION. */
2007-06-13 05:44:24 +00:00
* yy_cp = ( yy_hold_char ) ;
2006-04-06 11:32:54 +00:00
YY_RESTORE_YY_MORE_OFFSET
2007-06-13 05:44:24 +00:00
if ( YY_CURRENT_BUFFER_LVALUE - > yy_buffer_status = = YY_BUFFER_NEW )
2006-04-06 11:32:54 +00:00
{
/* We're scanning a new file or input source. It's
* possible that this happened because the user
* just pointed yyin at a new source and called
* yylex ( ) . If so , then we have to assure
2007-06-13 05:44:24 +00:00
* consistency between YY_CURRENT_BUFFER and our
2006-04-06 11:32:54 +00:00
* globals . Here is the right place to do so , because
* this is the first action ( other than possibly a
* back - up ) that will match for the new input source .
*/
2007-06-13 05:44:24 +00:00
( yy_n_chars ) = YY_CURRENT_BUFFER_LVALUE - > yy_n_chars ;
YY_CURRENT_BUFFER_LVALUE - > yy_input_file = yyin ;
YY_CURRENT_BUFFER_LVALUE - > yy_buffer_status = YY_BUFFER_NORMAL ;
2006-04-06 11:32:54 +00:00
}
/* Note that here we test for yy_c_buf_p "<=" to the position
* of the first EOB in the buffer , since yy_c_buf_p will
* already have been incremented past the NUL character
* ( since all states make transitions on EOB to the
* end - of - buffer state ) . Contrast this with the test
* in input ( ) .
*/
2007-06-13 05:44:24 +00:00
if ( ( yy_c_buf_p ) < = & YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ ( yy_n_chars ) ] )
2006-04-06 11:32:54 +00:00
{ /* This was really a NUL. */
yy_state_type yy_next_state ;
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) = ( yytext_ptr ) + yy_amount_of_matched_text ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
yy_current_state = yy_get_previous_state ( ) ;
2006-04-06 11:32:54 +00:00
/* Okay, we're now positioned to make the NUL
* transition . We couldn ' t have
* yy_get_previous_state ( ) go ahead and do it
* for us because it doesn ' t know how to deal
* with the possibility of jamming ( and we don ' t
* want to build jamming into it because then it
* will run more slowly ) .
*/
yy_next_state = yy_try_NUL_trans ( yy_current_state ) ;
2007-06-13 05:44:24 +00:00
yy_bp = ( yytext_ptr ) + YY_MORE_ADJ ;
2006-04-06 11:32:54 +00:00
if ( yy_next_state )
{
/* Consume the NUL. */
2007-06-13 05:44:24 +00:00
yy_cp = + + ( yy_c_buf_p ) ;
2006-04-06 11:32:54 +00:00
yy_current_state = yy_next_state ;
goto yy_match ;
}
else
{
2007-06-13 05:44:24 +00:00
yy_cp = ( yy_c_buf_p ) ;
2006-04-06 11:32:54 +00:00
goto yy_find_action ;
}
}
2007-06-13 05:44:24 +00:00
else switch ( yy_get_next_buffer ( ) )
2006-04-06 11:32:54 +00:00
{
case EOB_ACT_END_OF_FILE :
{
2007-06-13 05:44:24 +00:00
( yy_did_buffer_switch_on_eof ) = 0 ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
if ( yywrap ( ) )
2006-04-06 11:32:54 +00:00
{
/* Note: because we've taken care in
* yy_get_next_buffer ( ) to have set up
* yytext , we can now set up
* yy_c_buf_p so that if some total
* hoser ( like flex itself ) wants to
* call the scanner after we return the
* YY_NULL , it ' ll still work - another
* YY_NULL will get returned .
*/
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) = ( yytext_ptr ) + YY_MORE_ADJ ;
2006-04-06 11:32:54 +00:00
yy_act = YY_STATE_EOF ( YY_START ) ;
goto do_action ;
}
else
{
2007-06-13 05:44:24 +00:00
if ( ! ( yy_did_buffer_switch_on_eof ) )
2006-04-06 11:32:54 +00:00
YY_NEW_FILE ;
}
break ;
}
case EOB_ACT_CONTINUE_SCAN :
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) =
( yytext_ptr ) + yy_amount_of_matched_text ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
yy_current_state = yy_get_previous_state ( ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
yy_cp = ( yy_c_buf_p ) ;
yy_bp = ( yytext_ptr ) + YY_MORE_ADJ ;
2006-04-06 11:32:54 +00:00
goto yy_match ;
case EOB_ACT_LAST_MATCH :
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) =
& YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ ( yy_n_chars ) ] ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
yy_current_state = yy_get_previous_state ( ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
yy_cp = ( yy_c_buf_p ) ;
yy_bp = ( yytext_ptr ) + YY_MORE_ADJ ;
2006-04-06 11:32:54 +00:00
goto yy_find_action ;
}
break ;
}
default :
YY_FATAL_ERROR (
" fatal flex scanner internal error--no action found " ) ;
} /* end of action switch */
} /* end of scanning one token */
2007-06-13 05:44:24 +00:00
} /* end of yylex */
2006-04-06 11:32:54 +00:00
/* yy_get_next_buffer - try to read in a new buffer
*
* Returns a code representing an action :
* EOB_ACT_LAST_MATCH -
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
* EOB_ACT_END_OF_FILE - end of file
*/
2007-06-13 05:44:24 +00:00
static int yy_get_next_buffer ( void )
{
register char * dest = YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf ;
register char * source = ( yytext_ptr ) ;
2006-04-06 11:32:54 +00:00
register int number_to_move , i ;
int ret_val ;
2007-06-13 05:44:24 +00:00
if ( ( yy_c_buf_p ) > & YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ ( yy_n_chars ) + 1 ] )
2006-04-06 11:32:54 +00:00
YY_FATAL_ERROR (
" fatal flex scanner internal error--end of buffer missed " ) ;
2007-06-13 05:44:24 +00:00
if ( YY_CURRENT_BUFFER_LVALUE - > yy_fill_buffer = = 0 )
2006-04-06 11:32:54 +00:00
{ /* Don't try to fill the buffer, so this is an EOF. */
2007-06-13 05:44:24 +00:00
if ( ( yy_c_buf_p ) - ( yytext_ptr ) - YY_MORE_ADJ = = 1 )
2006-04-06 11:32:54 +00:00
{
/* We matched a single character, the EOB, so
* treat this as a final EOF .
*/
return EOB_ACT_END_OF_FILE ;
}
else
{
/* We matched some text prior to the EOB, first
* process it .
*/
return EOB_ACT_LAST_MATCH ;
}
}
/* Try to read more data. */
/* First move last chars to start of buffer. */
2007-06-13 05:44:24 +00:00
number_to_move = ( int ) ( ( yy_c_buf_p ) - ( yytext_ptr ) ) - 1 ;
2006-04-06 11:32:54 +00:00
for ( i = 0 ; i < number_to_move ; + + i )
* ( dest + + ) = * ( source + + ) ;
2007-06-13 05:44:24 +00:00
if ( YY_CURRENT_BUFFER_LVALUE - > yy_buffer_status = = YY_BUFFER_EOF_PENDING )
2006-04-06 11:32:54 +00:00
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
2007-06-13 05:44:24 +00:00
YY_CURRENT_BUFFER_LVALUE - > yy_n_chars = ( yy_n_chars ) = 0 ;
2006-04-06 11:32:54 +00:00
else
{
2007-06-13 05:44:24 +00:00
int num_to_read =
YY_CURRENT_BUFFER_LVALUE - > yy_buf_size - number_to_move - 1 ;
2006-04-06 11:32:54 +00:00
while ( num_to_read < = 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
2007-06-13 05:44:24 +00:00
YY_BUFFER_STATE b = YY_CURRENT_BUFFER ;
2006-04-06 11:32:54 +00:00
int yy_c_buf_p_offset =
2007-06-13 05:44:24 +00:00
( int ) ( ( yy_c_buf_p ) - b - > yy_ch_buf ) ;
2006-04-06 11:32:54 +00:00
if ( b - > yy_is_our_buffer )
{
int new_size = b - > yy_buf_size * 2 ;
if ( new_size < = 0 )
b - > yy_buf_size + = b - > yy_buf_size / 8 ;
else
b - > yy_buf_size * = 2 ;
b - > yy_ch_buf = ( char * )
/* Include room in for 2 EOB chars. */
2007-06-13 05:44:24 +00:00
yyrealloc ( ( void * ) b - > yy_ch_buf , b - > yy_buf_size + 2 ) ;
2006-04-06 11:32:54 +00:00
}
else
/* Can't grow it, we don't own it. */
b - > yy_ch_buf = 0 ;
if ( ! b - > yy_ch_buf )
YY_FATAL_ERROR (
" fatal error - scanner input buffer overflow " ) ;
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) = & b - > yy_ch_buf [ yy_c_buf_p_offset ] ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
num_to_read = YY_CURRENT_BUFFER_LVALUE - > yy_buf_size -
2006-04-06 11:32:54 +00:00
number_to_move - 1 ;
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
}
if ( num_to_read > YY_READ_BUF_SIZE )
num_to_read = YY_READ_BUF_SIZE ;
/* Read in more data. */
2007-06-13 05:44:24 +00:00
YY_INPUT ( ( & YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ number_to_move ] ) ,
( yy_n_chars ) , num_to_read ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
YY_CURRENT_BUFFER_LVALUE - > yy_n_chars = ( yy_n_chars ) ;
2006-04-06 11:32:54 +00:00
}
2007-06-13 05:44:24 +00:00
if ( ( yy_n_chars ) = = 0 )
2006-04-06 11:32:54 +00:00
{
if ( number_to_move = = YY_MORE_ADJ )
{
ret_val = EOB_ACT_END_OF_FILE ;
2007-06-13 05:44:24 +00:00
yyrestart ( yyin ) ;
2006-04-06 11:32:54 +00:00
}
else
{
ret_val = EOB_ACT_LAST_MATCH ;
2007-06-13 05:44:24 +00:00
YY_CURRENT_BUFFER_LVALUE - > yy_buffer_status =
2006-04-06 11:32:54 +00:00
YY_BUFFER_EOF_PENDING ;
}
}
else
ret_val = EOB_ACT_CONTINUE_SCAN ;
2007-06-13 05:44:24 +00:00
( yy_n_chars ) + = number_to_move ;
YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ ( yy_n_chars ) ] = YY_END_OF_BUFFER_CHAR ;
YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ ( yy_n_chars ) + 1 ] = YY_END_OF_BUFFER_CHAR ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
( yytext_ptr ) = & YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ 0 ] ;
2006-04-06 11:32:54 +00:00
return ret_val ;
2007-06-13 05:44:24 +00:00
}
2006-04-06 11:32:54 +00:00
/* yy_get_previous_state - get the state just before the EOB char was reached */
2007-06-13 05:44:24 +00:00
static yy_state_type yy_get_previous_state ( void )
{
2006-04-06 11:32:54 +00:00
register yy_state_type yy_current_state ;
register char * yy_cp ;
2007-06-13 05:44:24 +00:00
yy_current_state = ( yy_start ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
for ( yy_cp = ( yytext_ptr ) + YY_MORE_ADJ ; yy_cp < ( yy_c_buf_p ) ; + + yy_cp )
2006-04-06 11:32:54 +00:00
{
register YY_CHAR yy_c = ( * yy_cp ? yy_ec [ YY_SC_TO_UI ( * yy_cp ) ] : 1 ) ;
if ( yy_accept [ yy_current_state ] )
{
2007-06-13 05:44:24 +00:00
( yy_last_accepting_state ) = yy_current_state ;
( yy_last_accepting_cpos ) = yy_cp ;
2006-04-06 11:32:54 +00:00
}
while ( yy_chk [ yy_base [ yy_current_state ] + yy_c ] ! = yy_current_state )
{
yy_current_state = ( int ) yy_def [ yy_current_state ] ;
if ( yy_current_state > = 568 )
yy_c = yy_meta [ ( unsigned int ) yy_c ] ;
}
yy_current_state = yy_nxt [ yy_base [ yy_current_state ] + ( unsigned int ) yy_c ] ;
}
return yy_current_state ;
2007-06-13 05:44:24 +00:00
}
2006-04-06 11:32:54 +00:00
/* yy_try_NUL_trans - try to make a transition on the NUL character
*
* synopsis
* next_state = yy_try_NUL_trans ( current_state ) ;
*/
2007-06-13 05:44:24 +00:00
static yy_state_type yy_try_NUL_trans ( yy_state_type yy_current_state )
{
2006-04-06 11:32:54 +00:00
register int yy_is_jam ;
2007-06-13 05:44:24 +00:00
register char * yy_cp = ( yy_c_buf_p ) ;
2006-04-06 11:32:54 +00:00
register YY_CHAR yy_c = 1 ;
if ( yy_accept [ yy_current_state ] )
{
2007-06-13 05:44:24 +00:00
( yy_last_accepting_state ) = yy_current_state ;
( yy_last_accepting_cpos ) = yy_cp ;
2006-04-06 11:32:54 +00:00
}
while ( yy_chk [ yy_base [ yy_current_state ] + yy_c ] ! = yy_current_state )
{
yy_current_state = ( int ) yy_def [ yy_current_state ] ;
if ( yy_current_state > = 568 )
yy_c = yy_meta [ ( unsigned int ) yy_c ] ;
}
yy_current_state = yy_nxt [ yy_base [ yy_current_state ] + ( unsigned int ) yy_c ] ;
yy_is_jam = ( yy_current_state = = 567 ) ;
return yy_is_jam ? 0 : yy_current_state ;
2007-06-13 05:44:24 +00:00
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
static void yyunput ( int c , register char * yy_bp )
{
register char * yy_cp ;
yy_cp = ( yy_c_buf_p ) ;
2006-04-06 11:32:54 +00:00
/* undo effects of setting up yytext */
2007-06-13 05:44:24 +00:00
* yy_cp = ( yy_hold_char ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf + 2 )
2006-04-06 11:32:54 +00:00
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
2007-06-13 05:44:24 +00:00
register int number_to_move = ( yy_n_chars ) + 2 ;
register char * dest = & YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [
YY_CURRENT_BUFFER_LVALUE - > yy_buf_size + 2 ] ;
2006-04-06 11:32:54 +00:00
register char * source =
2007-06-13 05:44:24 +00:00
& YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ number_to_move ] ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
while ( source > YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf )
2006-04-06 11:32:54 +00:00
* - - dest = * - - source ;
yy_cp + = ( int ) ( dest - source ) ;
yy_bp + = ( int ) ( dest - source ) ;
2007-06-13 05:44:24 +00:00
YY_CURRENT_BUFFER_LVALUE - > yy_n_chars =
( yy_n_chars ) = YY_CURRENT_BUFFER_LVALUE - > yy_buf_size ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf + 2 )
2006-04-06 11:32:54 +00:00
YY_FATAL_ERROR ( " flex scanner push-back overflow " ) ;
}
* - - yy_cp = ( char ) c ;
2007-06-13 05:44:24 +00:00
( yytext_ptr ) = yy_bp ;
( yy_hold_char ) = * yy_cp ;
( yy_c_buf_p ) = yy_cp ;
}
2006-04-06 11:32:54 +00:00
# ifndef YY_NO_INPUT
# ifdef __cplusplus
2007-06-13 05:44:24 +00:00
static int yyinput ( void )
2006-04-06 11:32:54 +00:00
# else
2007-06-13 05:44:24 +00:00
static int input ( void )
2006-04-06 11:32:54 +00:00
# endif
2006-11-07 06:59:56 +00:00
2007-06-13 05:44:24 +00:00
{
int c ;
* ( yy_c_buf_p ) = ( yy_hold_char ) ;
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
if ( * ( yy_c_buf_p ) = = YY_END_OF_BUFFER_CHAR )
2006-04-06 11:32:54 +00:00
{
/* yy_c_buf_p now points to the character we want to return.
* If this occurs * before * the EOB characters , then it ' s a
* valid NUL ; if not , then we ' ve hit the end of the buffer .
*/
2007-06-13 05:44:24 +00:00
if ( ( yy_c_buf_p ) < & YY_CURRENT_BUFFER_LVALUE - > yy_ch_buf [ ( yy_n_chars ) ] )
2006-04-06 11:32:54 +00:00
/* This was really a NUL. */
2007-06-13 05:44:24 +00:00
* ( yy_c_buf_p ) = ' \0 ' ;
2006-04-06 11:32:54 +00:00
else
{ /* need more input */
2007-06-13 05:44:24 +00:00
int offset = ( yy_c_buf_p ) - ( yytext_ptr ) ;
+ + ( yy_c_buf_p ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
switch ( yy_get_next_buffer ( ) )
2006-04-06 11:32:54 +00:00
{
case EOB_ACT_LAST_MATCH :
/* This happens because yy_g_n_b()
* sees that we ' ve accumulated a
* token and flags that we need to
* try matching the token before
* proceeding . But for input ( ) ,
* there ' s no matching to consider .
* So convert the EOB_ACT_LAST_MATCH
* to EOB_ACT_END_OF_FILE .
*/
/* Reset buffer status. */
2007-06-13 05:44:24 +00:00
yyrestart ( yyin ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/*FALLTHROUGH*/
2006-04-06 11:32:54 +00:00
case EOB_ACT_END_OF_FILE :
{
2007-06-13 05:44:24 +00:00
if ( yywrap ( ) )
2006-04-06 11:32:54 +00:00
return EOF ;
2007-06-13 05:44:24 +00:00
if ( ! ( yy_did_buffer_switch_on_eof ) )
2006-04-06 11:32:54 +00:00
YY_NEW_FILE ;
# ifdef __cplusplus
return yyinput ( ) ;
# else
return input ( ) ;
# endif
}
case EOB_ACT_CONTINUE_SCAN :
2007-06-13 05:44:24 +00:00
( yy_c_buf_p ) = ( yytext_ptr ) + offset ;
2006-04-06 11:32:54 +00:00
break ;
}
}
}
2007-06-13 05:44:24 +00:00
c = * ( unsigned char * ) ( yy_c_buf_p ) ; /* cast for 8-bit char's */
* ( yy_c_buf_p ) = ' \0 ' ; /* preserve yytext */
( yy_hold_char ) = * + + ( yy_c_buf_p ) ;
2006-04-06 11:32:54 +00:00
return c ;
2007-06-13 05:44:24 +00:00
}
# endif /* ifndef YY_NO_INPUT */
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
/** Immediately switch to a different input stream.
* @ param input_file A readable stream .
*
* @ note This function does not reset the start condition to @ c INITIAL .
*/
void yyrestart ( FILE * input_file )
{
if ( ! YY_CURRENT_BUFFER ) {
yyensure_buffer_stack ( ) ;
YY_CURRENT_BUFFER_LVALUE =
yy_create_buffer ( yyin , YY_BUF_SIZE ) ;
2006-04-06 11:32:54 +00:00
}
2007-06-13 05:44:24 +00:00
yy_init_buffer ( YY_CURRENT_BUFFER , input_file ) ;
yy_load_buffer_state ( ) ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/** Switch to a different input buffer.
* @ param new_buffer The new input buffer .
*
*/
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer )
{
/* TODO. We should be able to replace this entire function body
* with
* yypop_buffer_state ( ) ;
* yypush_buffer_state ( new_buffer ) ;
*/
yyensure_buffer_stack ( ) ;
if ( YY_CURRENT_BUFFER = = new_buffer )
2006-04-06 11:32:54 +00:00
return ;
2007-06-13 05:44:24 +00:00
if ( YY_CURRENT_BUFFER )
2006-04-06 11:32:54 +00:00
{
/* Flush out information for old buffer. */
2007-06-13 05:44:24 +00:00
* ( yy_c_buf_p ) = ( yy_hold_char ) ;
YY_CURRENT_BUFFER_LVALUE - > yy_buf_pos = ( yy_c_buf_p ) ;
YY_CURRENT_BUFFER_LVALUE - > yy_n_chars = ( yy_n_chars ) ;
2006-04-06 11:32:54 +00:00
}
2007-06-13 05:44:24 +00:00
YY_CURRENT_BUFFER_LVALUE = new_buffer ;
yy_load_buffer_state ( ) ;
2006-04-06 11:32:54 +00:00
/* We don't actually know whether we did this switch during
* EOF ( yywrap ( ) ) processing , but the only time this flag
* is looked at is after yywrap ( ) is called , so it ' s safe
* to go ahead and always set it .
*/
2007-06-13 05:44:24 +00:00
( yy_did_buffer_switch_on_eof ) = 1 ;
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
static void yy_load_buffer_state ( void )
{
( yy_n_chars ) = YY_CURRENT_BUFFER_LVALUE - > yy_n_chars ;
( yytext_ptr ) = ( yy_c_buf_p ) = YY_CURRENT_BUFFER_LVALUE - > yy_buf_pos ;
yyin = YY_CURRENT_BUFFER_LVALUE - > yy_input_file ;
( yy_hold_char ) = * ( yy_c_buf_p ) ;
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
/** Allocate and initialize an input buffer state.
* @ param file A readable stream .
* @ param size The character buffer size in bytes . When in doubt , use @ c YY_BUF_SIZE .
*
* @ return the allocated buffer state .
*/
YY_BUFFER_STATE yy_create_buffer ( FILE * file , int size )
{
2006-04-06 11:32:54 +00:00
YY_BUFFER_STATE b ;
2007-06-13 05:44:24 +00:00
b = ( YY_BUFFER_STATE ) yyalloc ( sizeof ( struct yy_buffer_state ) ) ;
2006-04-06 11:32:54 +00:00
if ( ! b )
YY_FATAL_ERROR ( " out of dynamic memory in yy_create_buffer() " ) ;
b - > yy_buf_size = size ;
/* yy_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end - of - buffer characters .
*/
2007-06-13 05:44:24 +00:00
b - > yy_ch_buf = ( char * ) yyalloc ( b - > yy_buf_size + 2 ) ;
2006-04-06 11:32:54 +00:00
if ( ! b - > yy_ch_buf )
YY_FATAL_ERROR ( " out of dynamic memory in yy_create_buffer() " ) ;
b - > yy_is_our_buffer = 1 ;
2007-06-13 05:44:24 +00:00
yy_init_buffer ( b , file ) ;
2006-04-06 11:32:54 +00:00
return b ;
2007-06-13 05:44:24 +00:00
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
/** Destroy the buffer.
* @ param b a buffer created with yy_create_buffer ( )
*
*/
void yy_delete_buffer ( YY_BUFFER_STATE b )
{
2006-04-06 11:32:54 +00:00
if ( ! b )
return ;
2007-06-13 05:44:24 +00:00
if ( b = = YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
YY_CURRENT_BUFFER_LVALUE = ( YY_BUFFER_STATE ) 0 ;
2006-04-06 11:32:54 +00:00
if ( b - > yy_is_our_buffer )
2007-06-13 05:44:24 +00:00
yyfree ( ( void * ) b - > yy_ch_buf ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
yyfree ( ( void * ) b ) ;
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
# ifndef __cplusplus
extern int isatty ( int ) ;
# endif /* __cplusplus */
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer ,
* such as during a yyrestart ( ) or at EOF .
*/
static void yy_init_buffer ( YY_BUFFER_STATE b , FILE * file )
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
{
int oerrno = errno ;
yy_flush_buffer ( b ) ;
2006-04-06 11:32:54 +00:00
b - > yy_input_file = file ;
b - > yy_fill_buffer = 1 ;
2007-06-13 05:44:24 +00:00
/* If b is the current buffer, then yy_init_buffer was _probably_
* called from yyrestart ( ) or through yy_get_next_buffer .
* In that case , we don ' t want to reset the lineno or column .
*/
if ( b ! = YY_CURRENT_BUFFER ) {
b - > yy_bs_lineno = 1 ;
b - > yy_bs_column = 0 ;
}
b - > yy_is_interactive = file ? ( isatty ( fileno ( file ) ) > 0 ) : 0 ;
errno = oerrno ;
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
* @ param b the buffer state to be flushed , usually @ c YY_CURRENT_BUFFER .
*
*/
void yy_flush_buffer ( YY_BUFFER_STATE b )
{
if ( ! b )
2006-04-06 11:32:54 +00:00
return ;
b - > yy_n_chars = 0 ;
/* We always need two end-of-buffer characters. The first causes
* a transition to the end - of - buffer state . The second causes
* a jam in that state .
*/
b - > yy_ch_buf [ 0 ] = YY_END_OF_BUFFER_CHAR ;
b - > yy_ch_buf [ 1 ] = YY_END_OF_BUFFER_CHAR ;
b - > yy_buf_pos = & b - > yy_ch_buf [ 0 ] ;
b - > yy_at_bol = 1 ;
b - > yy_buffer_status = YY_BUFFER_NEW ;
2007-06-13 05:44:24 +00:00
if ( b = = YY_CURRENT_BUFFER )
yy_load_buffer_state ( ) ;
}
/** Pushes the new state onto the stack. The new state becomes
* the current state . This function will allocate the stack
* if necessary .
* @ param new_buffer The new state .
*
*/
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer )
{
if ( new_buffer = = NULL )
return ;
yyensure_buffer_stack ( ) ;
/* This block is copied from yy_switch_to_buffer. */
if ( YY_CURRENT_BUFFER )
{
/* Flush out information for old buffer. */
* ( yy_c_buf_p ) = ( yy_hold_char ) ;
YY_CURRENT_BUFFER_LVALUE - > yy_buf_pos = ( yy_c_buf_p ) ;
YY_CURRENT_BUFFER_LVALUE - > yy_n_chars = ( yy_n_chars ) ;
}
/* Only push if top exists. Otherwise, replace top. */
if ( YY_CURRENT_BUFFER )
( yy_buffer_stack_top ) + + ;
YY_CURRENT_BUFFER_LVALUE = new_buffer ;
/* copied from yy_switch_to_buffer. */
yy_load_buffer_state ( ) ;
( yy_did_buffer_switch_on_eof ) = 1 ;
}
/** Removes and deletes the top of the stack, if present.
* The next element becomes the new top .
*
*/
void yypop_buffer_state ( void )
{
if ( ! YY_CURRENT_BUFFER )
return ;
yy_delete_buffer ( YY_CURRENT_BUFFER ) ;
YY_CURRENT_BUFFER_LVALUE = NULL ;
if ( ( yy_buffer_stack_top ) > 0 )
- - ( yy_buffer_stack_top ) ;
if ( YY_CURRENT_BUFFER ) {
yy_load_buffer_state ( ) ;
( yy_did_buffer_switch_on_eof ) = 1 ;
2007-01-10 11:16:11 +00:00
}
2007-06-13 05:44:24 +00:00
}
2006-08-30 11:29:34 +00:00
2007-06-13 05:44:24 +00:00
/* Allocates the stack if it does not exist.
* Guarantees space for at least one push .
*/
static void yyensure_buffer_stack ( void )
{
int num_to_alloc ;
if ( ! ( yy_buffer_stack ) ) {
/* First allocation is just for 2 elements, since we don't know if this
* scanner will even need a stack . We use 2 instead of 1 to avoid an
* immediate realloc on the next call .
*/
num_to_alloc = 1 ;
( yy_buffer_stack ) = ( struct yy_buffer_state * * ) yyalloc
( num_to_alloc * sizeof ( struct yy_buffer_state * )
) ;
memset ( ( yy_buffer_stack ) , 0 , num_to_alloc * sizeof ( struct yy_buffer_state * ) ) ;
( yy_buffer_stack_max ) = num_to_alloc ;
( yy_buffer_stack_top ) = 0 ;
return ;
}
2006-11-07 06:59:56 +00:00
2007-06-13 05:44:24 +00:00
if ( ( yy_buffer_stack_top ) > = ( ( yy_buffer_stack_max ) ) - 1 ) {
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
/* Increase the buffer to prepare for a possible push. */
int grow_size = 8 /* arbitrary grow size */ ;
num_to_alloc = ( yy_buffer_stack_max ) + grow_size ;
( yy_buffer_stack ) = ( struct yy_buffer_state * * ) yyrealloc
( ( yy_buffer_stack ) ,
num_to_alloc * sizeof ( struct yy_buffer_state * )
) ;
/* zero only the new slots.*/
memset ( ( yy_buffer_stack ) + ( yy_buffer_stack_max ) , 0 , grow_size * sizeof ( struct yy_buffer_state * ) ) ;
( yy_buffer_stack_max ) = num_to_alloc ;
}
}
/** Setup the input buffer state to scan directly from a user-specified character buffer.
* @ param base the character buffer
* @ param size the size in bytes of the character buffer
*
* @ return the newly allocated buffer state object .
*/
YY_BUFFER_STATE yy_scan_buffer ( char * base , yy_size_t size )
{
YY_BUFFER_STATE b ;
2006-04-06 11:32:54 +00:00
if ( size < 2 | |
base [ size - 2 ] ! = YY_END_OF_BUFFER_CHAR | |
base [ size - 1 ] ! = YY_END_OF_BUFFER_CHAR )
/* They forgot to leave room for the EOB's. */
return 0 ;
2007-06-13 05:44:24 +00:00
b = ( YY_BUFFER_STATE ) yyalloc ( sizeof ( struct yy_buffer_state ) ) ;
2006-04-06 11:32:54 +00:00
if ( ! b )
YY_FATAL_ERROR ( " out of dynamic memory in yy_scan_buffer() " ) ;
b - > yy_buf_size = size - 2 ; /* "- 2" to take care of EOB's */
b - > yy_buf_pos = b - > yy_ch_buf = base ;
b - > yy_is_our_buffer = 0 ;
b - > yy_input_file = 0 ;
b - > yy_n_chars = b - > yy_buf_size ;
b - > yy_is_interactive = 0 ;
b - > yy_at_bol = 1 ;
b - > yy_fill_buffer = 0 ;
b - > yy_buffer_status = YY_BUFFER_NEW ;
2007-06-13 05:44:24 +00:00
yy_switch_to_buffer ( b ) ;
2006-04-06 11:32:54 +00:00
return b ;
2007-06-13 05:44:24 +00:00
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @ e copy of @ a str .
* @ param str a NUL - terminated string to scan
*
* @ return the newly allocated buffer state object .
* @ note If you want to scan bytes that may contain NUL values , then use
* yy_scan_bytes ( ) instead .
*/
YY_BUFFER_STATE yy_scan_string ( yyconst char * yystr )
{
return yy_scan_bytes ( yystr , strlen ( yystr ) ) ;
}
2007-01-10 11:50:33 +00:00
2007-06-13 05:44:24 +00:00
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @ e copy of @ a bytes .
* @ param bytes the byte buffer to scan
* @ param len the number of bytes in the buffer pointed to by @ a bytes .
*
* @ return the newly allocated buffer state object .
*/
YY_BUFFER_STATE yy_scan_bytes ( yyconst char * yybytes , int _yybytes_len )
{
2006-04-06 11:32:54 +00:00
YY_BUFFER_STATE b ;
char * buf ;
yy_size_t n ;
int i ;
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
/* Get memory for full buffer, including space for trailing EOB's. */
2007-06-13 05:44:24 +00:00
n = _yybytes_len + 2 ;
buf = ( char * ) yyalloc ( n ) ;
2006-04-06 11:32:54 +00:00
if ( ! buf )
YY_FATAL_ERROR ( " out of dynamic memory in yy_scan_bytes() " ) ;
2007-06-13 05:44:24 +00:00
for ( i = 0 ; i < _yybytes_len ; + + i )
buf [ i ] = yybytes [ i ] ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
buf [ _yybytes_len ] = buf [ _yybytes_len + 1 ] = YY_END_OF_BUFFER_CHAR ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
b = yy_scan_buffer ( buf , n ) ;
2006-04-06 11:32:54 +00:00
if ( ! b )
YY_FATAL_ERROR ( " bad buffer in yy_scan_bytes() " ) ;
/* It's okay to grow etc. this buffer, and we should throw it
* away when we ' re done .
*/
b - > yy_is_our_buffer = 1 ;
return b ;
2007-06-13 05:44:24 +00:00
}
# ifndef YY_EXIT_FAILURE
# define YY_EXIT_FAILURE 2
2006-04-24 09:36:24 +00:00
# endif
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
static void yy_fatal_error ( yyconst char * msg )
{
( void ) fprintf ( stderr , " %s \n " , msg ) ;
exit ( YY_EXIT_FAILURE ) ;
}
/* Redefine yyless() so it works in section 3 code. */
2006-04-24 09:36:24 +00:00
2007-06-13 05:44:24 +00:00
# undef yyless
# define yyless(n) \
do \
{ \
/* Undo effects of setting up yytext. */ \
int yyless_macro_arg = ( n ) ; \
YY_LESS_LINENO ( yyless_macro_arg ) ; \
yytext [ yyleng ] = ( yy_hold_char ) ; \
( yy_c_buf_p ) = yytext + yyless_macro_arg ; \
( yy_hold_char ) = * ( yy_c_buf_p ) ; \
* ( yy_c_buf_p ) = ' \0 ' ; \
yyleng = yyless_macro_arg ; \
} \
while ( 0 )
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* Accessor methods (get/set functions) to struct members. */
2006-04-06 11:32:54 +00:00
2007-07-03 08:00:08 +00:00
/** Get the current line number.
*
*/
int yyget_lineno ( void )
{
return yylineno ;
}
2007-06-13 05:44:24 +00:00
/** Get the input stream.
*
*/
FILE * yyget_in ( void )
{
return yyin ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/** Get the output stream.
*
*/
FILE * yyget_out ( void )
{
return yyout ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/** Get the length of the current token.
*
*/
int yyget_leng ( void )
{
return yyleng ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/** Get the current token.
*
*/
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
char * yyget_text ( void )
{
return yytext ;
}
2006-04-06 11:32:54 +00:00
2007-07-03 08:00:08 +00:00
/** Set the current line number.
* @ param line_number
*
*/
void yyset_lineno ( int line_number )
{
yylineno = line_number ;
}
2007-06-13 05:44:24 +00:00
/** Set the input stream. This does not discard the current
* input buffer .
* @ param in_str A readable stream .
*
* @ see yy_switch_to_buffer
*/
void yyset_in ( FILE * in_str )
{
yyin = in_str ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
void yyset_out ( FILE * out_str )
{
yyout = out_str ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
int yyget_debug ( void )
{
return yy_flex_debug ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
void yyset_debug ( int bdebug )
{
yy_flex_debug = bdebug ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
static int yy_init_globals ( void )
{
/* Initialization is the same as for the non-reentrant scanner.
* This function is called from yylex_destroy ( ) , so don ' t allocate here .
*/
( yy_buffer_stack ) = 0 ;
( yy_buffer_stack_top ) = 0 ;
( yy_buffer_stack_max ) = 0 ;
( yy_c_buf_p ) = ( char * ) 0 ;
( yy_init ) = 0 ;
( yy_start ) = 0 ;
/* Defined in main.c */
# ifdef YY_STDINIT
yyin = stdin ;
yyout = stdout ;
2006-04-24 09:36:24 +00:00
# else
2007-06-13 05:44:24 +00:00
yyin = ( FILE * ) 0 ;
yyout = ( FILE * ) 0 ;
2006-04-24 09:36:24 +00:00
# endif
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* For future reference: Set errno on error, since we are called by
* yylex_init ( )
*/
return 0 ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy ( void )
{
/* Pop the buffer stack, destroying each element. */
while ( YY_CURRENT_BUFFER ) {
yy_delete_buffer ( YY_CURRENT_BUFFER ) ;
YY_CURRENT_BUFFER_LVALUE = NULL ;
yypop_buffer_state ( ) ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* Destroy the stack itself. */
yyfree ( ( yy_buffer_stack ) ) ;
( yy_buffer_stack ) = NULL ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/* Reset the globals. This is important in a non-reentrant scanner so the next time
* yylex ( ) is called , initialization will occur . */
yy_init_globals ( ) ;
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
return 0 ;
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
/*
* Internal utility routines .
*/
2006-04-06 11:32:54 +00:00
# ifndef yytext_ptr
2007-06-13 05:44:24 +00:00
static void yy_flex_strncpy ( char * s1 , yyconst char * s2 , int n )
{
2006-04-06 11:32:54 +00:00
register int i ;
2006-04-24 09:36:24 +00:00
for ( i = 0 ; i < n ; + + i )
2006-04-06 11:32:54 +00:00
s1 [ i ] = s2 [ i ] ;
2007-06-13 05:44:24 +00:00
}
2006-04-06 11:32:54 +00:00
# endif
# ifdef YY_NEED_STRLEN
2007-06-13 05:44:24 +00:00
static int yy_flex_strlen ( yyconst char * s )
{
2006-04-06 11:32:54 +00:00
register int n ;
2006-04-24 09:36:24 +00:00
for ( n = 0 ; s [ n ] ; + + n )
2006-04-06 11:32:54 +00:00
;
return n ;
2007-06-13 05:44:24 +00:00
}
2006-04-06 11:32:54 +00:00
# endif
2007-06-13 05:44:24 +00:00
void * yyalloc ( yy_size_t size )
{
2006-04-06 11:32:54 +00:00
return ( void * ) malloc ( size ) ;
2007-06-13 05:44:24 +00:00
}
2006-04-06 11:32:54 +00:00
2007-06-13 05:44:24 +00:00
void * yyrealloc ( void * ptr , yy_size_t size )
{
2006-04-06 11:32:54 +00:00
/* The cast to (char *) in the following accommodates both
* implementations that use char * generic pointers , and those
* that use void * generic pointers . It works with the latter
* because both ANSI C and C + + allow castless assignment from
* any pointer type to void * , and deal with argument conversions
* as though doing an assignment .
*/
return ( void * ) realloc ( ( char * ) ptr , size ) ;
2007-06-13 05:44:24 +00:00
}
2007-01-10 11:16:11 +00:00
2007-06-13 05:44:24 +00:00
void yyfree ( void * ptr )
{
free ( ( char * ) ptr ) ; /* see yyrealloc() for (char *) cast */
}
# define YYTABLES_NAME "yytables"
2006-04-06 11:32:54 +00:00
2006-11-07 06:59:56 +00:00
# line 274 "lex.l"
2006-04-06 11:32:54 +00:00
2006-08-30 11:29:34 +00:00
2007-06-13 05:44:24 +00:00
2006-04-06 11:32:54 +00:00
# ifndef yywrap /* XXX */
int
yywrap ( )
{
return 1 ;
}
# endif
void
error_message ( const char * format , . . . )
{
va_list args ;
va_start ( args , format ) ;
fprintf ( stderr , " %s:%d: " , get_filename ( ) , lineno ) ;
vfprintf ( stderr , format , args ) ;
va_end ( args ) ;
error_flag + + ;
}
static void
unterminated ( const char * type , unsigned start_lineno )
{
error_message ( " unterminated %s, possibly started on line %d \n " , type , start_lineno ) ;
}
2007-06-13 05:44:24 +00:00