1fd7d9bd3Smrg 2e53c48bfSmrg#line 2 "lex.c" 3350952b9Smrg 4350952b9Smrg#define YY_INT_ALIGNED short int 5350952b9Smrg 6350952b9Smrg/* A lexical scanner generated by flex */ 7fd7d9bd3Smrg 8fd7d9bd3Smrg#define FLEX_SCANNER 9fd7d9bd3Smrg#define YY_FLEX_MAJOR_VERSION 2 10e53c48bfSmrg#define YY_FLEX_MINOR_VERSION 6 11e53c48bfSmrg#define YY_FLEX_SUBMINOR_VERSION 4 12350952b9Smrg#if YY_FLEX_SUBMINOR_VERSION > 0 13350952b9Smrg#define FLEX_BETA 14350952b9Smrg#endif 15fd7d9bd3Smrg 16350952b9Smrg/* First, we deal with platform-specific or compiler-specific issues. */ 17350952b9Smrg 18350952b9Smrg/* begin standard C headers. */ 19fd7d9bd3Smrg#include <stdio.h> 20350952b9Smrg#include <string.h> 21350952b9Smrg#include <errno.h> 22350952b9Smrg#include <stdlib.h> 23fd7d9bd3Smrg 24350952b9Smrg/* end standard C headers. */ 25fd7d9bd3Smrg 26350952b9Smrg/* flex integer type definitions */ 27350952b9Smrg 28350952b9Smrg#ifndef FLEXINT_H 29350952b9Smrg#define FLEXINT_H 30350952b9Smrg 31350952b9Smrg/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 32350952b9Smrg 33350952b9Smrg#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 34350952b9Smrg 35350952b9Smrg/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 36350952b9Smrg * if you want the limit (max/min) macros for int types. 37350952b9Smrg */ 38350952b9Smrg#ifndef __STDC_LIMIT_MACROS 39350952b9Smrg#define __STDC_LIMIT_MACROS 1 40fd7d9bd3Smrg#endif 41fd7d9bd3Smrg 42350952b9Smrg#include <inttypes.h> 43350952b9Smrgtypedef int8_t flex_int8_t; 44350952b9Smrgtypedef uint8_t flex_uint8_t; 45350952b9Smrgtypedef int16_t flex_int16_t; 46350952b9Smrgtypedef uint16_t flex_uint16_t; 47350952b9Smrgtypedef int32_t flex_int32_t; 48350952b9Smrgtypedef uint32_t flex_uint32_t; 49350952b9Smrg#else 50350952b9Smrgtypedef signed char flex_int8_t; 51350952b9Smrgtypedef short int flex_int16_t; 52350952b9Smrgtypedef int flex_int32_t; 53350952b9Smrgtypedef unsigned char flex_uint8_t; 54350952b9Smrgtypedef unsigned short int flex_uint16_t; 55350952b9Smrgtypedef unsigned int flex_uint32_t; 56fd7d9bd3Smrg 57350952b9Smrg/* Limits of integral types. */ 58350952b9Smrg#ifndef INT8_MIN 59350952b9Smrg#define INT8_MIN (-128) 60350952b9Smrg#endif 61350952b9Smrg#ifndef INT16_MIN 62350952b9Smrg#define INT16_MIN (-32767-1) 63350952b9Smrg#endif 64350952b9Smrg#ifndef INT32_MIN 65350952b9Smrg#define INT32_MIN (-2147483647-1) 66350952b9Smrg#endif 67350952b9Smrg#ifndef INT8_MAX 68350952b9Smrg#define INT8_MAX (127) 69350952b9Smrg#endif 70350952b9Smrg#ifndef INT16_MAX 71350952b9Smrg#define INT16_MAX (32767) 72350952b9Smrg#endif 73350952b9Smrg#ifndef INT32_MAX 74350952b9Smrg#define INT32_MAX (2147483647) 75350952b9Smrg#endif 76350952b9Smrg#ifndef UINT8_MAX 77350952b9Smrg#define UINT8_MAX (255U) 78350952b9Smrg#endif 79350952b9Smrg#ifndef UINT16_MAX 80350952b9Smrg#define UINT16_MAX (65535U) 81350952b9Smrg#endif 82350952b9Smrg#ifndef UINT32_MAX 83350952b9Smrg#define UINT32_MAX (4294967295U) 84350952b9Smrg#endif 85fd7d9bd3Smrg 86e53c48bfSmrg#ifndef SIZE_MAX 87e53c48bfSmrg#define SIZE_MAX (~(size_t)0) 88e53c48bfSmrg#endif 89fd7d9bd3Smrg 90e53c48bfSmrg#endif /* ! C99 */ 91fd7d9bd3Smrg 92e53c48bfSmrg#endif /* ! FLEXINT_H */ 93fd7d9bd3Smrg 94e53c48bfSmrg/* begin standard C++ headers. */ 95fd7d9bd3Smrg 96e53c48bfSmrg/* TODO: this is always defined, so inline it */ 97fd7d9bd3Smrg#define yyconst const 98e53c48bfSmrg 99e53c48bfSmrg#if defined(__GNUC__) && __GNUC__ >= 3 100e53c48bfSmrg#define yynoreturn __attribute__((__noreturn__)) 101fd7d9bd3Smrg#else 102e53c48bfSmrg#define yynoreturn 103fd7d9bd3Smrg#endif 104fd7d9bd3Smrg 105fd7d9bd3Smrg/* Returned upon end-of-file. */ 106fd7d9bd3Smrg#define YY_NULL 0 107fd7d9bd3Smrg 108e53c48bfSmrg/* Promotes a possibly negative, possibly signed char to an 109e53c48bfSmrg * integer in range [0..255] for use as an array index. 110fd7d9bd3Smrg */ 111e53c48bfSmrg#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) 112fd7d9bd3Smrg 113fd7d9bd3Smrg/* Enter a start condition. This macro really ought to take a parameter, 114fd7d9bd3Smrg * but we do it the disgusting crufty way forced on us by the ()-less 115fd7d9bd3Smrg * definition of BEGIN. 116fd7d9bd3Smrg */ 117350952b9Smrg#define BEGIN (yy_start) = 1 + 2 * 118fd7d9bd3Smrg/* Translate the current start state into a value that can be later handed 119fd7d9bd3Smrg * to BEGIN to return to the state. The YYSTATE alias is for lex 120fd7d9bd3Smrg * compatibility. 121fd7d9bd3Smrg */ 122350952b9Smrg#define YY_START (((yy_start) - 1) / 2) 123fd7d9bd3Smrg#define YYSTATE YY_START 124fd7d9bd3Smrg/* Action number for EOF rule of a given start state. */ 125fd7d9bd3Smrg#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 126fd7d9bd3Smrg/* Special action meaning "start processing a new file". */ 127e53c48bfSmrg#define YY_NEW_FILE yyrestart( yyin ) 128fd7d9bd3Smrg#define YY_END_OF_BUFFER_CHAR 0 129fd7d9bd3Smrg 130fd7d9bd3Smrg/* Size of default input buffer. */ 131350952b9Smrg#ifndef YY_BUF_SIZE 132e53c48bfSmrg#ifdef __ia64__ 133e53c48bfSmrg/* On IA-64, the buffer size is 16k, not 8k. 134e53c48bfSmrg * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. 135e53c48bfSmrg * Ditto for the __ia64__ case accordingly. 136e53c48bfSmrg */ 137e53c48bfSmrg#define YY_BUF_SIZE 32768 138e53c48bfSmrg#else 139fd7d9bd3Smrg#define YY_BUF_SIZE 16384 140e53c48bfSmrg#endif /* __ia64__ */ 141350952b9Smrg#endif 142350952b9Smrg 143350952b9Smrg/* The state buf must be large enough to hold one state per character in the main buffer. 144350952b9Smrg */ 145350952b9Smrg#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 146fd7d9bd3Smrg 147350952b9Smrg#ifndef YY_TYPEDEF_YY_BUFFER_STATE 148350952b9Smrg#define YY_TYPEDEF_YY_BUFFER_STATE 149fd7d9bd3Smrgtypedef struct yy_buffer_state *YY_BUFFER_STATE; 150350952b9Smrg#endif 151fd7d9bd3Smrg 152e53c48bfSmrg#ifndef YY_TYPEDEF_YY_SIZE_T 153e53c48bfSmrg#define YY_TYPEDEF_YY_SIZE_T 154e53c48bfSmrgtypedef size_t yy_size_t; 155e53c48bfSmrg#endif 156e53c48bfSmrg 157fd7d9bd3Smrgextern int yyleng; 158350952b9Smrg 159fd7d9bd3Smrgextern FILE *yyin, *yyout; 160fd7d9bd3Smrg 161fd7d9bd3Smrg#define EOB_ACT_CONTINUE_SCAN 0 162fd7d9bd3Smrg#define EOB_ACT_END_OF_FILE 1 163fd7d9bd3Smrg#define EOB_ACT_LAST_MATCH 2 164e53c48bfSmrg 165350952b9Smrg #define YY_LESS_LINENO(n) 166e53c48bfSmrg #define YY_LINENO_REWIND_TO(ptr) 167350952b9Smrg 168350952b9Smrg/* Return all but the first "n" matched characters back to the input stream. */ 169fd7d9bd3Smrg#define yyless(n) \ 170fd7d9bd3Smrg do \ 171fd7d9bd3Smrg { \ 172fd7d9bd3Smrg /* Undo effects of setting up yytext. */ \ 173350952b9Smrg int yyless_macro_arg = (n); \ 174350952b9Smrg YY_LESS_LINENO(yyless_macro_arg);\ 175350952b9Smrg *yy_cp = (yy_hold_char); \ 176fd7d9bd3Smrg YY_RESTORE_YY_MORE_OFFSET \ 177350952b9Smrg (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 178fd7d9bd3Smrg YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 179fd7d9bd3Smrg } \ 180fd7d9bd3Smrg while ( 0 ) 181350952b9Smrg#define unput(c) yyunput( c, (yytext_ptr) ) 182fd7d9bd3Smrg 183350952b9Smrg#ifndef YY_STRUCT_YY_BUFFER_STATE 184350952b9Smrg#define YY_STRUCT_YY_BUFFER_STATE 185fd7d9bd3Smrgstruct yy_buffer_state 186fd7d9bd3Smrg { 187fd7d9bd3Smrg FILE *yy_input_file; 188fd7d9bd3Smrg 189fd7d9bd3Smrg char *yy_ch_buf; /* input buffer */ 190fd7d9bd3Smrg char *yy_buf_pos; /* current position in input buffer */ 191fd7d9bd3Smrg 192fd7d9bd3Smrg /* Size of input buffer in bytes, not including room for EOB 193fd7d9bd3Smrg * characters. 194fd7d9bd3Smrg */ 195e53c48bfSmrg int yy_buf_size; 196fd7d9bd3Smrg 197fd7d9bd3Smrg /* Number of characters read into yy_ch_buf, not including EOB 198fd7d9bd3Smrg * characters. 199fd7d9bd3Smrg */ 200fd7d9bd3Smrg int yy_n_chars; 201fd7d9bd3Smrg 202fd7d9bd3Smrg /* Whether we "own" the buffer - i.e., we know we created it, 203fd7d9bd3Smrg * and can realloc() it to grow it, and should free() it to 204fd7d9bd3Smrg * delete it. 205fd7d9bd3Smrg */ 206fd7d9bd3Smrg int yy_is_our_buffer; 207fd7d9bd3Smrg 208fd7d9bd3Smrg /* Whether this is an "interactive" input source; if so, and 209fd7d9bd3Smrg * if we're using stdio for input, then we want to use getc() 210fd7d9bd3Smrg * instead of fread(), to make sure we stop fetching input after 211fd7d9bd3Smrg * each newline. 212fd7d9bd3Smrg */ 213fd7d9bd3Smrg int yy_is_interactive; 214fd7d9bd3Smrg 215fd7d9bd3Smrg /* Whether we're considered to be at the beginning of a line. 216fd7d9bd3Smrg * If so, '^' rules will be active on the next match, otherwise 217fd7d9bd3Smrg * not. 218fd7d9bd3Smrg */ 219fd7d9bd3Smrg int yy_at_bol; 220fd7d9bd3Smrg 221350952b9Smrg int yy_bs_lineno; /**< The line count. */ 222350952b9Smrg int yy_bs_column; /**< The column count. */ 223e53c48bfSmrg 224fd7d9bd3Smrg /* Whether to try to fill the input buffer when we reach the 225fd7d9bd3Smrg * end of it. 226fd7d9bd3Smrg */ 227fd7d9bd3Smrg int yy_fill_buffer; 228fd7d9bd3Smrg 229fd7d9bd3Smrg int yy_buffer_status; 230350952b9Smrg 231fd7d9bd3Smrg#define YY_BUFFER_NEW 0 232fd7d9bd3Smrg#define YY_BUFFER_NORMAL 1 233fd7d9bd3Smrg /* When an EOF's been seen but there's still some text to process 234fd7d9bd3Smrg * then we mark the buffer as YY_EOF_PENDING, to indicate that we 235fd7d9bd3Smrg * shouldn't try reading from the input source any more. We might 236fd7d9bd3Smrg * still have a bunch of tokens to match, though, because of 237fd7d9bd3Smrg * possible backing-up. 238fd7d9bd3Smrg * 239fd7d9bd3Smrg * When we actually see the EOF, we change the status to "new" 240fd7d9bd3Smrg * (via yyrestart()), so that the user can continue scanning by 241fd7d9bd3Smrg * just pointing yyin at a new input file. 242fd7d9bd3Smrg */ 243fd7d9bd3Smrg#define YY_BUFFER_EOF_PENDING 2 244350952b9Smrg 245fd7d9bd3Smrg }; 246350952b9Smrg#endif /* !YY_STRUCT_YY_BUFFER_STATE */ 247fd7d9bd3Smrg 248350952b9Smrg/* Stack of input buffers. */ 249350952b9Smrgstatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ 250350952b9Smrgstatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ 251e53c48bfSmrgstatic YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ 252fd7d9bd3Smrg 253fd7d9bd3Smrg/* We provide macros for accessing buffer states in case in the 254fd7d9bd3Smrg * future we want to put the buffer states in a more general 255fd7d9bd3Smrg * "scanner state". 256350952b9Smrg * 257350952b9Smrg * Returns the top of the stack, or NULL. 258fd7d9bd3Smrg */ 259350952b9Smrg#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 260350952b9Smrg ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 261350952b9Smrg : NULL) 262350952b9Smrg/* Same as previous macro, but useful when we know that the buffer stack is not 263350952b9Smrg * NULL or when we need an lvalue. For internal use only. 264350952b9Smrg */ 265350952b9Smrg#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 266fd7d9bd3Smrg 267fd7d9bd3Smrg/* yy_hold_char holds the character lost when yytext is formed. */ 268fd7d9bd3Smrgstatic char yy_hold_char; 269fd7d9bd3Smrgstatic int yy_n_chars; /* number of characters read into yy_ch_buf */ 270fd7d9bd3Smrgint yyleng; 271fd7d9bd3Smrg 272fd7d9bd3Smrg/* Points to current character in buffer. */ 273e53c48bfSmrgstatic char *yy_c_buf_p = NULL; 274350952b9Smrgstatic int yy_init = 0; /* whether we need to initialize */ 275fd7d9bd3Smrgstatic int yy_start = 0; /* start state number */ 276fd7d9bd3Smrg 277fd7d9bd3Smrg/* Flag which is used to allow yywrap()'s to do buffer switches 278fd7d9bd3Smrg * instead of setting up a fresh yyin. A bit of a hack ... 279fd7d9bd3Smrg */ 280fd7d9bd3Smrgstatic int yy_did_buffer_switch_on_eof; 281fd7d9bd3Smrg 282e53c48bfSmrgvoid yyrestart ( FILE *input_file ); 283e53c48bfSmrgvoid yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); 284e53c48bfSmrgYY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); 285e53c48bfSmrgvoid yy_delete_buffer ( YY_BUFFER_STATE b ); 286e53c48bfSmrgvoid yy_flush_buffer ( YY_BUFFER_STATE b ); 287e53c48bfSmrgvoid yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); 288e53c48bfSmrgvoid yypop_buffer_state ( void ); 289350952b9Smrg 290e53c48bfSmrgstatic void yyensure_buffer_stack ( void ); 291e53c48bfSmrgstatic void yy_load_buffer_state ( void ); 292e53c48bfSmrgstatic void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); 293e53c48bfSmrg#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) 294fd7d9bd3Smrg 295e53c48bfSmrgYY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); 296e53c48bfSmrgYY_BUFFER_STATE yy_scan_string ( const char *yy_str ); 297e53c48bfSmrgYY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); 298fd7d9bd3Smrg 299e53c48bfSmrgvoid *yyalloc ( yy_size_t ); 300e53c48bfSmrgvoid *yyrealloc ( void *, yy_size_t ); 301e53c48bfSmrgvoid yyfree ( void * ); 302fd7d9bd3Smrg 303fd7d9bd3Smrg#define yy_new_buffer yy_create_buffer 304fd7d9bd3Smrg#define yy_set_interactive(is_interactive) \ 305fd7d9bd3Smrg { \ 306350952b9Smrg if ( ! YY_CURRENT_BUFFER ){ \ 307350952b9Smrg yyensure_buffer_stack (); \ 308350952b9Smrg YY_CURRENT_BUFFER_LVALUE = \ 309e53c48bfSmrg yy_create_buffer( yyin, YY_BUF_SIZE ); \ 310350952b9Smrg } \ 311350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 312fd7d9bd3Smrg } 313fd7d9bd3Smrg#define yy_set_bol(at_bol) \ 314fd7d9bd3Smrg { \ 315350952b9Smrg if ( ! YY_CURRENT_BUFFER ){\ 316350952b9Smrg yyensure_buffer_stack (); \ 317350952b9Smrg YY_CURRENT_BUFFER_LVALUE = \ 318e53c48bfSmrg yy_create_buffer( yyin, YY_BUF_SIZE ); \ 319350952b9Smrg } \ 320350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 321fd7d9bd3Smrg } 322350952b9Smrg#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 323350952b9Smrg 324350952b9Smrg/* Begin user sect3 */ 325e53c48bfSmrgtypedef flex_uint8_t YY_CHAR; 326fd7d9bd3Smrg 327e53c48bfSmrgFILE *yyin = NULL, *yyout = NULL; 328350952b9Smrg 329fd7d9bd3Smrgtypedef int yy_state_type; 330350952b9Smrg 331350952b9Smrgextern int yylineno; 332350952b9Smrgint yylineno = 1; 333350952b9Smrg 334fd7d9bd3Smrgextern char *yytext; 335e53c48bfSmrg#ifdef yytext_ptr 336e53c48bfSmrg#undef yytext_ptr 337e53c48bfSmrg#endif 338fd7d9bd3Smrg#define yytext_ptr yytext 339fd7d9bd3Smrg 340e53c48bfSmrgstatic yy_state_type yy_get_previous_state ( void ); 341e53c48bfSmrgstatic yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); 342e53c48bfSmrgstatic int yy_get_next_buffer ( void ); 343e53c48bfSmrgstatic void yynoreturn yy_fatal_error ( const char* msg ); 344fd7d9bd3Smrg 345fd7d9bd3Smrg/* Done after the current pattern has been matched and before the 346fd7d9bd3Smrg * corresponding action - sets up yytext. 347fd7d9bd3Smrg */ 348fd7d9bd3Smrg#define YY_DO_BEFORE_ACTION \ 349350952b9Smrg (yytext_ptr) = yy_bp; \ 350e53c48bfSmrg yyleng = (int) (yy_cp - yy_bp); \ 351350952b9Smrg (yy_hold_char) = *yy_cp; \ 352fd7d9bd3Smrg *yy_cp = '\0'; \ 353350952b9Smrg (yy_c_buf_p) = yy_cp; 354fd7d9bd3Smrg#define YY_NUM_RULES 72 355fd7d9bd3Smrg#define YY_END_OF_BUFFER 73 356350952b9Smrg/* This struct is not used in this scanner, 357350952b9Smrg but its presence is necessary. */ 358350952b9Smrgstruct yy_trans_info 359350952b9Smrg { 360350952b9Smrg flex_int32_t yy_verify; 361350952b9Smrg flex_int32_t yy_nxt; 362350952b9Smrg }; 363e53c48bfSmrgstatic const flex_int16_t yy_accept[420] = 364fd7d9bd3Smrg { 0, 365fd7d9bd3Smrg 0, 0, 73, 70, 68, 69, 70, 70, 65, 70, 366fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 367fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 368fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 369fd7d9bd3Smrg 70, 70, 0, 66, 70, 70, 0, 67, 65, 70, 370fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 371fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 372fd7d9bd3Smrg 70, 70, 70, 70, 70, 10, 70, 70, 70, 70, 373fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 374fd7d9bd3Smrg 70, 70, 70, 70, 66, 0, 70, 0, 66, 70, 375fd7d9bd3Smrg 376fd7d9bd3Smrg 4, 70, 70, 70, 70, 70, 70, 70, 70, 70, 377fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 378fd7d9bd3Smrg 70, 70, 70, 70, 70, 11, 70, 70, 70, 70, 379fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 1, 18, 380fd7d9bd3Smrg 70, 70, 70, 70, 70, 9, 70, 70, 66, 0, 381fd7d9bd3Smrg 70, 70, 70, 70, 70, 41, 70, 70, 70, 6, 382fd7d9bd3Smrg 70, 70, 70, 70, 70, 63, 70, 70, 70, 70, 383fd7d9bd3Smrg 70, 70, 70, 70, 17, 8, 70, 70, 70, 70, 384fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 385fd7d9bd3Smrg 19, 70, 70, 6, 70, 70, 70, 70, 70, 45, 386fd7d9bd3Smrg 387fd7d9bd3Smrg 70, 56, 3, 70, 70, 70, 70, 70, 12, 70, 388fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 389fd7d9bd3Smrg 70, 44, 70, 70, 70, 70, 70, 70, 70, 70, 390fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 46, 391fd7d9bd3Smrg 51, 70, 48, 70, 70, 70, 70, 70, 70, 70, 392fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 393fd7d9bd3Smrg 70, 70, 13, 70, 70, 70, 70, 70, 70, 70, 394fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 395fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 55, 70, 70, 396fd7d9bd3Smrg 70, 70, 70, 70, 70, 53, 70, 70, 70, 70, 397fd7d9bd3Smrg 398fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 40, 70, 70, 70, 399fd7d9bd3Smrg 70, 64, 70, 70, 26, 70, 70, 70, 70, 70, 400fd7d9bd3Smrg 70, 70, 70, 70, 54, 70, 70, 70, 39, 20, 401fd7d9bd3Smrg 70, 70, 62, 70, 70, 52, 70, 70, 2, 31, 402fd7d9bd3Smrg 70, 70, 70, 70, 70, 70, 70, 70, 57, 70, 403fd7d9bd3Smrg 70, 23, 70, 70, 70, 70, 70, 30, 49, 70, 404fd7d9bd3Smrg 70, 70, 70, 21, 70, 70, 47, 70, 70, 43, 405fd7d9bd3Smrg 36, 60, 37, 70, 70, 14, 61, 70, 70, 22, 406fd7d9bd3Smrg 70, 70, 70, 32, 70, 70, 5, 59, 70, 38, 407fd7d9bd3Smrg 70, 58, 70, 33, 70, 16, 70, 70, 70, 70, 408fd7d9bd3Smrg 409fd7d9bd3Smrg 34, 42, 7, 70, 27, 35, 70, 29, 70, 70, 410fd7d9bd3Smrg 24, 15, 70, 28, 70, 70, 25, 50, 0 411fd7d9bd3Smrg } ; 412fd7d9bd3Smrg 413e53c48bfSmrgstatic const YY_CHAR yy_ec[256] = 414fd7d9bd3Smrg { 0, 415fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 416fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 417fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 418fd7d9bd3Smrg 1, 2, 1, 4, 5, 1, 1, 1, 1, 1, 419fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 6, 7, 6, 420fd7d9bd3Smrg 6, 6, 6, 8, 6, 9, 6, 1, 1, 1, 421fd7d9bd3Smrg 1, 1, 1, 1, 10, 11, 12, 13, 14, 15, 422fd7d9bd3Smrg 16, 1, 17, 18, 1, 19, 20, 21, 22, 23, 423fd7d9bd3Smrg 1, 24, 25, 26, 1, 1, 27, 28, 1, 1, 424fd7d9bd3Smrg 1, 29, 1, 1, 1, 1, 30, 31, 32, 33, 425fd7d9bd3Smrg 426fd7d9bd3Smrg 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 427fd7d9bd3Smrg 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 428fd7d9bd3Smrg 54, 1, 1, 1, 1, 1, 1, 1, 1, 1, 429fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 430fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 431fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 432fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 433fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 434fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 435fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 436fd7d9bd3Smrg 437fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 438fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 439fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 440fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 441fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 442fd7d9bd3Smrg 1, 1, 1, 1, 1 443fd7d9bd3Smrg } ; 444fd7d9bd3Smrg 445e53c48bfSmrgstatic const YY_CHAR yy_meta[55] = 446fd7d9bd3Smrg { 0, 447fd7d9bd3Smrg 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 448fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 449fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 450fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 451fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 452fd7d9bd3Smrg 1, 1, 1, 1 453fd7d9bd3Smrg } ; 454fd7d9bd3Smrg 455e53c48bfSmrgstatic const flex_int16_t yy_base[427] = 456fd7d9bd3Smrg { 0, 457fd7d9bd3Smrg 0, 0, 498, 0, 499, 499, 53, 56, 54, 21, 458fd7d9bd3Smrg 35, 36, 37, 24, 34, 463, 44, 452, 457, 456, 459fd7d9bd3Smrg 44, 46, 56, 48, 61, 45, 455, 448, 461, 71, 460fd7d9bd3Smrg 460, 443, 58, 445, 69, 440, 70, 436, 451, 450, 461fd7d9bd3Smrg 0, 114, 103, 0, 117, 120, 480, 499, 118, 449, 462fd7d9bd3Smrg 449, 448, 428, 429, 432, 432, 441, 429, 425, 422, 463fd7d9bd3Smrg 421, 436, 428, 86, 425, 418, 436, 414, 426, 420, 464fd7d9bd3Smrg 413, 418, 87, 438, 429, 111, 411, 423, 426, 414, 465fd7d9bd3Smrg 410, 404, 402, 408, 401, 408, 410, 399, 405, 402, 466fd7d9bd3Smrg 397, 398, 401, 93, 499, 135, 145, 126, 148, 154, 467fd7d9bd3Smrg 468fd7d9bd3Smrg 136, 399, 400, 405, 389, 389, 389, 405, 380, 396, 469fd7d9bd3Smrg 401, 393, 387, 388, 379, 393, 394, 408, 388, 389, 470fd7d9bd3Smrg 379, 387, 386, 386, 373, 0, 398, 381, 369, 371, 471fd7d9bd3Smrg 379, 380, 386, 367, 355, 369, 390, 363, 0, 0, 472fd7d9bd3Smrg 367, 359, 354, 368, 368, 0, 346, 358, 137, 141, 473fd7d9bd3Smrg 355, 363, 352, 359, 353, 0, 344, 359, 344, 144, 474fd7d9bd3Smrg 349, 348, 337, 365, 139, 0, 350, 336, 342, 349, 475fd7d9bd3Smrg 335, 333, 111, 333, 0, 0, 349, 343, 327, 325, 476fd7d9bd3Smrg 324, 340, 332, 338, 165, 337, 328, 336, 335, 322, 477fd7d9bd3Smrg 0, 333, 327, 347, 121, 312, 311, 328, 313, 0, 478fd7d9bd3Smrg 479fd7d9bd3Smrg 305, 0, 0, 311, 314, 315, 317, 320, 0, 320, 480fd7d9bd3Smrg 308, 301, 301, 302, 310, 317, 320, 296, 295, 294, 481fd7d9bd3Smrg 304, 0, 293, 327, 305, 304, 303, 293, 297, 292, 482fd7d9bd3Smrg 286, 294, 293, 286, 295, 294, 293, 294, 295, 0, 483fd7d9bd3Smrg 0, 283, 0, 280, 288, 287, 286, 275, 277, 283, 484fd7d9bd3Smrg 265, 285, 266, 300, 279, 270, 269, 255, 264, 263, 485fd7d9bd3Smrg 270, 271, 0, 250, 249, 269, 252, 270, 274, 251, 486fd7d9bd3Smrg 250, 247, 263, 264, 261, 251, 248, 252, 257, 252, 487fd7d9bd3Smrg 234, 237, 249, 250, 247, 235, 234, 0, 230, 245, 488fd7d9bd3Smrg 248, 243, 233, 226, 244, 0, 219, 238, 230, 220, 489fd7d9bd3Smrg 490fd7d9bd3Smrg 226, 234, 214, 225, 224, 215, 0, 215, 213, 212, 491fd7d9bd3Smrg 212, 0, 225, 210, 0, 216, 222, 212, 205, 211, 492fd7d9bd3Smrg 203, 213, 216, 216, 0, 199, 199, 203, 0, 0, 493fd7d9bd3Smrg 198, 210, 0, 195, 206, 0, 207, 197, 0, 0, 494fd7d9bd3Smrg 190, 204, 203, 199, 198, 196, 199, 198, 0, 191, 495fd7d9bd3Smrg 155, 0, 181, 199, 194, 164, 184, 0, 0, 192, 496fd7d9bd3Smrg 191, 191, 174, 0, 185, 177, 0, 187, 169, 0, 497fd7d9bd3Smrg 0, 0, 0, 174, 185, 0, 0, 170, 182, 0, 498fd7d9bd3Smrg 172, 171, 205, 0, 176, 178, 0, 0, 176, 0, 499fd7d9bd3Smrg 166, 0, 200, 0, 162, 0, 174, 173, 168, 136, 500fd7d9bd3Smrg 501fd7d9bd3Smrg 0, 0, 0, 149, 0, 0, 140, 0, 123, 101, 502fd7d9bd3Smrg 0, 0, 80, 0, 75, 43, 0, 0, 499, 70, 503fd7d9bd3Smrg 191, 193, 195, 197, 199, 201 504fd7d9bd3Smrg } ; 505fd7d9bd3Smrg 506e53c48bfSmrgstatic const flex_int16_t yy_def[427] = 507fd7d9bd3Smrg { 0, 508fd7d9bd3Smrg 419, 1, 419, 420, 419, 419, 421, 422, 420, 420, 509fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 510fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 511fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 512fd7d9bd3Smrg 420, 421, 423, 420, 424, 422, 425, 419, 420, 420, 513fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 514fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 515fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 516fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 517fd7d9bd3Smrg 420, 420, 420, 420, 419, 426, 421, 423, 421, 424, 518fd7d9bd3Smrg 519fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 520fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 521fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 522fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 523fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 423, 426, 524fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 525fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 526fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 527fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 528fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 529fd7d9bd3Smrg 530fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 531fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 532fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 533fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 534fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 535fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 536fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 537fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 538fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 539fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 540fd7d9bd3Smrg 541fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 542fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 543fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 544fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 545fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 546fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 547fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 548fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 549fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 550fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 551fd7d9bd3Smrg 552fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 553fd7d9bd3Smrg 420, 420, 420, 420, 420, 420, 420, 420, 0, 419, 554fd7d9bd3Smrg 419, 419, 419, 419, 419, 419 555fd7d9bd3Smrg } ; 556fd7d9bd3Smrg 557e53c48bfSmrgstatic const flex_int16_t yy_nxt[554] = 558fd7d9bd3Smrg { 0, 559fd7d9bd3Smrg 4, 5, 6, 7, 8, 9, 9, 9, 9, 10, 560fd7d9bd3Smrg 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 561fd7d9bd3Smrg 21, 22, 23, 24, 25, 26, 27, 28, 4, 10, 562fd7d9bd3Smrg 29, 30, 31, 32, 33, 4, 4, 34, 18, 4, 563fd7d9bd3Smrg 19, 4, 35, 36, 37, 4, 38, 39, 40, 4, 564fd7d9bd3Smrg 4, 4, 28, 4, 43, 43, 44, 47, 48, 49, 565fd7d9bd3Smrg 49, 49, 49, 50, 52, 55, 59, 51, 53, 61, 566fd7d9bd3Smrg 41, 63, 56, 72, 62, 418, 57, 64, 88, 58, 567fd7d9bd3Smrg 60, 45, 89, 65, 54, 67, 68, 73, 74, 77, 568fd7d9bd3Smrg 75, 83, 76, 78, 85, 93, 79, 84, 72, 80, 569fd7d9bd3Smrg 570fd7d9bd3Smrg 55, 64, 81, 77, 86, 82, 95, 65, 417, 87, 571fd7d9bd3Smrg 79, 57, 94, 416, 92, 43, 43, 44, 98, 43, 572fd7d9bd3Smrg 99, 47, 48, 49, 49, 49, 49, 130, 115, 95, 573fd7d9bd3Smrg 125, 96, 116, 126, 131, 127, 125, 43, 149, 126, 574fd7d9bd3Smrg 95, 415, 45, 43, 149, 100, 43, 43, 44, 43, 575fd7d9bd3Smrg 43, 44, 151, 204, 96, 98, 43, 99, 220, 152, 576fd7d9bd3Smrg 205, 211, 221, 150, 378, 96, 206, 212, 213, 150, 577fd7d9bd3Smrg 383, 414, 384, 45, 231, 393, 45, 394, 379, 232, 578fd7d9bd3Smrg 413, 412, 100, 233, 411, 212, 213, 234, 235, 236, 579fd7d9bd3Smrg 237, 42, 42, 46, 46, 43, 43, 97, 97, 47, 580fd7d9bd3Smrg 581fd7d9bd3Smrg 47, 98, 98, 410, 409, 408, 407, 406, 405, 404, 582fd7d9bd3Smrg 403, 402, 401, 400, 399, 398, 397, 396, 395, 392, 583fd7d9bd3Smrg 391, 390, 389, 388, 387, 386, 385, 382, 381, 380, 584fd7d9bd3Smrg 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 585fd7d9bd3Smrg 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 586fd7d9bd3Smrg 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 587fd7d9bd3Smrg 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, 588fd7d9bd3Smrg 337, 336, 335, 334, 333, 332, 331, 330, 329, 328, 589fd7d9bd3Smrg 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 590fd7d9bd3Smrg 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, 591fd7d9bd3Smrg 592fd7d9bd3Smrg 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, 593fd7d9bd3Smrg 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, 594fd7d9bd3Smrg 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 595fd7d9bd3Smrg 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 596fd7d9bd3Smrg 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, 597fd7d9bd3Smrg 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 598fd7d9bd3Smrg 247, 246, 245, 205, 244, 243, 242, 241, 240, 239, 599fd7d9bd3Smrg 238, 230, 229, 228, 227, 226, 225, 224, 223, 222, 600fd7d9bd3Smrg 219, 218, 217, 216, 215, 214, 210, 209, 208, 207, 601fd7d9bd3Smrg 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 602fd7d9bd3Smrg 603fd7d9bd3Smrg 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 604fd7d9bd3Smrg 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 605fd7d9bd3Smrg 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 606fd7d9bd3Smrg 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 607fd7d9bd3Smrg 153, 148, 147, 146, 145, 144, 143, 142, 141, 140, 608fd7d9bd3Smrg 139, 138, 137, 136, 135, 134, 133, 132, 129, 128, 609fd7d9bd3Smrg 124, 123, 122, 121, 120, 119, 118, 117, 114, 113, 610fd7d9bd3Smrg 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 611fd7d9bd3Smrg 102, 101, 48, 88, 85, 84, 76, 68, 61, 59, 612fd7d9bd3Smrg 52, 91, 90, 71, 70, 69, 66, 419, 3, 419, 613fd7d9bd3Smrg 614fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 615fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 616fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 617fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 618fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 619fd7d9bd3Smrg 419, 419, 419 620fd7d9bd3Smrg } ; 621fd7d9bd3Smrg 622e53c48bfSmrgstatic const flex_int16_t yy_chk[554] = 623fd7d9bd3Smrg { 0, 624fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 625fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 626fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 627fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 628fd7d9bd3Smrg 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 629fd7d9bd3Smrg 1, 1, 1, 1, 7, 7, 7, 8, 8, 9, 630fd7d9bd3Smrg 9, 9, 9, 10, 11, 12, 13, 10, 11, 14, 631fd7d9bd3Smrg 420, 15, 12, 21, 14, 416, 12, 15, 26, 12, 632fd7d9bd3Smrg 13, 7, 26, 15, 11, 17, 17, 21, 22, 23, 633fd7d9bd3Smrg 22, 24, 22, 23, 25, 33, 23, 24, 35, 23, 634fd7d9bd3Smrg 635fd7d9bd3Smrg 30, 33, 23, 37, 25, 23, 43, 33, 415, 25, 636fd7d9bd3Smrg 37, 30, 35, 413, 30, 42, 42, 42, 45, 45, 637fd7d9bd3Smrg 45, 46, 46, 49, 49, 49, 49, 76, 64, 98, 638fd7d9bd3Smrg 73, 43, 64, 73, 76, 73, 94, 96, 96, 94, 639fd7d9bd3Smrg 149, 410, 42, 150, 150, 45, 97, 97, 97, 99, 640fd7d9bd3Smrg 99, 99, 101, 160, 98, 100, 100, 100, 173, 101, 641fd7d9bd3Smrg 160, 165, 173, 96, 351, 149, 160, 195, 195, 150, 642fd7d9bd3Smrg 356, 409, 356, 97, 185, 369, 99, 369, 351, 185, 643fd7d9bd3Smrg 407, 404, 100, 185, 400, 165, 165, 185, 185, 185, 644fd7d9bd3Smrg 185, 421, 421, 422, 422, 423, 423, 424, 424, 425, 645fd7d9bd3Smrg 646fd7d9bd3Smrg 425, 426, 426, 399, 398, 397, 395, 393, 391, 389, 647fd7d9bd3Smrg 386, 385, 383, 382, 381, 379, 378, 375, 374, 368, 648fd7d9bd3Smrg 366, 365, 363, 362, 361, 360, 357, 355, 354, 353, 649fd7d9bd3Smrg 350, 348, 347, 346, 345, 344, 343, 342, 341, 338, 650fd7d9bd3Smrg 337, 335, 334, 332, 331, 328, 327, 326, 324, 323, 651fd7d9bd3Smrg 322, 321, 320, 319, 318, 317, 316, 314, 313, 311, 652fd7d9bd3Smrg 310, 309, 308, 306, 305, 304, 303, 302, 301, 300, 653fd7d9bd3Smrg 299, 298, 297, 295, 294, 293, 292, 291, 290, 289, 654fd7d9bd3Smrg 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 655fd7d9bd3Smrg 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, 656fd7d9bd3Smrg 657fd7d9bd3Smrg 267, 266, 265, 264, 262, 261, 260, 259, 258, 257, 658fd7d9bd3Smrg 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 659fd7d9bd3Smrg 246, 245, 244, 242, 239, 238, 237, 236, 235, 234, 660fd7d9bd3Smrg 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 661fd7d9bd3Smrg 223, 221, 220, 219, 218, 217, 216, 215, 214, 213, 662fd7d9bd3Smrg 212, 211, 210, 208, 207, 206, 205, 204, 201, 199, 663fd7d9bd3Smrg 198, 197, 196, 194, 193, 192, 190, 189, 188, 187, 664fd7d9bd3Smrg 186, 184, 183, 182, 181, 180, 179, 178, 177, 174, 665fd7d9bd3Smrg 172, 171, 170, 169, 168, 167, 164, 163, 162, 161, 666fd7d9bd3Smrg 159, 158, 157, 155, 154, 153, 152, 151, 148, 147, 667fd7d9bd3Smrg 668fd7d9bd3Smrg 145, 144, 143, 142, 141, 138, 137, 136, 135, 134, 669fd7d9bd3Smrg 133, 132, 131, 130, 129, 128, 127, 125, 124, 123, 670fd7d9bd3Smrg 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 671fd7d9bd3Smrg 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 672fd7d9bd3Smrg 102, 93, 92, 91, 90, 89, 88, 87, 86, 85, 673fd7d9bd3Smrg 84, 83, 82, 81, 80, 79, 78, 77, 75, 74, 674fd7d9bd3Smrg 72, 71, 70, 69, 68, 67, 66, 65, 63, 62, 675fd7d9bd3Smrg 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 676fd7d9bd3Smrg 51, 50, 47, 40, 39, 38, 36, 34, 32, 31, 677fd7d9bd3Smrg 29, 28, 27, 20, 19, 18, 16, 3, 419, 419, 678fd7d9bd3Smrg 679fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 680fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 681fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 682fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 683fd7d9bd3Smrg 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 684fd7d9bd3Smrg 419, 419, 419 685fd7d9bd3Smrg } ; 686fd7d9bd3Smrg 687fd7d9bd3Smrgstatic yy_state_type yy_last_accepting_state; 688fd7d9bd3Smrgstatic char *yy_last_accepting_cpos; 689fd7d9bd3Smrg 690350952b9Smrgextern int yy_flex_debug; 691350952b9Smrgint yy_flex_debug = 0; 692350952b9Smrg 693fd7d9bd3Smrg/* The intent behind this definition is that it'll catch 694fd7d9bd3Smrg * any uses of REJECT which flex missed. 695fd7d9bd3Smrg */ 696fd7d9bd3Smrg#define REJECT reject_used_but_not_detected 697fd7d9bd3Smrg#define yymore() yymore_used_but_not_detected 698fd7d9bd3Smrg#define YY_MORE_ADJ 0 699fd7d9bd3Smrg#define YY_RESTORE_YY_MORE_OFFSET 700fd7d9bd3Smrgchar *yytext; 701fd7d9bd3Smrg#line 1 "lex.l" 702fd7d9bd3Smrg/* 703fd7d9bd3Smrg** lex file for xgc syntax 704fd7d9bd3Smrg*/ 705fd7d9bd3Smrg/* Lots of stuff stolen from gwm's wool.lex */ 7069aa2a2b5Smrg#line 8 "lex.l" 707fd7d9bd3Smrg 708fd7d9bd3Smrg#include <X11/X.h> 709fd7d9bd3Smrg#include <stdlib.h> 710fd7d9bd3Smrg#include "gram.h" 711fd7d9bd3Smrg#include "constants.h" 712fd7d9bd3Smrg#if defined(FLEX_SCANNER) && !defined(YY_FLEX_LEX_COMPAT) && !defined(__UNIXOS2__) 713fd7d9bd3Smrgint yylineno; 714fd7d9bd3Smrg#endif 715e53c48bfSmrg#line 715 "lex.c" 716e53c48bfSmrg#line 716 "lex.c" 717350952b9Smrg 718350952b9Smrg#define INITIAL 0 719350952b9Smrg 720350952b9Smrg#ifndef YY_NO_UNISTD_H 721350952b9Smrg/* Special case for "unistd.h", since it is non-ANSI. We include it way 722350952b9Smrg * down here because we want the user's section 1 to have been scanned first. 723350952b9Smrg * The user has a chance to override it with an option. 724350952b9Smrg */ 725350952b9Smrg#include <unistd.h> 726350952b9Smrg#endif 727350952b9Smrg 728350952b9Smrg#ifndef YY_EXTRA_TYPE 729350952b9Smrg#define YY_EXTRA_TYPE void * 730350952b9Smrg#endif 731350952b9Smrg 732e53c48bfSmrgstatic int yy_init_globals ( void ); 733350952b9Smrg 734350952b9Smrg/* Accessor methods to globals. 735350952b9Smrg These are made visible to non-reentrant scanners for convenience. */ 736350952b9Smrg 737e53c48bfSmrgint yylex_destroy ( void ); 738350952b9Smrg 739e53c48bfSmrgint yyget_debug ( void ); 740350952b9Smrg 741e53c48bfSmrgvoid yyset_debug ( int debug_flag ); 742350952b9Smrg 743e53c48bfSmrgYY_EXTRA_TYPE yyget_extra ( void ); 744350952b9Smrg 745e53c48bfSmrgvoid yyset_extra ( YY_EXTRA_TYPE user_defined ); 746350952b9Smrg 747e53c48bfSmrgFILE *yyget_in ( void ); 748350952b9Smrg 749e53c48bfSmrgvoid yyset_in ( FILE * _in_str ); 750350952b9Smrg 751e53c48bfSmrgFILE *yyget_out ( void ); 752350952b9Smrg 753e53c48bfSmrgvoid yyset_out ( FILE * _out_str ); 754350952b9Smrg 755e53c48bfSmrg int yyget_leng ( void ); 756350952b9Smrg 757e53c48bfSmrgchar *yyget_text ( void ); 758350952b9Smrg 759e53c48bfSmrgint yyget_lineno ( void ); 760350952b9Smrg 761e53c48bfSmrgvoid yyset_lineno ( int _line_number ); 762fd7d9bd3Smrg 763fd7d9bd3Smrg/* Macros after this point can all be overridden by user definitions in 764fd7d9bd3Smrg * section 1. 765fd7d9bd3Smrg */ 766fd7d9bd3Smrg 767fd7d9bd3Smrg#ifndef YY_SKIP_YYWRAP 768fd7d9bd3Smrg#ifdef __cplusplus 769e53c48bfSmrgextern "C" int yywrap ( void ); 770fd7d9bd3Smrg#else 771e53c48bfSmrgextern int yywrap ( void ); 772fd7d9bd3Smrg#endif 773fd7d9bd3Smrg#endif 774fd7d9bd3Smrg 775e53c48bfSmrg#ifndef YY_NO_UNPUT 776350952b9Smrg 777e53c48bfSmrg static void yyunput ( int c, char *buf_ptr ); 778e53c48bfSmrg 779e53c48bfSmrg#endif 780e53c48bfSmrg 781fd7d9bd3Smrg#ifndef yytext_ptr 782e53c48bfSmrgstatic void yy_flex_strncpy ( char *, const char *, int ); 783fd7d9bd3Smrg#endif 784fd7d9bd3Smrg 785fd7d9bd3Smrg#ifdef YY_NEED_STRLEN 786e53c48bfSmrgstatic int yy_flex_strlen ( const char * ); 787fd7d9bd3Smrg#endif 788fd7d9bd3Smrg 789fd7d9bd3Smrg#ifndef YY_NO_INPUT 790350952b9Smrg#ifdef __cplusplus 791e53c48bfSmrgstatic int yyinput ( void ); 792fd7d9bd3Smrg#else 793e53c48bfSmrgstatic int input ( void ); 794fd7d9bd3Smrg#endif 795fd7d9bd3Smrg 796fd7d9bd3Smrg#endif 797fd7d9bd3Smrg 798fd7d9bd3Smrg/* Amount of stuff to slurp up with each read. */ 799fd7d9bd3Smrg#ifndef YY_READ_BUF_SIZE 800e53c48bfSmrg#ifdef __ia64__ 801e53c48bfSmrg/* On IA-64, the buffer size is 16k, not 8k */ 802e53c48bfSmrg#define YY_READ_BUF_SIZE 16384 803e53c48bfSmrg#else 804fd7d9bd3Smrg#define YY_READ_BUF_SIZE 8192 805e53c48bfSmrg#endif /* __ia64__ */ 806fd7d9bd3Smrg#endif 807fd7d9bd3Smrg 808fd7d9bd3Smrg/* Copy whatever the last rule matched to the standard output. */ 809fd7d9bd3Smrg#ifndef ECHO 810fd7d9bd3Smrg/* This used to be an fputs(), but since the string might contain NUL's, 811fd7d9bd3Smrg * we now use fwrite(). 812fd7d9bd3Smrg */ 813e53c48bfSmrg#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) 814fd7d9bd3Smrg#endif 815fd7d9bd3Smrg 816fd7d9bd3Smrg/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 817fd7d9bd3Smrg * is returned in "result". 818fd7d9bd3Smrg */ 819fd7d9bd3Smrg#ifndef YY_INPUT 820fd7d9bd3Smrg#define YY_INPUT(buf,result,max_size) \ 821350952b9Smrg if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 822fd7d9bd3Smrg { \ 823350952b9Smrg int c = '*'; \ 824350952b9Smrg int n; \ 825fd7d9bd3Smrg for ( n = 0; n < max_size && \ 826fd7d9bd3Smrg (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 827fd7d9bd3Smrg buf[n] = (char) c; \ 828fd7d9bd3Smrg if ( c == '\n' ) \ 829fd7d9bd3Smrg buf[n++] = (char) c; \ 830fd7d9bd3Smrg if ( c == EOF && ferror( yyin ) ) \ 831fd7d9bd3Smrg YY_FATAL_ERROR( "input in flex scanner failed" ); \ 832fd7d9bd3Smrg result = n; \ 833fd7d9bd3Smrg } \ 834350952b9Smrg else \ 835350952b9Smrg { \ 836350952b9Smrg errno=0; \ 837e53c48bfSmrg while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ 838350952b9Smrg { \ 839350952b9Smrg if( errno != EINTR) \ 840350952b9Smrg { \ 841350952b9Smrg YY_FATAL_ERROR( "input in flex scanner failed" ); \ 842350952b9Smrg break; \ 843350952b9Smrg } \ 844350952b9Smrg errno=0; \ 845350952b9Smrg clearerr(yyin); \ 846350952b9Smrg } \ 847350952b9Smrg }\ 848350952b9Smrg\ 849350952b9Smrg 850fd7d9bd3Smrg#endif 851fd7d9bd3Smrg 852fd7d9bd3Smrg/* No semi-colon after return; correct usage is to write "yyterminate();" - 853fd7d9bd3Smrg * we don't want an extra ';' after the "return" because that will cause 854fd7d9bd3Smrg * some compilers to complain about unreachable statements. 855fd7d9bd3Smrg */ 856fd7d9bd3Smrg#ifndef yyterminate 857fd7d9bd3Smrg#define yyterminate() return YY_NULL 858fd7d9bd3Smrg#endif 859fd7d9bd3Smrg 860fd7d9bd3Smrg/* Number of entries by which start-condition stack grows. */ 861fd7d9bd3Smrg#ifndef YY_START_STACK_INCR 862fd7d9bd3Smrg#define YY_START_STACK_INCR 25 863fd7d9bd3Smrg#endif 864fd7d9bd3Smrg 865fd7d9bd3Smrg/* Report a fatal error. */ 866fd7d9bd3Smrg#ifndef YY_FATAL_ERROR 867fd7d9bd3Smrg#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 868fd7d9bd3Smrg#endif 869fd7d9bd3Smrg 870350952b9Smrg/* end tables serialization structures and prototypes */ 871350952b9Smrg 872fd7d9bd3Smrg/* Default declaration of generated scanner - a define so the user can 873fd7d9bd3Smrg * easily add parameters. 874fd7d9bd3Smrg */ 875fd7d9bd3Smrg#ifndef YY_DECL 876350952b9Smrg#define YY_DECL_IS_OURS 1 877350952b9Smrg 878350952b9Smrgextern int yylex (void); 879350952b9Smrg 880350952b9Smrg#define YY_DECL int yylex (void) 881350952b9Smrg#endif /* !YY_DECL */ 882fd7d9bd3Smrg 883fd7d9bd3Smrg/* Code executed at the beginning of each rule, after yytext and yyleng 884fd7d9bd3Smrg * have been set up. 885fd7d9bd3Smrg */ 886fd7d9bd3Smrg#ifndef YY_USER_ACTION 887fd7d9bd3Smrg#define YY_USER_ACTION 888fd7d9bd3Smrg#endif 889fd7d9bd3Smrg 890fd7d9bd3Smrg/* Code executed at the end of each rule. */ 891fd7d9bd3Smrg#ifndef YY_BREAK 892e53c48bfSmrg#define YY_BREAK /*LINTED*/break; 893fd7d9bd3Smrg#endif 894fd7d9bd3Smrg 895fd7d9bd3Smrg#define YY_RULE_SETUP \ 896fd7d9bd3Smrg YY_USER_ACTION 897fd7d9bd3Smrg 898350952b9Smrg/** The main scanner function which does all the work. 899350952b9Smrg */ 900fd7d9bd3SmrgYY_DECL 901350952b9Smrg{ 902e53c48bfSmrg yy_state_type yy_current_state; 903e53c48bfSmrg char *yy_cp, *yy_bp; 904e53c48bfSmrg int yy_act; 905350952b9Smrg 906350952b9Smrg if ( !(yy_init) ) 907fd7d9bd3Smrg { 908350952b9Smrg (yy_init) = 1; 909fd7d9bd3Smrg 910fd7d9bd3Smrg#ifdef YY_USER_INIT 911fd7d9bd3Smrg YY_USER_INIT; 912fd7d9bd3Smrg#endif 913fd7d9bd3Smrg 914350952b9Smrg if ( ! (yy_start) ) 915350952b9Smrg (yy_start) = 1; /* first start state */ 916fd7d9bd3Smrg 917fd7d9bd3Smrg if ( ! yyin ) 918fd7d9bd3Smrg yyin = stdin; 919fd7d9bd3Smrg 920fd7d9bd3Smrg if ( ! yyout ) 921fd7d9bd3Smrg yyout = stdout; 922fd7d9bd3Smrg 923350952b9Smrg if ( ! YY_CURRENT_BUFFER ) { 924350952b9Smrg yyensure_buffer_stack (); 925350952b9Smrg YY_CURRENT_BUFFER_LVALUE = 926e53c48bfSmrg yy_create_buffer( yyin, YY_BUF_SIZE ); 927350952b9Smrg } 928fd7d9bd3Smrg 929e53c48bfSmrg yy_load_buffer_state( ); 930fd7d9bd3Smrg } 931fd7d9bd3Smrg 932e53c48bfSmrg { 933e53c48bfSmrg#line 25 "lex.l" 934e53c48bfSmrg 935e53c48bfSmrg 936e53c48bfSmrg#line 936 "lex.c" 937e53c48bfSmrg 938e53c48bfSmrg while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ 939fd7d9bd3Smrg { 940350952b9Smrg yy_cp = (yy_c_buf_p); 941fd7d9bd3Smrg 942fd7d9bd3Smrg /* Support of yytext. */ 943350952b9Smrg *yy_cp = (yy_hold_char); 944fd7d9bd3Smrg 945fd7d9bd3Smrg /* yy_bp points to the position in yy_ch_buf of the start of 946fd7d9bd3Smrg * the current run. 947fd7d9bd3Smrg */ 948fd7d9bd3Smrg yy_bp = yy_cp; 949fd7d9bd3Smrg 950350952b9Smrg yy_current_state = (yy_start); 951fd7d9bd3Smrgyy_match: 952fd7d9bd3Smrg do 953fd7d9bd3Smrg { 954e53c48bfSmrg YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; 955fd7d9bd3Smrg if ( yy_accept[yy_current_state] ) 956fd7d9bd3Smrg { 957350952b9Smrg (yy_last_accepting_state) = yy_current_state; 958350952b9Smrg (yy_last_accepting_cpos) = yy_cp; 959fd7d9bd3Smrg } 960fd7d9bd3Smrg while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 961fd7d9bd3Smrg { 962fd7d9bd3Smrg yy_current_state = (int) yy_def[yy_current_state]; 963fd7d9bd3Smrg if ( yy_current_state >= 420 ) 964e53c48bfSmrg yy_c = yy_meta[yy_c]; 965fd7d9bd3Smrg } 966e53c48bfSmrg yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 967fd7d9bd3Smrg ++yy_cp; 968fd7d9bd3Smrg } 969fd7d9bd3Smrg while ( yy_base[yy_current_state] != 499 ); 970fd7d9bd3Smrg 971fd7d9bd3Smrgyy_find_action: 972fd7d9bd3Smrg yy_act = yy_accept[yy_current_state]; 973fd7d9bd3Smrg if ( yy_act == 0 ) 974fd7d9bd3Smrg { /* have to back up */ 975350952b9Smrg yy_cp = (yy_last_accepting_cpos); 976350952b9Smrg yy_current_state = (yy_last_accepting_state); 977fd7d9bd3Smrg yy_act = yy_accept[yy_current_state]; 978fd7d9bd3Smrg } 979fd7d9bd3Smrg 980fd7d9bd3Smrg YY_DO_BEFORE_ACTION; 981fd7d9bd3Smrg 982fd7d9bd3Smrgdo_action: /* This label is used only to access EOF actions. */ 983fd7d9bd3Smrg 984fd7d9bd3Smrg switch ( yy_act ) 985fd7d9bd3Smrg { /* beginning of action switch */ 986fd7d9bd3Smrg case 0: /* must back up */ 987fd7d9bd3Smrg /* undo the effects of YY_DO_BEFORE_ACTION */ 988350952b9Smrg *yy_cp = (yy_hold_char); 989350952b9Smrg yy_cp = (yy_last_accepting_cpos); 990350952b9Smrg yy_current_state = (yy_last_accepting_state); 991fd7d9bd3Smrg goto yy_find_action; 992fd7d9bd3Smrg 993fd7d9bd3Smrgcase 1: 994fd7d9bd3SmrgYY_RULE_SETUP 9959aa2a2b5Smrg#line 27 "lex.l" 996fd7d9bd3Smrg{ return (RUN); } 997fd7d9bd3Smrg YY_BREAK 998fd7d9bd3Smrgcase 2: 999fd7d9bd3SmrgYY_RULE_SETUP 10009aa2a2b5Smrg#line 29 "lex.l" 1001fd7d9bd3Smrg{ return (FUNCTION); } 1002fd7d9bd3Smrg YY_BREAK 1003fd7d9bd3Smrgcase 3: 1004fd7d9bd3SmrgYY_RULE_SETUP 10059aa2a2b5Smrg#line 30 "lex.l" 1006fd7d9bd3Smrg{ yylval.num = GXclear; 1007fd7d9bd3Smrg return (FUNCTIONTYPE); } 1008fd7d9bd3Smrg YY_BREAK 1009fd7d9bd3Smrgcase 4: 1010fd7d9bd3SmrgYY_RULE_SETUP 10119aa2a2b5Smrg#line 32 "lex.l" 1012fd7d9bd3Smrg{ yylval.num = GXand; 1013fd7d9bd3Smrg return (FUNCTIONTYPE); } 1014fd7d9bd3Smrg YY_BREAK 1015fd7d9bd3Smrgcase 5: 1016fd7d9bd3SmrgYY_RULE_SETUP 10179aa2a2b5Smrg#line 34 "lex.l" 1018fd7d9bd3Smrg{ yylval.num = GXandReverse; 1019fd7d9bd3Smrg return (FUNCTIONTYPE); } 1020fd7d9bd3Smrg YY_BREAK 1021fd7d9bd3Smrgcase 6: 1022fd7d9bd3SmrgYY_RULE_SETUP 10239aa2a2b5Smrg#line 36 "lex.l" 1024fd7d9bd3Smrg{ yylval.num = GXcopy; 1025fd7d9bd3Smrg return (FUNCTIONTYPE); } 1026fd7d9bd3Smrg YY_BREAK 1027fd7d9bd3Smrgcase 7: 1028fd7d9bd3SmrgYY_RULE_SETUP 10299aa2a2b5Smrg#line 38 "lex.l" 1030fd7d9bd3Smrg{ yylval.num = GXandInverted; 1031fd7d9bd3Smrg return (FUNCTIONTYPE); } 1032fd7d9bd3Smrg YY_BREAK 1033fd7d9bd3Smrgcase 8: 1034fd7d9bd3SmrgYY_RULE_SETUP 10359aa2a2b5Smrg#line 40 "lex.l" 1036fd7d9bd3Smrg{ yylval.num = GXnoop; 1037fd7d9bd3Smrg return (FUNCTIONTYPE); } 1038fd7d9bd3Smrg YY_BREAK 1039fd7d9bd3Smrgcase 9: 1040fd7d9bd3SmrgYY_RULE_SETUP 10419aa2a2b5Smrg#line 42 "lex.l" 1042fd7d9bd3Smrg{ yylval.num = GXxor; 1043fd7d9bd3Smrg return (FUNCTIONTYPE); } 1044fd7d9bd3Smrg YY_BREAK 1045fd7d9bd3Smrgcase 10: 1046fd7d9bd3SmrgYY_RULE_SETUP 10479aa2a2b5Smrg#line 44 "lex.l" 1048fd7d9bd3Smrg{ yylval.num = GXor; 1049fd7d9bd3Smrg return (FUNCTIONTYPE); } 1050fd7d9bd3Smrg YY_BREAK 1051fd7d9bd3Smrgcase 11: 1052fd7d9bd3SmrgYY_RULE_SETUP 10539aa2a2b5Smrg#line 46 "lex.l" 1054fd7d9bd3Smrg{ yylval.num = GXnor; 1055fd7d9bd3Smrg return (FUNCTIONTYPE); } 1056fd7d9bd3Smrg YY_BREAK 1057fd7d9bd3Smrgcase 12: 1058fd7d9bd3SmrgYY_RULE_SETUP 10599aa2a2b5Smrg#line 48 "lex.l" 1060fd7d9bd3Smrg{ yylval.num = GXequiv; 1061fd7d9bd3Smrg return (FUNCTIONTYPE); } 1062fd7d9bd3Smrg YY_BREAK 1063fd7d9bd3Smrgcase 13: 1064fd7d9bd3SmrgYY_RULE_SETUP 10659aa2a2b5Smrg#line 50 "lex.l" 1066fd7d9bd3Smrg{ yylval.num = GXinvert; 1067fd7d9bd3Smrg return (FUNCTIONTYPE); } 1068fd7d9bd3Smrg YY_BREAK 1069fd7d9bd3Smrgcase 14: 1070fd7d9bd3SmrgYY_RULE_SETUP 10719aa2a2b5Smrg#line 52 "lex.l" 1072fd7d9bd3Smrg{ yylval.num = GXorReverse; 1073fd7d9bd3Smrg return (FUNCTIONTYPE); } 1074fd7d9bd3Smrg YY_BREAK 1075fd7d9bd3Smrgcase 15: 1076fd7d9bd3SmrgYY_RULE_SETUP 10779aa2a2b5Smrg#line 54 "lex.l" 1078fd7d9bd3Smrg{ yylval.num = GXcopyInverted; 1079fd7d9bd3Smrg return (FUNCTIONTYPE); } 1080fd7d9bd3Smrg YY_BREAK 1081fd7d9bd3Smrgcase 16: 1082fd7d9bd3SmrgYY_RULE_SETUP 10839aa2a2b5Smrg#line 56 "lex.l" 1084fd7d9bd3Smrg{ yylval.num = GXorInverted; 1085fd7d9bd3Smrg return (FUNCTIONTYPE); } 1086fd7d9bd3Smrg YY_BREAK 1087fd7d9bd3Smrgcase 17: 1088fd7d9bd3SmrgYY_RULE_SETUP 10899aa2a2b5Smrg#line 58 "lex.l" 1090fd7d9bd3Smrg{ yylval.num = GXnand; 1091fd7d9bd3Smrg return (FUNCTIONTYPE); } 1092fd7d9bd3Smrg YY_BREAK 1093fd7d9bd3Smrgcase 18: 1094fd7d9bd3SmrgYY_RULE_SETUP 10959aa2a2b5Smrg#line 60 "lex.l" 1096fd7d9bd3Smrg{ yylval.num = GXset; 1097fd7d9bd3Smrg return (FUNCTIONTYPE); } 1098fd7d9bd3Smrg YY_BREAK 1099fd7d9bd3Smrgcase 19: 1100fd7d9bd3SmrgYY_RULE_SETUP 11019aa2a2b5Smrg#line 63 "lex.l" 1102fd7d9bd3Smrg{ return (TEST); } 1103fd7d9bd3Smrg YY_BREAK 1104fd7d9bd3Smrgcase 20: 1105fd7d9bd3SmrgYY_RULE_SETUP 11069aa2a2b5Smrg#line 64 "lex.l" 1107fd7d9bd3Smrg{ yylval.num = CopyArea; 1108fd7d9bd3Smrg return (TESTTYPE); } 1109fd7d9bd3Smrg YY_BREAK 1110fd7d9bd3Smrgcase 21: 1111fd7d9bd3SmrgYY_RULE_SETUP 11129aa2a2b5Smrg#line 66 "lex.l" 1113fd7d9bd3Smrg{ yylval.num = CopyPlane; 1114fd7d9bd3Smrg return (TESTTYPE); } 1115fd7d9bd3Smrg YY_BREAK 1116fd7d9bd3Smrgcase 22: 1117fd7d9bd3SmrgYY_RULE_SETUP 11189aa2a2b5Smrg#line 68 "lex.l" 1119fd7d9bd3Smrg{ yylval.num = PolyPoint; 1120fd7d9bd3Smrg return (TESTTYPE); } 1121fd7d9bd3Smrg YY_BREAK 1122fd7d9bd3Smrgcase 23: 1123fd7d9bd3SmrgYY_RULE_SETUP 11249aa2a2b5Smrg#line 70 "lex.l" 1125fd7d9bd3Smrg{ yylval.num = PolyLine; 1126fd7d9bd3Smrg return (TESTTYPE); } 1127fd7d9bd3Smrg YY_BREAK 1128fd7d9bd3Smrgcase 24: 1129fd7d9bd3SmrgYY_RULE_SETUP 11309aa2a2b5Smrg#line 72 "lex.l" 1131fd7d9bd3Smrg{ yylval.num = PolySegment; 1132fd7d9bd3Smrg return (TESTTYPE); } 1133fd7d9bd3Smrg YY_BREAK 1134fd7d9bd3Smrgcase 25: 1135fd7d9bd3SmrgYY_RULE_SETUP 11369aa2a2b5Smrg#line 74 "lex.l" 1137fd7d9bd3Smrg{ yylval.num = PolyRectangle; 1138fd7d9bd3Smrg return (TESTTYPE); } 1139fd7d9bd3Smrg YY_BREAK 1140fd7d9bd3Smrgcase 26: 1141fd7d9bd3SmrgYY_RULE_SETUP 11429aa2a2b5Smrg#line 76 "lex.l" 1143fd7d9bd3Smrg{ yylval.num = PolyArc; 1144fd7d9bd3Smrg return (TESTTYPE); } 1145fd7d9bd3Smrg YY_BREAK 1146fd7d9bd3Smrgcase 27: 1147fd7d9bd3SmrgYY_RULE_SETUP 11489aa2a2b5Smrg#line 78 "lex.l" 1149fd7d9bd3Smrg{ yylval.num = FillPolygon; 1150fd7d9bd3Smrg return (TESTTYPE); } 1151fd7d9bd3Smrg YY_BREAK 1152fd7d9bd3Smrgcase 28: 1153fd7d9bd3SmrgYY_RULE_SETUP 11549aa2a2b5Smrg#line 80 "lex.l" 1155fd7d9bd3Smrg{ yylval.num = PolyFillRect; 1156fd7d9bd3Smrg return (TESTTYPE); } 1157fd7d9bd3Smrg YY_BREAK 1158fd7d9bd3Smrgcase 29: 1159fd7d9bd3SmrgYY_RULE_SETUP 11609aa2a2b5Smrg#line 82 "lex.l" 1161fd7d9bd3Smrg{ yylval.num = PolyFillArc; 1162fd7d9bd3Smrg return (TESTTYPE); } 1163fd7d9bd3Smrg YY_BREAK 1164fd7d9bd3Smrgcase 30: 1165fd7d9bd3SmrgYY_RULE_SETUP 11669aa2a2b5Smrg#line 84 "lex.l" 1167fd7d9bd3Smrg{ yylval.num = PutImage; 1168fd7d9bd3Smrg return (TESTTYPE); } 1169fd7d9bd3Smrg YY_BREAK 1170fd7d9bd3Smrgcase 31: 1171fd7d9bd3SmrgYY_RULE_SETUP 11729aa2a2b5Smrg#line 86 "lex.l" 1173fd7d9bd3Smrg{ yylval.num = GetImage; 1174fd7d9bd3Smrg return (TESTTYPE); } 1175fd7d9bd3Smrg YY_BREAK 1176fd7d9bd3Smrgcase 32: 1177fd7d9bd3SmrgYY_RULE_SETUP 11789aa2a2b5Smrg#line 88 "lex.l" 1179fd7d9bd3Smrg{ yylval.num = PolyText8; 1180fd7d9bd3Smrg return (TESTTYPE); } 1181fd7d9bd3Smrg YY_BREAK 1182fd7d9bd3Smrgcase 33: 1183fd7d9bd3SmrgYY_RULE_SETUP 11849aa2a2b5Smrg#line 90 "lex.l" 1185fd7d9bd3Smrg{ yylval.num = ImageText8; 1186fd7d9bd3Smrg return (TESTTYPE); } 1187fd7d9bd3Smrg YY_BREAK 1188fd7d9bd3Smrgcase 34: 1189fd7d9bd3SmrgYY_RULE_SETUP 11909aa2a2b5Smrg#line 92 "lex.l" 1191fd7d9bd3Smrg{ yylval.num = PolyText16; 1192fd7d9bd3Smrg return (TESTTYPE); } 1193fd7d9bd3Smrg YY_BREAK 1194fd7d9bd3Smrgcase 35: 1195fd7d9bd3SmrgYY_RULE_SETUP 11969aa2a2b5Smrg#line 94 "lex.l" 1197fd7d9bd3Smrg{ yylval.num = ImageText16; 1198fd7d9bd3Smrg return (TESTTYPE); } 1199fd7d9bd3Smrg YY_BREAK 1200fd7d9bd3Smrgcase 36: 1201fd7d9bd3SmrgYY_RULE_SETUP 12029aa2a2b5Smrg#line 97 "lex.l" 1203fd7d9bd3Smrg{ return (LINESTYLE); } 1204fd7d9bd3Smrg YY_BREAK 1205fd7d9bd3Smrgcase 37: 1206fd7d9bd3SmrgYY_RULE_SETUP 12079aa2a2b5Smrg#line 98 "lex.l" 1208fd7d9bd3Smrg{ yylval.num = LineOnOffDash; 1209fd7d9bd3Smrg return (LINESTYLETYPE); } 1210fd7d9bd3Smrg YY_BREAK 1211fd7d9bd3Smrgcase 38: 1212fd7d9bd3SmrgYY_RULE_SETUP 12139aa2a2b5Smrg#line 100 "lex.l" 1214fd7d9bd3Smrg{ yylval.num = LineDoubleDash; 1215fd7d9bd3Smrg return (LINESTYLETYPE); } 1216fd7d9bd3Smrg YY_BREAK 1217fd7d9bd3Smrgcase 39: 1218fd7d9bd3SmrgYY_RULE_SETUP 12199aa2a2b5Smrg#line 103 "lex.l" 1220fd7d9bd3Smrg{ return (CAPSTYLE); } 1221fd7d9bd3Smrg YY_BREAK 1222fd7d9bd3Smrgcase 40: 1223fd7d9bd3SmrgYY_RULE_SETUP 12249aa2a2b5Smrg#line 104 "lex.l" 1225fd7d9bd3Smrg{ yylval.num = CapNotLast; 1226fd7d9bd3Smrg return (CAPSTYLETYPE); } 1227fd7d9bd3Smrg YY_BREAK 1228fd7d9bd3Smrgcase 41: 1229fd7d9bd3SmrgYY_RULE_SETUP 12309aa2a2b5Smrg#line 106 "lex.l" 1231fd7d9bd3Smrg{ yylval.num = CapButt; 1232fd7d9bd3Smrg return (CAPSTYLETYPE); } 1233fd7d9bd3Smrg YY_BREAK 1234fd7d9bd3Smrgcase 42: 1235fd7d9bd3SmrgYY_RULE_SETUP 12369aa2a2b5Smrg#line 108 "lex.l" 1237fd7d9bd3Smrg{ yylval.num = CapProjecting; 1238fd7d9bd3Smrg return (CAPSTYLETYPE); } 1239fd7d9bd3Smrg YY_BREAK 1240fd7d9bd3Smrgcase 43: 1241fd7d9bd3SmrgYY_RULE_SETUP 12429aa2a2b5Smrg#line 111 "lex.l" 1243fd7d9bd3Smrg{ return (JOINSTYLE); } 1244fd7d9bd3Smrg YY_BREAK 1245fd7d9bd3Smrgcase 44: 1246fd7d9bd3SmrgYY_RULE_SETUP 12479aa2a2b5Smrg#line 112 "lex.l" 1248fd7d9bd3Smrg{ yylval.num = JoinMiter; 1249fd7d9bd3Smrg return (JOINSTYLETYPE); } 1250fd7d9bd3Smrg YY_BREAK 1251fd7d9bd3Smrgcase 45: 1252fd7d9bd3SmrgYY_RULE_SETUP 12539aa2a2b5Smrg#line 114 "lex.l" 1254fd7d9bd3Smrg{ yylval.num = JoinBevel; 1255fd7d9bd3Smrg return (JOINSTYLETYPE); } 1256fd7d9bd3Smrg YY_BREAK 1257fd7d9bd3Smrgcase 46: 1258fd7d9bd3SmrgYY_RULE_SETUP 12599aa2a2b5Smrg#line 117 "lex.l" 1260fd7d9bd3Smrg{ return (ROUND); } 1261fd7d9bd3Smrg YY_BREAK 1262fd7d9bd3Smrgcase 47: 1263fd7d9bd3SmrgYY_RULE_SETUP 12649aa2a2b5Smrg#line 119 "lex.l" 1265fd7d9bd3Smrg{ return (FILLSTYLE); } 1266fd7d9bd3Smrg YY_BREAK 1267fd7d9bd3Smrgcase 48: 1268fd7d9bd3SmrgYY_RULE_SETUP 12699aa2a2b5Smrg#line 120 "lex.l" 1270fd7d9bd3Smrg{ yylval.num = FillTiled; 1271fd7d9bd3Smrg return (FILLSTYLETYPE); } 1272fd7d9bd3Smrg YY_BREAK 1273fd7d9bd3Smrgcase 49: 1274fd7d9bd3SmrgYY_RULE_SETUP 12759aa2a2b5Smrg#line 122 "lex.l" 1276fd7d9bd3Smrg{ yylval.num = FillStippled; 1277fd7d9bd3Smrg return (FILLSTYLETYPE); } 1278fd7d9bd3Smrg YY_BREAK 1279fd7d9bd3Smrgcase 50: 1280fd7d9bd3SmrgYY_RULE_SETUP 12819aa2a2b5Smrg#line 124 "lex.l" 1282fd7d9bd3Smrg{ yylval.num = FillOpaqueStippled; 1283fd7d9bd3Smrg return (FILLSTYLETYPE); } 1284fd7d9bd3Smrg YY_BREAK 1285fd7d9bd3Smrgcase 51: 1286fd7d9bd3SmrgYY_RULE_SETUP 12879aa2a2b5Smrg#line 127 "lex.l" 1288fd7d9bd3Smrg{ return (SOLID); } 1289fd7d9bd3Smrg YY_BREAK 1290fd7d9bd3Smrgcase 52: 1291fd7d9bd3SmrgYY_RULE_SETUP 12929aa2a2b5Smrg#line 129 "lex.l" 1293fd7d9bd3Smrg{ return (FILLRULE); } 1294fd7d9bd3Smrg YY_BREAK 1295fd7d9bd3Smrgcase 53: 1296fd7d9bd3SmrgYY_RULE_SETUP 12979aa2a2b5Smrg#line 130 "lex.l" 1298fd7d9bd3Smrg{ yylval.num = EvenOddRule; 1299fd7d9bd3Smrg return (FILLRULETYPE); } 1300fd7d9bd3Smrg YY_BREAK 1301fd7d9bd3Smrgcase 54: 1302fd7d9bd3SmrgYY_RULE_SETUP 13039aa2a2b5Smrg#line 132 "lex.l" 1304fd7d9bd3Smrg{ yylval.num = WindingRule; 1305fd7d9bd3Smrg return (FILLRULETYPE); } 1306fd7d9bd3Smrg YY_BREAK 1307fd7d9bd3Smrgcase 55: 1308fd7d9bd3SmrgYY_RULE_SETUP 13099aa2a2b5Smrg#line 135 "lex.l" 1310fd7d9bd3Smrg{ return (ARCMODE); } 1311fd7d9bd3Smrg YY_BREAK 1312fd7d9bd3Smrgcase 56: 1313fd7d9bd3SmrgYY_RULE_SETUP 13149aa2a2b5Smrg#line 136 "lex.l" 1315fd7d9bd3Smrg{ yylval.num = ArcChord; 1316fd7d9bd3Smrg return (ARCMODETYPE); } 1317fd7d9bd3Smrg YY_BREAK 1318fd7d9bd3Smrgcase 57: 1319fd7d9bd3SmrgYY_RULE_SETUP 13209aa2a2b5Smrg#line 138 "lex.l" 1321fd7d9bd3Smrg{ yylval.num = ArcPieSlice; 1322fd7d9bd3Smrg return (ARCMODETYPE); } 1323fd7d9bd3Smrg YY_BREAK 1324fd7d9bd3Smrgcase 58: 1325fd7d9bd3SmrgYY_RULE_SETUP 13269aa2a2b5Smrg#line 141 "lex.l" 1327fd7d9bd3Smrg{ return (FOREGROUND); } 1328fd7d9bd3Smrg YY_BREAK 1329fd7d9bd3Smrgcase 59: 1330fd7d9bd3SmrgYY_RULE_SETUP 13319aa2a2b5Smrg#line 142 "lex.l" 1332fd7d9bd3Smrg{ return (BACKGROUND); } 1333fd7d9bd3Smrg YY_BREAK 1334fd7d9bd3Smrgcase 60: 1335fd7d9bd3SmrgYY_RULE_SETUP 13369aa2a2b5Smrg#line 143 "lex.l" 1337fd7d9bd3Smrg{ return (LINEWIDTH); } 1338fd7d9bd3Smrg YY_BREAK 1339fd7d9bd3Smrgcase 61: 1340fd7d9bd3SmrgYY_RULE_SETUP 13419aa2a2b5Smrg#line 144 "lex.l" 1342fd7d9bd3Smrg{ return (PLANEMASK); } 1343fd7d9bd3Smrg YY_BREAK 1344fd7d9bd3Smrgcase 62: 1345fd7d9bd3SmrgYY_RULE_SETUP 13469aa2a2b5Smrg#line 145 "lex.l" 1347fd7d9bd3Smrg{ return (DASHLIST); } 1348fd7d9bd3Smrg YY_BREAK 1349fd7d9bd3Smrgcase 63: 1350fd7d9bd3SmrgYY_RULE_SETUP 13519aa2a2b5Smrg#line 146 "lex.l" 1352fd7d9bd3Smrg{ return (FONT); } 1353fd7d9bd3Smrg YY_BREAK 1354fd7d9bd3Smrgcase 64: 1355fd7d9bd3SmrgYY_RULE_SETUP 13569aa2a2b5Smrg#line 147 "lex.l" 1357fd7d9bd3Smrg{ return (PERCENT); } 1358fd7d9bd3Smrg YY_BREAK 1359fd7d9bd3Smrgcase 65: 1360fd7d9bd3SmrgYY_RULE_SETUP 13619aa2a2b5Smrg#line 149 "lex.l" 1362fd7d9bd3Smrg{ (void) sscanf ((char *)yytext, "%d", &yylval.num); 1363fd7d9bd3Smrg return (NUMBER); } 1364fd7d9bd3Smrg YY_BREAK 1365fd7d9bd3Smrgcase 66: 1366350952b9Smrg/* rule 66 can match eol */ 1367fd7d9bd3SmrgYY_RULE_SETUP 13689aa2a2b5Smrg#line 151 "lex.l" 1369fd7d9bd3Smrg{ yylval.ptr = (char *) yytext; 1370fd7d9bd3Smrg return (STRING); } 1371fd7d9bd3Smrg YY_BREAK 1372fd7d9bd3Smrgcase 67: 1373350952b9Smrg/* rule 67 can match eol */ 1374fd7d9bd3SmrgYY_RULE_SETUP 13759aa2a2b5Smrg#line 153 "lex.l" 1376fd7d9bd3Smrg{ ; } 1377fd7d9bd3Smrg YY_BREAK 1378fd7d9bd3Smrgcase 68: 1379fd7d9bd3SmrgYY_RULE_SETUP 13809aa2a2b5Smrg#line 154 "lex.l" 1381fd7d9bd3Smrg{ ; } 1382fd7d9bd3Smrg YY_BREAK 1383fd7d9bd3Smrgcase 69: 1384350952b9Smrg/* rule 69 can match eol */ 1385fd7d9bd3SmrgYY_RULE_SETUP 13869aa2a2b5Smrg#line 155 "lex.l" 1387fd7d9bd3Smrg{ return ('\n'); } 1388fd7d9bd3Smrg YY_BREAK 1389fd7d9bd3Smrgcase 70: 1390fd7d9bd3SmrgYY_RULE_SETUP 13919aa2a2b5Smrg#line 157 "lex.l" 1392fd7d9bd3Smrg{ yylval.ptr = (char *) yytext; 1393fd7d9bd3Smrg return (STRING); } 1394fd7d9bd3Smrg YY_BREAK 1395fd7d9bd3Smrgcase 71: 1396fd7d9bd3SmrgYY_RULE_SETUP 13979aa2a2b5Smrg#line 160 "lex.l" 1398fd7d9bd3Smrg{ fprintf(stderr, 1399fd7d9bd3Smrg "xgc: bad character `%s', line %d\n", 1400fd7d9bd3Smrg yytext, yylineno); } 1401fd7d9bd3Smrg YY_BREAK 1402fd7d9bd3Smrgcase 72: 1403fd7d9bd3SmrgYY_RULE_SETUP 14049aa2a2b5Smrg#line 164 "lex.l" 1405fd7d9bd3SmrgECHO; 1406fd7d9bd3Smrg YY_BREAK 1407e53c48bfSmrg#line 1407 "lex.c" 1408fd7d9bd3Smrgcase YY_STATE_EOF(INITIAL): 1409fd7d9bd3Smrg yyterminate(); 1410fd7d9bd3Smrg 1411fd7d9bd3Smrg case YY_END_OF_BUFFER: 1412fd7d9bd3Smrg { 1413fd7d9bd3Smrg /* Amount of text matched not including the EOB char. */ 1414350952b9Smrg int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 1415fd7d9bd3Smrg 1416fd7d9bd3Smrg /* Undo the effects of YY_DO_BEFORE_ACTION. */ 1417350952b9Smrg *yy_cp = (yy_hold_char); 1418fd7d9bd3Smrg YY_RESTORE_YY_MORE_OFFSET 1419fd7d9bd3Smrg 1420350952b9Smrg if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 1421fd7d9bd3Smrg { 1422fd7d9bd3Smrg /* We're scanning a new file or input source. It's 1423fd7d9bd3Smrg * possible that this happened because the user 1424fd7d9bd3Smrg * just pointed yyin at a new source and called 1425fd7d9bd3Smrg * yylex(). If so, then we have to assure 1426350952b9Smrg * consistency between YY_CURRENT_BUFFER and our 1427fd7d9bd3Smrg * globals. Here is the right place to do so, because 1428fd7d9bd3Smrg * this is the first action (other than possibly a 1429fd7d9bd3Smrg * back-up) that will match for the new input source. 1430fd7d9bd3Smrg */ 1431350952b9Smrg (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1432350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; 1433350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 1434fd7d9bd3Smrg } 1435fd7d9bd3Smrg 1436fd7d9bd3Smrg /* Note that here we test for yy_c_buf_p "<=" to the position 1437fd7d9bd3Smrg * of the first EOB in the buffer, since yy_c_buf_p will 1438fd7d9bd3Smrg * already have been incremented past the NUL character 1439fd7d9bd3Smrg * (since all states make transitions on EOB to the 1440fd7d9bd3Smrg * end-of-buffer state). Contrast this with the test 1441fd7d9bd3Smrg * in input(). 1442fd7d9bd3Smrg */ 1443350952b9Smrg if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 1444fd7d9bd3Smrg { /* This was really a NUL. */ 1445fd7d9bd3Smrg yy_state_type yy_next_state; 1446fd7d9bd3Smrg 1447350952b9Smrg (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 1448fd7d9bd3Smrg 1449350952b9Smrg yy_current_state = yy_get_previous_state( ); 1450fd7d9bd3Smrg 1451fd7d9bd3Smrg /* Okay, we're now positioned to make the NUL 1452fd7d9bd3Smrg * transition. We couldn't have 1453fd7d9bd3Smrg * yy_get_previous_state() go ahead and do it 1454fd7d9bd3Smrg * for us because it doesn't know how to deal 1455fd7d9bd3Smrg * with the possibility of jamming (and we don't 1456fd7d9bd3Smrg * want to build jamming into it because then it 1457fd7d9bd3Smrg * will run more slowly). 1458fd7d9bd3Smrg */ 1459fd7d9bd3Smrg 1460fd7d9bd3Smrg yy_next_state = yy_try_NUL_trans( yy_current_state ); 1461fd7d9bd3Smrg 1462350952b9Smrg yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1463fd7d9bd3Smrg 1464fd7d9bd3Smrg if ( yy_next_state ) 1465fd7d9bd3Smrg { 1466fd7d9bd3Smrg /* Consume the NUL. */ 1467350952b9Smrg yy_cp = ++(yy_c_buf_p); 1468fd7d9bd3Smrg yy_current_state = yy_next_state; 1469fd7d9bd3Smrg goto yy_match; 1470fd7d9bd3Smrg } 1471fd7d9bd3Smrg 1472fd7d9bd3Smrg else 1473fd7d9bd3Smrg { 1474350952b9Smrg yy_cp = (yy_c_buf_p); 1475fd7d9bd3Smrg goto yy_find_action; 1476fd7d9bd3Smrg } 1477fd7d9bd3Smrg } 1478fd7d9bd3Smrg 1479350952b9Smrg else switch ( yy_get_next_buffer( ) ) 1480fd7d9bd3Smrg { 1481fd7d9bd3Smrg case EOB_ACT_END_OF_FILE: 1482fd7d9bd3Smrg { 1483350952b9Smrg (yy_did_buffer_switch_on_eof) = 0; 1484fd7d9bd3Smrg 1485e53c48bfSmrg if ( yywrap( ) ) 1486fd7d9bd3Smrg { 1487fd7d9bd3Smrg /* Note: because we've taken care in 1488fd7d9bd3Smrg * yy_get_next_buffer() to have set up 1489fd7d9bd3Smrg * yytext, we can now set up 1490fd7d9bd3Smrg * yy_c_buf_p so that if some total 1491fd7d9bd3Smrg * hoser (like flex itself) wants to 1492fd7d9bd3Smrg * call the scanner after we return the 1493fd7d9bd3Smrg * YY_NULL, it'll still work - another 1494fd7d9bd3Smrg * YY_NULL will get returned. 1495fd7d9bd3Smrg */ 1496350952b9Smrg (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 1497fd7d9bd3Smrg 1498fd7d9bd3Smrg yy_act = YY_STATE_EOF(YY_START); 1499fd7d9bd3Smrg goto do_action; 1500fd7d9bd3Smrg } 1501fd7d9bd3Smrg 1502fd7d9bd3Smrg else 1503fd7d9bd3Smrg { 1504350952b9Smrg if ( ! (yy_did_buffer_switch_on_eof) ) 1505fd7d9bd3Smrg YY_NEW_FILE; 1506fd7d9bd3Smrg } 1507fd7d9bd3Smrg break; 1508fd7d9bd3Smrg } 1509fd7d9bd3Smrg 1510fd7d9bd3Smrg case EOB_ACT_CONTINUE_SCAN: 1511350952b9Smrg (yy_c_buf_p) = 1512350952b9Smrg (yytext_ptr) + yy_amount_of_matched_text; 1513fd7d9bd3Smrg 1514350952b9Smrg yy_current_state = yy_get_previous_state( ); 1515fd7d9bd3Smrg 1516350952b9Smrg yy_cp = (yy_c_buf_p); 1517350952b9Smrg yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1518fd7d9bd3Smrg goto yy_match; 1519fd7d9bd3Smrg 1520fd7d9bd3Smrg case EOB_ACT_LAST_MATCH: 1521350952b9Smrg (yy_c_buf_p) = 1522350952b9Smrg &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 1523fd7d9bd3Smrg 1524350952b9Smrg yy_current_state = yy_get_previous_state( ); 1525fd7d9bd3Smrg 1526350952b9Smrg yy_cp = (yy_c_buf_p); 1527350952b9Smrg yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1528fd7d9bd3Smrg goto yy_find_action; 1529fd7d9bd3Smrg } 1530fd7d9bd3Smrg break; 1531fd7d9bd3Smrg } 1532fd7d9bd3Smrg 1533fd7d9bd3Smrg default: 1534fd7d9bd3Smrg YY_FATAL_ERROR( 1535fd7d9bd3Smrg "fatal flex scanner internal error--no action found" ); 1536fd7d9bd3Smrg } /* end of action switch */ 1537fd7d9bd3Smrg } /* end of scanning one token */ 1538e53c48bfSmrg } /* end of user's declarations */ 1539350952b9Smrg} /* end of yylex */ 1540fd7d9bd3Smrg 1541fd7d9bd3Smrg/* yy_get_next_buffer - try to read in a new buffer 1542fd7d9bd3Smrg * 1543fd7d9bd3Smrg * Returns a code representing an action: 1544fd7d9bd3Smrg * EOB_ACT_LAST_MATCH - 1545fd7d9bd3Smrg * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 1546fd7d9bd3Smrg * EOB_ACT_END_OF_FILE - end of file 1547fd7d9bd3Smrg */ 1548350952b9Smrgstatic int yy_get_next_buffer (void) 1549350952b9Smrg{ 1550e53c48bfSmrg char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 1551e53c48bfSmrg char *source = (yytext_ptr); 1552e53c48bfSmrg int number_to_move, i; 1553fd7d9bd3Smrg int ret_val; 1554fd7d9bd3Smrg 1555350952b9Smrg if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 1556fd7d9bd3Smrg YY_FATAL_ERROR( 1557fd7d9bd3Smrg "fatal flex scanner internal error--end of buffer missed" ); 1558fd7d9bd3Smrg 1559350952b9Smrg if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 1560fd7d9bd3Smrg { /* Don't try to fill the buffer, so this is an EOF. */ 1561350952b9Smrg if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 1562fd7d9bd3Smrg { 1563fd7d9bd3Smrg /* We matched a single character, the EOB, so 1564fd7d9bd3Smrg * treat this as a final EOF. 1565fd7d9bd3Smrg */ 1566fd7d9bd3Smrg return EOB_ACT_END_OF_FILE; 1567fd7d9bd3Smrg } 1568fd7d9bd3Smrg 1569fd7d9bd3Smrg else 1570fd7d9bd3Smrg { 1571fd7d9bd3Smrg /* We matched some text prior to the EOB, first 1572fd7d9bd3Smrg * process it. 1573fd7d9bd3Smrg */ 1574fd7d9bd3Smrg return EOB_ACT_LAST_MATCH; 1575fd7d9bd3Smrg } 1576fd7d9bd3Smrg } 1577fd7d9bd3Smrg 1578fd7d9bd3Smrg /* Try to read more data. */ 1579fd7d9bd3Smrg 1580fd7d9bd3Smrg /* First move last chars to start of buffer. */ 1581e53c48bfSmrg number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); 1582fd7d9bd3Smrg 1583fd7d9bd3Smrg for ( i = 0; i < number_to_move; ++i ) 1584fd7d9bd3Smrg *(dest++) = *(source++); 1585fd7d9bd3Smrg 1586350952b9Smrg if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 1587fd7d9bd3Smrg /* don't do the read, it's not guaranteed to return an EOF, 1588fd7d9bd3Smrg * just force an EOF 1589fd7d9bd3Smrg */ 1590350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 1591fd7d9bd3Smrg 1592fd7d9bd3Smrg else 1593fd7d9bd3Smrg { 1594350952b9Smrg int num_to_read = 1595350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 1596fd7d9bd3Smrg 1597fd7d9bd3Smrg while ( num_to_read <= 0 ) 1598fd7d9bd3Smrg { /* Not enough room in the buffer - grow it. */ 1599fd7d9bd3Smrg 1600fd7d9bd3Smrg /* just a shorter name for the current buffer */ 1601e53c48bfSmrg YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; 1602fd7d9bd3Smrg 1603fd7d9bd3Smrg int yy_c_buf_p_offset = 1604350952b9Smrg (int) ((yy_c_buf_p) - b->yy_ch_buf); 1605fd7d9bd3Smrg 1606fd7d9bd3Smrg if ( b->yy_is_our_buffer ) 1607fd7d9bd3Smrg { 1608fd7d9bd3Smrg int new_size = b->yy_buf_size * 2; 1609fd7d9bd3Smrg 1610fd7d9bd3Smrg if ( new_size <= 0 ) 1611fd7d9bd3Smrg b->yy_buf_size += b->yy_buf_size / 8; 1612fd7d9bd3Smrg else 1613fd7d9bd3Smrg b->yy_buf_size *= 2; 1614fd7d9bd3Smrg 1615fd7d9bd3Smrg b->yy_ch_buf = (char *) 1616fd7d9bd3Smrg /* Include room in for 2 EOB chars. */ 1617e53c48bfSmrg yyrealloc( (void *) b->yy_ch_buf, 1618e53c48bfSmrg (yy_size_t) (b->yy_buf_size + 2) ); 1619fd7d9bd3Smrg } 1620fd7d9bd3Smrg else 1621fd7d9bd3Smrg /* Can't grow it, we don't own it. */ 1622e53c48bfSmrg b->yy_ch_buf = NULL; 1623fd7d9bd3Smrg 1624fd7d9bd3Smrg if ( ! b->yy_ch_buf ) 1625fd7d9bd3Smrg YY_FATAL_ERROR( 1626fd7d9bd3Smrg "fatal error - scanner input buffer overflow" ); 1627fd7d9bd3Smrg 1628350952b9Smrg (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 1629fd7d9bd3Smrg 1630350952b9Smrg num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 1631fd7d9bd3Smrg number_to_move - 1; 1632350952b9Smrg 1633fd7d9bd3Smrg } 1634fd7d9bd3Smrg 1635fd7d9bd3Smrg if ( num_to_read > YY_READ_BUF_SIZE ) 1636fd7d9bd3Smrg num_to_read = YY_READ_BUF_SIZE; 1637fd7d9bd3Smrg 1638fd7d9bd3Smrg /* Read in more data. */ 1639350952b9Smrg YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 1640e53c48bfSmrg (yy_n_chars), num_to_read ); 1641fd7d9bd3Smrg 1642350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1643fd7d9bd3Smrg } 1644fd7d9bd3Smrg 1645350952b9Smrg if ( (yy_n_chars) == 0 ) 1646fd7d9bd3Smrg { 1647fd7d9bd3Smrg if ( number_to_move == YY_MORE_ADJ ) 1648fd7d9bd3Smrg { 1649fd7d9bd3Smrg ret_val = EOB_ACT_END_OF_FILE; 1650e53c48bfSmrg yyrestart( yyin ); 1651fd7d9bd3Smrg } 1652fd7d9bd3Smrg 1653fd7d9bd3Smrg else 1654fd7d9bd3Smrg { 1655fd7d9bd3Smrg ret_val = EOB_ACT_LAST_MATCH; 1656350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 1657fd7d9bd3Smrg YY_BUFFER_EOF_PENDING; 1658fd7d9bd3Smrg } 1659fd7d9bd3Smrg } 1660fd7d9bd3Smrg 1661fd7d9bd3Smrg else 1662fd7d9bd3Smrg ret_val = EOB_ACT_CONTINUE_SCAN; 1663fd7d9bd3Smrg 1664e53c48bfSmrg if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 1665350952b9Smrg /* Extend the array by 50%, plus the number we really need. */ 1666e53c48bfSmrg int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 1667e53c48bfSmrg YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( 1668e53c48bfSmrg (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); 1669350952b9Smrg if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 1670350952b9Smrg YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 1671e53c48bfSmrg /* "- 2" to take care of EOB's */ 1672e53c48bfSmrg YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); 1673350952b9Smrg } 1674350952b9Smrg 1675350952b9Smrg (yy_n_chars) += number_to_move; 1676350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 1677350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 1678fd7d9bd3Smrg 1679350952b9Smrg (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 1680fd7d9bd3Smrg 1681fd7d9bd3Smrg return ret_val; 1682350952b9Smrg} 1683fd7d9bd3Smrg 1684fd7d9bd3Smrg/* yy_get_previous_state - get the state just before the EOB char was reached */ 1685fd7d9bd3Smrg 1686350952b9Smrg static yy_state_type yy_get_previous_state (void) 1687350952b9Smrg{ 1688e53c48bfSmrg yy_state_type yy_current_state; 1689e53c48bfSmrg char *yy_cp; 1690350952b9Smrg 1691350952b9Smrg yy_current_state = (yy_start); 1692fd7d9bd3Smrg 1693350952b9Smrg for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 1694fd7d9bd3Smrg { 1695e53c48bfSmrg YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 1696fd7d9bd3Smrg if ( yy_accept[yy_current_state] ) 1697fd7d9bd3Smrg { 1698350952b9Smrg (yy_last_accepting_state) = yy_current_state; 1699350952b9Smrg (yy_last_accepting_cpos) = yy_cp; 1700fd7d9bd3Smrg } 1701fd7d9bd3Smrg while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1702fd7d9bd3Smrg { 1703fd7d9bd3Smrg yy_current_state = (int) yy_def[yy_current_state]; 1704fd7d9bd3Smrg if ( yy_current_state >= 420 ) 1705e53c48bfSmrg yy_c = yy_meta[yy_c]; 1706fd7d9bd3Smrg } 1707e53c48bfSmrg yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 1708fd7d9bd3Smrg } 1709fd7d9bd3Smrg 1710fd7d9bd3Smrg return yy_current_state; 1711350952b9Smrg} 1712fd7d9bd3Smrg 1713fd7d9bd3Smrg/* yy_try_NUL_trans - try to make a transition on the NUL character 1714fd7d9bd3Smrg * 1715fd7d9bd3Smrg * synopsis 1716fd7d9bd3Smrg * next_state = yy_try_NUL_trans( current_state ); 1717fd7d9bd3Smrg */ 1718350952b9Smrg static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 1719350952b9Smrg{ 1720e53c48bfSmrg int yy_is_jam; 1721e53c48bfSmrg char *yy_cp = (yy_c_buf_p); 1722fd7d9bd3Smrg 1723e53c48bfSmrg YY_CHAR yy_c = 1; 1724fd7d9bd3Smrg if ( yy_accept[yy_current_state] ) 1725fd7d9bd3Smrg { 1726350952b9Smrg (yy_last_accepting_state) = yy_current_state; 1727350952b9Smrg (yy_last_accepting_cpos) = yy_cp; 1728fd7d9bd3Smrg } 1729fd7d9bd3Smrg while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1730fd7d9bd3Smrg { 1731fd7d9bd3Smrg yy_current_state = (int) yy_def[yy_current_state]; 1732fd7d9bd3Smrg if ( yy_current_state >= 420 ) 1733e53c48bfSmrg yy_c = yy_meta[yy_c]; 1734fd7d9bd3Smrg } 1735e53c48bfSmrg yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 1736fd7d9bd3Smrg yy_is_jam = (yy_current_state == 419); 1737fd7d9bd3Smrg 1738e53c48bfSmrg return yy_is_jam ? 0 : yy_current_state; 1739350952b9Smrg} 1740fd7d9bd3Smrg 1741e53c48bfSmrg#ifndef YY_NO_UNPUT 1742e53c48bfSmrg 1743e53c48bfSmrg static void yyunput (int c, char * yy_bp ) 1744350952b9Smrg{ 1745e53c48bfSmrg char *yy_cp; 1746350952b9Smrg 1747350952b9Smrg yy_cp = (yy_c_buf_p); 1748fd7d9bd3Smrg 1749fd7d9bd3Smrg /* undo effects of setting up yytext */ 1750350952b9Smrg *yy_cp = (yy_hold_char); 1751fd7d9bd3Smrg 1752350952b9Smrg if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 1753fd7d9bd3Smrg { /* need to shift things up to make room */ 1754fd7d9bd3Smrg /* +2 for EOB chars. */ 1755e53c48bfSmrg int number_to_move = (yy_n_chars) + 2; 1756e53c48bfSmrg char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 1757350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 1758e53c48bfSmrg char *source = 1759350952b9Smrg &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 1760fd7d9bd3Smrg 1761350952b9Smrg while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 1762fd7d9bd3Smrg *--dest = *--source; 1763fd7d9bd3Smrg 1764fd7d9bd3Smrg yy_cp += (int) (dest - source); 1765fd7d9bd3Smrg yy_bp += (int) (dest - source); 1766350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 1767e53c48bfSmrg (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 1768fd7d9bd3Smrg 1769350952b9Smrg if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 1770fd7d9bd3Smrg YY_FATAL_ERROR( "flex scanner push-back overflow" ); 1771fd7d9bd3Smrg } 1772fd7d9bd3Smrg 1773fd7d9bd3Smrg *--yy_cp = (char) c; 1774fd7d9bd3Smrg 1775350952b9Smrg (yytext_ptr) = yy_bp; 1776350952b9Smrg (yy_hold_char) = *yy_cp; 1777350952b9Smrg (yy_c_buf_p) = yy_cp; 1778350952b9Smrg} 1779fd7d9bd3Smrg 1780e53c48bfSmrg#endif 1781e53c48bfSmrg 1782fd7d9bd3Smrg#ifndef YY_NO_INPUT 1783fd7d9bd3Smrg#ifdef __cplusplus 1784350952b9Smrg static int yyinput (void) 1785fd7d9bd3Smrg#else 1786350952b9Smrg static int input (void) 1787fd7d9bd3Smrg#endif 1788fd7d9bd3Smrg 1789350952b9Smrg{ 1790350952b9Smrg int c; 1791350952b9Smrg 1792350952b9Smrg *(yy_c_buf_p) = (yy_hold_char); 1793fd7d9bd3Smrg 1794350952b9Smrg if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 1795fd7d9bd3Smrg { 1796fd7d9bd3Smrg /* yy_c_buf_p now points to the character we want to return. 1797fd7d9bd3Smrg * If this occurs *before* the EOB characters, then it's a 1798fd7d9bd3Smrg * valid NUL; if not, then we've hit the end of the buffer. 1799fd7d9bd3Smrg */ 1800350952b9Smrg if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 1801fd7d9bd3Smrg /* This was really a NUL. */ 1802350952b9Smrg *(yy_c_buf_p) = '\0'; 1803fd7d9bd3Smrg 1804fd7d9bd3Smrg else 1805fd7d9bd3Smrg { /* need more input */ 1806e53c48bfSmrg int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); 1807350952b9Smrg ++(yy_c_buf_p); 1808fd7d9bd3Smrg 1809350952b9Smrg switch ( yy_get_next_buffer( ) ) 1810fd7d9bd3Smrg { 1811fd7d9bd3Smrg case EOB_ACT_LAST_MATCH: 1812fd7d9bd3Smrg /* This happens because yy_g_n_b() 1813fd7d9bd3Smrg * sees that we've accumulated a 1814fd7d9bd3Smrg * token and flags that we need to 1815fd7d9bd3Smrg * try matching the token before 1816fd7d9bd3Smrg * proceeding. But for input(), 1817fd7d9bd3Smrg * there's no matching to consider. 1818fd7d9bd3Smrg * So convert the EOB_ACT_LAST_MATCH 1819fd7d9bd3Smrg * to EOB_ACT_END_OF_FILE. 1820fd7d9bd3Smrg */ 1821fd7d9bd3Smrg 1822fd7d9bd3Smrg /* Reset buffer status. */ 1823e53c48bfSmrg yyrestart( yyin ); 1824fd7d9bd3Smrg 1825350952b9Smrg /*FALLTHROUGH*/ 1826fd7d9bd3Smrg 1827fd7d9bd3Smrg case EOB_ACT_END_OF_FILE: 1828fd7d9bd3Smrg { 1829e53c48bfSmrg if ( yywrap( ) ) 1830e53c48bfSmrg return 0; 1831fd7d9bd3Smrg 1832350952b9Smrg if ( ! (yy_did_buffer_switch_on_eof) ) 1833fd7d9bd3Smrg YY_NEW_FILE; 1834fd7d9bd3Smrg#ifdef __cplusplus 1835fd7d9bd3Smrg return yyinput(); 1836fd7d9bd3Smrg#else 1837fd7d9bd3Smrg return input(); 1838fd7d9bd3Smrg#endif 1839fd7d9bd3Smrg } 1840fd7d9bd3Smrg 1841fd7d9bd3Smrg case EOB_ACT_CONTINUE_SCAN: 1842350952b9Smrg (yy_c_buf_p) = (yytext_ptr) + offset; 1843fd7d9bd3Smrg break; 1844fd7d9bd3Smrg } 1845fd7d9bd3Smrg } 1846fd7d9bd3Smrg } 1847fd7d9bd3Smrg 1848350952b9Smrg c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 1849350952b9Smrg *(yy_c_buf_p) = '\0'; /* preserve yytext */ 1850350952b9Smrg (yy_hold_char) = *++(yy_c_buf_p); 1851fd7d9bd3Smrg 1852fd7d9bd3Smrg return c; 1853350952b9Smrg} 1854350952b9Smrg#endif /* ifndef YY_NO_INPUT */ 1855fd7d9bd3Smrg 1856350952b9Smrg/** Immediately switch to a different input stream. 1857350952b9Smrg * @param input_file A readable stream. 1858350952b9Smrg * 1859350952b9Smrg * @note This function does not reset the start condition to @c INITIAL . 1860350952b9Smrg */ 1861350952b9Smrg void yyrestart (FILE * input_file ) 1862350952b9Smrg{ 1863350952b9Smrg 1864350952b9Smrg if ( ! YY_CURRENT_BUFFER ){ 1865350952b9Smrg yyensure_buffer_stack (); 1866350952b9Smrg YY_CURRENT_BUFFER_LVALUE = 1867e53c48bfSmrg yy_create_buffer( yyin, YY_BUF_SIZE ); 1868fd7d9bd3Smrg } 1869fd7d9bd3Smrg 1870e53c48bfSmrg yy_init_buffer( YY_CURRENT_BUFFER, input_file ); 1871e53c48bfSmrg yy_load_buffer_state( ); 1872350952b9Smrg} 1873fd7d9bd3Smrg 1874350952b9Smrg/** Switch to a different input buffer. 1875350952b9Smrg * @param new_buffer The new input buffer. 1876350952b9Smrg * 1877350952b9Smrg */ 1878350952b9Smrg void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 1879350952b9Smrg{ 1880350952b9Smrg 1881350952b9Smrg /* TODO. We should be able to replace this entire function body 1882350952b9Smrg * with 1883350952b9Smrg * yypop_buffer_state(); 1884350952b9Smrg * yypush_buffer_state(new_buffer); 1885350952b9Smrg */ 1886350952b9Smrg yyensure_buffer_stack (); 1887350952b9Smrg if ( YY_CURRENT_BUFFER == new_buffer ) 1888fd7d9bd3Smrg return; 1889fd7d9bd3Smrg 1890350952b9Smrg if ( YY_CURRENT_BUFFER ) 1891fd7d9bd3Smrg { 1892fd7d9bd3Smrg /* Flush out information for old buffer. */ 1893350952b9Smrg *(yy_c_buf_p) = (yy_hold_char); 1894350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 1895350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1896fd7d9bd3Smrg } 1897fd7d9bd3Smrg 1898350952b9Smrg YY_CURRENT_BUFFER_LVALUE = new_buffer; 1899e53c48bfSmrg yy_load_buffer_state( ); 1900fd7d9bd3Smrg 1901fd7d9bd3Smrg /* We don't actually know whether we did this switch during 1902fd7d9bd3Smrg * EOF (yywrap()) processing, but the only time this flag 1903fd7d9bd3Smrg * is looked at is after yywrap() is called, so it's safe 1904fd7d9bd3Smrg * to go ahead and always set it. 1905fd7d9bd3Smrg */ 1906350952b9Smrg (yy_did_buffer_switch_on_eof) = 1; 1907350952b9Smrg} 1908350952b9Smrg 1909350952b9Smrgstatic void yy_load_buffer_state (void) 1910350952b9Smrg{ 1911350952b9Smrg (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1912350952b9Smrg (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 1913350952b9Smrg yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 1914350952b9Smrg (yy_hold_char) = *(yy_c_buf_p); 1915350952b9Smrg} 1916350952b9Smrg 1917350952b9Smrg/** Allocate and initialize an input buffer state. 1918350952b9Smrg * @param file A readable stream. 1919350952b9Smrg * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 1920350952b9Smrg * 1921350952b9Smrg * @return the allocated buffer state. 1922350952b9Smrg */ 1923350952b9Smrg YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) 1924350952b9Smrg{ 1925fd7d9bd3Smrg YY_BUFFER_STATE b; 1926350952b9Smrg 1927e53c48bfSmrg b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 1928fd7d9bd3Smrg if ( ! b ) 1929fd7d9bd3Smrg YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 1930fd7d9bd3Smrg 1931fd7d9bd3Smrg b->yy_buf_size = size; 1932fd7d9bd3Smrg 1933fd7d9bd3Smrg /* yy_ch_buf has to be 2 characters longer than the size given because 1934fd7d9bd3Smrg * we need to put in 2 end-of-buffer characters. 1935fd7d9bd3Smrg */ 1936e53c48bfSmrg b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); 1937fd7d9bd3Smrg if ( ! b->yy_ch_buf ) 1938fd7d9bd3Smrg YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 1939fd7d9bd3Smrg 1940fd7d9bd3Smrg b->yy_is_our_buffer = 1; 1941fd7d9bd3Smrg 1942e53c48bfSmrg yy_init_buffer( b, file ); 1943fd7d9bd3Smrg 1944fd7d9bd3Smrg return b; 1945350952b9Smrg} 1946fd7d9bd3Smrg 1947350952b9Smrg/** Destroy the buffer. 1948350952b9Smrg * @param b a buffer created with yy_create_buffer() 1949350952b9Smrg * 1950350952b9Smrg */ 1951350952b9Smrg void yy_delete_buffer (YY_BUFFER_STATE b ) 1952350952b9Smrg{ 1953350952b9Smrg 1954fd7d9bd3Smrg if ( ! b ) 1955fd7d9bd3Smrg return; 1956fd7d9bd3Smrg 1957350952b9Smrg if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 1958350952b9Smrg YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 1959fd7d9bd3Smrg 1960fd7d9bd3Smrg if ( b->yy_is_our_buffer ) 1961e53c48bfSmrg yyfree( (void *) b->yy_ch_buf ); 1962fd7d9bd3Smrg 1963e53c48bfSmrg yyfree( (void *) b ); 1964350952b9Smrg} 1965fd7d9bd3Smrg 1966350952b9Smrg/* Initializes or reinitializes a buffer. 1967350952b9Smrg * This function is sometimes called more than once on the same buffer, 1968350952b9Smrg * such as during a yyrestart() or at EOF. 1969350952b9Smrg */ 1970350952b9Smrg static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) 1971fd7d9bd3Smrg 1972350952b9Smrg{ 1973350952b9Smrg int oerrno = errno; 1974350952b9Smrg 1975e53c48bfSmrg yy_flush_buffer( b ); 1976fd7d9bd3Smrg 1977fd7d9bd3Smrg b->yy_input_file = file; 1978fd7d9bd3Smrg b->yy_fill_buffer = 1; 1979fd7d9bd3Smrg 1980350952b9Smrg /* If b is the current buffer, then yy_init_buffer was _probably_ 1981350952b9Smrg * called from yyrestart() or through yy_get_next_buffer. 1982350952b9Smrg * In that case, we don't want to reset the lineno or column. 1983350952b9Smrg */ 1984350952b9Smrg if (b != YY_CURRENT_BUFFER){ 1985350952b9Smrg b->yy_bs_lineno = 1; 1986350952b9Smrg b->yy_bs_column = 0; 1987350952b9Smrg } 1988350952b9Smrg 1989350952b9Smrg b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 1990350952b9Smrg 1991350952b9Smrg errno = oerrno; 1992350952b9Smrg} 1993350952b9Smrg 1994350952b9Smrg/** Discard all buffered characters. On the next scan, YY_INPUT will be called. 1995350952b9Smrg * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 1996350952b9Smrg * 1997350952b9Smrg */ 1998350952b9Smrg void yy_flush_buffer (YY_BUFFER_STATE b ) 1999350952b9Smrg{ 2000350952b9Smrg if ( ! b ) 2001fd7d9bd3Smrg return; 2002fd7d9bd3Smrg 2003fd7d9bd3Smrg b->yy_n_chars = 0; 2004fd7d9bd3Smrg 2005fd7d9bd3Smrg /* We always need two end-of-buffer characters. The first causes 2006fd7d9bd3Smrg * a transition to the end-of-buffer state. The second causes 2007fd7d9bd3Smrg * a jam in that state. 2008fd7d9bd3Smrg */ 2009fd7d9bd3Smrg b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 2010fd7d9bd3Smrg b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 2011fd7d9bd3Smrg 2012fd7d9bd3Smrg b->yy_buf_pos = &b->yy_ch_buf[0]; 2013fd7d9bd3Smrg 2014fd7d9bd3Smrg b->yy_at_bol = 1; 2015fd7d9bd3Smrg b->yy_buffer_status = YY_BUFFER_NEW; 2016fd7d9bd3Smrg 2017350952b9Smrg if ( b == YY_CURRENT_BUFFER ) 2018e53c48bfSmrg yy_load_buffer_state( ); 2019350952b9Smrg} 2020350952b9Smrg 2021350952b9Smrg/** Pushes the new state onto the stack. The new state becomes 2022350952b9Smrg * the current state. This function will allocate the stack 2023350952b9Smrg * if necessary. 2024350952b9Smrg * @param new_buffer The new state. 2025350952b9Smrg * 2026350952b9Smrg */ 2027350952b9Smrgvoid yypush_buffer_state (YY_BUFFER_STATE new_buffer ) 2028350952b9Smrg{ 2029350952b9Smrg if (new_buffer == NULL) 2030350952b9Smrg return; 2031350952b9Smrg 2032350952b9Smrg yyensure_buffer_stack(); 2033350952b9Smrg 2034350952b9Smrg /* This block is copied from yy_switch_to_buffer. */ 2035350952b9Smrg if ( YY_CURRENT_BUFFER ) 2036350952b9Smrg { 2037350952b9Smrg /* Flush out information for old buffer. */ 2038350952b9Smrg *(yy_c_buf_p) = (yy_hold_char); 2039350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 2040350952b9Smrg YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 2041350952b9Smrg } 2042350952b9Smrg 2043350952b9Smrg /* Only push if top exists. Otherwise, replace top. */ 2044350952b9Smrg if (YY_CURRENT_BUFFER) 2045350952b9Smrg (yy_buffer_stack_top)++; 2046350952b9Smrg YY_CURRENT_BUFFER_LVALUE = new_buffer; 2047350952b9Smrg 2048350952b9Smrg /* copied from yy_switch_to_buffer. */ 2049e53c48bfSmrg yy_load_buffer_state( ); 2050350952b9Smrg (yy_did_buffer_switch_on_eof) = 1; 2051350952b9Smrg} 2052350952b9Smrg 2053350952b9Smrg/** Removes and deletes the top of the stack, if present. 2054350952b9Smrg * The next element becomes the new top. 2055350952b9Smrg * 2056350952b9Smrg */ 2057350952b9Smrgvoid yypop_buffer_state (void) 2058350952b9Smrg{ 2059350952b9Smrg if (!YY_CURRENT_BUFFER) 2060350952b9Smrg return; 2061350952b9Smrg 2062350952b9Smrg yy_delete_buffer(YY_CURRENT_BUFFER ); 2063350952b9Smrg YY_CURRENT_BUFFER_LVALUE = NULL; 2064350952b9Smrg if ((yy_buffer_stack_top) > 0) 2065350952b9Smrg --(yy_buffer_stack_top); 2066350952b9Smrg 2067350952b9Smrg if (YY_CURRENT_BUFFER) { 2068e53c48bfSmrg yy_load_buffer_state( ); 2069350952b9Smrg (yy_did_buffer_switch_on_eof) = 1; 2070fd7d9bd3Smrg } 2071350952b9Smrg} 2072fd7d9bd3Smrg 2073350952b9Smrg/* Allocates the stack if it does not exist. 2074350952b9Smrg * Guarantees space for at least one push. 2075350952b9Smrg */ 2076350952b9Smrgstatic void yyensure_buffer_stack (void) 2077350952b9Smrg{ 2078e53c48bfSmrg yy_size_t num_to_alloc; 2079350952b9Smrg 2080350952b9Smrg if (!(yy_buffer_stack)) { 2081350952b9Smrg 2082350952b9Smrg /* First allocation is just for 2 elements, since we don't know if this 2083350952b9Smrg * scanner will even need a stack. We use 2 instead of 1 to avoid an 2084350952b9Smrg * immediate realloc on the next call. 2085350952b9Smrg */ 2086e53c48bfSmrg num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ 2087350952b9Smrg (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc 2088350952b9Smrg (num_to_alloc * sizeof(struct yy_buffer_state*) 2089350952b9Smrg ); 2090350952b9Smrg if ( ! (yy_buffer_stack) ) 2091350952b9Smrg YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 2092e53c48bfSmrg 2093350952b9Smrg memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 2094e53c48bfSmrg 2095350952b9Smrg (yy_buffer_stack_max) = num_to_alloc; 2096350952b9Smrg (yy_buffer_stack_top) = 0; 2097350952b9Smrg return; 2098350952b9Smrg } 2099fd7d9bd3Smrg 2100350952b9Smrg if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 2101350952b9Smrg 2102350952b9Smrg /* Increase the buffer to prepare for a possible push. */ 2103e53c48bfSmrg yy_size_t grow_size = 8 /* arbitrary grow size */; 2104350952b9Smrg 2105350952b9Smrg num_to_alloc = (yy_buffer_stack_max) + grow_size; 2106350952b9Smrg (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc 2107350952b9Smrg ((yy_buffer_stack), 2108350952b9Smrg num_to_alloc * sizeof(struct yy_buffer_state*) 2109350952b9Smrg ); 2110350952b9Smrg if ( ! (yy_buffer_stack) ) 2111350952b9Smrg YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 2112350952b9Smrg 2113350952b9Smrg /* zero only the new slots.*/ 2114350952b9Smrg memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 2115350952b9Smrg (yy_buffer_stack_max) = num_to_alloc; 2116350952b9Smrg } 2117350952b9Smrg} 2118fd7d9bd3Smrg 2119350952b9Smrg/** Setup the input buffer state to scan directly from a user-specified character buffer. 2120350952b9Smrg * @param base the character buffer 2121350952b9Smrg * @param size the size in bytes of the character buffer 2122350952b9Smrg * 2123e53c48bfSmrg * @return the newly allocated buffer state object. 2124350952b9Smrg */ 2125350952b9SmrgYY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) 2126350952b9Smrg{ 2127350952b9Smrg YY_BUFFER_STATE b; 2128350952b9Smrg 2129fd7d9bd3Smrg if ( size < 2 || 2130fd7d9bd3Smrg base[size-2] != YY_END_OF_BUFFER_CHAR || 2131fd7d9bd3Smrg base[size-1] != YY_END_OF_BUFFER_CHAR ) 2132fd7d9bd3Smrg /* They forgot to leave room for the EOB's. */ 2133e53c48bfSmrg return NULL; 2134fd7d9bd3Smrg 2135e53c48bfSmrg b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 2136fd7d9bd3Smrg if ( ! b ) 2137fd7d9bd3Smrg YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 2138fd7d9bd3Smrg 2139e53c48bfSmrg b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ 2140fd7d9bd3Smrg b->yy_buf_pos = b->yy_ch_buf = base; 2141fd7d9bd3Smrg b->yy_is_our_buffer = 0; 2142e53c48bfSmrg b->yy_input_file = NULL; 2143fd7d9bd3Smrg b->yy_n_chars = b->yy_buf_size; 2144fd7d9bd3Smrg b->yy_is_interactive = 0; 2145fd7d9bd3Smrg b->yy_at_bol = 1; 2146fd7d9bd3Smrg b->yy_fill_buffer = 0; 2147fd7d9bd3Smrg b->yy_buffer_status = YY_BUFFER_NEW; 2148fd7d9bd3Smrg 2149e53c48bfSmrg yy_switch_to_buffer( b ); 2150fd7d9bd3Smrg 2151fd7d9bd3Smrg return b; 2152350952b9Smrg} 2153350952b9Smrg 2154350952b9Smrg/** Setup the input buffer state to scan a string. The next call to yylex() will 2155350952b9Smrg * scan from a @e copy of @a str. 2156350952b9Smrg * @param yystr a NUL-terminated string to scan 2157350952b9Smrg * 2158350952b9Smrg * @return the newly allocated buffer state object. 2159350952b9Smrg * @note If you want to scan bytes that may contain NUL values, then use 2160350952b9Smrg * yy_scan_bytes() instead. 2161350952b9Smrg */ 2162e53c48bfSmrgYY_BUFFER_STATE yy_scan_string (const char * yystr ) 2163350952b9Smrg{ 2164350952b9Smrg 2165e53c48bfSmrg return yy_scan_bytes( yystr, (int) strlen(yystr) ); 2166350952b9Smrg} 2167350952b9Smrg 2168350952b9Smrg/** Setup the input buffer state to scan the given bytes. The next call to yylex() will 2169350952b9Smrg * scan from a @e copy of @a bytes. 2170e53c48bfSmrg * @param yybytes the byte buffer to scan 2171e53c48bfSmrg * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. 2172350952b9Smrg * 2173350952b9Smrg * @return the newly allocated buffer state object. 2174350952b9Smrg */ 2175e53c48bfSmrgYY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) 2176350952b9Smrg{ 2177fd7d9bd3Smrg YY_BUFFER_STATE b; 2178fd7d9bd3Smrg char *buf; 2179fd7d9bd3Smrg yy_size_t n; 2180fd7d9bd3Smrg int i; 2181350952b9Smrg 2182fd7d9bd3Smrg /* Get memory for full buffer, including space for trailing EOB's. */ 2183e53c48bfSmrg n = (yy_size_t) (_yybytes_len + 2); 2184e53c48bfSmrg buf = (char *) yyalloc( n ); 2185fd7d9bd3Smrg if ( ! buf ) 2186fd7d9bd3Smrg YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 2187fd7d9bd3Smrg 2188350952b9Smrg for ( i = 0; i < _yybytes_len; ++i ) 2189350952b9Smrg buf[i] = yybytes[i]; 2190fd7d9bd3Smrg 2191350952b9Smrg buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 2192fd7d9bd3Smrg 2193e53c48bfSmrg b = yy_scan_buffer( buf, n ); 2194fd7d9bd3Smrg if ( ! b ) 2195fd7d9bd3Smrg YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 2196fd7d9bd3Smrg 2197fd7d9bd3Smrg /* It's okay to grow etc. this buffer, and we should throw it 2198fd7d9bd3Smrg * away when we're done. 2199fd7d9bd3Smrg */ 2200fd7d9bd3Smrg b->yy_is_our_buffer = 1; 2201fd7d9bd3Smrg 2202fd7d9bd3Smrg return b; 2203350952b9Smrg} 2204fd7d9bd3Smrg 2205fd7d9bd3Smrg#ifndef YY_EXIT_FAILURE 2206fd7d9bd3Smrg#define YY_EXIT_FAILURE 2 2207fd7d9bd3Smrg#endif 2208fd7d9bd3Smrg 2209e53c48bfSmrgstatic void yynoreturn yy_fatal_error (const char* msg ) 2210350952b9Smrg{ 2211e53c48bfSmrg fprintf( stderr, "%s\n", msg ); 2212fd7d9bd3Smrg exit( YY_EXIT_FAILURE ); 2213350952b9Smrg} 2214fd7d9bd3Smrg 2215fd7d9bd3Smrg/* Redefine yyless() so it works in section 3 code. */ 2216fd7d9bd3Smrg 2217fd7d9bd3Smrg#undef yyless 2218fd7d9bd3Smrg#define yyless(n) \ 2219fd7d9bd3Smrg do \ 2220fd7d9bd3Smrg { \ 2221fd7d9bd3Smrg /* Undo effects of setting up yytext. */ \ 2222350952b9Smrg int yyless_macro_arg = (n); \ 2223350952b9Smrg YY_LESS_LINENO(yyless_macro_arg);\ 2224350952b9Smrg yytext[yyleng] = (yy_hold_char); \ 2225350952b9Smrg (yy_c_buf_p) = yytext + yyless_macro_arg; \ 2226350952b9Smrg (yy_hold_char) = *(yy_c_buf_p); \ 2227350952b9Smrg *(yy_c_buf_p) = '\0'; \ 2228350952b9Smrg yyleng = yyless_macro_arg; \ 2229fd7d9bd3Smrg } \ 2230fd7d9bd3Smrg while ( 0 ) 2231fd7d9bd3Smrg 2232350952b9Smrg/* Accessor methods (get/set functions) to struct members. */ 2233350952b9Smrg 2234350952b9Smrg/** Get the current line number. 2235350952b9Smrg * 2236350952b9Smrg */ 2237350952b9Smrgint yyget_lineno (void) 2238350952b9Smrg{ 2239e53c48bfSmrg 2240350952b9Smrg return yylineno; 2241350952b9Smrg} 2242350952b9Smrg 2243350952b9Smrg/** Get the input stream. 2244350952b9Smrg * 2245350952b9Smrg */ 2246350952b9SmrgFILE *yyget_in (void) 2247350952b9Smrg{ 2248350952b9Smrg return yyin; 2249350952b9Smrg} 2250fd7d9bd3Smrg 2251350952b9Smrg/** Get the output stream. 2252350952b9Smrg * 2253350952b9Smrg */ 2254350952b9SmrgFILE *yyget_out (void) 2255350952b9Smrg{ 2256350952b9Smrg return yyout; 2257350952b9Smrg} 2258fd7d9bd3Smrg 2259350952b9Smrg/** Get the length of the current token. 2260350952b9Smrg * 2261350952b9Smrg */ 2262350952b9Smrgint yyget_leng (void) 2263350952b9Smrg{ 2264350952b9Smrg return yyleng; 2265350952b9Smrg} 2266350952b9Smrg 2267350952b9Smrg/** Get the current token. 2268350952b9Smrg * 2269350952b9Smrg */ 2270350952b9Smrg 2271350952b9Smrgchar *yyget_text (void) 2272350952b9Smrg{ 2273350952b9Smrg return yytext; 2274350952b9Smrg} 2275350952b9Smrg 2276350952b9Smrg/** Set the current line number. 2277e53c48bfSmrg * @param _line_number line number 2278350952b9Smrg * 2279350952b9Smrg */ 2280e53c48bfSmrgvoid yyset_lineno (int _line_number ) 2281350952b9Smrg{ 2282350952b9Smrg 2283e53c48bfSmrg yylineno = _line_number; 2284350952b9Smrg} 2285350952b9Smrg 2286350952b9Smrg/** Set the input stream. This does not discard the current 2287350952b9Smrg * input buffer. 2288e53c48bfSmrg * @param _in_str A readable stream. 2289350952b9Smrg * 2290350952b9Smrg * @see yy_switch_to_buffer 2291350952b9Smrg */ 2292e53c48bfSmrgvoid yyset_in (FILE * _in_str ) 2293350952b9Smrg{ 2294e53c48bfSmrg yyin = _in_str ; 2295350952b9Smrg} 2296350952b9Smrg 2297e53c48bfSmrgvoid yyset_out (FILE * _out_str ) 2298350952b9Smrg{ 2299e53c48bfSmrg yyout = _out_str ; 2300350952b9Smrg} 2301350952b9Smrg 2302350952b9Smrgint yyget_debug (void) 2303350952b9Smrg{ 2304350952b9Smrg return yy_flex_debug; 2305350952b9Smrg} 2306350952b9Smrg 2307e53c48bfSmrgvoid yyset_debug (int _bdebug ) 2308350952b9Smrg{ 2309e53c48bfSmrg yy_flex_debug = _bdebug ; 2310350952b9Smrg} 2311350952b9Smrg 2312350952b9Smrgstatic int yy_init_globals (void) 2313350952b9Smrg{ 2314350952b9Smrg /* Initialization is the same as for the non-reentrant scanner. 2315350952b9Smrg * This function is called from yylex_destroy(), so don't allocate here. 2316350952b9Smrg */ 2317350952b9Smrg 2318e53c48bfSmrg (yy_buffer_stack) = NULL; 2319350952b9Smrg (yy_buffer_stack_top) = 0; 2320350952b9Smrg (yy_buffer_stack_max) = 0; 2321e53c48bfSmrg (yy_c_buf_p) = NULL; 2322350952b9Smrg (yy_init) = 0; 2323350952b9Smrg (yy_start) = 0; 2324350952b9Smrg 2325350952b9Smrg/* Defined in main.c */ 2326350952b9Smrg#ifdef YY_STDINIT 2327350952b9Smrg yyin = stdin; 2328350952b9Smrg yyout = stdout; 2329fd7d9bd3Smrg#else 2330e53c48bfSmrg yyin = NULL; 2331e53c48bfSmrg yyout = NULL; 2332350952b9Smrg#endif 2333350952b9Smrg 2334350952b9Smrg /* For future reference: Set errno on error, since we are called by 2335350952b9Smrg * yylex_init() 2336350952b9Smrg */ 2337350952b9Smrg return 0; 2338350952b9Smrg} 2339350952b9Smrg 2340350952b9Smrg/* yylex_destroy is for both reentrant and non-reentrant scanners. */ 2341350952b9Smrgint yylex_destroy (void) 2342350952b9Smrg{ 2343350952b9Smrg 2344350952b9Smrg /* Pop the buffer stack, destroying each element. */ 2345350952b9Smrg while(YY_CURRENT_BUFFER){ 2346e53c48bfSmrg yy_delete_buffer( YY_CURRENT_BUFFER ); 2347350952b9Smrg YY_CURRENT_BUFFER_LVALUE = NULL; 2348350952b9Smrg yypop_buffer_state(); 2349350952b9Smrg } 2350350952b9Smrg 2351350952b9Smrg /* Destroy the stack itself. */ 2352350952b9Smrg yyfree((yy_buffer_stack) ); 2353350952b9Smrg (yy_buffer_stack) = NULL; 2354350952b9Smrg 2355350952b9Smrg /* Reset the globals. This is important in a non-reentrant scanner so the next time 2356350952b9Smrg * yylex() is called, initialization will occur. */ 2357350952b9Smrg yy_init_globals( ); 2358350952b9Smrg 2359350952b9Smrg return 0; 2360350952b9Smrg} 2361350952b9Smrg 2362350952b9Smrg/* 2363350952b9Smrg * Internal utility routines. 2364350952b9Smrg */ 2365350952b9Smrg 2366350952b9Smrg#ifndef yytext_ptr 2367e53c48bfSmrgstatic void yy_flex_strncpy (char* s1, const char * s2, int n ) 2368350952b9Smrg{ 2369e53c48bfSmrg 2370e53c48bfSmrg int i; 2371fd7d9bd3Smrg for ( i = 0; i < n; ++i ) 2372fd7d9bd3Smrg s1[i] = s2[i]; 2373350952b9Smrg} 2374fd7d9bd3Smrg#endif 2375fd7d9bd3Smrg 2376fd7d9bd3Smrg#ifdef YY_NEED_STRLEN 2377e53c48bfSmrgstatic int yy_flex_strlen (const char * s ) 2378350952b9Smrg{ 2379e53c48bfSmrg int n; 2380fd7d9bd3Smrg for ( n = 0; s[n]; ++n ) 2381fd7d9bd3Smrg ; 2382fd7d9bd3Smrg 2383fd7d9bd3Smrg return n; 2384350952b9Smrg} 2385fd7d9bd3Smrg#endif 2386fd7d9bd3Smrg 2387350952b9Smrgvoid *yyalloc (yy_size_t size ) 2388350952b9Smrg{ 2389e53c48bfSmrg return malloc(size); 2390350952b9Smrg} 2391fd7d9bd3Smrg 2392350952b9Smrgvoid *yyrealloc (void * ptr, yy_size_t size ) 2393350952b9Smrg{ 2394e53c48bfSmrg 2395fd7d9bd3Smrg /* The cast to (char *) in the following accommodates both 2396fd7d9bd3Smrg * implementations that use char* generic pointers, and those 2397fd7d9bd3Smrg * that use void* generic pointers. It works with the latter 2398fd7d9bd3Smrg * because both ANSI C and C++ allow castless assignment from 2399fd7d9bd3Smrg * any pointer type to void*, and deal with argument conversions 2400fd7d9bd3Smrg * as though doing an assignment. 2401fd7d9bd3Smrg */ 2402e53c48bfSmrg return realloc(ptr, size); 2403350952b9Smrg} 2404fd7d9bd3Smrg 2405350952b9Smrgvoid yyfree (void * ptr ) 2406350952b9Smrg{ 2407e53c48bfSmrg free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ 2408350952b9Smrg} 2409350952b9Smrg 2410350952b9Smrg#define YYTABLES_NAME "yytables" 2411fd7d9bd3Smrg 24129aa2a2b5Smrg#line 164 "lex.l" 2413fd7d9bd3Smrg 2414fd7d9bd3Smrg 2415fd7d9bd3Smrg#ifndef yywrap 2416350952b9Smrgint yywrap(void) { return (1); } 2417fd7d9bd3Smrg#endif 2418350952b9Smrg 2419