diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/FlexLexer.h | 245 | ||||
-rw-r--r-- | src/Makefile.am | 50 | ||||
-rw-r--r-- | src/Makefile.in | 136 | ||||
-rw-r--r-- | src/buf.c | 52 | ||||
-rw-r--r-- | src/ccl.c | 15 | ||||
-rw-r--r-- | src/dfa.c | 66 | ||||
-rw-r--r-- | src/ecs.c | 16 | ||||
-rw-r--r-- | src/filter.c | 35 | ||||
-rw-r--r-- | src/flex.skl | 153 | ||||
-rw-r--r-- | src/flexdef.h | 392 | ||||
-rw-r--r-- | src/gen.c | 251 | ||||
-rw-r--r-- | src/libmain.c | 4 | ||||
-rw-r--r-- | src/main.c | 130 | ||||
-rw-r--r-- | src/misc.c | 221 | ||||
-rw-r--r-- | src/nfa.c | 56 | ||||
-rw-r--r-- | src/parse.c | 81 | ||||
-rw-r--r-- | src/parse.h | 28 | ||||
-rw-r--r-- | src/parse.y | 65 | ||||
-rw-r--r-- | src/regex.c | 6 | ||||
-rw-r--r-- | src/scan.c | 2914 | ||||
-rw-r--r-- | src/scan.l | 91 | ||||
-rw-r--r-- | src/scanflags.c | 6 | ||||
-rw-r--r-- | src/scanopt.c | 134 | ||||
-rw-r--r-- | src/scanopt.h | 19 | ||||
-rw-r--r-- | src/skel.c | 99 | ||||
-rw-r--r-- | src/stage1scan.c | 5078 | ||||
-rw-r--r-- | src/stage1scan.l | 1011 | ||||
-rw-r--r-- | src/sym.c | 69 | ||||
-rw-r--r-- | src/tables.c | 13 | ||||
-rw-r--r-- | src/tblcmp.c | 59 | ||||
-rw-r--r-- | src/yylex.c | 6 |
31 files changed, 8607 insertions, 2894 deletions
diff --git a/src/FlexLexer.h b/src/FlexLexer.h index b725b1f..c4dad2b 100644 --- a/src/FlexLexer.h +++ b/src/FlexLexer.h @@ -35,78 +35,74 @@ // to rename each yyFlexLexer to some other xxFlexLexer. You then // include <FlexLexer.h> in your other sources once per lexer class: // -// #undef yyFlexLexer -// #define yyFlexLexer xxFlexLexer -// #include <FlexLexer.h> +// #undef yyFlexLexer +// #define yyFlexLexer xxFlexLexer +// #include <FlexLexer.h> // -// #undef yyFlexLexer -// #define yyFlexLexer zzFlexLexer -// #include <FlexLexer.h> -// ... +// #undef yyFlexLexer +// #define yyFlexLexer zzFlexLexer +// #include <FlexLexer.h> +// ... #ifndef __FLEX_LEXER_H // Never included before - need to define base class. #define __FLEX_LEXER_H #include <iostream> -# ifndef FLEX_STD -# define FLEX_STD std:: -# endif extern "C++" { struct yy_buffer_state; typedef int yy_state_type; -class FlexLexer { +class FlexLexer +{ public: - virtual ~FlexLexer() { } - - const char* YYText() const { return yytext; } - int YYLeng() const { return yyleng; } - - virtual void - yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0; - virtual struct yy_buffer_state* - yy_create_buffer( FLEX_STD istream* s, int size ) = 0; - virtual struct yy_buffer_state* - yy_create_buffer( FLEX_STD istream& s, int size ) = 0; - virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0; - virtual void yyrestart( FLEX_STD istream* s ) = 0; - virtual void yyrestart( FLEX_STD istream& s ) = 0; - - virtual int yylex() = 0; - - // Call yylex with new input/output sources. - int yylex( FLEX_STD istream& new_in, FLEX_STD ostream& new_out ) - { - switch_streams( new_in, new_out ); - return yylex(); - } - - int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0) - { - switch_streams( new_in, new_out ); - return yylex(); - } - - // Switch to new input/output streams. A nil stream pointer - // indicates "keep the current one". - virtual void switch_streams( FLEX_STD istream* new_in, - FLEX_STD ostream* new_out ) = 0; - virtual void switch_streams( FLEX_STD istream& new_in, - FLEX_STD ostream& new_out ) = 0; - - int lineno() const { return yylineno; } - - int debug() const { return yy_flex_debug; } - void set_debug( int flag ) { yy_flex_debug = flag; } + virtual ~FlexLexer() { } + + const char* YYText() const { return yytext; } + int YYLeng() const { return yyleng; } + + virtual void + yy_switch_to_buffer( yy_buffer_state* new_buffer ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0; + virtual yy_buffer_state* yy_create_buffer( std::istream& s, int size ) = 0; + virtual void yy_delete_buffer( yy_buffer_state* b ) = 0; + virtual void yyrestart( std::istream* s ) = 0; + virtual void yyrestart( std::istream& s ) = 0; + + virtual int yylex() = 0; + + // Call yylex with new input/output sources. + int yylex( std::istream& new_in, std::ostream& new_out ) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + int yylex( std::istream* new_in, std::ostream* new_out = 0) + { + switch_streams( new_in, new_out ); + return yylex(); + } + + // Switch to new input/output streams. A nil stream pointer + // indicates "keep the current one". + virtual void switch_streams( std::istream* new_in, + std::ostream* new_out ) = 0; + virtual void switch_streams( std::istream& new_in, + std::ostream& new_out ) = 0; + + int lineno() const { return yylineno; } + + int debug() const { return yy_flex_debug; } + void set_debug( int flag ) { yy_flex_debug = flag; } protected: - char* yytext; - int yyleng; - int yylineno; // only maintained if you use %option yylineno - int yy_flex_debug; // only has effect with -d or "%option debug" + char* yytext; + int yyleng; + int yylineno; // only maintained if you use %option yylineno + int yy_flex_debug; // only has effect with -d or "%option debug" }; } @@ -116,110 +112,109 @@ protected: // Either this is the first time through (yyFlexLexerOnce not defined), // or this is a repeated include to define a different flavor of // yyFlexLexer, as discussed in the flex manual. -#define yyFlexLexerOnce +# define yyFlexLexerOnce extern "C++" { class yyFlexLexer : public FlexLexer { public: - // arg_yyin and arg_yyout default to the cin and cout, but we - // only make that assignment when initializing in yylex(). - yyFlexLexer( FLEX_STD istream& arg_yyin, FLEX_STD ostream& arg_yyout ); - yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 ); + // arg_yyin and arg_yyout default to the cin and cout, but we + // only make that assignment when initializing in yylex(). + yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ); + yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 ); private: - void ctor_common(); + void ctor_common(); public: - virtual ~yyFlexLexer(); + virtual ~yyFlexLexer(); - void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ); - struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size ); - struct yy_buffer_state* yy_create_buffer( FLEX_STD istream& s, int size ); - void yy_delete_buffer( struct yy_buffer_state* b ); - void yyrestart( FLEX_STD istream* s ); - void yyrestart( FLEX_STD istream& s ); + void yy_switch_to_buffer( yy_buffer_state* new_buffer ); + yy_buffer_state* yy_create_buffer( std::istream* s, int size ); + yy_buffer_state* yy_create_buffer( std::istream& s, int size ); + void yy_delete_buffer( yy_buffer_state* b ); + void yyrestart( std::istream* s ); + void yyrestart( std::istream& s ); - void yypush_buffer_state( struct yy_buffer_state* new_buffer ); - void yypop_buffer_state(); + void yypush_buffer_state( yy_buffer_state* new_buffer ); + void yypop_buffer_state(); - virtual int yylex(); - virtual void switch_streams( FLEX_STD istream& new_in, FLEX_STD ostream& new_out ); - virtual void switch_streams( FLEX_STD istream* new_in = 0, FLEX_STD ostream* new_out = 0 ); - virtual int yywrap(); + virtual int yylex(); + virtual void switch_streams( std::istream& new_in, std::ostream& new_out ); + virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 ); + virtual int yywrap(); protected: - virtual int LexerInput( char* buf, int max_size ); - virtual void LexerOutput( const char* buf, int size ); - virtual void LexerError( const char* msg ); + virtual int LexerInput( char* buf, int max_size ); + virtual void LexerOutput( const char* buf, int size ); + virtual void LexerError( const char* msg ); - void yyunput( int c, char* buf_ptr ); - int yyinput(); + void yyunput( int c, char* buf_ptr ); + int yyinput(); - void yy_load_buffer_state(); - void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream& s ); - void yy_flush_buffer( struct yy_buffer_state* b ); + void yy_load_buffer_state(); + void yy_init_buffer( yy_buffer_state* b, std::istream& s ); + void yy_flush_buffer( yy_buffer_state* b ); - int yy_start_stack_ptr; - int yy_start_stack_depth; - int* yy_start_stack; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int* yy_start_stack; - void yy_push_state( int new_state ); - void yy_pop_state(); - int yy_top_state(); + void yy_push_state( int new_state ); + void yy_pop_state(); + int yy_top_state(); - yy_state_type yy_get_previous_state(); - yy_state_type yy_try_NUL_trans( yy_state_type current_state ); - int yy_get_next_buffer(); + yy_state_type yy_get_previous_state(); + yy_state_type yy_try_NUL_trans( yy_state_type current_state ); + int yy_get_next_buffer(); - FLEX_STD istream yyin; // input source for default LexerInput - FLEX_STD ostream yyout; // output sink for default LexerOutput + std::istream yyin; // input source for default LexerInput + std::ostream yyout; // output sink for default LexerOutput - // yy_hold_char holds the character lost when yytext is formed. - char yy_hold_char; + // yy_hold_char holds the character lost when yytext is formed. + char yy_hold_char; - // Number of characters read into yy_ch_buf. - int yy_n_chars; + // Number of characters read into yy_ch_buf. + int yy_n_chars; - // Points to current character in buffer. - char* yy_c_buf_p; + // Points to current character in buffer. + char* yy_c_buf_p; - int yy_init; // whether we need to initialize - int yy_start; // start state number + int yy_init; // whether we need to initialize + int yy_start; // start state number - // Flag which is used to allow yywrap()'s to do buffer switches - // instead of setting up a fresh yyin. A bit of a hack ... - int yy_did_buffer_switch_on_eof; + // Flag which is used to allow yywrap()'s to do buffer switches + // instead of setting up a fresh yyin. A bit of a hack ... + int yy_did_buffer_switch_on_eof; - size_t yy_buffer_stack_top; /**< index of top of stack. */ - size_t yy_buffer_stack_max; /**< capacity of stack. */ - struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */ - void yyensure_buffer_stack(void); + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */ + void yyensure_buffer_stack(void); - // The following are not always needed, but may be depending - // on use of certain flex features (like REJECT or yymore()). + // The following are not always needed, but may be depending + // on use of certain flex features (like REJECT or yymore()). - yy_state_type yy_last_accepting_state; - char* yy_last_accepting_cpos; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; - yy_state_type* yy_state_buf; - yy_state_type* yy_state_ptr; + yy_state_type* yy_state_buf; + yy_state_type* yy_state_ptr; - char* yy_full_match; - int* yy_full_state; - int yy_full_lp; + char* yy_full_match; + int* yy_full_state; + int yy_full_lp; - int yy_lp; - int yy_looking_for_trail_begin; + int yy_lp; + int yy_looking_for_trail_begin; - int yy_more_flag; - int yy_more_len; - int yy_more_offset; - int yy_prev_more_offset; + int yy_more_flag; + int yy_more_len; + int yy_more_offset; + int yy_prev_more_offset; }; } #endif // yyFlexLexer || ! yyFlexLexerOnce - diff --git a/src/Makefile.am b/src/Makefile.am index e324854..416995e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,39 +1,47 @@ AM_YFLAGS = -d localedir = $(datadir)/locale AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I$(top_srcdir)/intl -LIBS = @LIBINTL@ @LIBS@ +LIBS = @LIBS@ m4 = @M4@ bin_PROGRAMS = flex +noinst_PROGRAMS = stage1flex lib_LTLIBRARIES = \ libfl.la \ libfl_pic.la +stage1flex_SOURCES = \ + scan.l \ + $(COMMON_SOURCES) + flex_SOURCES = \ + stage1scan.l \ + $(COMMON_SOURCES) + +COMMON_SOURCES = \ + buf.c \ ccl.c \ dfa.c \ ecs.c \ - scanflags.c \ + filter.c \ gen.c \ main.c \ misc.c \ nfa.c \ + options.c \ parse.y \ - scan.l \ + regex.c \ + scanflags.c \ + scanopt.c \ skel.c \ sym.c \ - tblcmp.c \ - yylex.c \ - options.c \ - scanopt.c \ - buf.c \ tables.c \ tables_shared.c \ - filter.c \ - regex.c + tblcmp.c \ + yylex.c -LDADD = ../lib/libcompat.la +LDADD = ../lib/libcompat.la @LIBINTL@ libfl_la_SOURCES = \ libmain.c \ @@ -64,13 +72,25 @@ EXTRA_DIST = \ mkskel.sh \ gettext.h -BUILT_SOURCES = \ - skel.c +DISTCLEANFILES = stage1scan.c MAINTAINERCLEANFILES = skel.c -skel.c: flex.skl mkskel.sh flexint.h tables_shared.h - sed 's/m4_/m4postproc_/g; s/m4preproc_/m4_/g' $(srcdir)/flex.skl | $(m4) -P -DFLEX_MAJOR_VERSION=`echo $(VERSION)|cut -f 1 -d .` -DFLEX_MINOR_VERSION=`echo $(VERSION)|cut -f 2 -d .` -DFLEX_SUBMINOR_VERSION=`echo $(VERSION)|cut -f 3 -d .` | sed 's/m4postproc_/m4_/g' | $(SHELL) $(srcdir)/mkskel.sh >skel.c +$(srcdir)/skel.c: flex.skl mkskel.sh flexint.h tables_shared.h + sed 's/m4_/m4postproc_/g; s/m4preproc_/m4_/g' $(srcdir)/flex.skl | \ + $(m4) -P -I $(srcdir) \ + -DFLEX_MAJOR_VERSION=` echo $(VERSION)|cut -f 1 -d .` \ + -DFLEX_MINOR_VERSION=` echo $(VERSION)|cut -f 2 -d .` \ + -DFLEX_SUBMINOR_VERSION=`echo $(VERSION)|cut -f 3 -d .` | \ + sed 's/m4postproc_/m4_/g' | \ + $(SHELL) $(srcdir)/mkskel.sh >skel.c.tmp + mv skel.c.tmp $(srcdir)/skel.c + +stage1scan.l: scan.l + cp $(srcdir)/scan.l $(srcdir)/stage1scan.l + +stage1scan.c: stage1scan.l stage1flex$(EXEEXT) + $(top_builddir)/src/stage1flex$(EXEEXT) -o $@ $< # Explicitly describe dependencies. # You can recreate this with `gcc -I. -MM *.c' diff --git a/src/Makefile.in b/src/Makefile.in index a9e0074..46b0c6c 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -91,6 +91,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = flex$(EXEEXT) +noinst_PROGRAMS = stage1flex$(EXEEXT) subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ @@ -155,17 +156,21 @@ libfl_pic_la_OBJECTS = $(am_libfl_pic_la_OBJECTS) libfl_pic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libfl_pic_la_LDFLAGS) $(LDFLAGS) -o $@ -PROGRAMS = $(bin_PROGRAMS) -am_flex_OBJECTS = ccl.$(OBJEXT) dfa.$(OBJEXT) ecs.$(OBJEXT) \ - scanflags.$(OBJEXT) gen.$(OBJEXT) main.$(OBJEXT) \ - misc.$(OBJEXT) nfa.$(OBJEXT) parse.$(OBJEXT) scan.$(OBJEXT) \ - skel.$(OBJEXT) sym.$(OBJEXT) tblcmp.$(OBJEXT) yylex.$(OBJEXT) \ - options.$(OBJEXT) scanopt.$(OBJEXT) buf.$(OBJEXT) \ - tables.$(OBJEXT) tables_shared.$(OBJEXT) filter.$(OBJEXT) \ - regex.$(OBJEXT) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am__objects_1 = buf.$(OBJEXT) ccl.$(OBJEXT) dfa.$(OBJEXT) \ + ecs.$(OBJEXT) filter.$(OBJEXT) gen.$(OBJEXT) main.$(OBJEXT) \ + misc.$(OBJEXT) nfa.$(OBJEXT) options.$(OBJEXT) parse.$(OBJEXT) \ + regex.$(OBJEXT) scanflags.$(OBJEXT) scanopt.$(OBJEXT) \ + skel.$(OBJEXT) sym.$(OBJEXT) tables.$(OBJEXT) \ + tables_shared.$(OBJEXT) tblcmp.$(OBJEXT) yylex.$(OBJEXT) +am_flex_OBJECTS = stage1scan.$(OBJEXT) $(am__objects_1) flex_OBJECTS = $(am_flex_OBJECTS) flex_LDADD = $(LDADD) flex_DEPENDENCIES = ../lib/libcompat.la +am_stage1flex_OBJECTS = scan.$(OBJEXT) $(am__objects_1) +stage1flex_OBJECTS = $(am_stage1flex_OBJECTS) +stage1flex_LDADD = $(LDADD) +stage1flex_DEPENDENCIES = ../lib/libcompat.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -217,9 +222,10 @@ AM_V_YACC = $(am__v_YACC_@AM_V@) am__v_YACC_ = $(am__v_YACC_@AM_DEFAULT_V@) am__v_YACC_0 = @echo " YACC " $@; am__v_YACC_1 = -SOURCES = $(libfl_la_SOURCES) $(libfl_pic_la_SOURCES) $(flex_SOURCES) +SOURCES = $(libfl_la_SOURCES) $(libfl_pic_la_SOURCES) $(flex_SOURCES) \ + $(stage1flex_SOURCES) DIST_SOURCES = $(libfl_la_SOURCES) $(libfl_pic_la_SOURCES) \ - $(flex_SOURCES) + $(flex_SOURCES) $(stage1flex_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -248,7 +254,7 @@ ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \ - parse.c parse.h scan.c + parse.c parse.h scan.c stage1scan.c DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ @@ -302,7 +308,7 @@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ -LIBS = @LIBINTL@ @LIBS@ +LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ @@ -338,6 +344,7 @@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ +TEXI2DVI = @TEXI2DVI@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ @@ -405,30 +412,37 @@ lib_LTLIBRARIES = \ libfl.la \ libfl_pic.la +stage1flex_SOURCES = \ + scan.l \ + $(COMMON_SOURCES) + flex_SOURCES = \ + stage1scan.l \ + $(COMMON_SOURCES) + +COMMON_SOURCES = \ + buf.c \ ccl.c \ dfa.c \ ecs.c \ - scanflags.c \ + filter.c \ gen.c \ main.c \ misc.c \ nfa.c \ + options.c \ parse.y \ - scan.l \ + regex.c \ + scanflags.c \ + scanopt.c \ skel.c \ sym.c \ - tblcmp.c \ - yylex.c \ - options.c \ - scanopt.c \ - buf.c \ tables.c \ tables_shared.c \ - filter.c \ - regex.c + tblcmp.c \ + yylex.c -LDADD = ../lib/libcompat.la +LDADD = ../lib/libcompat.la @LIBINTL@ libfl_la_SOURCES = \ libmain.c \ libyywrap.c @@ -456,9 +470,7 @@ EXTRA_DIST = \ mkskel.sh \ gettext.h -BUILT_SOURCES = \ - skel.c - +DISTCLEANFILES = stage1scan.c MAINTAINERCLEANFILES = skel.c # Run GNU indent on sources. Don't run this unless all the sources compile cleanly. @@ -496,7 +508,7 @@ indentfiles = \ tables_shared.h \ tblcmp.c -all: $(BUILT_SOURCES) config.h +all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: @@ -651,6 +663,15 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS) else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \ done; \ done; rm -f c$${pid}_.???; exit $$bad + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list parse.h: parse.c @if test ! -f $@; then rm -f parse.c; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) parse.c; else :; fi @@ -659,6 +680,10 @@ flex$(EXEEXT): $(flex_OBJECTS) $(flex_DEPENDENCIES) $(EXTRA_flex_DEPENDENCIES) @rm -f flex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(flex_OBJECTS) $(flex_LDADD) $(LIBS) +stage1flex$(EXEEXT): $(stage1flex_OBJECTS) $(stage1flex_DEPENDENCIES) $(EXTRA_stage1flex_DEPENDENCIES) + @rm -f stage1flex$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(stage1flex_OBJECTS) $(stage1flex_LDADD) $(LIBS) + mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -683,6 +708,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanflags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skel.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stage1scan.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sym.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tables.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tables_shared.Po@am__quote@ @@ -826,8 +852,7 @@ distdir: $(DISTFILES) fi; \ done check-am: all-am -check: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) check-am +check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) config.h install-binPROGRAMS: install-libLTLIBRARIES @@ -835,8 +860,7 @@ installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am +install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -862,6 +886,7 @@ clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -869,12 +894,12 @@ maintainer-clean-generic: -rm -f parse.c -rm -f parse.h -rm -f scan.c - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -rm -f stage1scan.c -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool mostlyclean-am + clean-libtool clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -943,31 +968,44 @@ ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ uninstall-libLTLIBRARIES -.MAKE: all check install install-am install-strip +.MAKE: all install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool cscopelist-am ctags ctags-am distclean \ - distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-includeHEADERS install-info install-info-am \ - install-libLTLIBRARIES install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installcheck-binPROGRAMS installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-binPROGRAMS uninstall-includeHEADERS \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-includeHEADERS install-info \ + install-info-am install-libLTLIBRARIES install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installcheck-binPROGRAMS \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-binPROGRAMS uninstall-includeHEADERS \ uninstall-libLTLIBRARIES .PRECIOUS: Makefile -skel.c: flex.skl mkskel.sh flexint.h tables_shared.h - sed 's/m4_/m4postproc_/g; s/m4preproc_/m4_/g' $(srcdir)/flex.skl | $(m4) -P -DFLEX_MAJOR_VERSION=`echo $(VERSION)|cut -f 1 -d .` -DFLEX_MINOR_VERSION=`echo $(VERSION)|cut -f 2 -d .` -DFLEX_SUBMINOR_VERSION=`echo $(VERSION)|cut -f 3 -d .` | sed 's/m4postproc_/m4_/g' | $(SHELL) $(srcdir)/mkskel.sh >skel.c +$(srcdir)/skel.c: flex.skl mkskel.sh flexint.h tables_shared.h + sed 's/m4_/m4postproc_/g; s/m4preproc_/m4_/g' $(srcdir)/flex.skl | \ + $(m4) -P -I $(srcdir) \ + -DFLEX_MAJOR_VERSION=` echo $(VERSION)|cut -f 1 -d .` \ + -DFLEX_MINOR_VERSION=` echo $(VERSION)|cut -f 2 -d .` \ + -DFLEX_SUBMINOR_VERSION=`echo $(VERSION)|cut -f 3 -d .` | \ + sed 's/m4postproc_/m4_/g' | \ + $(SHELL) $(srcdir)/mkskel.sh >skel.c.tmp + mv skel.c.tmp $(srcdir)/skel.c + +stage1scan.l: scan.l + cp $(srcdir)/scan.l $(srcdir)/stage1scan.l + +stage1scan.c: stage1scan.l stage1flex$(EXEEXT) + $(top_builddir)/src/stage1flex$(EXEEXT) -o $@ $< # Explicitly describe dependencies. # You can recreate this with `gcc -I. -MM *.c' @@ -73,12 +73,13 @@ struct Buf *buf_prints (struct Buf *buf, const char *fmt, const char *s) char *t; size_t tsz; - t = flex_alloc (tsz = strlen (fmt) + strlen (s) + 1); + tsz = strlen(fmt) + strlen(s) + 1; + t = malloc(tsz); if (!t) flexfatal (_("Allocation of buffer to print string failed")); snprintf (t, tsz, fmt, s); buf = buf_strappend (buf, t); - flex_free (t); + free(t); return buf; } @@ -104,14 +105,14 @@ struct Buf *buf_linedir (struct Buf *buf, const char* filename, int lineno) t = malloc(tsz); if (!t) flexfatal (_("Allocation of buffer for line directive failed")); - for (dst = t + sprintf (t, "#line %d \"", lineno), src = filename; *src; *dst++ = *src++) + for (dst = t + snprintf (t, tsz, "#line %d \"", lineno), src = filename; *src; *dst++ = *src++) if (*src == '\\') /* escape backslashes */ *dst++ = '\\'; *dst++ = '"'; *dst++ = '\n'; *dst = '\0'; buf = buf_strappend (buf, t); - flex_free (t); + free(t); return buf; } @@ -129,10 +130,7 @@ struct Buf *buf_concat(struct Buf* dest, const struct Buf* src) /* Appends n characters in str to buf. */ -struct Buf *buf_strnappend (buf, str, n) - struct Buf *buf; - const char *str; - int n; +struct Buf *buf_strnappend (struct Buf *buf, const char *str, int n) { buf_append (buf, str, n + 1); @@ -143,18 +141,13 @@ struct Buf *buf_strnappend (buf, str, n) } /* Appends characters in str to buf. */ -struct Buf *buf_strappend (buf, str) - struct Buf *buf; - const char *str; +struct Buf *buf_strappend (struct Buf *buf, const char *str) { - return buf_strnappend (buf, str, strlen (str)); + return buf_strnappend (buf, str, (int) strlen (str)); } /* appends "#define str def\n" */ -struct Buf *buf_strdefine (buf, str, def) - struct Buf *buf; - const char *str; - const char *def; +struct Buf *buf_strdefine (struct Buf *buf, const char *str, const char *def) { buf_strappend (buf, "#define "); buf_strappend (buf, " "); @@ -178,7 +171,8 @@ struct Buf *buf_m4_define (struct Buf *buf, const char* def, const char* val) size_t strsz; val = val?val:""; - str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + strlen(val) + 2); + strsz = strlen(fmt) + strlen(def) + strlen(val) + 2; + str = malloc(strsz); if (!str) flexfatal (_("Allocation of buffer for m4 def failed")); @@ -198,7 +192,8 @@ struct Buf *buf_m4_undefine (struct Buf *buf, const char* def) char * str; size_t strsz; - str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + 2); + strsz = strlen(fmt) + strlen(def) + 2; + str = malloc(strsz); if (!str) flexfatal (_("Allocation of buffer for m4 undef failed")); @@ -208,23 +203,21 @@ struct Buf *buf_m4_undefine (struct Buf *buf, const char* def) } /* create buf with 0 elements, each of size elem_size. */ -void buf_init (buf, elem_size) - struct Buf *buf; - size_t elem_size; +void buf_init (struct Buf *buf, size_t elem_size) { - buf->elts = (void *) 0; + buf->elts = NULL; buf->nelts = 0; buf->elt_size = elem_size; buf->nmax = 0; } /* frees memory */ -void buf_destroy (buf) - struct Buf *buf; +void buf_destroy (struct Buf *buf) { - if (buf && buf->elts) - flex_free (buf->elts); - buf->elts = (void *) 0; + if (buf) { + free(buf->elts); + buf->elts = NULL; + } } @@ -234,10 +227,7 @@ void buf_destroy (buf) * We grow by mod(512) boundaries. */ -struct Buf *buf_append (buf, ptr, n_elem) - struct Buf *buf; - const void *ptr; - int n_elem; +struct Buf *buf_append (struct Buf *buf, const void *ptr, int n_elem) { int n_alloc = 0; @@ -52,9 +52,7 @@ ccl_contains (const int cclp, const int ch) /* ccladd - add a single character to a ccl */ -void ccladd (cclp, ch) - int cclp; - int ch; +void ccladd (int cclp, int ch) { int ind, len, newpos, i; @@ -85,7 +83,7 @@ void ccladd (cclp, ch) } ccllen[cclp] = len + 1; - ccltbl[newpos] = ch; + ccltbl[newpos] = (unsigned char) ch; } /* dump_cclp - same thing as list_character_set, but for cclps. */ @@ -185,7 +183,7 @@ ccl_set_union (int a, int b) /* cclinit - return an empty ccl */ -int cclinit () +int cclinit (void) { if (++lastccl >= current_maxccls) { current_maxccls += MAX_CCLS_INCREMENT; @@ -225,8 +223,7 @@ int cclinit () /* cclnegate - negate the given ccl */ -void cclnegate (cclp) - int cclp; +void cclnegate (int cclp) { cclng[cclp] = 1; ccl_has_nl[cclp] = !ccl_has_nl[cclp]; @@ -240,9 +237,7 @@ void cclnegate (cclp) * has a non-zero value in the cset array. */ -void list_character_set (file, cset) - FILE *file; - int cset[]; +void list_character_set (FILE *file, int cset[]) { int i; @@ -34,10 +34,10 @@ /* declare functions that have forward references */ -void dump_associated_rules PROTO ((FILE *, int)); -void dump_transitions PROTO ((FILE *, int[])); -void sympartition PROTO ((int[], int, int[], int[])); -int symfollowset PROTO ((int[], int, int, int[])); +void dump_associated_rules(FILE *, int); +void dump_transitions(FILE *, int[]); +void sympartition(int[], int, int[], int[]); +int symfollowset(int[], int, int, int[]); /* check_for_backing_up - check a DFA state for backing up @@ -49,9 +49,7 @@ int symfollowset PROTO ((int[], int, int, int[])); * indexed by equivalence class. */ -void check_for_backing_up (ds, state) - int ds; - int state[]; +void check_for_backing_up (int ds, int state[]) { if ((reject && !dfaacc[ds].dfaacc_set) || (!reject && !dfaacc[ds].dfaacc_state)) { /* state is non-accepting */ ++num_backing_up; @@ -96,10 +94,7 @@ void check_for_backing_up (ds, state) * accset[1 .. nacc] is the list of accepting numbers for the DFA state. */ -void check_trailing_context (nfa_states, num_states, accset, nacc) - int *nfa_states, num_states; - int *accset; - int nacc; +void check_trailing_context (int *nfa_states, int num_states, int *accset, int nacc) { int i, j; @@ -137,9 +132,7 @@ void check_trailing_context (nfa_states, num_states, accset, nacc) * and writes a report to the given file. */ -void dump_associated_rules (file, ds) - FILE *file; - int ds; +void dump_associated_rules (FILE *file, int ds) { int i, j; int num_associated_rules = 0; @@ -161,7 +154,7 @@ void dump_associated_rules (file, ds) } } - qsort (&rule_set [1], num_associated_rules, sizeof (rule_set [1]), intcmp); + qsort (&rule_set [1], (size_t) num_associated_rules, sizeof (rule_set [1]), intcmp); fprintf (file, _(" associated rule line numbers:")); @@ -187,9 +180,7 @@ void dump_associated_rules (file, ds) * is done to the given file. */ -void dump_transitions (file, state) - FILE *file; - int state[]; +void dump_transitions (FILE *file, int state[]) { int i, ec; int out_char_set[CSIZE]; @@ -235,8 +226,7 @@ void dump_transitions (file, state) * hashval is the hash value for the dfa corresponding to the state set. */ -int *epsclosure (t, ns_addr, accset, nacc_addr, hv_addr) - int *t, *ns_addr, accset[], *nacc_addr, *hv_addr; +int *epsclosure (int *t, int *ns_addr, int accset[], int *nacc_addr, int *hv_addr) { int stkpos, ns, tsp; int numstates = *ns_addr, nacc, hashval, transsym, nfaccnum; @@ -351,7 +341,7 @@ ADD_STATE(state); \ /* increase_max_dfas - increase the maximum number of DFAs */ -void increase_max_dfas () +void increase_max_dfas (void) { current_max_dfas += MAX_DFAS_INCREMENT; @@ -378,7 +368,7 @@ void increase_max_dfas () * dfa starts out in state #1. */ -void ntod () +void ntod (void) { int *accset, ds, nacc, newds; int sym, hashval, numstates, dsize; @@ -521,15 +511,13 @@ void ntod () * So we'll have to realloc() on the way... * we'll wait until we can calculate yynxt_tbl->td_hilen. */ - yynxt_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct - yytbl_data)); + yynxt_tbl = calloc(1, sizeof (struct yytbl_data)); + yytbl_data_init (yynxt_tbl, YYTD_ID_NXT); yynxt_tbl->td_hilen = 1; yynxt_tbl->td_lolen = num_full_table_rows; yynxt_tbl->td_data = yynxt_data = - (flex_int32_t *) calloc (yynxt_tbl->td_lolen * + calloc(yynxt_tbl->td_lolen * yynxt_tbl->td_hilen, sizeof (flex_int32_t)); yynxt_curr = 0; @@ -713,7 +701,7 @@ void ntod () /* Each time we hit here, it's another td_hilen, so we realloc. */ yynxt_tbl->td_hilen++; yynxt_tbl->td_data = yynxt_data = - (flex_int32_t *) realloc (yynxt_data, + realloc (yynxt_data, yynxt_tbl->td_hilen * yynxt_tbl->td_lolen * sizeof (flex_int32_t)); @@ -805,8 +793,8 @@ void ntod () mkdeftbl (); } - flex_free ((void *) accset); - flex_free ((void *) nset); + free(accset); + free(nset); } @@ -820,8 +808,7 @@ void ntod () * On return, the dfa state number is in newds. */ -int snstods (sns, numstates, accset, nacc, hashval, newds_addr) - int sns[], numstates, accset[], nacc, hashval, *newds_addr; +int snstods (int sns[], int numstates, int accset[], int nacc, int hashval, int *newds_addr) { int didsort = 0; int i, j; @@ -836,7 +823,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr) /* We sort the states in sns so we * can compare it to oldsns quickly. */ - qsort (&sns [1], numstates, sizeof (sns [1]), intcmp); + qsort (&sns [1], (size_t) numstates, sizeof (sns [1]), intcmp); didsort = 1; } @@ -871,7 +858,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr) */ if (!didsort) - qsort (&sns [1], numstates, sizeof (sns [1]), intcmp); + qsort (&sns [1], (size_t) numstates, sizeof (sns [1]), intcmp); for (i = 1; i <= numstates; ++i) dss[newds][i] = sns[i]; @@ -881,7 +868,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr) if (nacc == 0) { if (reject) - dfaacc[newds].dfaacc_set = (int *) 0; + dfaacc[newds].dfaacc_set = NULL; else dfaacc[newds].dfaacc_state = 0; @@ -894,7 +881,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr) * match in the event of ties will work. */ - qsort (&accset [1], nacc, sizeof (accset [1]), intcmp); + qsort (&accset [1], (size_t) nacc, sizeof (accset [1]), intcmp); dfaacc[newds].dfaacc_set = allocate_integer_array (nacc + 1); @@ -942,8 +929,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr) * int transsym, int nset[current_max_dfa_size] ); */ -int symfollowset (ds, dsize, transsym, nset) - int ds[], dsize, transsym, nset[]; +int symfollowset (int ds[], int dsize, int transsym, int nset[]) { int ns, tsp, sym, i, j, lenccl, ch, numstates, ccllist; @@ -1020,9 +1006,7 @@ int symfollowset (ds, dsize, transsym, nset) * int symlist[numecs], int duplist[numecs] ); */ -void sympartition (ds, numstates, symlist, duplist) - int ds[], numstates; - int symlist[], duplist[]; +void sympartition (int ds[], int numstates, int symlist[], int duplist[]) { int tch, i, j, k, ns, dupfwd[CSIZE + 1], lenccl, cclp, ich; @@ -36,7 +36,7 @@ /* ccl2ecl - convert character classes to set of equivalence classes */ -void ccl2ecl () +void ccl2ecl (void) { int i, ich, newlen, cclp, ccls, cclmec; @@ -74,8 +74,7 @@ void ccl2ecl () * Returned is the number of classes. */ -int cre8ecs (fwd, bck, num) - int fwd[], bck[], num; +int cre8ecs (int fwd[], int bck[], int num) { int i, j, numcl; @@ -100,9 +99,9 @@ int cre8ecs (fwd, bck, num) /* mkeccl - update equivalence classes based on character class xtions * * synopsis - * Char ccls[]; + * unsigned char ccls[]; * int lenccl, fwd[llsiz], bck[llsiz], llsiz, NUL_mapping; - * void mkeccl( Char ccls[], int lenccl, int fwd[llsiz], int bck[llsiz], + * void mkeccl( unsigned char ccls[], int lenccl, int fwd[llsiz], int bck[llsiz], * int llsiz, int NUL_mapping ); * * ccls contains the elements of the character class, lenccl is the @@ -112,9 +111,7 @@ int cre8ecs (fwd, bck, num) * NUL_mapping is the value which NUL (0) should be mapped to. */ -void mkeccl (ccls, lenccl, fwd, bck, llsiz, NUL_mapping) - Char ccls[]; - int lenccl, fwd[], bck[], llsiz, NUL_mapping; +void mkeccl (unsigned char ccls[], int lenccl, int fwd[], int bck[], int llsiz, int NUL_mapping) { int cclp, oldec, newec; int cclm, i, j; @@ -201,8 +198,7 @@ void mkeccl (ccls, lenccl, fwd, bck, llsiz, NUL_mapping) /* mkechar - create equivalence class for single character */ -void mkechar (tch, fwd, bck) - int tch, fwd[], bck[]; +void mkechar (int tch, int fwd[], int bck[]) { /* If until now the character has been a proper subset of * an equivalence class, break it away to create a new ec diff --git a/src/filter.c b/src/filter.c index 987366a..1ac199f 100644 --- a/src/filter.c +++ b/src/filter.c @@ -47,9 +47,9 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd, va_list ap; /* allocate and initialize new filter */ - f = (struct filter *) flex_alloc (sizeof (struct filter)); + f = malloc(sizeof(struct filter)); if (!f) - flexerror (_("flex_alloc failed (f) in filter_create_ext")); + flexerror(_("malloc failed (f) in filter_create_ext")); memset (f, 0, sizeof (*f)); f->filter_func = NULL; f->extra = NULL; @@ -66,23 +66,16 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd, /* allocate argv, and populate it with the argument list. */ max_args = 8; - f->argv = - (const char **) flex_alloc (sizeof (char *) * - (max_args + 1)); + f->argv = malloc(sizeof(char *) * (size_t) (max_args + 1)); if (!f->argv) - flexerror (_("flex_alloc failed (f->argv) in filter_create_ext")); + flexerror(_("malloc failed (f->argv) in filter_create_ext")); f->argv[f->argc++] = cmd; va_start (ap, cmd); while ((s = va_arg (ap, const char *)) != NULL) { if (f->argc >= max_args) { max_args += 8; - f->argv = - (const char **) flex_realloc (f->argv, - sizeof (char - *) * - (max_args + - 1)); + f->argv = realloc(f->argv, sizeof(char*) * (size_t) (max_args + 1)); } f->argv[f->argc++] = s; } @@ -107,9 +100,9 @@ struct filter *filter_create_int (struct filter *chain, struct filter *f; /* allocate and initialize new filter */ - f = (struct filter *) flex_alloc (sizeof (struct filter)); + f = malloc(sizeof(struct filter)); if (!f) - flexerror (_("flex_alloc failed in filter_create_int")); + flexerror(_("malloc failed in filter_create_int")); memset (f, 0, sizeof (*f)); f->next = NULL; f->argc = 0; @@ -174,6 +167,8 @@ clearerr(stdin); flexfatal (_("dup2(pipes[0],0)")); close (pipes[0]); fseek (stdin, 0, SEEK_CUR); + ungetc(' ', stdin); /* still an evil hack, but one that works better */ + (void)fgetc(stdin); /* on NetBSD than the fseek attempt does */ /* run as a filter, either internally or by exec */ if (chain->filter_func) { @@ -288,9 +283,9 @@ int filter_tee_header (struct filter *chain) fprintf (to_c, "m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n", outfilename ? outfilename : "<stdout>"); - buf = (char *) flex_alloc (readsz); + buf = malloc((size_t) readsz); if (!buf) - flexerror (_("flex_alloc failed in filter_tee_header")); + flexerror(_("malloc failed in filter_tee_header")); while (fgets (buf, readsz, stdin)) { fputs (buf, to_c); if (write_header) @@ -341,7 +336,7 @@ int filter_tee_header (struct filter *chain) int filter_fix_linedirs (struct filter *chain) { char *buf; - const int readsz = 512; + const size_t readsz = 512; int lineno = 1; bool in_gen = true; /* in generated code */ bool last_was_blank = false; @@ -349,11 +344,11 @@ int filter_fix_linedirs (struct filter *chain) if (!chain) return 0; - buf = (char *) flex_alloc (readsz); + buf = malloc(readsz); if (!buf) - flexerror (_("flex_alloc failed in filter_fix_linedirs")); + flexerror(_("malloc failed in filter_fix_linedirs")); - while (fgets (buf, readsz, stdin)) { + while (fgets (buf, (int) readsz, stdin)) { regmatch_t m[10]; diff --git a/src/flex.skl b/src/flex.skl index 1ecea58..d85e729 100644 --- a/src/flex.skl +++ b/src/flex.skl @@ -13,10 +13,10 @@ %# through m4. Macros beginning with `m4_' will be processed. %# The quoting is "[[" and "]]" so we don't interfere with %# user code. -%# +%# %# All generate macros for the m4 stage contain the text "m4" or "M4" %# in them. This is to distinguish them from CPP macros. -%# The exception to this rule is YY_G, which is an m4 macro, +%# The exception to this rule is YY_G, which is an m4 macro, %# but it needs to be remain short because it is used everywhere. %# /* A lexical scanner generated by flex */ @@ -29,7 +29,7 @@ m4_changecom m4_changequote m4_changequote([[, ]]) -%# +%# %# Lines in this skeleton starting with a "%" character are "control lines" %# and affect the generation of the scanner. The possible control codes are %# listed and processed in misc.c. @@ -215,7 +215,7 @@ m4preproc_include(`flexint.h') %if-c++-only /* begin standard C++ headers. */ -#include <iostream> +#include <iostream> #include <errno.h> #include <cstdlib> #include <cstdio> @@ -223,38 +223,26 @@ m4preproc_include(`flexint.h') /* end standard C++ headers. */ %endif -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif %# For compilers that can not handle prototypes. %# e.g., %# The function prototype %# int foo(int x, char* y); -%# +%# %# ...should be written as %# int foo M4_YY_PARAMS(int x, char* y); -%# +%# %# ...which could possibly generate %# int foo (); -%# +%# m4_ifdef( [[M4_YY_NO_ANSI_FUNC_PROTOS]], [[ m4_define( [[M4_YY_PARAMS]], [[()]]) @@ -329,7 +317,7 @@ m4_define( [[M4_YY_DOC_PARAM]], [[@param yyscanner The scanner object.]]) #define yy_flex_debug YY_G(yy_flex_debug_r) m4_define( [[M4_YY_INCR_LINENO]], -[[ +[[ do{ yylineno++; yycolumn=0; }while(0) @@ -342,7 +330,7 @@ m4_define( [[M4_YY_INCR_LINENO]], %if-not-reentrant m4_define( [[M4_YY_INCR_LINENO]], -[[ +[[ yylineno++; ]]) @@ -477,7 +465,7 @@ typedef size_t yy_size_t; #endif %if-not-reentrant -extern yy_size_t yyleng; +extern int yyleng; %endif %if-c-only @@ -499,7 +487,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]], [[ /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires * access to the local variable yy_act. Since yyless() is a macro, it would break - * existing scanners that call yyless() from OUTSIDE yylex. + * existing scanners that call yyless() from OUTSIDE yylex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-yylineno scanner, because yy_act is * normally declared as a register variable-- so it is not worth it. @@ -556,7 +544,7 @@ struct yy_buffer_state %endif %if-c++-only - std::streambuf* yy_input_file; + std::streambuf* yy_input_file; %endif @@ -566,7 +554,7 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. @@ -594,7 +582,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. @@ -628,7 +616,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]], /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ %endif %ok-for-header %endif @@ -661,10 +649,10 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]], /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -697,7 +685,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]], YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG ); YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG ); -YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, yy_size_t len M4_YY_PROTO_LAST_ARG ); +YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, int len M4_YY_PROTO_LAST_ARG ); %endif @@ -755,10 +743,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]], static yy_state_type yy_get_previous_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG ); static yy_state_type yy_try_NUL_trans M4_YY_PARAMS( yy_state_type current_state M4_YY_PROTO_LAST_ARG); static int yy_get_next_buffer M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG ); -#if defined(__GNUC__) && __GNUC__ >= 3 -__attribute__((__noreturn__)) -#endif -static void yy_fatal_error M4_YY_PARAMS( yyconst char msg[] M4_YY_PROTO_LAST_ARG ); +static void yynoreturn yy_fatal_error M4_YY_PARAMS( yyconst char* msg M4_YY_PROTO_LAST_ARG ); ]]) %endif @@ -832,7 +817,7 @@ struct yyguts_t YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; int yy_n_chars; - yy_size_t yyleng_r; + int yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; @@ -969,7 +954,7 @@ void yyset_out M4_YY_PARAMS( FILE * _out_str M4_YY_PROTO_LAST_ARG ); m4_ifdef( [[M4_YY_NO_GET_LENG]],, [[ -yy_size_t yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG ); + int yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG ); ]]) m4_ifdef( [[M4_YY_NO_GET_TEXT]],, @@ -1125,7 +1110,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]], /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) %endif %if-c++-only C++ definition #define ECHO LexerOutput( yytext, yyleng ) @@ -1191,7 +1176,7 @@ int yytables_destroy M4_YY_PARAMS(M4_YY_PROTO_ONLY_ARG); /** Describes a mapping from a serialized table id to its deserialized state in * this scanner. This is the bridge between our "generic" deserialization code - * and the specifics of this scanner. + * and the specifics of this scanner. */ struct yytbl_dmap { enum yytbl_id dm_id;/**< table identifier */ @@ -1533,7 +1518,7 @@ do_action: /* This label is used only to access EOF actions. */ * This constructor simply maintains backward compatibility. * DEPRECATED */ -yyFlexLexer::yyFlexLexer( FLEX_STD istream* arg_yyin, FLEX_STD ostream* arg_yyout ): +yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ): yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()), yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf()) { @@ -1569,7 +1554,7 @@ void yyFlexLexer::ctor_common() yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = NULL; - yy_buffer_stack = 0; + yy_buffer_stack = NULL; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; @@ -1718,7 +1703,7 @@ int yyFlexLexer::yy_get_next_buffer() else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -1737,7 +1722,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]], if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1751,7 +1736,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]], } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1891,7 +1876,7 @@ m4_ifdef( [[M4_YY_NO_UNPUT]],, yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + YY_G(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -1946,7 +1931,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]], else { /* need more input */ - yy_size_t offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr); + int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr); ++YY_G(yy_c_buf_p); switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) ) @@ -1970,7 +1955,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]], case EOB_ACT_END_OF_FILE: { if ( yywrap( M4_YY_CALL_ONLY_ARG ) ) - return EOF; + return 0; if ( ! YY_G(yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -2341,7 +2326,7 @@ static void yyensure_buffer_stack YYFARGS0(void) void yyFlexLexer::yyensure_buffer_stack(void) %endif { - yy_size_t num_to_alloc; + int num_to_alloc; M4_YY_DECL_GUTS_VAR(); if (!YY_G(yy_buffer_stack)) { @@ -2356,10 +2341,10 @@ void yyFlexLexer::yyensure_buffer_stack(void) M4_YY_CALL_LAST_ARG); if ( ! YY_G(yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - + + memset(YY_G(yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + YY_G(yy_buffer_stack_max) = num_to_alloc; YY_G(yy_buffer_stack_top) = 0; return; @@ -2395,7 +2380,7 @@ m4_ifdef( [[M4_YY_NO_SCAN_BUFFER]],, * @param base the character buffer * @param size the size in bytes of the character buffer * M4_YY_DOC_PARAM - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size) { @@ -2406,7 +2391,7 @@ YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) M4_YY_CALL_LAST_ARG ); if ( ! b ) @@ -2415,7 +2400,7 @@ YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size) b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; @@ -2445,7 +2430,7 @@ YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *, yystr) { m4_dnl M4_YY_DECL_GUTS_VAR(); - return yy_scan_bytes( yystr, strlen(yystr) M4_YY_CALL_LAST_ARG); + return yy_scan_bytes( yystr, (int) strlen(yystr) M4_YY_CALL_LAST_ARG); } %endif ]]) @@ -2461,7 +2446,7 @@ m4_ifdef( [[M4_YY_NO_SCAN_BYTES]],, * M4_YY_DOC_PARAM * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, yy_size_t ,_yybytes_len) +YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, int ,_yybytes_len) { YY_BUFFER_STATE b; char *buf; @@ -2470,7 +2455,7 @@ YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, yy_size_t ,_yyb m4_dnl M4_YY_DECL_GUTS_VAR(); /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; + n = (yy_size_t) _yybytes_len + 2; buf = (char *) yyalloc( n M4_YY_CALL_LAST_ARG ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -2510,7 +2495,7 @@ m4_ifdef( [[M4_YY_NO_PUSH_STATE]],, yy_size_t new_size; YY_G(yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = YY_G(yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) YY_G(yy_start_stack_depth) * sizeof( int ); if ( ! YY_G(yy_start_stack) ) YY_G(yy_start_stack) = (int *) yyalloc( new_size M4_YY_CALL_LAST_ARG ); @@ -2567,7 +2552,7 @@ m4_ifdef( [[M4_YY_NO_TOP_STATE]],, #endif %if-c-only -static void yy_fatal_error YYFARGS1(yyconst char*, msg) +static void yynoreturn yy_fatal_error YYFARGS1(yyconst char*, msg) { M4_YY_DECL_GUTS_VAR(); M4_YY_NOOP_GUTS_VAR(); @@ -2576,7 +2561,7 @@ static void yy_fatal_error YYFARGS1(yyconst char*, msg) } %endif %if-c++-only -void yyFlexLexer::LexerError( yyconst char msg[] ) +void yyFlexLexer::LexerError( yyconst char* msg ) { M4_YY_DECL_GUTS_VAR(); std::cerr << msg << std::endl; @@ -2628,7 +2613,7 @@ m4_ifdef( [[M4_YY_NO_GET_LINENO]],, int yyget_lineno YYFARGS0(void) { M4_YY_DECL_GUTS_VAR(); - + m4_ifdef( [[M4_YY_REENTRANT]], [[ if (! YY_CURRENT_BUFFER) @@ -2648,7 +2633,7 @@ m4_ifdef( [[M4_YY_NO_GET_COLUMN]],, int yyget_column YYFARGS0(void) { M4_YY_DECL_GUTS_VAR(); - + m4_ifdef( [[M4_YY_REENTRANT]], [[ if (! YY_CURRENT_BUFFER) @@ -2688,7 +2673,7 @@ m4_ifdef( [[M4_YY_NO_GET_LENG]],, /** Get the length of the current token. * M4_YY_DOC_PARAM */ -yy_size_t yyget_leng YYFARGS0(void) +int yyget_leng YYFARGS0(void) { M4_YY_DECL_GUTS_VAR(); return yyleng; @@ -2915,20 +2900,20 @@ int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals ) errno = EINVAL; return 1; } - + *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); - + if (*ptr_yy_globals == NULL){ errno = ENOMEM; return 1; } - + /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); - + yyset_extra (yy_user_defined, *ptr_yy_globals); - + return yy_init_globals ( *ptr_yy_globals ); } @@ -2951,10 +2936,10 @@ m4_ifdef( [[M4_YY_USE_LINENO]], yylineno = 1; ]]) ]]) - YY_G(yy_buffer_stack) = 0; + YY_G(yy_buffer_stack) = NULL; YY_G(yy_buffer_stack_top) = 0; YY_G(yy_buffer_stack_max) = 0; - YY_G(yy_c_buf_p) = (char *) 0; + YY_G(yy_c_buf_p) = NULL; YY_G(yy_init) = 0; YY_G(yy_start) = 0; @@ -2985,8 +2970,8 @@ m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]], yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -3083,7 +3068,7 @@ void *yyalloc YYFARGS1( yy_size_t ,size) { M4_YY_DECL_GUTS_VAR(); M4_YY_NOOP_GUTS_VAR(); - return (void *) malloc( size ); + return malloc(size); } ]]) @@ -3101,7 +3086,7 @@ void *yyrealloc YYFARGS2( void *,ptr, yy_size_t ,size) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } ]]) @@ -3216,7 +3201,7 @@ static struct yytbl_dmap *yytbl_dmap_lookup YYFARGS2(struct yytbl_dmap *, dmap, return NULL; } -/** Read a table while mapping its contents to the local array. +/** Read a table while mapping its contents to the local array. * @param dmap used to performing mapping * @return 0 on success */ @@ -3261,7 +3246,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read if(M4_YY_TABLES_VERIFY) /* We point to the array itself */ - p = dmap->dm_arr; + p = dmap->dm_arr; else /* We point to the address of a pointer. */ *dmap->dm_arr = p = (void *) yyalloc (bytes M4_YY_CALL_LAST_ARG); @@ -3308,7 +3293,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read rv = yytbl_read8 (&t8, rd); t32 = t8; break; - default: + default: YY_FATAL_ERROR( "invalid td_flags" ); /* TODO: not fatal. */ return -1; } @@ -3365,7 +3350,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read YY_FATAL_ERROR( "transition table not found" ); /* TODO: not fatal. */ return -1; } - + if( M4_YY_TABLES_VERIFY) v = &(((struct yy_trans_info *) (transdmap->dm_arr))[t32]); else @@ -3376,7 +3361,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read YY_FATAL_ERROR( "tables verification failed at YYTD_PTRANS" ); }else ((struct yy_trans_info **) p)[0] = v; - + /* increment p */ p = (struct yy_trans_info **) p + 1; } @@ -3492,7 +3477,7 @@ int yytables_fload YYFARGS1(FILE *, fp) /** Destroy the loaded tables, freeing memory, etc.. */ int yytables_destroy YYFARGS0(void) -{ +{ struct yytbl_dmap *dmap=0; if(!M4_YY_TABLES_VERIFY){ diff --git a/src/flexdef.h b/src/flexdef.h index 496e34c..27ad610 100644 --- a/src/flexdef.h +++ b/src/flexdef.h @@ -39,30 +39,15 @@ #include <config.h> #endif -/* AIX requires this to be the first thing in the file. */ -#if !defined(__GNUC__) && !defined(__lint__) -# if HAVE_ALLOCA_H -# include <alloca.h> -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -#endif - -#ifdef STDC_HEADERS #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <setjmp.h> #include <ctype.h> +#include <libgen.h> /* for XPG version of basename(3) */ #include <string.h> #include <math.h> -#endif + #ifdef HAVE_ASSERT_H #include <assert.h> #else @@ -81,16 +66,11 @@ char *alloca (); #ifdef HAVE_SYS_PARAMS_H #include <sys/params.h> #endif -#ifdef HAVE_SYS_WAIT_H -#include <sys/wait.h> +#ifdef HAVE_SYS_STAT_H +#include <sys/stat.h> #endif -#ifdef HAVE_STDBOOL_H +#include <sys/wait.h> #include <stdbool.h> -#else -#define bool int -#define true 1 -#define false 0 -#endif #ifdef HAVE_REGEX_H #include <regex.h> #endif @@ -109,33 +89,12 @@ char *alloca (); /* Always be prepared to generate an 8-bit scanner. */ #define CSIZE 256 -#define Char unsigned char /* Size of input alphabet - should be size of ASCII set. */ #ifndef DEFAULT_CSIZE #define DEFAULT_CSIZE 128 #endif -#ifndef PROTO -#if defined(__STDC__) -#define PROTO(proto) proto -#else -#define PROTO(proto) () -#endif -#endif - -#ifdef VMS -#ifndef __VMS_POSIX -#define unlink remove -#define SHORT_FILE_NAMES -#endif -#endif - -#ifdef MS_DOS -#define SHORT_FILE_NAMES -#endif - - /* Maximum line length we'll have to deal with. */ #define MAXLINE 2048 @@ -150,11 +109,6 @@ char *alloca (); #endif -/* ANSI C does not guarantee that isascii() is defined */ -#ifndef isascii -#define isascii(c) ((c) <= 0177) -#endif - #define unspecified -1 /* Special chk[] values marking the slots taking by end-of-buffer and action @@ -445,7 +399,7 @@ extern int trace_hex; */ extern int datapos, dataline, linenum; -extern FILE *skelfile, *yyin, *backing_up_file; +extern FILE *skelfile, *backing_up_file; extern const char *skel[]; extern int skel_ind; extern char *infilename, *outfilename, *headerfilename; @@ -647,7 +601,7 @@ extern int end_of_buffer_state; extern int lastccl, *cclmap, *ccllen, *cclng, cclreuse; extern int current_maxccls, current_max_ccl_tbl_size; -extern Char *ccltbl; +extern unsigned char *ccltbl; /* Variables for miscellaneous information: @@ -675,62 +629,54 @@ extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs; extern int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave; extern int num_backing_up, bol_needed; -void *allocate_array PROTO ((int, size_t)); -void *reallocate_array PROTO ((void *, int, size_t)); +#ifndef HAVE_REALLOCARRAY +void *reallocarray(void *, size_t, size_t); +#endif -void *flex_alloc PROTO ((size_t)); -void *flex_realloc PROTO ((void *, size_t)); -void flex_free PROTO ((void *)); +void *allocate_array(int, size_t); +void *reallocate_array(void *, int, size_t); #define allocate_integer_array(size) \ - (int *) allocate_array( size, sizeof( int ) ) + allocate_array(size, sizeof(int)) #define reallocate_integer_array(array,size) \ - (int *) reallocate_array( (void *) array, size, sizeof( int ) ) + reallocate_array((void *) array, size, sizeof(int)) #define allocate_bool_array(size) \ - (bool *) allocate_array( size, sizeof( bool ) ) + allocate_array(size, sizeof(bool)) #define reallocate_bool_array(array,size) \ - (bool *) reallocate_array( (void *) array, size, sizeof( bool ) ) + reallocate_array((void *) array, size, sizeof(bool)) #define allocate_int_ptr_array(size) \ - (int **) allocate_array( size, sizeof( int * ) ) + allocate_array(size, sizeof(int *)) #define allocate_char_ptr_array(size) \ - (char **) allocate_array( size, sizeof( char * ) ) + allocate_array(size, sizeof(char *)) #define allocate_dfaacc_union(size) \ - (union dfaacc_union *) \ - allocate_array( size, sizeof( union dfaacc_union ) ) + allocate_array(size, sizeof(union dfaacc_union)) #define reallocate_int_ptr_array(array,size) \ - (int **) reallocate_array( (void *) array, size, sizeof( int * ) ) + reallocate_array((void *) array, size, sizeof(int *)) #define reallocate_char_ptr_array(array,size) \ - (char **) reallocate_array( (void *) array, size, sizeof( char * ) ) + reallocate_array((void *) array, size, sizeof(char *)) #define reallocate_dfaacc_union(array, size) \ - (union dfaacc_union *) \ - reallocate_array( (void *) array, size, sizeof( union dfaacc_union ) ) + reallocate_array((void *) array, size, sizeof(union dfaacc_union)) #define allocate_character_array(size) \ - (char *) allocate_array( size, sizeof( char ) ) + allocate_array( size, sizeof(char)) #define reallocate_character_array(array,size) \ - (char *) reallocate_array( (void *) array, size, sizeof( char ) ) + reallocate_array((void *) array, size, sizeof(char)) #define allocate_Character_array(size) \ - (Char *) allocate_array( size, sizeof( Char ) ) + allocate_array(size, sizeof(unsigned char)) #define reallocate_Character_array(array,size) \ - (Char *) reallocate_array( (void *) array, size, sizeof( Char ) ) - - -/* Used to communicate between scanner and parser. The type should really - * be YYSTYPE, but we can't easily get our hands on it. - */ -extern int yylval; + reallocate_array((void *) array, size, sizeof(unsigned char)) /* External functions that are cross-referenced among the flex source files. */ @@ -738,146 +684,143 @@ extern int yylval; /* from file ccl.c */ -extern void ccladd PROTO ((int, int)); /* add a single character to a ccl */ -extern int cclinit PROTO ((void)); /* make an empty ccl */ -extern void cclnegate PROTO ((int)); /* negate a ccl */ +extern void ccladd(int, int); /* add a single character to a ccl */ +extern int cclinit(void); /* make an empty ccl */ +extern void cclnegate(int); /* negate a ccl */ extern int ccl_set_diff (int a, int b); /* set difference of two ccls. */ extern int ccl_set_union (int a, int b); /* set union of two ccls. */ /* List the members of a set of characters in CCL form. */ -extern void list_character_set PROTO ((FILE *, int[])); +extern void list_character_set(FILE *, int[]); /* from file dfa.c */ /* Check a DFA state for backing up. */ -extern void check_for_backing_up PROTO ((int, int[])); +extern void check_for_backing_up(int, int[]); /* Check to see if NFA state set constitutes "dangerous" trailing context. */ -extern void check_trailing_context PROTO ((int *, int, int *, int)); +extern void check_trailing_context(int *, int, int *, int); /* Construct the epsilon closure of a set of ndfa states. */ -extern int *epsclosure PROTO ((int *, int *, int[], int *, int *)); +extern int *epsclosure(int *, int *, int[], int *, int *); /* Increase the maximum number of dfas. */ -extern void increase_max_dfas PROTO ((void)); +extern void increase_max_dfas(void); -extern void ntod PROTO ((void)); /* convert a ndfa to a dfa */ +extern void ntod(void); /* convert a ndfa to a dfa */ /* Converts a set of ndfa states into a dfa state. */ -extern int snstods PROTO ((int[], int, int[], int, int, int *)); +extern int snstods(int[], int, int[], int, int, int *); /* from file ecs.c */ /* Convert character classes to set of equivalence classes. */ -extern void ccl2ecl PROTO ((void)); +extern void ccl2ecl(void); /* Associate equivalence class numbers with class members. */ -extern int cre8ecs PROTO ((int[], int[], int)); +extern int cre8ecs(int[], int[], int); /* Update equivalence classes based on character class transitions. */ -extern void mkeccl PROTO ((Char[], int, int[], int[], int, int)); +extern void mkeccl(unsigned char[], int, int[], int[], int, int); /* Create equivalence class for single character. */ -extern void mkechar PROTO ((int, int[], int[])); +extern void mkechar(int, int[], int[]); /* from file gen.c */ -extern void do_indent PROTO ((void)); /* indent to the current level */ +extern void do_indent(void); /* indent to the current level */ /* Generate the code to keep backing-up information. */ -extern void gen_backing_up PROTO ((void)); +extern void gen_backing_up(void); /* Generate the code to perform the backing up. */ -extern void gen_bu_action PROTO ((void)); +extern void gen_bu_action(void); /* Generate full speed compressed transition table. */ -extern void genctbl PROTO ((void)); +extern void genctbl(void); /* Generate the code to find the action number. */ -extern void gen_find_action PROTO ((void)); +extern void gen_find_action(void); -extern void genftbl PROTO ((void)); /* generate full transition table */ +extern void genftbl(void); /* generate full transition table */ /* Generate the code to find the next compressed-table state. */ -extern void gen_next_compressed_state PROTO ((char *)); +extern void gen_next_compressed_state(char *); /* Generate the code to find the next match. */ -extern void gen_next_match PROTO ((void)); +extern void gen_next_match(void); /* Generate the code to find the next state. */ -extern void gen_next_state PROTO ((int)); +extern void gen_next_state(int); /* Generate the code to make a NUL transition. */ -extern void gen_NUL_trans PROTO ((void)); +extern void gen_NUL_trans(void); /* Generate the code to find the start state. */ -extern void gen_start_state PROTO ((void)); +extern void gen_start_state(void); /* Generate data statements for the transition tables. */ -extern void gentabs PROTO ((void)); +extern void gentabs(void); /* Write out a formatted string at the current indentation level. */ -extern void indent_put2s PROTO ((const char *, const char *)); +extern void indent_put2s(const char *, const char *); /* Write out a string + newline at the current indentation level. */ -extern void indent_puts PROTO ((const char *)); +extern void indent_puts(const char *); -extern void make_tables PROTO ((void)); /* generate transition tables */ +extern void make_tables(void); /* generate transition tables */ /* from file main.c */ -extern void check_options PROTO ((void)); -extern void flexend PROTO ((int)); -extern void usage PROTO ((void)); +extern void check_options(void); +extern void flexend(int); +extern void usage(void); /* from file misc.c */ /* Add a #define to the action file. */ -extern void action_define PROTO ((const char *defname, int value)); +extern void action_define(const char *defname, int value); /* Add the given text to the stored actions. */ -extern void add_action PROTO ((const char *new_text)); +extern void add_action(const char *new_text); /* True if a string is all lower case. */ -extern int all_lower PROTO ((char *)); +extern int all_lower(char *); /* True if a string is all upper case. */ -extern int all_upper PROTO ((char *)); +extern int all_upper(char *); /* Compare two integers for use by qsort. */ -extern int intcmp PROTO ((const void *, const void *)); +extern int intcmp(const void *, const void *); /* Check a character to make sure it's in the expected range. */ -extern void check_char PROTO ((int c)); +extern void check_char(int c); /* Replace upper-case letter to lower-case. */ -extern Char clower PROTO ((int)); +extern unsigned char clower(int); -/* Returns a dynamically allocated copy of a string. */ -extern char *copy_string PROTO ((const char *)); - -/* Returns a dynamically allocated copy of a (potentially) unsigned string. */ -extern Char *copy_unsigned_string PROTO ((Char *)); +/* strdup() that fails fatally on allocation failures. */ +extern char *xstrdup(const char *); /* Compare two characters for use by qsort with '\0' sorting last. */ -extern int cclcmp PROTO ((const void *, const void *)); +extern int cclcmp(const void *, const void *); /* Finish up a block of data declarations. */ -extern void dataend PROTO ((void)); +extern void dataend(void); /* Flush generated data statements. */ -extern void dataflush PROTO ((void)); +extern void dataflush(void); /* Report an error message and terminate. */ -extern void flexerror PROTO ((const char *)); +extern void flexerror(const char *); /* Report a fatal error message and terminate. */ -extern void flexfatal PROTO ((const char *)); +extern void flexfatal(const char *); /* Report a fatal error with a pinpoint, and terminate */ #if HAVE_DECL___FUNC__ @@ -901,207 +844,199 @@ extern void flexfatal PROTO ((const char *)); #endif /* ! HAVE_DECL___func__ */ /* Convert a hexadecimal digit string to an integer value. */ -extern int htoi PROTO ((Char[])); +extern int htoi(unsigned char[]); /* Report an error message formatted */ -extern void lerr PROTO ((const char *, ...)) +extern void lerr(const char *, ...) #if defined(__GNUC__) && __GNUC__ >= 3 __attribute__((__format__(__printf__, 1, 2))) #endif ; /* Like lerr, but also exit after displaying message. */ -extern void lerr_fatal PROTO ((const char *, ...)) +extern void lerr_fatal(const char *, ...) #if defined(__GNUC__) && __GNUC__ >= 3 __attribute__((__format__(__printf__, 1, 2))) #endif ; /* Spit out a "#line" statement. */ -extern void line_directive_out PROTO ((FILE *, int)); +extern void line_directive_out(FILE *, int); /* Mark the current position in the action array as the end of the section 1 * user defs. */ -extern void mark_defs1 PROTO ((void)); +extern void mark_defs1(void); /* Mark the current position in the action array as the end of the prolog. */ -extern void mark_prolog PROTO ((void)); +extern void mark_prolog(void); /* Generate a data statment for a two-dimensional array. */ -extern void mk2data PROTO ((int)); +extern void mk2data(int); -extern void mkdata PROTO ((int)); /* generate a data statement */ +extern void mkdata(int); /* generate a data statement */ /* Return the integer represented by a string of digits. */ -extern int myctoi PROTO ((const char *)); +extern int myctoi(const char *); /* Return character corresponding to escape sequence. */ -extern Char myesc PROTO ((Char[])); +extern unsigned char myesc(unsigned char[]); /* Convert an octal digit string to an integer value. */ -extern int otoi PROTO ((Char[])); +extern int otoi(unsigned char[]); /* Output a (possibly-formatted) string to the generated scanner. */ -extern void out PROTO ((const char *)); -extern void out_dec PROTO ((const char *, int)); -extern void out_dec2 PROTO ((const char *, int, int)); -extern void out_hex PROTO ((const char *, unsigned int)); -extern void out_str PROTO ((const char *, const char *)); -extern void out_str3 -PROTO ((const char *, const char *, const char *, const char *)); -extern void out_str_dec PROTO ((const char *, const char *, int)); -extern void outc PROTO ((int)); -extern void outn PROTO ((const char *)); -extern void out_m4_define (const char* def, const char* val); +extern void out(const char *); +extern void out_dec(const char *, int); +extern void out_dec2(const char *, int, int); +extern void out_hex(const char *, unsigned int); +extern void out_str(const char *, const char *); +extern void out_str3(const char *, const char *, const char *, const char *); +extern void out_str_dec(const char *, const char *, int); +extern void outc(int); +extern void outn(const char *); +extern void out_m4_define(const char* def, const char* val); /* Return a printable version of the given character, which might be * 8-bit. */ -extern char *readable_form PROTO ((int)); +extern char *readable_form(int); /* Write out one section of the skeleton file. */ -extern void skelout PROTO ((void)); +extern void skelout(void); /* Output a yy_trans_info structure. */ -extern void transition_struct_out PROTO ((int, int)); +extern void transition_struct_out(int, int); /* Only needed when using certain broken versions of bison to build parse.c. */ -extern void *yy_flex_xmalloc PROTO ((int)); - -/* Set a region of memory to 0. */ -extern void zero_out PROTO ((char *, size_t)); +extern void *yy_flex_xmalloc(int); /* from file nfa.c */ /* Add an accepting state to a machine. */ -extern void add_accept PROTO ((int, int)); +extern void add_accept(int, int); /* Make a given number of copies of a singleton machine. */ -extern int copysingl PROTO ((int, int)); +extern int copysingl(int, int); /* Debugging routine to write out an nfa. */ -extern void dumpnfa PROTO ((int)); +extern void dumpnfa(int); /* Finish up the processing for a rule. */ -extern void finish_rule PROTO ((int, int, int, int, int)); +extern void finish_rule(int, int, int, int, int); /* Connect two machines together. */ -extern int link_machines PROTO ((int, int)); +extern int link_machines(int, int); /* Mark each "beginning" state in a machine as being a "normal" (i.e., * not trailing context associated) state. */ -extern void mark_beginning_as_normal PROTO ((int)); +extern void mark_beginning_as_normal(int); /* Make a machine that branches to two machines. */ -extern int mkbranch PROTO ((int, int)); +extern int mkbranch(int, int); -extern int mkclos PROTO ((int)); /* convert a machine into a closure */ -extern int mkopt PROTO ((int)); /* make a machine optional */ +extern int mkclos(int); /* convert a machine into a closure */ +extern int mkopt(int); /* make a machine optional */ /* Make a machine that matches either one of two machines. */ -extern int mkor PROTO ((int, int)); +extern int mkor(int, int); /* Convert a machine into a positive closure. */ -extern int mkposcl PROTO ((int)); +extern int mkposcl(int); -extern int mkrep PROTO ((int, int, int)); /* make a replicated machine */ +extern int mkrep(int, int, int); /* make a replicated machine */ /* Create a state with a transition on a given symbol. */ -extern int mkstate PROTO ((int)); +extern int mkstate(int); -extern void new_rule PROTO ((void)); /* initialize for a new rule */ +extern void new_rule(void); /* initialize for a new rule */ /* from file parse.y */ /* Build the "<<EOF>>" action for the active start conditions. */ -extern void build_eof_action PROTO ((void)); +extern void build_eof_action(void); /* Write out a message formatted with one string, pinpointing its location. */ -extern void format_pinpoint_message PROTO ((const char *, const char *)); +extern void format_pinpoint_message(const char *, const char *); /* Write out a message, pinpointing its location. */ -extern void pinpoint_message PROTO ((const char *)); +extern void pinpoint_message(const char *); /* Write out a warning, pinpointing it at the given line. */ -extern void line_warning PROTO ((const char *, int)); +extern void line_warning(const char *, int); /* Write out a message, pinpointing it at the given line. */ -extern void line_pinpoint PROTO ((const char *, int)); +extern void line_pinpoint(const char *, int); /* Report a formatted syntax error. */ -extern void format_synerr PROTO ((const char *, const char *)); -extern void synerr PROTO ((const char *)); /* report a syntax error */ -extern void format_warn PROTO ((const char *, const char *)); -extern void warn PROTO ((const char *)); /* report a warning */ -extern void yyerror PROTO ((const char *)); /* report a parse error */ -extern int yyparse PROTO ((void)); /* the YACC parser */ +extern void format_synerr(const char *, const char *); +extern void synerr(const char *); /* report a syntax error */ +extern void format_warn(const char *, const char *); +extern void warn(const char *); /* report a warning */ +extern void yyerror(const char *); /* report a parse error */ /* from file scan.l */ /* The Flex-generated scanner for flex. */ -extern int flexscan PROTO ((void)); +extern int flexscan(void); /* Open the given file (if NULL, stdin) for scanning. */ -extern void set_input_file PROTO ((char *)); - -/* Wrapup a file in the lexical analyzer. */ -extern int yywrap PROTO ((void)); +extern void set_input_file(char *); /* from file sym.c */ /* Save the text of a character class. */ -extern void cclinstal PROTO ((Char[], int)); +extern void cclinstal(char[], int); /* Lookup the number associated with character class. */ -extern int ccllookup PROTO ((Char[])); +extern int ccllookup(char[]); -extern void ndinstal PROTO ((const char *, Char[])); /* install a name definition */ -extern Char *ndlookup PROTO ((const char *)); /* lookup a name definition */ +extern void ndinstal(const char *, char[]); /* install a name definition */ +extern char *ndlookup(const char *); /* lookup a name definition */ /* Increase maximum number of SC's. */ -extern void scextend PROTO ((void)); -extern void scinstal PROTO ((const char *, int)); /* make a start condition */ +extern void scextend(void); +extern void scinstal(const char *, int); /* make a start condition */ /* Lookup the number associated with a start condition. */ -extern int sclookup PROTO ((const char *)); +extern int sclookup(const char *); /* from file tblcmp.c */ /* Build table entries for dfa state. */ -extern void bldtbl PROTO ((int[], int, int, int, int)); +extern void bldtbl(int[], int, int, int, int); -extern void cmptmps PROTO ((void)); /* compress template table entries */ -extern void expand_nxt_chk PROTO ((void)); /* increase nxt/chk arrays */ +extern void cmptmps(void); /* compress template table entries */ +extern void expand_nxt_chk(void); /* increase nxt/chk arrays */ /* Finds a space in the table for a state to be placed. */ -extern int find_table_space PROTO ((int *, int)); -extern void inittbl PROTO ((void)); /* initialize transition tables */ +extern int find_table_space(int *, int); +extern void inittbl(void); /* initialize transition tables */ /* Make the default, "jam" table entries. */ -extern void mkdeftbl PROTO ((void)); +extern void mkdeftbl(void); /* Create table entries for a state (or state fragment) which has * only one out-transition. */ -extern void mk1tbl PROTO ((int, int, int, int)); +extern void mk1tbl(int, int, int, int); /* Place a state into full speed transition table. */ -extern void place_state PROTO ((int *, int, int)); +extern void place_state(int *, int, int); /* Save states with only one out-transition to be processed later. */ -extern void stack1 PROTO ((int, int, int, int)); +extern void stack1(int, int, int, int); /* from file yylex.c */ -extern int yylex PROTO ((void)); +extern int yylex(void); /* A growable array. See buf.c. */ struct Buf { @@ -1111,21 +1046,18 @@ struct Buf { int nmax; /* max capacity of elements. */ }; -extern void buf_init PROTO ((struct Buf * buf, size_t elem_size)); -extern void buf_destroy PROTO ((struct Buf * buf)); -extern struct Buf *buf_append -PROTO ((struct Buf * buf, const void *ptr, int n_elem)); -extern struct Buf *buf_concat PROTO((struct Buf* dest, const struct Buf* src)); -extern struct Buf *buf_strappend PROTO ((struct Buf *, const char *str)); -extern struct Buf *buf_strnappend -PROTO ((struct Buf *, const char *str, int nchars)); -extern struct Buf *buf_strdefine -PROTO ((struct Buf * buf, const char *str, const char *def)); -extern struct Buf *buf_prints PROTO((struct Buf *buf, const char *fmt, const char* s)); -extern struct Buf *buf_m4_define PROTO((struct Buf *buf, const char* def, const char* val)); -extern struct Buf *buf_m4_undefine PROTO((struct Buf *buf, const char* def)); -extern struct Buf *buf_print_strings PROTO((struct Buf * buf, FILE* out)); -extern struct Buf *buf_linedir PROTO((struct Buf *buf, const char* filename, int lineno)); +extern void buf_init(struct Buf * buf, size_t elem_size); +extern void buf_destroy(struct Buf * buf); +extern struct Buf *buf_append(struct Buf * buf, const void *ptr, int n_elem); +extern struct Buf *buf_concat(struct Buf* dest, const struct Buf* src); +extern struct Buf *buf_strappend(struct Buf *, const char *str); +extern struct Buf *buf_strnappend(struct Buf *, const char *str, int nchars); +extern struct Buf *buf_strdefine(struct Buf * buf, const char *str, const char *def); +extern struct Buf *buf_prints(struct Buf *buf, const char *fmt, const char* s); +extern struct Buf *buf_m4_define(struct Buf *buf, const char* def, const char* val); +extern struct Buf *buf_m4_undefine(struct Buf *buf, const char* def); +extern struct Buf *buf_print_strings(struct Buf * buf, FILE* out); +extern struct Buf *buf_linedir(struct Buf *buf, const char* filename, int lineno); extern struct Buf userdef_buf; /* a string buffer for #define's generated by user-options on cmd line. */ extern struct Buf defs_buf; /* a char* buffer to save #define'd some symbols generated by flex. */ @@ -1187,14 +1119,14 @@ struct filter { /* output filter chain */ extern struct filter * output_chain; -extern struct filter *filter_create_ext PROTO((struct filter * chain, const char *cmd, ...)); -struct filter *filter_create_int PROTO((struct filter *chain, +extern struct filter *filter_create_ext (struct filter * chain, const char *cmd, ...); +struct filter *filter_create_int(struct filter *chain, int (*filter_func) (struct filter *), - void *extra)); -extern bool filter_apply_chain PROTO((struct filter * chain)); -extern int filter_truncate (struct filter * chain, int max_len); -extern int filter_tee_header PROTO((struct filter *chain)); -extern int filter_fix_linedirs PROTO((struct filter *chain)); + void *extra); +extern bool filter_apply_chain(struct filter * chain); +extern int filter_truncate(struct filter * chain, int max_len); +extern int filter_tee_header(struct filter *chain); +extern int filter_fix_linedirs(struct filter *chain); /* @@ -1214,9 +1146,9 @@ bool regmatch_empty (regmatch_t * m); typedef unsigned int scanflags_t; extern scanflags_t* _sf_stk; extern size_t _sf_top_ix, _sf_max; /**< stack of scanner flags. */ -#define _SF_CASE_INS 0x0001 -#define _SF_DOT_ALL 0x0002 -#define _SF_SKIP_WS 0x0004 +#define _SF_CASE_INS ((scanflags_t) 0x0001) +#define _SF_DOT_ALL ((scanflags_t) 0x0002) +#define _SF_SKIP_WS ((scanflags_t) 0x0004) #define sf_top() (_sf_stk[_sf_top_ix]) #define sf_case_ins() (sf_top() & _SF_CASE_INS) #define sf_dot_all() (sf_top() & _SF_DOT_ALL) @@ -37,16 +37,11 @@ /* declare functions that have forward references */ -void gen_next_state PROTO ((int)); -void genecs PROTO ((void)); -void indent_put2s PROTO ((const char *, const char *)); -void indent_puts PROTO ((const char *)); +void genecs(void); static int indent_level = 0; /* each level is 8 spaces */ -#define indent_up() (++indent_level) -#define indent_down() (--indent_level) #define set_indent(indent_val) indent_level = indent_val /* Almost everything is done in terms of arrays starting at 1, so provide @@ -125,12 +120,12 @@ static struct yytbl_data *mkeoltbl (void) flex_int8_t *tdata = 0; struct yytbl_data *tbl; - tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data)); + tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (tbl, YYTD_ID_RULE_CAN_MATCH_EOL); tbl->td_flags = YYTD_DATA8; tbl->td_lolen = num_rules + 1; tbl->td_data = tdata = - (flex_int8_t *) calloc (tbl->td_lolen, sizeof (flex_int8_t)); + calloc(tbl->td_lolen, sizeof (flex_int8_t)); for (i = 1; i <= num_rules; i++) tdata[i] = rule_has_nl[i] ? 1 : 0; @@ -176,12 +171,12 @@ void gen_backing_up (void) else indent_puts ("if ( yy_accept[yy_current_state] )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("YY_G(yy_last_accepting_state) = yy_current_state;"); indent_puts ("YY_G(yy_last_accepting_cpos) = yy_cp;"); indent_puts ("}"); - indent_down (); + --indent_level; } @@ -232,14 +227,14 @@ static struct yytbl_data *mkctbl (void) ((tblend + numecs + 1) >= INT16_MAX || long_align) ? "flex_int32_t" : "flex_int16_t"); - tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data)); + tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (tbl, YYTD_ID_TRANSITION); tbl->td_flags = YYTD_DATA32 | YYTD_STRUCT; tbl->td_hilen = 0; tbl->td_lolen = tblend + numecs + 1; /* number of structs */ tbl->td_data = tdata = - (flex_int32_t *) calloc (tbl->td_lolen * 2, sizeof (flex_int32_t)); + calloc(tbl->td_lolen * 2, sizeof (flex_int32_t)); /* We want the transition to be represented as the offset to the * next state, not the actual state number, which is what it currently @@ -328,14 +323,14 @@ static struct yytbl_data *mkssltbl (void) flex_int32_t *tdata = 0; flex_int32_t i; - tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data)); + tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (tbl, YYTD_ID_START_STATE_LIST); tbl->td_flags = YYTD_DATA32 | YYTD_PTRANS; tbl->td_hilen = 0; tbl->td_lolen = lastsc * 2 + 1; tbl->td_data = tdata = - (flex_int32_t *) calloc (tbl->td_lolen, sizeof (flex_int32_t)); + calloc(tbl->td_lolen, sizeof (flex_int32_t)); for (i = 0; i <= lastsc * 2; ++i) tdata[i] = base[i]; @@ -452,20 +447,20 @@ void genctbl (void) /* mkecstbl - Make equivalence-class tables. */ -struct yytbl_data *mkecstbl (void) +static struct yytbl_data *mkecstbl (void) { int i; struct yytbl_data *tbl = 0; flex_int32_t *tdata = 0; - tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data)); + tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (tbl, YYTD_ID_EC); tbl->td_flags |= YYTD_DATA32; tbl->td_hilen = 0; tbl->td_lolen = csize; tbl->td_data = tdata = - (flex_int32_t *) calloc (tbl->td_lolen, sizeof (flex_int32_t)); + calloc(tbl->td_lolen, sizeof (flex_int32_t)); for (i = 1; i < csize; ++i) { ecgroup[i] = ABS (ecgroup[i]); @@ -534,13 +529,13 @@ void gen_find_action (void) indent_puts ("for ( ; ; ) /* until we find what rule we matched */"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("if ( YY_G(yy_lp) && YY_G(yy_lp) < yy_accept[yy_current_state + 1] )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("yy_act = yy_acclist[YY_G(yy_lp)];"); @@ -548,25 +543,25 @@ void gen_find_action (void) indent_puts ("if ( yy_act & YY_TRAILING_HEAD_MASK ||"); indent_puts (" YY_G(yy_looking_for_trail_begin) )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("if ( yy_act == YY_G(yy_looking_for_trail_begin) )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("YY_G(yy_looking_for_trail_begin) = 0;"); indent_puts ("yy_act &= ~YY_TRAILING_HEAD_MASK;"); indent_puts ("break;"); indent_puts ("}"); - indent_down (); + --indent_level; indent_puts ("}"); - indent_down (); + --indent_level; indent_puts ("else if ( yy_act & YY_TRAILING_MASK )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("YY_G(yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;"); @@ -585,10 +580,10 @@ void gen_find_action (void) } indent_puts ("}"); - indent_down (); + --indent_level; indent_puts ("else"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("YY_G(yy_full_match) = yy_cp;"); indent_puts @@ -596,7 +591,7 @@ void gen_find_action (void) indent_puts ("YY_G(yy_full_lp) = YY_G(yy_lp);"); indent_puts ("break;"); indent_puts ("}"); - indent_down (); + --indent_level; indent_puts ("++YY_G(yy_lp);"); indent_puts ("goto find_rule;"); @@ -606,16 +601,16 @@ void gen_find_action (void) /* Remember matched text in case we back up due to * trailing context plus REJECT. */ - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("YY_G(yy_full_match) = yy_cp;"); indent_puts ("break;"); indent_puts ("}"); - indent_down (); + --indent_level; } indent_puts ("}"); - indent_down (); + --indent_level; indent_puts ("--yy_cp;"); @@ -628,7 +623,7 @@ void gen_find_action (void) indent_puts ("}"); - indent_down (); + --indent_level; } else { /* compressed */ @@ -639,7 +634,7 @@ void gen_find_action (void) * the match. */ indent_puts ("if ( yy_act == 0 )"); - indent_up (); + ++indent_level; indent_puts ("{ /* have to back up */"); indent_puts ("yy_cp = YY_G(yy_last_accepting_cpos);"); @@ -648,7 +643,7 @@ void gen_find_action (void) indent_puts ("yy_act = yy_accept[yy_current_state];"); indent_puts ("}"); - indent_down (); + --indent_level; } } } @@ -664,14 +659,14 @@ struct yytbl_data *mkftbl (void) struct yytbl_data *tbl; flex_int32_t *tdata = 0; - tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data)); + tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (tbl, YYTD_ID_ACCEPT); tbl->td_flags |= YYTD_DATA32; tbl->td_hilen = 0; /* it's a one-dimensional array */ tbl->td_lolen = lastdfa + 1; tbl->td_data = tdata = - (flex_int32_t *) calloc (tbl->td_lolen, sizeof (flex_int32_t)); + calloc(tbl->td_lolen, sizeof (flex_int32_t)); dfaacc[end_of_buffer_state].dfaacc_state = end_of_buffer_action; @@ -727,8 +722,7 @@ void genftbl (void) /* Generate the code to find the next compressed-table state. */ -void gen_next_compressed_state (char_map) - char *char_map; +void gen_next_compressed_state (char *char_map) { indent_put2s ("YY_CHAR yy_c = %s;", char_map); @@ -740,7 +734,7 @@ void gen_next_compressed_state (char_map) indent_puts ("while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("yy_current_state = (int) yy_def[yy_current_state];"); @@ -757,16 +751,16 @@ void gen_next_compressed_state (char_map) /* lastdfa + 2 is the beginning of the templates */ out_dec ("if ( yy_current_state >= %d )\n", lastdfa + 2); - indent_up (); + ++indent_level; indent_puts ("yy_c = yy_meta[(unsigned int) yy_c];"); - indent_down (); + --indent_level; } indent_puts ("}"); - indent_down (); + --indent_level; indent_puts - ("yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];"); + ("yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];"); } @@ -793,7 +787,7 @@ void gen_next_match (void) ("while ( (yy_current_state = yy_nxt[yy_current_state*YY_NXT_LOLEN + %s ]) > 0 )", char_map); - indent_up (); + ++indent_level; if (num_backing_up > 0) { indent_puts ("{"); @@ -807,7 +801,7 @@ void gen_next_match (void) indent_puts ("}"); - indent_down (); + --indent_level; outc ('\n'); indent_puts ("yy_current_state = -yy_current_state;"); @@ -824,7 +818,7 @@ void gen_next_match (void) indent_puts ("yy_verify == yy_c;"); indent_put2s (" yy_c = %s )", char_map_2); - indent_up (); + ++indent_level; if (num_backing_up > 0) indent_puts ("{"); @@ -837,14 +831,14 @@ void gen_next_match (void) indent_puts ("}"); } - indent_down (); + --indent_level; indent_puts ("}"); } else { /* compressed */ indent_puts ("do"); - indent_up (); + ++indent_level; indent_puts ("{"); gen_next_state (false); @@ -853,7 +847,7 @@ void gen_next_match (void) indent_puts ("}"); - indent_down (); + --indent_level; do_indent (); @@ -878,8 +872,7 @@ void gen_next_match (void) /* Generate the code to find the next state. */ -void gen_next_state (worry_about_NULs) - int worry_about_NULs; +void gen_next_state (int worry_about_NULs) { /* NOTE - changes in here should be reflected in gen_next_match() */ char char_map[256]; @@ -905,7 +898,7 @@ void gen_next_state (worry_about_NULs) gen_backing_up (); indent_puts ("if ( *yy_cp )"); - indent_up (); + ++indent_level; indent_puts ("{"); } @@ -931,12 +924,12 @@ void gen_next_state (worry_about_NULs) if (worry_about_NULs && nultrans) { indent_puts ("}"); - indent_down (); + --indent_level; indent_puts ("else"); - indent_up (); + ++indent_level; indent_puts ("yy_current_state = yy_NUL_trans[yy_current_state];"); - indent_down (); + --indent_level; } if (fullspd || fulltbl) @@ -1009,10 +1002,10 @@ void gen_NUL_trans (void) * the state stack and yy_c_buf_p get out of sync. */ indent_puts ("if ( ! yy_is_jam )"); - indent_up (); + ++indent_level; indent_puts ("*YY_G(yy_state_ptr)++ = yy_current_state;"); - indent_down (); + --indent_level; } } @@ -1023,11 +1016,11 @@ void gen_NUL_trans (void) if (need_backing_up && (fullspd || fulltbl)) { outc ('\n'); indent_puts ("if ( ! yy_is_jam )"); - indent_up (); + ++indent_level; indent_puts ("{"); gen_backing_up (); indent_puts ("}"); - indent_down (); + --indent_level; } } @@ -1111,11 +1104,11 @@ void gentabs (void) "\t{YYTD_ID_ACCLIST, (void**)&yy_acclist, sizeof(%s)},\n", long_align ? "flex_int32_t" : "flex_int16_t"); - yyacclist_tbl = (struct yytbl_data*)calloc(1,sizeof(struct yytbl_data)); + yyacclist_tbl = calloc(1,sizeof(struct yytbl_data)); yytbl_data_init (yyacclist_tbl, YYTD_ID_ACCLIST); yyacclist_tbl->td_lolen = MAX(numas,1) + 1; yyacclist_tbl->td_data = yyacclist_data = - (flex_int32_t *) calloc (yyacclist_tbl->td_lolen, sizeof (flex_int32_t)); + calloc(yyacclist_tbl->td_lolen, sizeof (flex_int32_t)); yyacclist_curr = 1; j = 1; /* index into "yy_acclist" array */ @@ -1220,13 +1213,11 @@ void gentabs (void) "\t{YYTD_ID_ACCEPT, (void**)&yy_accept, sizeof(%s)},\n", long_align ? "flex_int32_t" : "flex_int16_t"); - yyacc_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct yytbl_data)); + yyacc_tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (yyacc_tbl, YYTD_ID_ACCEPT); yyacc_tbl->td_lolen = k; yyacc_tbl->td_data = yyacc_data = - (flex_int32_t *) calloc (yyacc_tbl->td_lolen, sizeof (flex_int32_t)); + calloc(yyacc_tbl->td_lolen, sizeof (flex_int32_t)); yyacc_curr=1; for (i = 1; i <= lastdfa; ++i) { @@ -1279,14 +1270,11 @@ void gentabs (void) * templates with). */ flex_int32_t *yymecs_data = 0; - yymeta_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct - yytbl_data)); + yymeta_tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (yymeta_tbl, YYTD_ID_META); yymeta_tbl->td_lolen = numecs + 1; yymeta_tbl->td_data = yymecs_data = - (flex_int32_t *) calloc (yymeta_tbl->td_lolen, + calloc(yymeta_tbl->td_lolen, sizeof (flex_int32_t)); if (trace) @@ -1330,13 +1318,11 @@ void gentabs (void) "\t{YYTD_ID_BASE, (void**)&yy_base, sizeof(%s)},\n", (tblend >= INT16_MAX || long_align) ? "flex_uint32_t" : "flex_uint16_t"); - yybase_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct yytbl_data)); + yybase_tbl = calloc (1, sizeof (struct yytbl_data)); yytbl_data_init (yybase_tbl, YYTD_ID_BASE); yybase_tbl->td_lolen = total_states + 1; yybase_tbl->td_data = yybase_data = - (flex_int32_t *) calloc (yybase_tbl->td_lolen, + calloc(yybase_tbl->td_lolen, sizeof (flex_int32_t)); yybase_curr = 1; @@ -1390,13 +1376,11 @@ void gentabs (void) (total_states >= INT16_MAX || long_align) ? "flex_int32_t" : "flex_int16_t"); - yydef_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct yytbl_data)); + yydef_tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (yydef_tbl, YYTD_ID_DEF); yydef_tbl->td_lolen = total_states + 1; yydef_tbl->td_data = yydef_data = - (flex_int32_t *) calloc (yydef_tbl->td_lolen, sizeof (flex_int32_t)); + calloc(yydef_tbl->td_lolen, sizeof (flex_int32_t)); for (i = 1; i <= total_states; ++i) { mkdata (def[i]); @@ -1424,13 +1408,11 @@ void gentabs (void) (total_states >= INT16_MAX || long_align) ? "flex_uint32_t" : "flex_uint16_t"); - yynxt_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct yytbl_data)); + yynxt_tbl = calloc (1, sizeof (struct yytbl_data)); yytbl_data_init (yynxt_tbl, YYTD_ID_NXT); yynxt_tbl->td_lolen = tblend + 1; yynxt_tbl->td_data = yynxt_data = - (flex_int32_t *) calloc (yynxt_tbl->td_lolen, sizeof (flex_int32_t)); + calloc (yynxt_tbl->td_lolen, sizeof (flex_int32_t)); for (i = 1; i <= tblend; ++i) { /* Note, the order of the following test is important. @@ -1463,13 +1445,11 @@ void gentabs (void) (total_states >= INT16_MAX || long_align) ? "flex_int32_t" : "flex_int16_t"); - yychk_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct yytbl_data)); + yychk_tbl = calloc (1, sizeof (struct yytbl_data)); yytbl_data_init (yychk_tbl, YYTD_ID_CHK); yychk_tbl->td_lolen = tblend + 1; yychk_tbl->td_data = yychk_data = - (flex_int32_t *) calloc (yychk_tbl->td_lolen, sizeof (flex_int32_t)); + calloc(yychk_tbl->td_lolen, sizeof (flex_int32_t)); for (i = 1; i <= tblend; ++i) { if (chk[i] == 0) @@ -1489,7 +1469,7 @@ void gentabs (void) } /* End generating yy_chk */ - flex_free ((void *) acc_array); + free(acc_array); } @@ -1497,8 +1477,7 @@ void gentabs (void) * current indentation level, adding a final newline. */ -void indent_put2s (fmt, arg) - const char *fmt, *arg; +void indent_put2s (const char *fmt, const char *arg) { do_indent (); out_str (fmt, arg); @@ -1510,8 +1489,7 @@ void indent_put2s (fmt, arg) * newline. */ -void indent_puts (str) - const char *str; +void indent_puts (const char *str) { do_indent (); outn (str); @@ -1538,11 +1516,11 @@ void make_tables (void) if (yymore_used && !yytext_is_array) { indent_puts ("YY_G(yytext_ptr) -= YY_G(yy_more_len); \\"); indent_puts - ("yyleng = (size_t) (yy_cp - YY_G(yytext_ptr)); \\"); + ("yyleng = (int) (yy_cp - YY_G(yytext_ptr)); \\"); } else - indent_puts ("yyleng = (size_t) (yy_cp - yy_bp); \\"); + indent_puts ("yyleng = (int) (yy_cp - yy_bp); \\"); /* Now also deal with copying yytext_ptr to yytext if needed. */ skelout (); /* %% [3.0] - break point in skel */ @@ -1553,10 +1531,10 @@ void make_tables (void) else indent_puts ("if ( yyleng >= YYLMAX ) \\"); - indent_up (); + ++indent_level; indent_puts ("YY_FATAL_ERROR( \"token too large, exceeds YYLMAX\" ); \\"); - indent_down (); + --indent_level; if (yymore_used) { indent_puts @@ -1593,7 +1571,7 @@ void make_tables (void) set_indent (0); indent_puts ("struct yy_trans_info"); - indent_up (); + ++indent_level; indent_puts ("{"); /* We require that yy_verify and yy_nxt must be of the same size int. */ @@ -1609,7 +1587,7 @@ void make_tables (void) indent_put2s ("%s yy_nxt;", trans_offset_type); indent_puts ("};"); - indent_down (); + --indent_level; } else { /* We generate a bogus 'struct yy_trans_info' data type @@ -1621,12 +1599,12 @@ void make_tables (void) ("/* This struct is not used in this scanner,"); indent_puts (" but its presence is necessary. */"); indent_puts ("struct yy_trans_info"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("flex_int32_t yy_verify;"); indent_puts ("flex_int32_t yy_nxt;"); indent_puts ("};"); - indent_down (); + --indent_level; } if (fullspd) { @@ -1724,16 +1702,13 @@ void make_tables (void) (fullspd) ? "struct yy_trans_info*" : "flex_int32_t"); - yynultrans_tbl = - (struct yytbl_data *) calloc (1, - sizeof (struct - yytbl_data)); + yynultrans_tbl = calloc(1, sizeof (struct yytbl_data)); yytbl_data_init (yynultrans_tbl, YYTD_ID_NUL_TRANS); if (fullspd) yynultrans_tbl->td_flags |= YYTD_PTRANS; yynultrans_tbl->td_lolen = lastdfa + 1; yynultrans_tbl->td_data = yynultrans_data = - (flex_int32_t *) calloc (yynultrans_tbl->td_lolen, + calloc(yynultrans_tbl->td_lolen, sizeof (flex_int32_t)); for (i = 1; i <= lastdfa; ++i) { @@ -1850,13 +1825,13 @@ void make_tables (void) indent_puts ("#define YY_MORE_ADJ 0"); indent_puts ("#define YY_RESTORE_YY_MORE_OFFSET \\"); - indent_up (); + ++indent_level; indent_puts ("{ \\"); indent_puts ("YY_G(yy_more_offset) = YY_G(yy_prev_more_offset); \\"); indent_puts ("yyleng -= YY_G(yy_more_offset); \\"); indent_puts ("}"); - indent_down (); + --indent_level; } else { indent_puts @@ -1900,7 +1875,7 @@ void make_tables (void) if (!C_plus_plus) { if (use_read) { outn ("\terrno=0; \\"); - outn ("\twhile ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \\"); + outn ("\twhile ( (result = (int) read( fileno(yyin), buf, max_size )) < 0 ) \\"); outn ("\t{ \\"); outn ("\t\tif( errno != EINTR) \\"); outn ("\t\t{ \\"); @@ -1929,7 +1904,7 @@ void make_tables (void) outn ("\telse \\"); outn ("\t\t{ \\"); outn ("\t\terrno=0; \\"); - outn ("\t\twhile ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \\"); + outn ("\t\twhile ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \\"); outn ("\t\t\t{ \\"); outn ("\t\t\tif( errno != EINTR) \\"); outn ("\t\t\t\t{ \\"); @@ -1946,16 +1921,16 @@ void make_tables (void) skelout (); /* %% [6.0] - break point in skel */ indent_puts ("#define YY_RULE_SETUP \\"); - indent_up (); + ++indent_level; if (bol_needed) { indent_puts ("if ( yyleng > 0 ) \\"); - indent_up (); + ++indent_level; indent_puts ("YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \\"); indent_puts ("\t\t(yytext[yyleng - 1] == '\\n'); \\"); - indent_down (); + --indent_level; } indent_puts ("YY_USER_ACTION"); - indent_down (); + --indent_level; skelout (); /* %% [7.0] - break point in skel */ @@ -1971,13 +1946,13 @@ void make_tables (void) if (yymore_used && !yytext_is_array) { indent_puts ("YY_G(yy_more_len) = 0;"); indent_puts ("if ( YY_G(yy_more_flag) )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("YY_G(yy_more_len) = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);"); indent_puts ("YY_G(yy_more_flag) = 0;"); indent_puts ("}"); - indent_down (); + --indent_level; } skelout (); /* %% [9.0] - break point in skel */ @@ -1996,39 +1971,39 @@ void make_tables (void) outn ("m4_ifdef( [[M4_YY_USE_LINENO]],[["); indent_puts ("if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("yy_size_t yyl;"); do_indent (); out_str ("for ( yyl = %s; yyl < yyleng; ++yyl )\n", yymore_used ? (yytext_is_array ? "YY_G(yy_prev_more_offset)" : "YY_G(yy_more_len)") : "0"); - indent_up (); + ++indent_level; indent_puts ("if ( yytext[yyl] == '\\n' )"); - indent_up (); + ++indent_level; indent_puts ("M4_YY_INCR_LINENO();"); - indent_down (); - indent_down (); + --indent_level; + --indent_level; indent_puts ("}"); - indent_down (); + --indent_level; outn ("]])"); skelout (); /* %% [12.0] - break point in skel */ if (ddebug) { indent_puts ("if ( yy_flex_debug )"); - indent_up (); + ++indent_level; indent_puts ("{"); indent_puts ("if ( yy_act == 0 )"); - indent_up (); + ++indent_level; indent_puts (C_plus_plus ? "std::cerr << \"--scanner backing up\\n\";" : "fprintf( stderr, \"--scanner backing up\\n\" );"); - indent_down (); + --indent_level; do_indent (); out_dec ("else if ( yy_act < %d )\n", num_rules); - indent_up (); + ++indent_level; if (C_plus_plus) { indent_puts @@ -2044,11 +2019,11 @@ void make_tables (void) (" (long)yy_rule_linenum[yy_act], yytext );"); } - indent_down (); + --indent_level; do_indent (); out_dec ("else if ( yy_act == %d )\n", num_rules); - indent_up (); + ++indent_level; if (C_plus_plus) { indent_puts @@ -2060,21 +2035,21 @@ void make_tables (void) indent_puts (" yytext );"); } - indent_down (); + --indent_level; do_indent (); out_dec ("else if ( yy_act == %d )\n", num_rules + 1); - indent_up (); + ++indent_level; indent_puts (C_plus_plus ? "std::cerr << \"--(end of buffer or a NUL)\\n\";" : "fprintf( stderr, \"--(end of buffer or a NUL)\\n\" );"); - indent_down (); + --indent_level; do_indent (); outn ("else"); - indent_up (); + ++indent_level; if (C_plus_plus) { indent_puts @@ -2085,15 +2060,15 @@ void make_tables (void) ("fprintf( stderr, \"--EOF (start condition %d)\\n\", YY_START );"); } - indent_down (); + --indent_level; indent_puts ("}"); - indent_down (); + --indent_level; } /* Copy actions to output file. */ skelout (); /* %% [13.0] - break point in skel */ - indent_up (); + ++indent_level; gen_bu_action (); out (&action_array[action_offset]); @@ -2108,9 +2083,9 @@ void make_tables (void) } if (did_eof_rule) { - indent_up (); + ++indent_level; indent_puts ("yyterminate();"); - indent_down (); + --indent_level; } @@ -2168,17 +2143,17 @@ void make_tables (void) if (do_yylineno) { indent_puts ("if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )"); - indent_up (); + ++indent_level; indent_puts ("M4_YY_INCR_LINENO();"); - indent_down (); + --indent_level; } } else if (do_yylineno) { indent_puts ("if ( c == '\\n' )"); - indent_up (); + ++indent_level; indent_puts ("M4_YY_INCR_LINENO();"); - indent_down (); + --indent_level; } skelout (); diff --git a/src/libmain.c b/src/libmain.c index f400fc3..bb2fe35 100644 --- a/src/libmain.c +++ b/src/libmain.c @@ -21,6 +21,8 @@ /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ /* PURPOSE. */ +#include <stdlib.h> + extern int yylex (void); int main (int argc, char *argv[]) @@ -30,5 +32,5 @@ int main (int argc, char *argv[]) while (yylex () != 0) ; - return 0; + exit(0); } @@ -36,15 +36,15 @@ #include "version.h" #include "options.h" #include "tables.h" +#include "parse.h" static char flex_version[] = FLEX_VERSION; /* declare functions that have forward references */ -void flexinit PROTO ((int, char **)); -void readin PROTO ((void)); -void set_up_initial_allocations PROTO ((void)); -static char *basename2 PROTO ((char *path, int should_strip_ext)); +void flexinit(int, char **); +void readin(void); +void set_up_initial_allocations(void); /* these globals are all defined and commented in flexdef.h */ @@ -94,7 +94,7 @@ int *accsiz, *dhash, numas; int numsnpairs, jambase, jamstate; int lastccl, *cclmap, *ccllen, *cclng, cclreuse; int current_maxccls, current_max_ccl_tbl_size; -Char *ccltbl; +unsigned char *ccltbl; char nmstr[MAXLINE]; int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs; int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave; @@ -117,19 +117,9 @@ struct yytbl_writer tableswr; */ char *program_name = "flex"; -#ifndef SHORT_FILE_NAMES static const char outfile_template[] = "lex.%s.%s"; static const char backing_name[] = "lex.backup"; static const char tablesfile_template[] = "lex.%s.tables"; -#else -static const char outfile_template[] = "lex%s.%s"; -static const char backing_name[] = "lex.bck"; -static const char tablesfile_template[] = "lex%s.tbl"; -#endif - -#ifdef MS_DOS -extern unsigned _stklen = 16384; -#endif /* From scan.l */ extern FILE* yyout; @@ -144,12 +134,9 @@ const char *escaped_qend = "[[]]M4_YY_NOOP]M4_YY_NOOP]M4_YY_NOOP[[]]"; /* For debugging. The max number of filters to apply to skeleton. */ static int preproc_level = 1000; -int flex_main PROTO ((int argc, char *argv[])); -int main PROTO ((int argc, char *argv[])); +int flex_main (int argc, char *argv[]); -int flex_main (argc, argv) - int argc; - char *argv[]; +int flex_main (int argc, char *argv[]) { int i, exit_status, child_status; @@ -209,9 +196,7 @@ int flex_main (argc, argv) } /* Wrapper around flex_main, so flex_main can be built as a library. */ -int main (argc, argv) - int argc; - char *argv[]; +int main (int argc, char *argv[]) { #if ENABLE_NLS #if HAVE_LOCALE_H @@ -227,7 +212,7 @@ int main (argc, argv) /* check_options - check user-specified options */ -void check_options () +void check_options (void) { int i; const char * m4 = NULL; @@ -363,8 +348,46 @@ void check_options () /* Setup the filter chain. */ output_chain = filter_create_int(NULL, filter_tee_header, headerfilename); - if ( !(m4 = getenv("M4"))) - m4 = M4; + if ( !(m4 = getenv("M4"))) { + char *slash; + m4 = M4; + if ((slash = strrchr(M4, '/')) != NULL) { + m4 = slash+1; + /* break up $PATH */ + const char *path = getenv("PATH"); + if (!path) { + m4 = M4; + } else { + do { + char m4_path[PATH_MAX]; + int length = strlen(path); + struct stat sbuf; + + const char *endOfDir = strchr(path, ':'); + if (!endOfDir) + endOfDir = path+length; + + if ((endOfDir-path+2) >= sizeof(m4_path)) { + path = endOfDir+1; + continue; + } + + strncpy(m4_path, path, sizeof(m4_path)); + m4_path[endOfDir-path] = '/'; + m4_path[endOfDir-path+1] = '\0'; + strncat(m4_path, m4, sizeof(m4_path)); + if (stat(m4_path, &sbuf) == 0 && + (S_ISREG(sbuf.st_mode)) && sbuf.st_mode & S_IXUSR) { + m4 = strdup(m4_path); + break; + } + path = endOfDir+1; + } while (path[0]); + if (!path[0]) + m4 = M4; + } + } + } filter_create_ext(output_chain, m4, "-P", 0); filter_create_int(output_chain, filter_fix_linedirs, NULL); @@ -396,20 +419,19 @@ void check_options () if (!tablesfilename) { nbytes = strlen (prefix) + strlen (tablesfile_template) + 2; - tablesfilename = pname = (char *) calloc (nbytes, 1); + tablesfilename = pname = calloc(nbytes, 1); snprintf (pname, nbytes, tablesfile_template, prefix); } if ((tablesout = fopen (tablesfilename, "w")) == NULL) lerr (_("could not create %s"), tablesfilename); - if (pname) - free (pname); + free(pname); tablesfilename = 0; yytbl_writer_init (&tableswr, tablesout); nbytes = strlen (prefix) + strlen ("tables") + 2; - tablesname = (char *) calloc (nbytes, 1); + tablesname = calloc(nbytes, 1); snprintf (tablesname, nbytes, "%stables", prefix); yytbl_hdr_init (&hdr, flex_version, tablesname); @@ -452,7 +474,8 @@ void check_options () char *str, *fmt = "#define %s %d\n"; size_t strsz; - str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(scname[i]) + (int)(1 + log10(i)) + 2); + strsz = strlen(fmt) + strlen(scname[i]) + (int)(1 + log10(i)) + 2; + str = malloc(strsz); if (!str) flexfatal(_("allocation of macro definition failed")); snprintf(str, strsz, fmt, scname[i], i - 1); @@ -491,9 +514,7 @@ void check_options () * This routine does not return. */ -void flexend (exit_status) - int exit_status; - +void flexend (int exit_status) { static int called_before = -1; /* prevent infinite recursion. */ int tblsiz; @@ -540,7 +561,6 @@ void flexend (exit_status) "EOB_ACT_END_OF_FILE", "EOB_ACT_LAST_MATCH", "FLEX_SCANNER", - "FLEX_STD", "REJECT", "YYFARGS0", "YYFARGS1", @@ -927,9 +947,7 @@ void flexend (exit_status) /* flexinit - initialize flex */ -void flexinit (argc, argv) - int argc; - char **argv; +void flexinit (int argc, char **argv) { int i, sawcmpflag, rv, optind; char *arg; @@ -983,9 +1001,9 @@ void flexinit (argc, argv) flex_init_regex(); /* Enable C++ if program name ends with '+'. */ - program_name = basename2 (argv[0], 0); + program_name = basename (argv[0]); - if (program_name[0] != '\0' && + if (program_name != NULL && program_name[strlen (program_name) - 1] == '+') C_plus_plus = true; @@ -1457,13 +1475,13 @@ void flexinit (argc, argv) /* readin - read in the rules section of the input file(s) */ -void readin () +void readin (void) { static char yy_stdinit[] = "FILE *yyin = stdin, *yyout = stdout;"; static char yy_nostdinit[] = - "FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;"; + "FILE *yyin = NULL, *yyout = NULL;"; - line_directive_out ((FILE *) 0, 1); + line_directive_out(NULL, 1); if (yyparse ()) { pinpoint_message (_("fatal parse error")); @@ -1716,7 +1734,7 @@ void readin () /* set_up_initial_allocations - allocate memory for internal tables */ -void set_up_initial_allocations () +void set_up_initial_allocations (void) { maximum_mns = (long_align ? MAXIMUM_MNS_LONG : MAXIMUM_MNS); current_mns = INITIAL_MNS; @@ -1770,31 +1788,11 @@ void set_up_initial_allocations () dss = allocate_int_ptr_array (current_max_dfas); dfaacc = allocate_dfaacc_union (current_max_dfas); - nultrans = (int *) 0; + nultrans = NULL; } -/* extracts basename from path, optionally stripping the extension "\.*" - * (same concept as /bin/sh `basename`, but different handling of extension). */ -static char *basename2 (path, strip_ext) - char *path; - int strip_ext; /* boolean */ -{ - char *b, *e = 0; - - b = path; - for (b = path; *path; path++) - if (*path == '/') - b = path + 1; - else if (*path == '.') - e = path; - - if (strip_ext && e && e > b) - *e = '\0'; - return b; -} - -void usage () +void usage (void) { FILE *f = stdout; @@ -60,14 +60,15 @@ static void sko_push(bool dc) { if(!sko_stack){ sko_sz = 1; - sko_stack = (struct sko_state*)flex_alloc(sizeof(struct sko_state)*sko_sz); + sko_stack = malloc(sizeof(struct sko_state) * (size_t) sko_sz); if (!sko_stack) flexfatal(_("allocation of sko_stack failed")); sko_len = 0; } if(sko_len >= sko_sz){ sko_sz *= 2; - sko_stack = (struct sko_state*)flex_realloc(sko_stack,sizeof(struct sko_state)*sko_sz); + sko_stack = realloc(sko_stack, + sizeof(struct sko_state) * (size_t) sko_sz); } /* initialize to zero and push */ @@ -90,9 +91,7 @@ static void sko_pop(bool* dc) } /* Append "#define defname value\n" to the running buffer. */ -void action_define (defname, value) - const char *defname; - int value; +void action_define (const char *defname, int value) { char buf[MAXLINE]; char *cpy; @@ -108,7 +107,7 @@ void action_define (defname, value) add_action (buf); /* track #defines so we can undef them when we're done. */ - cpy = copy_string (defname); + cpy = xstrdup(defname); buf_append (&defs_buf, &cpy, 1); } @@ -137,10 +136,9 @@ static void action_m4_define (const char *defname, const char * value) #endif /* Append "new_text" to the running buffer. */ -void add_action (new_text) - const char *new_text; +void add_action (const char *new_text) { - int len = strlen (new_text); + int len = (int) strlen (new_text); while (len + action_index >= action_size - 10 /* slop */ ) { int new_size = action_size * 2; @@ -166,14 +164,12 @@ void add_action (new_text) /* allocate_array - allocate memory for an integer array of the given size */ -void *allocate_array (size, element_size) - int size; - size_t element_size; +void *allocate_array (int size, size_t element_size) { void *mem; size_t num_bytes = element_size * size; - mem = flex_alloc (num_bytes); + mem = malloc(num_bytes); if (!mem) flexfatal (_ ("memory allocation failed in allocate_array()")); @@ -184,11 +180,10 @@ void *allocate_array (size, element_size) /* all_lower - true if a string is all lower-case */ -int all_lower (str) - char *str; +int all_lower (char *str) { while (*str) { - if (!isascii ((Char) * str) || !islower ((Char) * str)) + if (!isascii ((unsigned char) * str) || !islower ((unsigned char) * str)) return 0; ++str; } @@ -199,11 +194,10 @@ int all_lower (str) /* all_upper - true if a string is all upper-case */ -int all_upper (str) - char *str; +int all_upper (char *str) { while (*str) { - if (!isascii ((Char) * str) || !isupper ((Char) * str)) + if (!isascii ((unsigned char) * str) || !isupper ((unsigned char) * str)) return 0; ++str; } @@ -225,8 +219,7 @@ int intcmp (const void *a, const void *b) * and exits. */ -void check_char (c) - int c; +void check_char (int c) { if (c >= CSIZE) lerr (_("bad character '%s' detected in check_char()"), @@ -242,57 +235,20 @@ void check_char (c) /* clower - replace upper-case letter to lower-case */ -Char clower (c) - int c; +unsigned char clower (int c) { - return (Char) ((isascii (c) && isupper (c)) ? tolower (c) : c); + return (unsigned char) ((isascii (c) && isupper (c)) ? tolower (c) : c); } -/* copy_string - returns a dynamically allocated copy of a string */ - -char *copy_string (str) - const char *str; +char *xstrdup(const char *s) { - const char *c1; - char *c2; - char *copy; - unsigned int size; - - /* find length */ - for (c1 = str; *c1; ++c1) ; - - size = (c1 - str + 1) * sizeof (char); - - copy = (char *) flex_alloc (size); - - if (copy == NULL) - flexfatal (_("dynamic memory failure in copy_string()")); + char *s2; - for (c2 = copy; (*c2++ = *str++) != 0;) ; + if ((s2 = strdup(s)) == NULL) + flexfatal (_("memory allocation failure in xstrdup()")); - return copy; -} - - -/* copy_unsigned_string - - * returns a dynamically allocated copy of a (potentially) unsigned string - */ - -Char *copy_unsigned_string (str) - Char *str; -{ - Char *c; - Char *copy; - - /* find length */ - for (c = str; *c; ++c) ; - - copy = allocate_Character_array (c - str + 1); - - for (c = copy; (*c++ = *str++) != 0;) ; - - return copy; + return s2; } @@ -300,19 +256,19 @@ Char *copy_unsigned_string (str) int cclcmp (const void *a, const void *b) { - if (!*(const Char *) a) + if (!*(const unsigned char *) a) return 1; else - if (!*(const Char *) b) + if (!*(const unsigned char *) b) return - 1; else - return *(const Char *) a - *(const Char *) b; + return *(const unsigned char *) a - *(const unsigned char *) b; } /* dataend - finish up a block of data declarations */ -void dataend () +void dataend (void) { /* short circuit any output */ if (gentables) { @@ -330,7 +286,7 @@ void dataend () /* dataflush - flush generated data statements */ -void dataflush () +void dataflush (void) { /* short circuit any output */ if (!gentables) @@ -353,8 +309,7 @@ void dataflush () /* flexerror - report an error message and terminate */ -void flexerror (msg) - const char *msg; +void flexerror (const char *msg) { fprintf (stderr, "%s: %s\n", program_name, msg); flexend (1); @@ -363,8 +318,7 @@ void flexerror (msg) /* flexfatal - report a fatal error message and terminate */ -void flexfatal (msg) - const char *msg; +void flexfatal (const char *msg) { fprintf (stderr, _("%s: fatal internal error, %s\n"), program_name, msg); @@ -374,8 +328,7 @@ void flexfatal (msg) /* htoi - convert a hexadecimal digit string to an integer value */ -int htoi (str) - Char str[]; +int htoi (unsigned char str[]) { unsigned int result; @@ -387,7 +340,8 @@ int htoi (str) /* lerr - report an error message */ -void lerr (const char *msg, ...) { +void lerr (const char *msg, ...) +{ char errmsg[MAXLINE]; va_list args; @@ -414,9 +368,7 @@ void lerr_fatal (const char *msg, ...) /* line_directive_out - spit out a "#line" statement */ -void line_directive_out (output_file, do_infile) - FILE *output_file; - int do_infile; +void line_directive_out (FILE *output_file, int do_infile) { char directive[MAXLINE], filename[MAXLINE]; char *s1, *s2, *s3; @@ -464,7 +416,7 @@ void line_directive_out (output_file, do_infile) * representing where the user's section 1 definitions end * and the prolog begins */ -void mark_defs1 () +void mark_defs1 (void) { defs1_offset = 0; action_array[action_index++] = '\0'; @@ -476,7 +428,7 @@ void mark_defs1 () /* mark_prolog - mark the current position in the action array as * representing the end of the action prolog */ -void mark_prolog () +void mark_prolog (void) { action_array[action_index++] = '\0'; action_offset = action_index; @@ -488,8 +440,7 @@ void mark_prolog () * * Generates a data statement initializing the current 2-D array to "value". */ -void mk2data (value) - int value; +void mk2data (int value) { /* short circuit any output */ if (!gentables) @@ -518,8 +469,7 @@ void mk2data (value) * Generates a data statement initializing the current array element to * "value". */ -void mkdata (value) - int value; +void mkdata (int value) { /* short circuit any output */ if (!gentables) @@ -544,8 +494,7 @@ void mkdata (value) /* myctoi - return the integer represented by a string of digits */ -int myctoi (array) - const char *array; +int myctoi (const char *array) { int val = 0; @@ -557,10 +506,9 @@ int myctoi (array) /* myesc - return character corresponding to escape sequence */ -Char myesc (array) - Char array[]; +unsigned char myesc (unsigned char array[]) { - Char c, esc_char; + unsigned char c, esc_char; switch (array[1]) { case 'b': @@ -573,19 +521,10 @@ Char myesc (array) return '\r'; case 't': return '\t'; - -#if defined (__STDC__) case 'a': return '\a'; case 'v': return '\v'; -#else - case 'a': - return '\007'; - case 'v': - return '\013'; -#endif - case '0': case '1': case '2': @@ -645,8 +584,7 @@ Char myesc (array) /* otoi - convert an octal digit string to an integer value */ -int otoi (str) - Char str[]; +int otoi (unsigned char str[]) { unsigned int result; @@ -659,60 +597,47 @@ int otoi (str) * generated scanner, keeping track of the line count. */ -void out (str) - const char *str; +void out (const char *str) { fputs (str, stdout); } -void out_dec (fmt, n) - const char *fmt; - int n; +void out_dec (const char *fmt, int n) { fprintf (stdout, fmt, n); } -void out_dec2 (fmt, n1, n2) - const char *fmt; - int n1, n2; +void out_dec2 (const char *fmt, int n1, int n2) { fprintf (stdout, fmt, n1, n2); } -void out_hex (fmt, x) - const char *fmt; - unsigned int x; +void out_hex (const char *fmt, unsigned int x) { fprintf (stdout, fmt, x); } -void out_str (fmt, str) - const char *fmt, str[]; +void out_str (const char *fmt, const char str[]) { fprintf (stdout,fmt, str); } -void out_str3 (fmt, s1, s2, s3) - const char *fmt, s1[], s2[], s3[]; +void out_str3 (const char *fmt, const char s1[], const char s2[], const char s3[]) { fprintf (stdout,fmt, s1, s2, s3); } -void out_str_dec (fmt, str, n) - const char *fmt, str[]; - int n; +void out_str_dec (const char *fmt, const char str[], int n) { fprintf (stdout,fmt, str, n); } -void outc (c) - int c; +void outc (int c) { fputc (c, stdout); } -void outn (str) - const char *str; +void outn (const char *str) { fputs (str,stdout); fputc('\n',stdout); @@ -734,8 +659,7 @@ void out_m4_define (const char* def, const char* val) * The returned string is in static storage. */ -char *readable_form (c) - int c; +char *readable_form (int c) { static char rform[20]; @@ -751,14 +675,10 @@ char *readable_form (c) return "\\r"; case '\t': return "\\t"; - -#if defined (__STDC__) case '\a': return "\\a"; case '\v': return "\\v"; -#endif - default: if(trace_hex) snprintf (rform, sizeof(rform), "\\x%.2x", (unsigned int) c); @@ -782,15 +702,12 @@ char *readable_form (c) /* reallocate_array - increase the size of a dynamic array */ -void *reallocate_array (array, size, element_size) - void *array; - int size; - size_t element_size; +void *reallocate_array (void *array, int size, size_t element_size) { void *new_array; size_t num_bytes = element_size * size; - new_array = flex_realloc (array, num_bytes); + new_array = realloc(array, num_bytes); if (!new_array) flexfatal (_("attempt to increase array size failed")); @@ -804,7 +721,7 @@ void *reallocate_array (array, size, element_size) * Copies skelfile or skel array to stdout until a line beginning with * "%%" or EOF is found. */ -void skelout () +void skelout (void) { char buf_storage[MAXLINE]; char *buf = buf_storage; @@ -935,8 +852,7 @@ void skelout () * element_n. Formats the output with spaces and carriage returns. */ -void transition_struct_out (element_v, element_n) - int element_v, element_n; +void transition_struct_out (int element_v, int element_n) { /* short circuit any output */ @@ -960,12 +876,14 @@ void transition_struct_out (element_v, element_n) /* The following is only needed when building flex's parser using certain * broken versions of bison. + * + * XXX: this is should go soon */ -void *yy_flex_xmalloc (size) - int size; +void *yy_flex_xmalloc (int size) { - void *result = flex_alloc ((size_t) size); + void *result; + result = malloc((size_t) size); if (!result) flexfatal (_ ("memory allocation failed in yy_flex_xmalloc()")); @@ -974,29 +892,10 @@ void *yy_flex_xmalloc (size) } -/* zero_out - set a region of memory to 0 - * - * Sets region_ptr[0] through region_ptr[size_in_bytes - 1] to zero. - */ - -void zero_out (region_ptr, size_in_bytes) - char *region_ptr; - size_t size_in_bytes; -{ - char *rp, *rp_end; - - rp = region_ptr; - rp_end = region_ptr + size_in_bytes; - - while (rp < rp_end) - *rp++ = 0; -} - /* Remove all '\n' and '\r' characters, if any, from the end of str. * str can be any null-terminated string, or NULL. * returns str. */ -char *chomp (str) - char *str; +char *chomp (char *str) { char *p = str; @@ -36,8 +36,8 @@ /* declare functions that have forward references */ -int dupmachine PROTO ((int)); -void mkxtion PROTO ((int, int)); +int dupmachine(int); +void mkxtion(int, int); /* add_accept - add an accepting state to a machine @@ -45,8 +45,7 @@ void mkxtion PROTO ((int, int)); * accepting_number becomes mach's accepting number. */ -void add_accept (mach, accepting_number) - int mach, accepting_number; +void add_accept (int mach, int accepting_number) { /* Hang the accepting number off an epsilon state. if it is associated * with a state that has a non-epsilon out-transition, then the state @@ -77,8 +76,7 @@ void add_accept (mach, accepting_number) * num - the number of copies of singl to be present in newsng */ -int copysingl (singl, num) - int singl, num; +int copysingl (int singl, int num) { int copy, i; @@ -93,9 +91,7 @@ int copysingl (singl, num) /* dumpnfa - debugging routine to write out an nfa */ -void dumpnfa (state1) - int state1; - +void dumpnfa (int state1) { int sym, tsp1, tsp2, anum, ns; @@ -148,8 +144,7 @@ void dumpnfa (state1) * states accessible by the arrays firstst and lastst */ -int dupmachine (mach) - int mach; +int dupmachine (int mach) { int i, init, state_offset; int state = 0; @@ -196,9 +191,8 @@ int dupmachine (mach) * context has variable length. */ -void finish_rule (mach, variable_trail_rule, headcnt, trailcnt, - pcont_act) - int mach, variable_trail_rule, headcnt, trailcnt, pcont_act; +void finish_rule (int mach, int variable_trail_rule, int headcnt, int trailcnt, + int pcont_act) { char action_text[MAXLINE]; @@ -292,7 +286,7 @@ void finish_rule (mach, variable_trail_rule, headcnt, trailcnt, if (!continued_action) add_action ("YY_RULE_SETUP\n"); - line_directive_out ((FILE *) 0, 1); + line_directive_out(NULL, 1); } @@ -312,8 +306,7 @@ void finish_rule (mach, variable_trail_rule, headcnt, trailcnt, * FIRST is set to new by the operation. last is unmolested. */ -int link_machines (first, last) - int first, last; +int link_machines (int first, int last) { if (first == NIL) return last; @@ -339,8 +332,7 @@ int link_machines (first, last) * The "beginning" states are the epsilon closure of the first state */ -void mark_beginning_as_normal (mach) - int mach; +void mark_beginning_as_normal (int mach) { switch (state_type[mach]) { case STATE_NORMAL: @@ -381,8 +373,7 @@ void mark_beginning_as_normal (mach) * more mkbranch's. Compare with mkor() */ -int mkbranch (first, second) - int first, second; +int mkbranch (int first, int second) { int eps; @@ -409,8 +400,7 @@ int mkbranch (first, second) * new - a new state which matches the closure of "state" */ -int mkclos (state) - int state; +int mkclos (int state) { return mkopt (mkposcl (state)); } @@ -430,8 +420,7 @@ int mkclos (state) * 2. mach is destroyed by the call */ -int mkopt (mach) - int mach; +int mkopt (int mach) { int eps; @@ -467,8 +456,7 @@ int mkopt (mach) * the number of epsilon states needed */ -int mkor (first, second) - int first, second; +int mkor (int first, int second) { int eps, orend; @@ -523,8 +511,7 @@ int mkor (first, second) * new - a machine matching the positive closure of "state" */ -int mkposcl (state) - int state; +int mkposcl (int state) { int eps; @@ -553,8 +540,7 @@ int mkposcl (state) * if "ub" is INFINITE_REPEAT then "new" matches "lb" or more occurrences of "mach" */ -int mkrep (mach, lb, ub) - int mach, lb, ub; +int mkrep (int mach, int lb, int ub) { int base_mach, tail, copy, i; @@ -600,8 +586,7 @@ int mkrep (mach, lb, ub) * that it admittedly is) */ -int mkstate (sym) - int sym; +int mkstate (int sym) { if (++lastnfa >= current_mns) { if ((current_mns += MNS_INCREMENT) >= maximum_mns) @@ -677,8 +662,7 @@ current_mns); * stateto - the state to which the transition is to be made */ -void mkxtion (statefrom, stateto) - int statefrom, stateto; +void mkxtion (int statefrom, int stateto) { if (trans1[statefrom] == NO_TRANSITION) trans1[statefrom] = stateto; @@ -695,7 +679,7 @@ void mkxtion (statefrom, stateto) /* new_rule - initialize for a new rule */ -void new_rule () +void new_rule (void) { if (++num_rules >= current_max_rules) { ++num_reallocs; diff --git a/src/parse.c b/src/parse.c index a7e3af0..97fc6d7 100644 --- a/src/parse.c +++ b/src/parse.c @@ -188,13 +188,13 @@ extern int yydebug; NAME = 263, PREVCCL = 264, EOF_OP = 265, - OPTION_OP = 266, - OPT_OUTFILE = 267, - OPT_PREFIX = 268, - OPT_YYCLASS = 269, - OPT_HEADER = 270, - OPT_EXTRA_TYPE = 271, - OPT_TABLES = 272, + TOK_OPTION = 266, + TOK_OUTFILE = 267, + TOK_PREFIX = 268, + TOK_YYCLASS = 269, + TOK_HEADER_FILE = 270, + TOK_EXTRA_TYPE = 271, + TOK_TABLES_FILE = 272, CCE_ALNUM = 273, CCE_ALPHA = 274, CCE_BLANK = 275, @@ -236,13 +236,13 @@ extern int yydebug; #define NAME 263 #define PREVCCL 264 #define EOF_OP 265 -#define OPTION_OP 266 -#define OPT_OUTFILE 267 -#define OPT_PREFIX 268 -#define OPT_YYCLASS 269 -#define OPT_HEADER 270 -#define OPT_EXTRA_TYPE 271 -#define OPT_TABLES 272 +#define TOK_OPTION 266 +#define TOK_OUTFILE 267 +#define TOK_PREFIX 268 +#define TOK_YYCLASS 269 +#define TOK_HEADER_FILE 270 +#define TOK_EXTRA_TYPE 271 +#define TOK_TABLES_FILE 272 #define CCE_ALNUM 273 #define CCE_ALPHA 274 #define CCE_BLANK 275 @@ -611,9 +611,9 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "CHAR", "NUMBER", "SECTEND", "SCDECL", - "XSCDECL", "NAME", "PREVCCL", "EOF_OP", "OPTION_OP", "OPT_OUTFILE", - "OPT_PREFIX", "OPT_YYCLASS", "OPT_HEADER", "OPT_EXTRA_TYPE", - "OPT_TABLES", "CCE_ALNUM", "CCE_ALPHA", "CCE_BLANK", "CCE_CNTRL", + "XSCDECL", "NAME", "PREVCCL", "EOF_OP", "TOK_OPTION", "TOK_OUTFILE", + "TOK_PREFIX", "TOK_YYCLASS", "TOK_HEADER_FILE", "TOK_EXTRA_TYPE", + "TOK_TABLES_FILE", "CCE_ALNUM", "CCE_ALPHA", "CCE_BLANK", "CCE_CNTRL", "CCE_DIGIT", "CCE_GRAPH", "CCE_LOWER", "CCE_PRINT", "CCE_PUNCT", "CCE_SPACE", "CCE_UPPER", "CCE_XDIGIT", "CCE_NEG_ALNUM", "CCE_NEG_ALPHA", "CCE_NEG_BLANK", "CCE_NEG_CNTRL", "CCE_NEG_DIGIT", "CCE_NEG_GRAPH", @@ -1570,7 +1570,7 @@ yyreduce: case 17: #line 195 "parse.y" /* yacc.c:1646 */ { - outfilename = copy_string( nmstr ); + outfilename = xstrdup(nmstr); did_outfilename = 1; } #line 1577 "parse.c" /* yacc.c:1646 */ @@ -1578,31 +1578,31 @@ yyreduce: case 18: #line 200 "parse.y" /* yacc.c:1646 */ - { extra_type = copy_string( nmstr ); } + { extra_type = xstrdup(nmstr); } #line 1583 "parse.c" /* yacc.c:1646 */ break; case 19: #line 202 "parse.y" /* yacc.c:1646 */ - { prefix = copy_string( nmstr ); } + { prefix = xstrdup(nmstr); } #line 1589 "parse.c" /* yacc.c:1646 */ break; case 20: #line 204 "parse.y" /* yacc.c:1646 */ - { yyclass = copy_string( nmstr ); } + { yyclass = xstrdup(nmstr); } #line 1595 "parse.c" /* yacc.c:1646 */ break; case 21: #line 206 "parse.y" /* yacc.c:1646 */ - { headerfilename = copy_string( nmstr ); } + { headerfilename = xstrdup(nmstr); } #line 1601 "parse.c" /* yacc.c:1646 */ break; case 22: #line 208 "parse.y" /* yacc.c:1646 */ - { tablesext = true; tablesfilename = copy_string( nmstr ); } + { tablesext = true; tablesfilename = xstrdup(nmstr); } #line 1607 "parse.c" /* yacc.c:1646 */ break; @@ -2202,7 +2202,7 @@ yyreduce: { /* Sort characters for fast searching. */ - qsort( ccltbl + cclmap[(yyvsp[0])], ccllen[(yyvsp[0])], sizeof (*ccltbl), cclcmp ); + qsort( ccltbl + cclmap[(yyvsp[0])], (size_t) ccllen[(yyvsp[0])], sizeof (*ccltbl), cclcmp ); if ( useecs ) mkeccl( ccltbl + cclmap[(yyvsp[0])], ccllen[(yyvsp[0])], @@ -2814,7 +2814,7 @@ yyreturn: * conditions */ -void build_eof_action() +void build_eof_action(void) { int i; char action_text[MAXLINE]; @@ -2839,7 +2839,7 @@ void build_eof_action() } } - line_directive_out( (FILE *) 0, 1 ); + line_directive_out(NULL, 1); /* This isn't a normal rule after all - don't count it as * such, so we don't have any holes in the rule numbering @@ -2853,8 +2853,7 @@ void build_eof_action() /* format_synerr - write out formatted syntax error */ -void format_synerr( msg, arg ) -const char *msg, arg[]; +void format_synerr( const char *msg, const char arg[] ) { char errmsg[MAXLINE]; @@ -2865,8 +2864,7 @@ const char *msg, arg[]; /* synerr - report a syntax error */ -void synerr( str ) -const char *str; +void synerr( const char *str ) { syntaxerror = true; pinpoint_message( str ); @@ -2875,8 +2873,7 @@ const char *str; /* format_warn - write out formatted warning */ -void format_warn( msg, arg ) -const char *msg, arg[]; +void format_warn( const char *msg, const char arg[] ) { char warn_msg[MAXLINE]; @@ -2887,8 +2884,7 @@ const char *msg, arg[]; /* warn - report a warning, unless -w was given */ -void warn( str ) -const char *str; +void warn( const char *str ) { line_warning( str, linenum ); } @@ -2897,8 +2893,7 @@ const char *str; * pinpointing its location */ -void format_pinpoint_message( msg, arg ) -const char *msg, arg[]; +void format_pinpoint_message( const char *msg, const char arg[] ) { char errmsg[MAXLINE]; @@ -2909,8 +2904,7 @@ const char *msg, arg[]; /* pinpoint_message - write out a message, pinpointing its location */ -void pinpoint_message( str ) -const char *str; +void pinpoint_message( const char *str ) { line_pinpoint( str, linenum ); } @@ -2918,9 +2912,7 @@ const char *str; /* line_warning - report a warning at a given line, unless -w was given */ -void line_warning( str, line ) -const char *str; -int line; +void line_warning( const char *str, int line ) { char warning[MAXLINE]; @@ -2934,9 +2926,7 @@ int line; /* line_pinpoint - write out a message, pinpointing it at the given line */ -void line_pinpoint( str, line ) -const char *str; -int line; +void line_pinpoint( const char *str, int line ) { fprintf( stderr, "%s:%d: %s\n", infilename, line, str ); } @@ -2946,8 +2936,7 @@ int line; * currently, messages are ignore */ -void yyerror( msg ) -const char *msg; +void yyerror( const char *msg ) { (void)msg; } diff --git a/src/parse.h b/src/parse.h index 033f919..8d35287 100644 --- a/src/parse.h +++ b/src/parse.h @@ -53,13 +53,13 @@ extern int yydebug; NAME = 263, PREVCCL = 264, EOF_OP = 265, - OPTION_OP = 266, - OPT_OUTFILE = 267, - OPT_PREFIX = 268, - OPT_YYCLASS = 269, - OPT_HEADER = 270, - OPT_EXTRA_TYPE = 271, - OPT_TABLES = 272, + TOK_OPTION = 266, + TOK_OUTFILE = 267, + TOK_PREFIX = 268, + TOK_YYCLASS = 269, + TOK_HEADER_FILE = 270, + TOK_EXTRA_TYPE = 271, + TOK_TABLES_FILE = 272, CCE_ALNUM = 273, CCE_ALPHA = 274, CCE_BLANK = 275, @@ -101,13 +101,13 @@ extern int yydebug; #define NAME 263 #define PREVCCL 264 #define EOF_OP 265 -#define OPTION_OP 266 -#define OPT_OUTFILE 267 -#define OPT_PREFIX 268 -#define OPT_YYCLASS 269 -#define OPT_HEADER 270 -#define OPT_EXTRA_TYPE 271 -#define OPT_TABLES 272 +#define TOK_OPTION 266 +#define TOK_OUTFILE 267 +#define TOK_PREFIX 268 +#define TOK_YYCLASS 269 +#define TOK_HEADER_FILE 270 +#define TOK_EXTRA_TYPE 271 +#define TOK_TABLES_FILE 272 #define CCE_ALNUM 273 #define CCE_ALPHA 274 #define CCE_BLANK 275 diff --git a/src/parse.y b/src/parse.y index 939cc05..908361b 100644 --- a/src/parse.y +++ b/src/parse.y @@ -1,8 +1,8 @@ /* parse.y - parser for flex input */ %token CHAR NUMBER SECTEND SCDECL XSCDECL NAME PREVCCL EOF_OP -%token OPTION_OP OPT_OUTFILE OPT_PREFIX OPT_YYCLASS OPT_HEADER OPT_EXTRA_TYPE -%token OPT_TABLES +%token TOK_OPTION TOK_OUTFILE TOK_PREFIX TOK_YYCLASS TOK_HEADER_FILE TOK_EXTRA_TYPE +%token TOK_TABLES_FILE %token CCE_ALNUM CCE_ALPHA CCE_BLANK CCE_CNTRL CCE_DIGIT CCE_GRAPH %token CCE_LOWER CCE_PRINT CCE_PUNCT CCE_SPACE CCE_UPPER CCE_XDIGIT @@ -184,28 +184,28 @@ namelist1 : namelist1 NAME { synerr( _("bad start condition list") ); } ; -options : OPTION_OP optionlist +options : TOK_OPTION optionlist ; optionlist : optionlist option | ; -option : OPT_OUTFILE '=' NAME +option : TOK_OUTFILE '=' NAME { - outfilename = copy_string( nmstr ); + outfilename = xstrdup(nmstr); did_outfilename = 1; } - | OPT_EXTRA_TYPE '=' NAME - { extra_type = copy_string( nmstr ); } - | OPT_PREFIX '=' NAME - { prefix = copy_string( nmstr ); } - | OPT_YYCLASS '=' NAME - { yyclass = copy_string( nmstr ); } - | OPT_HEADER '=' NAME - { headerfilename = copy_string( nmstr ); } - | OPT_TABLES '=' NAME - { tablesext = true; tablesfilename = copy_string( nmstr ); } + | TOK_EXTRA_TYPE '=' NAME + { extra_type = xstrdup(nmstr); } + | TOK_PREFIX '=' NAME + { prefix = xstrdup(nmstr); } + | TOK_YYCLASS '=' NAME + { yyclass = xstrdup(nmstr); } + | TOK_HEADER_FILE '=' NAME + { headerfilename = xstrdup(nmstr); } + | TOK_TABLES_FILE '=' NAME + { tablesext = true; tablesfilename = xstrdup(nmstr); } ; sect2 : sect2 scon initforrule flexrule '\n' @@ -725,7 +725,7 @@ singleton : singleton '*' { /* Sort characters for fast searching. */ - qsort( ccltbl + cclmap[$1], ccllen[$1], sizeof (*ccltbl), cclcmp ); + qsort( ccltbl + cclmap[$1], (size_t) ccllen[$1], sizeof (*ccltbl), cclcmp ); if ( useecs ) mkeccl( ccltbl + cclmap[$1], ccllen[$1], @@ -951,7 +951,7 @@ string : string CHAR * conditions */ -void build_eof_action() +void build_eof_action(void) { int i; char action_text[MAXLINE]; @@ -976,7 +976,7 @@ void build_eof_action() } } - line_directive_out( (FILE *) 0, 1 ); + line_directive_out(NULL, 1); /* This isn't a normal rule after all - don't count it as * such, so we don't have any holes in the rule numbering @@ -990,8 +990,7 @@ void build_eof_action() /* format_synerr - write out formatted syntax error */ -void format_synerr( msg, arg ) -const char *msg, arg[]; +void format_synerr( const char *msg, const char arg[] ) { char errmsg[MAXLINE]; @@ -1002,8 +1001,7 @@ const char *msg, arg[]; /* synerr - report a syntax error */ -void synerr( str ) -const char *str; +void synerr( const char *str ) { syntaxerror = true; pinpoint_message( str ); @@ -1012,8 +1010,7 @@ const char *str; /* format_warn - write out formatted warning */ -void format_warn( msg, arg ) -const char *msg, arg[]; +void format_warn( const char *msg, const char arg[] ) { char warn_msg[MAXLINE]; @@ -1024,8 +1021,7 @@ const char *msg, arg[]; /* warn - report a warning, unless -w was given */ -void warn( str ) -const char *str; +void warn( const char *str ) { line_warning( str, linenum ); } @@ -1034,8 +1030,7 @@ const char *str; * pinpointing its location */ -void format_pinpoint_message( msg, arg ) -const char *msg, arg[]; +void format_pinpoint_message( const char *msg, const char arg[] ) { char errmsg[MAXLINE]; @@ -1046,8 +1041,7 @@ const char *msg, arg[]; /* pinpoint_message - write out a message, pinpointing its location */ -void pinpoint_message( str ) -const char *str; +void pinpoint_message( const char *str ) { line_pinpoint( str, linenum ); } @@ -1055,9 +1049,7 @@ const char *str; /* line_warning - report a warning at a given line, unless -w was given */ -void line_warning( str, line ) -const char *str; -int line; +void line_warning( const char *str, int line ) { char warning[MAXLINE]; @@ -1071,9 +1063,7 @@ int line; /* line_pinpoint - write out a message, pinpointing it at the given line */ -void line_pinpoint( str, line ) -const char *str; -int line; +void line_pinpoint( const char *str, int line ) { fprintf( stderr, "%s:%d: %s\n", infilename, line, str ); } @@ -1083,8 +1073,7 @@ int line; * currently, messages are ignore */ -void yyerror( msg ) -const char *msg; +void yyerror( const char *msg ) { (void)msg; } diff --git a/src/regex.c b/src/regex.c index 2bb580e..84f0e9e 100644 --- a/src/regex.c +++ b/src/regex.c @@ -57,10 +57,10 @@ void flex_regcomp(regex_t *preg, const char *regex, int cflags) const int errbuf_sz = 200; char *errbuf, *rxerr; - errbuf = (char*)flex_alloc(errbuf_sz *sizeof(char)); + errbuf = malloc(errbuf_sz * sizeof(char)); if (!errbuf) flexfatal(_("Unable to allocate buffer to report regcomp")); - rxerr = (char*)flex_alloc(errbuf_sz *sizeof(char)); + rxerr = malloc(errbuf_sz * sizeof(char)); if (!rxerr) flexfatal(_("Unable to allocate buffer for regerror")); regerror (err, preg, rxerr, errbuf_sz); @@ -85,7 +85,7 @@ char *regmatch_dup (regmatch_t * m, const char *src) if (m == NULL || m->rm_so < 0) return NULL; len = m->rm_eo - m->rm_so; - str = (char *) flex_alloc ((len + 1) * sizeof (char)); + str = malloc((len + 1) * sizeof(char)); if (!str) flexfatal(_("Unable to allocate a copy of the match")); strncpy (str, src + m->rm_so, len); @@ -8,7 +8,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 0-pre +#define YY_FLEX_SUBMINOR_VERSION 0 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -376,8 +376,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 251 -#define YY_END_OF_BUFFER 252 +#define YY_NUM_RULES 252 +#define YY_END_OF_BUFFER 253 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -385,130 +385,130 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1107] = +static yyconst flex_int16_t yy_accept[1110] = { 0, - 0, 0, 0, 0, 0, 0, 248, 248, 0, 0, + 0, 0, 0, 0, 0, 0, 249, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 252, 250, - 9, 20, 250, 18, 1, 19, 250, 250, 250, 250, - 17, 164, 149, 150, 164, 142, 164, 161, 162, 163, - 163, 164, 164, 164, 163, 148, 138, 164, 164, 140, - 141, 136, 137, 136, 135, 134, 135, 248, 248, 249, - 249, 41, 42, 41, 41, 41, 41, 41, 41, 50, - - 49, 51, 250, 170, 170, 165, 170, 166, 167, 169, - 171, 219, 220, 219, 217, 216, 218, 172, 174, 172, - 173, 172, 186, 186, 186, 186, 188, 190, 188, 188, - 188, 188, 189, 233, 238, 233, 237, 239, 239, 235, - 235, 235, 234, 234, 229, 230, 250, 131, 250, 25, - 26, 25, 22, 25, 25, 240, 242, 240, 243, 244, - 227, 227, 228, 227, 227, 227, 227, 227, 227, 227, - 130, 53, 52, 130, 130, 130, 130, 54, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 37, - - 34, 37, 35, 48, 45, 250, 48, 48, 44, 43, - 176, 175, 177, 178, 179, 180, 181, 182, 183, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 251, + 9, 20, 251, 18, 1, 19, 251, 251, 251, 251, + 17, 165, 150, 151, 165, 143, 165, 162, 163, 164, + 164, 165, 165, 165, 164, 149, 139, 165, 165, 141, + 142, 137, 138, 137, 136, 135, 136, 249, 249, 250, + 250, 41, 42, 41, 41, 41, 41, 41, 41, 50, + + 49, 51, 251, 171, 171, 166, 171, 167, 168, 170, + 172, 220, 221, 220, 218, 217, 219, 173, 175, 173, + 174, 173, 187, 187, 187, 187, 189, 191, 189, 189, + 189, 189, 190, 234, 239, 234, 238, 240, 240, 236, + 236, 236, 235, 235, 230, 231, 251, 132, 251, 25, + 26, 25, 22, 25, 25, 241, 243, 241, 244, 245, + 228, 228, 229, 228, 228, 228, 228, 228, 228, 228, + 131, 53, 52, 131, 131, 131, 131, 54, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 37, + + 34, 37, 35, 48, 45, 251, 48, 48, 44, 43, + 177, 176, 178, 179, 180, 181, 182, 183, 184, 32, 33, 32, 31, 29, 30, 29, 28, 9, 20, 0, 18, 1, 19, 0, 0, 0, 16, 10, 0, 0, - 0, 0, 4, 16, 5, 0, 2, 17, 149, 150, - 0, 0, 0, 144, 0, 160, 158, 0, 154, 154, - 0, 245, 245, 245, 0, 0, 143, 0, 148, 138, - 0, 0, 0, 140, 141, 153, 139, 0, 137, 135, - 134, 134, 132, 133, 248, 248, 246, 247, 42, 0, - 0, 39, 40, 0, 50, 49, 51, 0, 165, 0, - - 165, 168, 169, 220, 216, 174, 0, 184, 185, 190, - 187, 233, 238, 0, 236, 0, 222, 235, 235, 235, - 231, 232, 0, 131, 0, 26, 21, 23, 24, 240, - 242, 241, 0, 0, 228, 221, 225, 226, 53, 52, - 0, 129, 0, 0, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 55, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 0, 36, 35, 45, - 46, 47, 32, 33, 30, 27, 0, 16, 10, 0, - 14, 0, 0, 0, 0, 0, 4, 16, 5, 0, - - 6, 0, 145, 0, 146, 0, 159, 0, 154, 154, - 0, 154, 154, 154, 245, 245, 156, 155, 0, 157, - 139, 147, 0, 153, 0, 132, 133, 0, 0, 0, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 235, 235, 221, 0, 0, 130, - 130, 130, 130, 130, 130, 130, 67, 130, 130, 130, - 72, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 0, 0, 0, 0, 14, - - 0, 0, 0, 0, 0, 0, 4, 8, 5, 0, - 154, 154, 154, 154, 154, 154, 154, 245, 157, 0, + 0, 0, 4, 16, 5, 0, 2, 17, 150, 151, + 0, 0, 0, 145, 0, 161, 159, 0, 155, 155, + 0, 246, 246, 246, 0, 0, 144, 0, 149, 139, + 0, 0, 0, 141, 142, 154, 140, 0, 138, 136, + 135, 135, 133, 134, 249, 249, 247, 248, 42, 0, + 0, 39, 40, 0, 50, 49, 51, 0, 166, 0, + + 166, 169, 170, 221, 217, 175, 0, 185, 186, 191, + 188, 234, 239, 0, 237, 0, 223, 236, 236, 236, + 232, 233, 0, 132, 0, 26, 21, 23, 24, 241, + 243, 242, 0, 0, 229, 222, 226, 227, 53, 52, + 0, 130, 0, 0, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 55, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 36, 35, + 45, 46, 47, 32, 33, 30, 27, 0, 16, 10, + 0, 14, 0, 0, 0, 0, 0, 4, 16, 5, + + 0, 6, 0, 146, 0, 147, 0, 160, 0, 155, + 155, 0, 155, 155, 155, 246, 246, 157, 156, 0, + 158, 140, 148, 0, 154, 0, 133, 134, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 236, 222, 0, 0, + 131, 131, 131, 131, 131, 131, 131, 67, 131, 131, + 131, 72, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 14, 0, 0, 0, 0, 0, 0, 4, 8, + 5, 0, 155, 155, 155, 155, 155, 155, 155, 246, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 236, 56, + 57, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 73, 74, 131, 131, 131, 131, 79, 80, + 131, 131, 131, 131, 131, 131, 131, 85, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 94, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 15, 0, 0, 0, 0, 0, 8, 8, 8, + 0, 155, 155, 155, 155, 155, 155, 155, 0, 0, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 235, 56, 57, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 73, 74, 130, 130, 130, 130, 79, 130, 130, 130, - 130, 130, 130, 130, 84, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 93, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 0, 0, 0, 0, 15, 0, - - 0, 0, 0, 0, 8, 8, 8, 0, 154, 154, - 154, 154, 154, 154, 154, 0, 0, 0, 0, 215, + 0, 0, 0, 0, 0, 0, 236, 236, 58, 131, + 131, 60, 131, 64, 131, 131, 131, 131, 70, 131, + 131, 131, 75, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 88, 131, 131, 131, 131, 92, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 0, 0, 0, 0, 3, 0, 0, 0, 8, 7, + + 8, 0, 155, 155, 155, 0, 0, 224, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 235, 235, 58, 130, 130, 60, 130, - 64, 130, 130, 130, 130, 70, 130, 130, 130, 75, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 87, 130, 130, 130, 130, 91, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 0, 0, 0, - 0, 3, 0, 0, 0, 8, 7, 8, 0, 154, - - 154, 154, 0, 0, 223, 224, 0, 0, 0, 0, + 0, 0, 0, 224, 225, 131, 131, 131, 63, 131, + 131, 131, 131, 131, 131, 131, 127, 131, 131, 131, + 131, 131, 131, 131, 131, 125, 131, 87, 131, 90, + 131, 91, 131, 131, 131, 106, 0, 131, 96, 131, + 0, 97, 0, 0, 0, 0, 0, 12, 0, 13, + 0, 153, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 224, 130, 130, 130, 63, 130, 130, 130, 130, - 130, 130, 130, 126, 130, 130, 130, 130, 130, 130, - 130, 130, 124, 130, 86, 130, 89, 130, 90, 130, - 130, 130, 105, 0, 130, 95, 130, 0, 96, 0, - 0, 0, 0, 0, 12, 0, 13, 0, 152, 0, - 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 130, 130, 130, 130, 130, - 130, 130, 68, 130, 71, 130, 130, 130, 130, 130, - 130, 123, 130, 83, 130, 130, 88, 130, 92, 103, - 125, 0, 0, 0, 0, 0, 0, 130, 130, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 130, 130, 130, 130, 130, 130, - 130, 69, 130, 130, 130, 130, 80, 130, 130, 130, - 130, 130, 130, 0, 0, 114, 0, 0, 0, 0, - 0, 0, 94, 130, 0, 0, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 0, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, + 131, 131, 131, 131, 131, 68, 131, 71, 131, 131, + 131, 131, 131, 131, 124, 131, 84, 131, 131, 89, + 131, 93, 104, 126, 0, 0, 0, 0, 0, 0, + 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 85, 130, 130, 0, - 0, 0, 0, 0, 0, 116, 0, 104, 0, 0, - 0, 0, 0, 117, 0, 0, 0, 0, 0, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 0, 130, 130, 130, 130, 130, 130, 130, 122, - - 130, 130, 77, 130, 130, 130, 130, 130, 0, 0, - 110, 0, 120, 118, 111, 0, 0, 0, 121, 119, - 0, 0, 0, 0, 0, 0, 214, 130, 130, 130, - 130, 130, 130, 130, 126, 76, 130, 82, 130, 127, - 130, 106, 108, 0, 107, 109, 0, 0, 0, 0, - 0, 0, 0, 130, 130, 130, 65, 130, 130, 130, - 130, 78, 130, 112, 113, 98, 0, 0, 0, 0, - 99, 130, 130, 130, 130, 130, 130, 130, 128, 97, - 0, 101, 0, 130, 130, 130, 130, 130, 68, 130, - 100, 102, 130, 130, 62, 66, 130, 130, 130, 61, - - 69, 130, 130, 81, 59, 0 + 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, + 131, 131, 131, 131, 69, 131, 131, 131, 131, 81, + 131, 131, 131, 131, 131, 131, 0, 0, 115, 0, + + 0, 0, 0, 0, 0, 95, 131, 0, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 0, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 86, + 131, 131, 0, 0, 0, 0, 0, 0, 117, 0, + 105, 0, 0, 0, 0, 0, 118, 0, 0, 0, + 0, 0, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 0, 131, 131, 131, 131, 131, + + 131, 131, 123, 131, 131, 77, 131, 131, 131, 131, + 131, 0, 0, 111, 0, 121, 119, 112, 0, 0, + 0, 122, 120, 0, 0, 0, 0, 0, 0, 215, + 131, 131, 131, 131, 131, 131, 131, 127, 76, 131, + 83, 131, 128, 131, 107, 109, 0, 108, 110, 0, + 0, 0, 0, 0, 0, 0, 131, 131, 131, 65, + 131, 131, 131, 131, 78, 131, 113, 114, 99, 0, + 0, 0, 0, 100, 131, 131, 131, 131, 131, 131, + 131, 129, 98, 0, 102, 0, 131, 131, 131, 131, + 131, 68, 131, 101, 103, 131, 131, 62, 66, 131, + + 131, 131, 61, 69, 131, 131, 82, 59, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -556,279 +556,281 @@ static yyconst YY_CHAR yy_meta[85] = 12, 5, 1, 17 } ; -static yyconst flex_uint16_t yy_base[1201] = +static yyconst flex_uint16_t yy_base[1204] = { 0, 0, 84, 167, 250, 171, 184, 174, 179, 192, 233, - 196, 200, 334, 0, 3343, 3340, 203, 416, 206, 211, + 196, 200, 334, 0, 3464, 3463, 203, 416, 206, 211, 187, 216, 276, 417, 500, 0, 210, 223, 421, 427, 436, 440, 583, 588, 669, 0, 277, 299, 584, 751, - 579, 580, 576, 732, 279, 305, 310, 444, 3378, 3975, - 228, 3975, 3371, 0, 322, 3975, 3358, 423, 827, 3328, - 0, 3975, 755, 3975, 3337, 3975, 448, 3312, 3975, 3975, - 3323, 3291, 222, 408, 444, 764, 3975, 3311, 230, 3289, - 3975, 3975, 3975, 3306, 0, 3306, 164, 3304, 3975, 3236, - 3217, 3975, 3975, 3266, 239, 119, 3215, 3212, 3180, 0, - - 3248, 3975, 3243, 3975, 476, 3227, 3222, 3975, 3168, 0, - 3975, 3975, 3975, 3203, 3975, 464, 3975, 3975, 3975, 3186, - 3975, 742, 3975, 3161, 751, 180, 3975, 3975, 3171, 0, - 3149, 757, 3975, 0, 3975, 3149, 3975, 200, 3138, 0, - 429, 241, 3097, 3092, 3975, 3975, 306, 3975, 323, 3975, - 3975, 3126, 3108, 3072, 3069, 0, 3975, 3115, 3975, 0, - 3975, 446, 3975, 3114, 3031, 3098, 435, 371, 3045, 3026, - 3975, 3076, 3975, 3074, 3070, 439, 440, 3975, 578, 751, - 586, 562, 735, 752, 0, 572, 577, 588, 786, 749, - 396, 809, 727, 582, 747, 753, 764, 769, 580, 3975, - - 3975, 3067, 588, 3975, 3975, 3053, 3002, 2996, 3975, 3975, - 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 0, - 3975, 3046, 3975, 3975, 3975, 3018, 2986, 837, 3975, 2998, - 0, 847, 3975, 2997, 817, 777, 0, 0, 891, 903, - 912, 924, 0, 774, 0, 451, 3975, 0, 858, 3975, - 2996, 2914, 472, 3975, 2974, 2953, 3975, 791, 236, 822, - 899, 3975, 275, 0, 2873, 2872, 3975, 2871, 949, 3975, - 2949, 2850, 2918, 2906, 3975, 0, 3975, 796, 3975, 0, - 0, 2925, 0, 0, 2597, 3975, 3975, 3975, 3975, 795, - 794, 3975, 3975, 484, 0, 2597, 3975, 877, 2596, 2594, - - 2594, 3975, 0, 3975, 918, 3975, 1005, 3975, 3975, 3975, - 3975, 0, 3975, 611, 3975, 0, 3975, 0, 853, 851, - 3975, 3975, 490, 3975, 608, 3975, 3975, 3975, 3975, 0, - 3975, 3975, 596, 2510, 3975, 0, 3975, 3975, 2588, 3975, - 2581, 3975, 894, 906, 0, 911, 717, 727, 923, 728, - 2571, 882, 930, 889, 902, 916, 917, 940, 928, 923, - 940, 933, 0, 932, 3975, 935, 939, 951, 956, 1059, - 964, 965, 1052, 955, 957, 1099, 2578, 3975, 1078, 3975, - 3975, 3975, 0, 3975, 3975, 3975, 987, 0, 0, 1087, - 3975, 2576, 1132, 985, 1046, 1058, 0, 1058, 0, 1009, - - 3975, 1016, 3975, 1057, 3975, 1099, 3975, 1068, 731, 1088, - 1095, 1178, 1244, 1280, 988, 0, 3975, 3975, 2492, 1162, - 3975, 3975, 1081, 0, 1086, 0, 0, 1098, 1105, 1100, - 3975, 1167, 1245, 1246, 1247, 1250, 2539, 1248, 1249, 1258, - 1244, 1251, 1259, 1321, 1233, 1224, 0, 1072, 1228, 1243, - 1261, 1287, 1298, 1289, 1298, 1287, 0, 1299, 1228, 1308, - 0, 1280, 1298, 1307, 1316, 1314, 1316, 2532, 1322, 1337, - 1338, 1340, 1342, 1342, 1348, 1353, 1356, 1347, 1357, 1362, - 1366, 1358, 1353, 1356, 1377, 1366, 1370, 1371, 1367, 1383, - 1384, 1379, 1391, 1392, 1381, 1388, 1397, 1275, 1455, 3975, - - 1439, 1463, 1444, 1415, 1412, 1415, 0, 1409, 0, 1429, - 1492, 1558, 1594, 1524, 2449, 1564, 1639, 3975, 3975, 1537, - 1556, 1560, 1407, 2427, 1558, 1563, 1559, 1564, 1572, 1584, - 1574, 1562, 1615, 1619, 1609, 1625, 1626, 1643, 1614, 1651, - 1662, 1658, 1664, 1665, 1616, 1616, 1637, 3975, 3975, 1638, - 1631, 2352, 1634, 1641, 1655, 1650, 1677, 1679, 1671, 1689, - 0, 0, 1690, 1677, 1681, 1697, 0, 2348, 1684, 1694, - 2274, 1686, 1685, 1695, 0, 1692, 1711, 1704, 1703, 1701, - 1713, 1703, 1704, 1712, 0, 1717, 1731, 1731, 1719, 1723, - 1722, 1741, 1726, 1742, 1734, 1747, 1741, 2241, 3975, 1464, - - 1485, 1729, 1743, 1740, 0, 1721, 1591, 2173, 1585, 2139, - 1771, 1807, 1417, 962, 1426, 1755, 2049, 1745, 1769, 3975, - 1774, 1782, 1789, 1775, 1796, 1791, 1810, 1800, 1820, 1822, - 1821, 1823, 1832, 1831, 1838, 1840, 1853, 1856, 1854, 1855, - 1863, 1865, 1861, 1846, 1862, 0, 1853, 1864, 0, 1857, - 0, 2008, 1866, 1862, 1869, 0, 1874, 1893, 1870, 0, - 1888, 1875, 1886, 1882, 1880, 1878, 1897, 1876, 1882, 1889, - 1889, 0, 1904, 1895, 1899, 1919, 0, 1907, 1909, 1908, - 1923, 1791, 1924, 1925, 1919, 1747, 1917, 1918, 1918, 1938, - 1924, 1726, 1599, 1927, 1937, 1970, 3975, 1702, 1652, 1923, - - 1755, 1941, 1625, 1618, 3975, 3975, 1961, 1977, 1966, 1969, - 1956, 1979, 1983, 1986, 1989, 1984, 1992, 1987, 1994, 1990, - 1988, 1995, 2007, 2004, 2016, 2022, 1996, 2028, 2018, 2026, - 0, 0, 1620, 1990, 2009, 0, 2035, 2020, 2035, 2029, - 2024, 2025, 2029, 1589, 2049, 2041, 2052, 2048, 2053, 2054, - 2044, 2057, 0, 2064, 0, 2048, 0, 1576, 0, 2064, - 2070, 2056, 0, 2096, 2062, 0, 2067, 2108, 0, 1531, - 2072, 2078, 1438, 1853, 3975, 2105, 3975, 2068, 3975, 1463, - 3975, 1407, 1402, 1348, 1345, 1314, 1307, 1269, 1260, 1256, - 1210, 1158, 2106, 2111, 2097, 2118, 2122, 2129, 2125, 2140, - - 2131, 2136, 2141, 2143, 2156, 2131, 2138, 2147, 2101, 2151, - 2138, 2153, 0, 2141, 0, 2144, 2165, 2153, 2159, 2158, - 2165, 0, 2165, 0, 2167, 2169, 0, 2178, 0, 0, - 0, 2183, 2167, 2179, 2210, 2178, 2189, 2188, 2189, 2202, - 2186, 2194, 2218, 2196, 2202, 1119, 1114, 2206, 2118, 3975, - 1106, 1100, 1081, 1068, 1065, 1061, 1057, 972, 968, 965, - 914, 925, 893, 881, 874, 869, 865, 861, 854, 843, - 807, 802, 776, 2235, 2212, 2226, 2221, 2227, 2239, 2238, - 2228, 0, 2228, 2239, 2242, 2252, 0, 2238, 2244, 2249, - 2244, 2258, 2263, 2269, 2255, 3975, 2263, 2265, 2265, 2281, - - 2265, 2262, 0, 2285, 2288, 2274, 3975, 2277, 2280, 2295, - 2279, 2280, 2283, 2303, 2283, 2330, 3975, 2335, 3975, 3975, - 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 735, - 612, 608, 598, 441, 374, 261, 245, 202, 152, 149, - 137, 165, 2296, 2303, 2304, 2320, 2326, 2316, 2324, 2329, - 2324, 2316, 2319, 2335, 2324, 2327, 0, 2332, 2328, 2327, - 2332, 2345, 2348, 2352, 2344, 3975, 2338, 0, 2338, 2343, - 2357, 2362, 2357, 3975, 2371, 2356, 2359, 2358, 2380, 3975, - 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, - 3975, 128, 2384, 2382, 2373, 2387, 2376, 2378, 2378, 0, - - 2395, 2396, 0, 2385, 2384, 2405, 2403, 2401, 2405, 2413, - 3975, 2401, 3975, 3975, 3975, 2409, 2416, 2404, 3975, 3975, - 2400, 2422, 2422, 2414, 2417, 2417, 3975, 2421, 2421, 2418, - 2424, 2441, 2442, 2443, 0, 0, 2453, 0, 2436, 0, - 2451, 3975, 3975, 2445, 3975, 3975, 2446, 2457, 2445, 2461, - 2464, 2462, 2468, 2473, 2466, 2460, 0, 2462, 2459, 2461, - 2483, 0, 2463, 3975, 3975, 3975, 2484, 2488, 2476, 2482, - 3975, 2495, 2485, 2497, 2495, 2501, 2506, 2493, 0, 3975, - 2496, 3975, 2508, 2498, 2506, 2503, 2506, 2505, 0, 2520, - 3975, 3975, 2522, 2514, 0, 0, 2529, 2514, 2515, 0, - - 0, 2533, 2539, 0, 0, 3975, 2601, 2618, 2635, 2652, - 2669, 2686, 2703, 2720, 2737, 2754, 2771, 2788, 2805, 2822, - 2839, 2856, 2873, 2890, 2907, 2917, 2933, 2942, 2958, 2975, - 2986, 3002, 3019, 3036, 3053, 3063, 3079, 3096, 3113, 3127, - 3137, 3153, 3170, 3187, 3204, 3215, 2009, 3227, 3244, 3254, - 3270, 3287, 3294, 3300, 3316, 3326, 3342, 3359, 3376, 2564, - 3386, 3403, 3420, 3437, 3454, 3471, 3488, 3505, 3522, 3532, - 3548, 3562, 3572, 3588, 3605, 3622, 3639, 3650, 3662, 3679, - 3696, 3713, 3730, 3740, 3749, 3765, 3782, 3799, 2571, 3809, - 3826, 3843, 3860, 3877, 3885, 3890, 3906, 3923, 3940, 3957 - + 579, 580, 576, 732, 279, 305, 310, 444, 3498, 3970, + 228, 3970, 3493, 0, 322, 3970, 3465, 423, 827, 3438, + 0, 3970, 755, 3970, 3431, 3970, 448, 3390, 3970, 3970, + 3387, 3372, 222, 408, 444, 764, 3970, 3392, 230, 3370, + 3970, 3970, 3970, 3388, 0, 3371, 164, 3366, 3970, 3303, + 3281, 3970, 3970, 3332, 239, 119, 3281, 3276, 3226, 0, + + 3307, 3970, 3305, 3970, 476, 3302, 3300, 3970, 3246, 0, + 3970, 3970, 3970, 3281, 3970, 464, 3970, 3970, 3970, 3264, + 3970, 742, 3970, 3241, 751, 180, 3970, 3970, 3260, 0, + 3239, 757, 3970, 0, 3970, 3256, 3970, 200, 3232, 0, + 429, 241, 3188, 3169, 3970, 3970, 306, 3970, 323, 3970, + 3970, 3217, 3201, 3148, 3129, 0, 3970, 3176, 3970, 0, + 3970, 446, 3970, 3166, 3083, 3134, 435, 371, 3093, 3090, + 3970, 3140, 3970, 3121, 3115, 439, 440, 3970, 578, 751, + 586, 562, 735, 752, 0, 572, 577, 782, 791, 749, + 396, 809, 588, 582, 731, 734, 762, 768, 580, 3970, + + 3970, 3114, 588, 3970, 3970, 3116, 3060, 3057, 3970, 3970, + 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 0, + 3970, 3107, 3970, 3970, 3970, 3103, 3075, 825, 3970, 3073, + 0, 837, 3970, 3070, 795, 777, 0, 0, 891, 903, + 912, 924, 0, 774, 0, 451, 3970, 0, 858, 3970, + 3069, 2989, 472, 3970, 3065, 3044, 3970, 800, 236, 822, + 899, 3970, 275, 0, 2966, 2962, 3970, 2960, 949, 3970, + 3013, 2917, 2983, 2971, 3970, 0, 3970, 818, 3970, 0, + 0, 2992, 0, 0, 2988, 3970, 3970, 3970, 3970, 815, + 816, 3970, 3970, 484, 0, 2970, 3970, 935, 2953, 2949, + + 2949, 3970, 0, 3970, 940, 3970, 1005, 3970, 3970, 3970, + 3970, 0, 3970, 611, 3970, 0, 3970, 0, 821, 850, + 3970, 3970, 490, 3970, 608, 3970, 3970, 3970, 3970, 0, + 3970, 3970, 596, 2866, 3970, 0, 3970, 3970, 2945, 3970, + 2921, 3970, 855, 903, 0, 920, 717, 727, 917, 728, + 2912, 882, 939, 896, 902, 907, 935, 948, 937, 912, + 940, 951, 936, 0, 940, 3970, 943, 946, 1051, 962, + 1061, 969, 966, 1052, 984, 986, 1101, 2919, 3970, 1080, + 3970, 3970, 3970, 0, 3970, 3970, 3970, 1021, 0, 0, + 1134, 3970, 2919, 1147, 1046, 1056, 1058, 0, 1065, 0, + + 874, 3970, 998, 3970, 1004, 3970, 1011, 3970, 1070, 731, + 1090, 1143, 1223, 1153, 1289, 1002, 0, 3970, 3970, 2510, + 1102, 3970, 3970, 1083, 0, 1085, 0, 0, 1098, 1106, + 1023, 3970, 1106, 1151, 1289, 1290, 1156, 2569, 1291, 1154, + 1292, 1301, 1302, 1158, 1353, 1150, 1141, 0, 1138, 1139, + 1153, 1160, 1155, 1288, 1285, 1296, 1285, 0, 1297, 1285, + 1302, 0, 1289, 1288, 1299, 1310, 1325, 1323, 2573, 1335, + 1329, 1349, 1346, 1346, 1347, 1345, 1352, 1356, 1359, 1350, + 1361, 1364, 1389, 1366, 1352, 1355, 1377, 1374, 1390, 1395, + 1392, 1406, 1403, 1398, 1409, 1410, 1399, 1403, 1415, 1111, + + 1478, 3970, 1190, 1482, 1197, 1424, 1420, 1417, 0, 933, + 0, 1427, 1504, 1570, 1606, 874, 2530, 1576, 1651, 3970, + 3970, 1420, 1430, 1435, 1422, 2529, 1569, 1574, 1568, 1577, + 1575, 1570, 1581, 1590, 1593, 1620, 1582, 1583, 1623, 1633, + 1622, 1631, 1636, 1652, 1634, 1663, 1664, 1625, 1615, 3970, + 3970, 1649, 1642, 2564, 1646, 1651, 1656, 1660, 1699, 1669, + 1668, 1689, 0, 0, 1686, 1675, 1679, 1689, 0, 0, + 2560, 1685, 1698, 2559, 1690, 1689, 1699, 0, 1694, 1712, + 1705, 1703, 1698, 1718, 1705, 1707, 1713, 0, 1717, 1729, + 1726, 1713, 1720, 1718, 1739, 1724, 1748, 1736, 1747, 1737, + + 2570, 3970, 1198, 1206, 1730, 1748, 1746, 0, 1393, 1793, + 2545, 952, 2426, 1782, 1818, 1554, 1068, 1151, 1761, 2347, + 1752, 1771, 3970, 1781, 1791, 1782, 1787, 1789, 1798, 1795, + 1793, 1822, 1836, 1831, 1796, 1842, 1839, 1845, 1808, 1846, + 1794, 1852, 1861, 1866, 1847, 1863, 1840, 1863, 0, 1852, + 1869, 0, 1858, 0, 2352, 1871, 1857, 1871, 0, 1867, + 2349, 1864, 0, 1882, 1869, 1882, 2309, 1880, 1877, 1891, + 2174, 1875, 1883, 1888, 0, 1903, 1896, 1899, 1916, 0, + 1904, 1906, 1906, 1922, 2063, 1924, 1926, 1920, 1970, 1917, + 1918, 1917, 1937, 1923, 2016, 1448, 1926, 1936, 1968, 3970, + + 1977, 1936, 1946, 1922, 1929, 1882, 1865, 3970, 3970, 1962, + 1980, 1971, 1981, 1964, 1970, 1983, 1984, 1987, 1989, 1991, + 1990, 1993, 1994, 1996, 1999, 2010, 2002, 1992, 2007, 2019, + 2032, 2020, 2024, 0, 0, 1827, 1991, 2016, 0, 2035, + 2025, 2036, 2030, 2025, 2025, 2030, 1799, 2050, 2041, 2053, + 2048, 2053, 2054, 2044, 2057, 0, 2063, 0, 2046, 0, + 1723, 0, 2063, 2067, 2056, 0, 2097, 2064, 0, 2068, + 2109, 0, 1645, 2073, 2071, 1639, 1486, 3970, 1596, 3970, + 2058, 3970, 1627, 3970, 1627, 1596, 1591, 1571, 1536, 1484, + 1471, 1451, 1434, 1431, 1425, 2096, 2086, 2124, 2111, 2107, + + 2127, 2130, 2132, 2137, 2138, 2157, 2141, 2131, 2121, 2129, + 2126, 2138, 2146, 2145, 2152, 0, 2150, 0, 2147, 2161, + 2153, 2158, 2158, 2161, 0, 2162, 0, 2165, 2167, 0, + 2177, 0, 0, 0, 2177, 2165, 2170, 2210, 2173, 2185, + 2180, 2185, 2198, 2183, 2195, 2212, 2196, 2207, 1386, 1315, + 2208, 2253, 3970, 1299, 1284, 1277, 1223, 1161, 1155, 1142, + 1129, 1078, 1055, 1041, 1067, 1036, 1000, 965, 925, 893, + 881, 869, 861, 843, 802, 776, 2220, 2221, 2228, 2221, + 2229, 2239, 2238, 2228, 0, 2228, 2239, 2241, 2252, 0, + 2237, 2243, 2246, 2242, 2251, 2259, 2264, 2251, 3970, 2261, + + 2263, 2264, 2280, 2264, 2261, 0, 2279, 2285, 2272, 3970, + 2279, 2280, 2296, 2279, 2281, 2283, 2301, 2286, 2332, 3970, + 2340, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 735, 612, 608, 598, 441, 374, 261, 245, + 202, 152, 149, 137, 165, 2295, 2290, 2307, 2320, 2325, + 2315, 2323, 2331, 2325, 2297, 2319, 2335, 2324, 2327, 0, + 2333, 2329, 2329, 2333, 2346, 2350, 2354, 2346, 3970, 2340, + 0, 2340, 2345, 2359, 2362, 2357, 3970, 2371, 2354, 2356, + 2358, 2381, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 3970, 3970, 128, 2379, 2377, 2371, 2386, 2376, + + 2378, 2378, 0, 2395, 2396, 0, 2386, 2385, 2407, 2404, + 2402, 2406, 2414, 3970, 2403, 3970, 3970, 3970, 2411, 2418, + 2407, 3970, 3970, 2404, 2421, 2422, 2412, 2417, 2416, 3970, + 2419, 2420, 2417, 2424, 2435, 2437, 2441, 0, 0, 2453, + 0, 2436, 0, 2451, 3970, 3970, 2445, 3970, 3970, 2447, + 2458, 2447, 2462, 2465, 2463, 2468, 2474, 2468, 2462, 0, + 2464, 2461, 2460, 2480, 0, 2461, 3970, 3970, 3970, 2483, + 2484, 2472, 2480, 3970, 2492, 2482, 2494, 2487, 2495, 2501, + 2492, 0, 3970, 2496, 3970, 2509, 2501, 2503, 2503, 2504, + 2504, 0, 2519, 3970, 3970, 2521, 2513, 0, 0, 2528, + + 2513, 2515, 0, 0, 2533, 2534, 0, 0, 3970, 2596, + 2613, 2630, 2647, 2664, 2681, 2698, 2715, 2732, 2749, 2766, + 2783, 2800, 2817, 2834, 2851, 2868, 2885, 2902, 2912, 2928, + 2937, 2953, 2970, 2981, 2997, 3014, 3031, 3048, 3058, 3074, + 3091, 3108, 3122, 3132, 3148, 3165, 3182, 3199, 3210, 2112, + 3222, 3239, 3249, 3265, 3282, 3289, 3295, 3311, 3321, 3337, + 3354, 3371, 2558, 3381, 3398, 3415, 3432, 3449, 3466, 3483, + 3500, 3517, 3527, 3543, 3557, 3567, 3583, 3600, 3617, 3634, + 3645, 3657, 3674, 3691, 3708, 3725, 3735, 3744, 3760, 3777, + 3794, 2572, 3804, 3821, 3838, 3855, 3872, 3880, 3885, 3901, + + 3918, 3935, 3952 } ; -static yyconst flex_int16_t yy_def[1201] = +static yyconst flex_int16_t yy_def[1204] = { 0, - 1106, 1106, 1107, 1107, 1108, 1109, 1110, 1110, 1111, 1111, - 1112, 1112, 1106, 13, 1113, 1113, 1114, 1114, 1115, 1115, - 1116, 1116, 1117, 1117, 1106, 25, 1118, 1118, 1119, 1119, - 1120, 1120, 1121, 1121, 1106, 35, 1122, 1122, 1123, 1123, - 1113, 1113, 1113, 1113, 1124, 1124, 1125, 1125, 1106, 1106, - 1106, 1106, 1106, 1126, 1106, 1106, 1106, 1106, 1127, 1106, - 1128, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1129, 1130, 1131, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1132, 1133, 1132, 1134, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1135, - - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1136, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1130, 1106, 1106, 1130, 1137, 1106, 1106, 1106, 1138, - 1106, 1130, 1106, 1139, 1106, 1139, 1106, 1140, 1106, 1141, - 1141, 1141, 1106, 1106, 1106, 1106, 1142, 1106, 1142, 1106, - 1106, 1106, 1106, 1106, 1106, 1143, 1106, 1143, 1106, 1144, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1145, 1106, 1106, 1106, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147, - 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1106, - - 1106, 1148, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1149, - 1106, 1149, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1150, 1106, 1106, 1106, 1106, 1106, 1151, 1152, 1106, 1106, - 1106, 1106, 1153, 1151, 1154, 1155, 1106, 1156, 1106, 1106, - 1106, 1106, 1157, 1106, 1106, 1106, 1106, 1106, 1158, 1158, - 1159, 1106, 1106, 1160, 1106, 1106, 1106, 1161, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1162, 1106, 1106, 1106, 1163, - 1164, 1164, 1165, 1166, 1167, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1168, 1169, 1106, 1106, 1106, 1106, 1106, - - 1106, 1106, 1170, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1171, 1106, 1172, 1106, 1172, 1106, 1173, 1173, 1173, - 1106, 1106, 1174, 1106, 1174, 1106, 1106, 1106, 1106, 1175, - 1106, 1106, 1106, 1106, 1106, 1176, 1106, 1106, 1106, 1106, - 1177, 1106, 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1106, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1106, 1106, 1106, - 1106, 1106, 1180, 1106, 1106, 1106, 1106, 1181, 1182, 1183, - 1106, 1106, 1106, 1106, 1106, 1106, 1184, 1181, 1185, 1186, - - 1106, 1186, 1106, 1187, 1106, 1187, 1106, 1106, 1188, 1188, - 1188, 1106, 1188, 1188, 1106, 1189, 1106, 1106, 1190, 1106, - 1106, 1106, 1106, 1191, 1106, 1192, 1193, 1106, 1106, 1194, - 1106, 1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1196, 1196, 1197, 1106, 1106, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1106, 1106, 1183, 1183, 1106, - - 1183, 1183, 1106, 1106, 1106, 1106, 1184, 1198, 1185, 1106, - 1106, 1188, 414, 412, 412, 1188, 414, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1195, 1196, 1196, 1106, 1106, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1183, - - 1183, 1106, 1106, 1106, 1198, 1198, 1198, 1106, 511, 511, - 1188, 414, 1188, 1188, 1188, 1106, 1106, 1106, 1106, 1106, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1196, 1196, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106, 1106, 1106, - 1106, 1106, 1199, 1106, 1106, 1198, 1106, 1198, 1106, 1188, - - 1188, 1188, 1106, 1106, 1106, 1106, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1196, 1196, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1106, 1178, 1178, 1178, 1106, 1178, 1106, - 1106, 1106, 1106, 1199, 1106, 1199, 1106, 1106, 1106, 1106, - 1106, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + 1109, 1109, 1110, 1110, 1111, 1112, 1113, 1113, 1114, 1114, + 1115, 1115, 1109, 13, 1116, 1116, 1117, 1117, 1118, 1118, + 1119, 1119, 1120, 1120, 1109, 25, 1121, 1121, 1122, 1122, + 1123, 1123, 1124, 1124, 1109, 35, 1125, 1125, 1126, 1126, + 1116, 1116, 1116, 1116, 1127, 1127, 1128, 1128, 1109, 1109, + 1109, 1109, 1109, 1129, 1109, 1109, 1109, 1109, 1130, 1109, + 1131, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1132, 1133, 1134, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1135, 1136, 1135, 1137, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1138, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1139, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1133, 1109, 1109, 1133, 1140, 1109, 1109, 1109, 1141, + 1109, 1133, 1109, 1142, 1109, 1142, 1109, 1143, 1109, 1144, + 1144, 1144, 1109, 1109, 1109, 1109, 1145, 1109, 1145, 1109, + 1109, 1109, 1109, 1109, 1109, 1146, 1109, 1146, 1109, 1147, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1148, 1109, 1109, 1109, 1149, 1149, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1109, + + 1109, 1151, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1152, + 1109, 1152, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1153, 1109, 1109, 1109, 1109, 1109, 1154, 1155, 1109, 1109, + 1109, 1109, 1156, 1154, 1157, 1158, 1109, 1159, 1109, 1109, + 1109, 1109, 1160, 1109, 1109, 1109, 1109, 1109, 1161, 1161, + 1162, 1109, 1109, 1163, 1109, 1109, 1109, 1164, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1165, 1109, 1109, 1109, 1166, + 1167, 1167, 1168, 1169, 1170, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1171, 1172, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1173, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1174, 1109, 1175, 1109, 1175, 1109, 1176, 1176, 1176, + 1109, 1109, 1177, 1109, 1177, 1109, 1109, 1109, 1109, 1178, + 1109, 1109, 1109, 1109, 1109, 1179, 1109, 1109, 1109, 1109, + 1180, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1109, 1109, + 1109, 1109, 1109, 1183, 1109, 1109, 1109, 1109, 1184, 1185, + 1186, 1109, 1109, 1109, 1109, 1109, 1109, 1187, 1184, 1188, + + 1189, 1109, 1189, 1109, 1190, 1109, 1190, 1109, 1109, 1191, + 1191, 1191, 1109, 1191, 1191, 1109, 1192, 1109, 1109, 1193, + 1109, 1109, 1109, 1109, 1194, 1109, 1195, 1196, 1109, 1109, + 1197, 1109, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1200, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1186, + + 1186, 1109, 1186, 1186, 1109, 1109, 1109, 1109, 1187, 1201, + 1188, 1109, 1109, 1191, 415, 413, 413, 1191, 415, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1109, + 1109, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, + + 1109, 1109, 1186, 1186, 1109, 1109, 1109, 1201, 1201, 1201, + 1109, 513, 513, 1191, 415, 1191, 1191, 1191, 1109, 1109, + 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1109, 1109, 1109, 1109, 1109, 1202, 1109, 1109, 1201, 1109, + + 1201, 1109, 1191, 1191, 1191, 1109, 1109, 1109, 1109, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1199, 1199, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, + 1109, 1181, 1109, 1109, 1109, 1109, 1202, 1109, 1202, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, - 1195, 1195, 1195, 1195, 1195, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1178, 1178, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1200, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1195, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - - 1106, 1106, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1200, 1106, 1200, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1195, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1178, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1178, 1178, 1178, - 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106, - 1106, 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - - 1178, 1178, 1178, 1178, 1178, 0, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106 + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1203, 1109, + 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 0, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109 } ; -static yyconst flex_uint16_t yy_nxt[4060] = +static yyconst flex_uint16_t yy_nxt[4055] = { 0, 50, 51, 52, 50, 53, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, @@ -849,22 +851,22 @@ static yyconst flex_uint16_t yy_nxt[4060] = 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 50, 50, 50, 63, 64, 291, 65, 66, 83, 67, 84, 89, 68, 69, 70, - 70, 89, 1027, 70, 71, 86, 83, 992, 84, 50, - 72, 991, 87, 70, 93, 309, 94, 101, 102, 291, + 70, 89, 1030, 70, 71, 86, 83, 995, 84, 50, + 72, 994, 87, 70, 93, 309, 94, 101, 102, 291, - 103, 101, 102, 990, 103, 113, 989, 114, 119, 315, + 103, 101, 102, 993, 103, 113, 992, 114, 119, 315, 120, 121, 148, 119, 149, 120, 121, 115, 50, 73, 74, 116, 116, 116, 116, 148, 90, 149, 91, 228, 229, 90, 230, 91, 309, 93, 95, 94, 276, 124, 125, 99, 126, 96, 97, 283, 98, 284, 75, 70, - 70, 76, 77, 316, 78, 66, 988, 67, 79, 122, + 70, 76, 77, 316, 78, 66, 991, 67, 79, 122, 68, 69, 70, 70, 122, 95, 70, 71, 124, 125, 290, 126, 96, 80, 260, 261, 70, 95, 128, 201, - 129, 221, 202, 222, 96, 97, 117, 98, 410, 411, - 223, 130, 320, 415, 415, 203, 203, 203, 203, 987, + 129, 221, 202, 222, 96, 97, 117, 98, 411, 412, + 223, 130, 320, 416, 416, 203, 203, 203, 203, 990, 290, 201, 73, 74, 202, 81, 95, 221, 324, 222, - 325, 277, 225, 96, 226, 986, 223, 203, 203, 203, + 325, 277, 225, 96, 226, 989, 223, 203, 203, 203, 203, 320, 227, 232, 233, 324, 234, 325, 131, 132, 133, 75, 70, 70, 104, 105, 106, 104, 107, 104, 104, 104, 104, 104, 104, 104, 108, 104, 108, 104, @@ -876,14 +878,14 @@ static yyconst flex_uint16_t yy_nxt[4060] = 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 104, 104, 104, 113, 128, - 114, 129, 291, 151, 235, 152, 263, 263, 985, 151, + 114, 129, 291, 151, 235, 152, 263, 263, 988, 151, 115, 152, 130, 153, 116, 116, 116, 116, 157, 153, - 158, 159, 157, 366, 158, 159, 225, 333, 226, 254, - 254, 291, 255, 401, 334, 402, 227, 265, 264, 266, + 158, 159, 157, 367, 158, 159, 225, 333, 226, 254, + 254, 291, 255, 402, 334, 403, 227, 265, 264, 266, 319, 236, 267, 267, 267, 267, 290, 343, 344, 131, - 132, 133, 366, 154, 405, 155, 406, 298, 299, 154, - 300, 155, 305, 305, 305, 305, 431, 264, 432, 160, - 319, 236, 324, 160, 325, 984, 290, 343, 344, 117, + 132, 133, 367, 154, 406, 155, 407, 298, 299, 154, + 300, 155, 305, 305, 305, 305, 432, 264, 433, 160, + 319, 236, 324, 160, 325, 987, 290, 343, 344, 117, 134, 134, 135, 134, 136, 137, 134, 134, 134, 138, 134, 134, 134, 134, 134, 134, 134, 139, 134, 134, @@ -896,13 +898,13 @@ static yyconst flex_uint16_t yy_nxt[4060] = 142, 145, 134, 146, 162, 163, 205, 164, 206, 162, 163, 165, 164, 353, 211, 211, 165, 333, 216, 351, - 166, 212, 212, 358, 334, 166, 379, 379, 379, 379, - 324, 217, 325, 352, 213, 213, 346, 359, 347, 360, - 315, 218, 348, 353, 214, 214, 219, 167, 371, 215, - 215, 376, 167, 358, 168, 169, 207, 170, 208, 168, - 169, 217, 170, 352, 213, 213, 346, 359, 347, 360, - 218, 348, 983, 214, 214, 219, 167, 371, 215, 215, - 376, 167, 982, 168, 316, 209, 981, 210, 168, 171, + 166, 212, 212, 358, 334, 166, 380, 380, 380, 380, + 324, 217, 325, 352, 213, 213, 346, 359, 347, 371, + 315, 218, 348, 353, 214, 214, 219, 167, 372, 215, + 215, 377, 167, 358, 168, 169, 207, 170, 208, 168, + 169, 217, 170, 352, 213, 213, 346, 359, 347, 371, + 218, 348, 986, 214, 214, 219, 167, 372, 215, 215, + 377, 167, 985, 168, 316, 209, 984, 210, 168, 171, 172, 173, 171, 174, 175, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 176, 177, 171, 171, 171, 178, 171, 171, 179, 180, 181, 182, @@ -912,373 +914,373 @@ static yyconst flex_uint16_t yy_nxt[4060] = 199, 171, 171, 171, 171, 171, 179, 180, 181, 182, 183, 184, 185, 186, 187, 185, 185, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 185, 199, - 171, 171, 171, 205, 216, 206, 249, 250, 370, 251, - 263, 263, 452, 252, 354, 269, 270, 217, 271, 263, - 263, 453, 272, 456, 372, 263, 263, 218, 349, 356, - 364, 273, 219, 410, 411, 355, 350, 274, 370, 980, - 365, 452, 264, 373, 354, 374, 375, 217, 941, 357, - - 453, 264, 456, 207, 372, 208, 218, 264, 349, 356, - 364, 219, 387, 361, 355, 398, 350, 362, 235, 275, - 365, 264, 408, 373, 940, 374, 375, 425, 357, 939, - 264, 428, 209, 429, 210, 238, 264, 253, 228, 229, - 367, 230, 387, 361, 412, 398, 253, 362, 232, 233, - 368, 234, 408, 369, 239, 236, 240, 425, 240, 249, - 250, 428, 251, 429, 240, 938, 252, 240, 241, 242, - 367, 240, 243, 244, 410, 411, 937, 245, 298, 299, - 368, 300, 369, 936, 239, 236, 240, 935, 240, 445, - 446, 934, 390, 391, 240, 392, 933, 240, 241, 242, - - 240, 243, 244, 932, 390, 391, 245, 392, 246, 393, - 393, 393, 393, 390, 391, 931, 392, 413, 413, 445, - 446, 393, 393, 393, 393, 390, 391, 458, 392, 448, - 393, 393, 393, 393, 461, 394, 305, 305, 305, 305, - 253, 449, 393, 393, 393, 393, 450, 930, 462, 414, - 269, 270, 454, 271, 395, 464, 458, 272, 459, 448, - 451, 463, 460, 461, 394, 396, 273, 465, 929, 455, - 466, 449, 274, 468, 467, 469, 450, 462, 414, 470, - 471, 472, 454, 473, 395, 464, 474, 476, 459, 451, - 463, 480, 460, 482, 481, 396, 475, 465, 455, 485, - - 466, 486, 468, 467, 275, 469, 262, 262, 470, 471, - 472, 401, 473, 402, 410, 411, 474, 476, 401, 928, - 402, 480, 927, 482, 481, 475, 926, 497, 485, 504, - 486, 253, 433, 434, 435, 436, 437, 437, 438, 437, - 437, 437, 437, 439, 437, 437, 437, 440, 437, 437, - 441, 437, 442, 437, 437, 443, 437, 497, 504, 405, - 444, 406, 433, 434, 435, 436, 437, 437, 438, 437, - 437, 437, 437, 439, 437, 437, 437, 440, 437, 441, - 437, 442, 437, 437, 443, 437, 477, 483, 499, 500, - 478, 501, 505, 506, 484, 479, 379, 379, 379, 379, - - 508, 405, 431, 406, 432, 502, 502, 502, 502, 510, - 511, 925, 520, 512, 512, 924, 477, 483, 548, 923, - 478, 505, 922, 506, 484, 479, 487, 521, 488, 522, - 508, 489, 490, 503, 391, 921, 392, 491, 492, 510, - 410, 411, 520, 493, 494, 513, 523, 548, 495, 409, - 393, 393, 393, 393, 920, 496, 487, 521, 488, 522, - 919, 489, 490, 519, 519, 519, 519, 491, 492, 431, - 914, 432, 493, 494, 513, 913, 523, 495, 409, 409, - 861, 409, 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, - - 409, 409, 409, 409, 409, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 410, 411, 860, 515, 409, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 514, 409, - 409, 409, 516, 516, 546, 547, 524, 524, 524, 524, - 524, 524, 524, 524, 549, 558, 550, 599, 859, 600, - 524, 524, 858, 525, 526, 528, 533, 527, 551, 535, - 530, 857, 529, 534, 546, 547, 410, 411, 517, 517, - - 517, 517, 531, 549, 558, 532, 550, 517, 517, 517, - 517, 517, 517, 525, 526, 528, 533, 527, 551, 535, - 530, 529, 552, 534, 560, 553, 554, 555, 556, 856, - 557, 531, 410, 411, 532, 559, 855, 517, 517, 517, - 517, 517, 517, 1106, 561, 562, 563, 565, 536, 537, - 538, 539, 552, 560, 540, 553, 554, 555, 556, 541, - 557, 564, 567, 542, 568, 559, 543, 854, 544, 569, - 853, 545, 570, 561, 571, 562, 563, 565, 536, 537, - 538, 539, 572, 573, 540, 574, 575, 576, 577, 541, - 564, 578, 567, 542, 568, 543, 581, 544, 582, 569, - - 545, 579, 570, 583, 571, 584, 585, 580, 586, 587, - 606, 588, 572, 573, 589, 574, 575, 576, 577, 590, - 591, 578, 592, 593, 852, 594, 581, 582, 598, 851, - 595, 579, 583, 596, 597, 584, 585, 580, 586, 587, - 588, 500, 602, 600, 589, 503, 391, 603, 392, 590, - 591, 619, 592, 593, 594, 604, 499, 500, 598, 501, - 595, 608, 596, 597, 601, 500, 599, 501, 600, 410, - 411, 259, 602, 502, 502, 502, 502, 603, 410, 411, - 619, 502, 502, 502, 502, 604, 601, 500, 850, 501, - 607, 608, 409, 409, 848, 409, 409, 409, 409, 409, - - 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, 409, 609, - 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 609, 609, 609, 410, 411, 613, 610, 409, 609, - 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 609, 609, 409, 409, 409, 611, 611, 616, 409, - 524, 524, 614, 614, 524, 524, 524, 845, 617, 618, - 623, 828, 696, 697, 524, 698, 524, 625, 621, 626, - - 622, 775, 629, 776, 817, 624, 524, 700, 616, 628, - 410, 411, 612, 612, 612, 612, 410, 411, 617, 618, - 623, 612, 612, 612, 612, 612, 612, 625, 621, 626, - 622, 524, 629, 627, 624, 806, 524, 524, 524, 628, - 409, 524, 630, 781, 632, 644, 643, 524, 524, 636, - 780, 612, 612, 612, 612, 612, 612, 615, 615, 615, - 615, 631, 627, 633, 634, 524, 615, 615, 615, 615, - 615, 615, 630, 524, 632, 644, 643, 779, 646, 636, - 524, 645, 647, 635, 524, 649, 524, 524, 650, 651, - 652, 631, 653, 633, 634, 637, 615, 615, 615, 615, - - 615, 615, 639, 638, 697, 640, 641, 642, 646, 654, - 645, 647, 656, 635, 649, 655, 658, 650, 657, 651, - 652, 659, 606, 660, 637, 661, 662, 692, 664, 665, - 669, 639, 667, 638, 640, 668, 641, 642, 670, 654, - 671, 672, 656, 673, 675, 655, 658, 657, 674, 676, - 677, 659, 660, 678, 661, 679, 662, 664, 680, 665, - 669, 667, 681, 683, 668, 682, 684, 670, 685, 687, - 671, 672, 686, 673, 675, 688, 690, 674, 676, 677, - 693, 689, 691, 678, 694, 679, 695, 703, 680, 701, - 701, 705, 681, 683, 682, 684, 524, 524, 685, 687, - - 706, 686, 607, 768, 524, 688, 690, 410, 411, 693, - 689, 524, 691, 524, 694, 695, 708, 703, 524, 710, - 705, 707, 524, 410, 411, 702, 702, 702, 702, 709, - 706, 711, 524, 712, 702, 702, 702, 702, 702, 702, - 714, 713, 524, 524, 524, 524, 708, 764, 710, 715, - 707, 716, 717, 524, 524, 775, 718, 776, 721, 709, - 524, 711, 524, 712, 702, 702, 702, 702, 702, 702, - 714, 713, 719, 723, 720, 524, 524, 524, 524, 715, - 724, 716, 717, 524, 722, 524, 718, 524, 721, 726, - 728, 752, 731, 732, 734, 727, 730, 748, 733, 736, - - 741, 738, 719, 723, 720, 725, 735, 729, 743, 740, - 724, 739, 742, 722, 744, 745, 746, 747, 749, 726, - 728, 731, 750, 732, 734, 727, 730, 733, 751, 736, - 741, 738, 753, 754, 725, 755, 735, 729, 740, 756, - 739, 757, 742, 744, 758, 745, 746, 747, 749, 759, - 761, 750, 760, 762, 763, 765, 766, 767, 751, 769, - 770, 753, 754, 771, 755, 772, 773, 777, 778, 756, - 757, 696, 697, 758, 698, 410, 411, 409, 524, 759, - 761, 760, 762, 524, 763, 765, 766, 767, 524, 769, - 770, 524, 771, 410, 411, 772, 773, 777, 778, 524, - - 782, 524, 786, 784, 783, 524, 524, 785, 524, 524, - 524, 524, 524, 787, 524, 791, 524, 524, 524, 363, - 363, 807, 793, 737, 795, 802, 524, 788, 796, 524, - 782, 786, 789, 784, 783, 790, 792, 785, 524, 797, - 524, 794, 798, 787, 524, 791, 799, 800, 524, 804, - 524, 807, 793, 808, 795, 802, 788, 803, 796, 805, - 811, 789, 801, 809, 790, 792, 812, 813, 797, 814, - 794, 815, 798, 810, 704, 816, 799, 800, 818, 804, - 819, 820, 808, 821, 822, 823, 825, 803, 824, 805, - 811, 826, 801, 809, 827, 829, 812, 813, 814, 830, - - 815, 831, 838, 810, 816, 839, 846, 775, 818, 776, - 819, 820, 849, 821, 822, 823, 825, 824, 847, 524, - 917, 826, 918, 827, 864, 829, 832, 833, 524, 830, - 831, 834, 838, 524, 835, 839, 846, 836, 840, 841, - 524, 849, 837, 842, 524, 878, 843, 524, 847, 844, - 863, 524, 862, 524, 864, 865, 832, 833, 524, 868, - 866, 834, 524, 524, 835, 524, 875, 836, 840, 841, - 876, 837, 872, 842, 878, 867, 843, 870, 524, 844, - 863, 862, 871, 880, 869, 865, 882, 873, 877, 868, - 866, 874, 879, 881, 409, 883, 875, 884, 699, 885, - - 876, 886, 872, 887, 867, 888, 870, 889, 890, 891, - 892, 871, 880, 869, 894, 882, 873, 895, 877, 896, - 902, 874, 879, 881, 883, 901, 893, 884, 885, 903, - 904, 886, 887, 905, 907, 888, 906, 889, 890, 891, - 892, 897, 692, 911, 894, 898, 895, 912, 899, 896, - 902, 915, 943, 908, 901, 893, 909, 524, 900, 903, - 904, 944, 946, 905, 907, 906, 910, 945, 947, 948, - 950, 897, 911, 949, 951, 898, 912, 952, 899, 953, - 915, 942, 943, 908, 954, 955, 909, 900, 956, 666, - 957, 944, 946, 958, 959, 910, 945, 960, 947, 948, - - 950, 961, 949, 962, 951, 963, 964, 952, 965, 953, - 942, 966, 967, 954, 968, 955, 969, 971, 956, 957, - 970, 972, 973, 958, 959, 974, 975, 960, 976, 979, - 961, 977, 917, 962, 918, 963, 964, 917, 965, 918, - 966, 967, 993, 994, 968, 995, 969, 971, 978, 970, - 996, 972, 973, 997, 974, 975, 998, 976, 979, 999, - 1000, 977, 1001, 663, 1002, 1003, 1004, 648, 1005, 1006, - 1007, 993, 1008, 994, 1009, 995, 1010, 978, 1011, 1012, - 996, 1013, 1014, 997, 1015, 1016, 998, 1017, 1018, 999, - 1000, 1019, 1001, 1002, 1003, 1020, 1004, 1005, 1021, 1006, - - 1007, 1008, 1022, 1009, 1025, 1010, 1023, 1026, 1011, 1012, - 1024, 1013, 1014, 1015, 1016, 1028, 1017, 1029, 1018, 1030, - 1031, 1019, 1032, 1033, 1034, 1020, 1035, 1036, 1021, 1037, - 1038, 1022, 1039, 1025, 1040, 1023, 1041, 1026, 1042, 1024, - 1043, 1044, 1045, 1046, 1047, 1028, 1048, 1029, 1030, 1049, - 1031, 1032, 1033, 1034, 1050, 1057, 1035, 1036, 1037, 1038, - 1051, 1052, 1039, 1053, 1040, 1054, 1041, 1055, 1042, 1056, - 1043, 1044, 1045, 1046, 1047, 1048, 1058, 1059, 1060, 1049, - 1061, 620, 1062, 1063, 1050, 1057, 1064, 1065, 1066, 1051, - 1052, 1067, 1053, 1068, 1054, 1069, 1055, 1070, 1056, 1071, - - 1072, 1073, 1074, 1075, 409, 1076, 1058, 1059, 1060, 1077, - 1061, 1062, 1078, 1063, 1079, 1080, 1064, 1065, 1066, 1081, - 1067, 1082, 1083, 1068, 1084, 1069, 1085, 1070, 1086, 1071, - 1072, 1073, 1074, 1075, 1076, 1087, 1088, 1089, 1077, 1090, - 1091, 1092, 1078, 1079, 1093, 1080, 1094, 566, 1095, 1081, - 1082, 1096, 1083, 1097, 1084, 1098, 1085, 1099, 1086, 1100, - 1101, 524, 1102, 1103, 1104, 1087, 1088, 1089, 1090, 1091, - 1105, 1092, 416, 1093, 416, 420, 1094, 1095, 391, 518, - 1096, 518, 1097, 378, 457, 1098, 342, 1099, 1100, 339, - 1101, 1102, 1103, 336, 1104, 301, 299, 301, 296, 286, - - 1105, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 82, 82, + 171, 171, 171, 205, 216, 206, 249, 250, 373, 251, + 263, 263, 453, 252, 354, 269, 270, 217, 271, 263, + 263, 454, 272, 457, 374, 263, 263, 218, 349, 356, + 365, 273, 219, 411, 412, 355, 350, 274, 373, 983, + 366, 453, 264, 375, 354, 376, 235, 217, 944, 357, + + 454, 264, 457, 207, 374, 208, 218, 264, 349, 356, + 365, 219, 388, 360, 355, 399, 350, 361, 362, 275, + 366, 264, 363, 375, 943, 376, 228, 229, 357, 230, + 264, 409, 209, 236, 210, 238, 264, 253, 232, 233, + 368, 234, 388, 360, 413, 399, 253, 361, 362, 426, + 369, 429, 363, 370, 239, 430, 240, 446, 240, 249, + 250, 409, 251, 236, 240, 942, 252, 240, 241, 242, + 368, 240, 243, 244, 411, 412, 402, 245, 403, 426, + 369, 429, 370, 941, 239, 430, 240, 446, 240, 447, + 449, 940, 391, 392, 240, 393, 616, 240, 241, 242, + + 240, 243, 244, 939, 391, 392, 245, 393, 246, 394, + 394, 394, 394, 391, 392, 938, 393, 414, 414, 447, + 449, 394, 394, 394, 394, 391, 392, 459, 393, 410, + 394, 394, 394, 394, 609, 395, 298, 299, 450, 300, + 253, 462, 394, 394, 394, 394, 455, 937, 463, 415, + 269, 270, 464, 271, 396, 451, 459, 272, 305, 305, + 305, 305, 469, 456, 395, 397, 273, 460, 450, 452, + 462, 461, 274, 465, 703, 466, 455, 463, 415, 467, + 470, 464, 472, 468, 396, 451, 471, 936, 473, 474, + 475, 469, 456, 478, 484, 397, 482, 460, 452, 483, + + 402, 461, 403, 465, 275, 466, 406, 410, 407, 467, + 470, 472, 468, 406, 610, 407, 471, 473, 474, 475, + 262, 262, 935, 478, 484, 432, 482, 433, 487, 483, + 488, 253, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 438, + 442, 438, 443, 438, 438, 444, 438, 487, 934, 488, + 445, 499, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 442, + 438, 443, 438, 438, 444, 438, 476, 485, 479, 933, + 506, 499, 480, 508, 486, 932, 477, 481, 380, 380, + + 380, 380, 507, 521, 521, 521, 521, 510, 432, 931, + 433, 512, 513, 602, 522, 603, 476, 485, 479, 506, + 411, 412, 480, 508, 486, 477, 523, 481, 489, 524, + 490, 507, 930, 491, 492, 501, 502, 510, 503, 493, + 494, 512, 411, 412, 522, 495, 496, 525, 505, 392, + 497, 393, 504, 504, 504, 504, 523, 498, 489, 524, + 490, 514, 514, 491, 492, 394, 394, 394, 394, 493, + 494, 518, 518, 526, 495, 496, 526, 525, 526, 497, + 526, 548, 549, 929, 550, 551, 552, 553, 537, 527, + 554, 530, 502, 515, 603, 532, 928, 410, 505, 392, + + 602, 393, 603, 411, 412, 411, 412, 604, 502, 927, + 503, 548, 549, 550, 551, 926, 552, 553, 537, 527, + 554, 530, 515, 410, 410, 532, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 411, 412, 925, 517, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + + 516, 516, 516, 516, 410, 410, 410, 519, 519, 519, + 519, 526, 526, 526, 526, 555, 519, 519, 519, 519, + 519, 519, 556, 526, 526, 557, 558, 528, 559, 561, + 529, 924, 560, 562, 563, 531, 533, 564, 923, 534, + 565, 411, 412, 535, 536, 555, 519, 519, 519, 519, + 519, 519, 556, 922, 567, 557, 558, 528, 559, 561, + 529, 560, 562, 563, 531, 533, 569, 564, 534, 570, + 565, 917, 566, 535, 536, 1109, 571, 572, 573, 574, + 538, 539, 540, 541, 567, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 609, 544, 569, 585, 545, 570, + + 546, 566, 586, 547, 584, 587, 571, 572, 573, 574, + 538, 539, 540, 541, 588, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 582, 544, 585, 545, 589, 546, + 583, 586, 547, 590, 584, 587, 591, 592, 593, 594, + 595, 596, 916, 597, 588, 598, 601, 864, 599, 600, + 778, 605, 779, 863, 582, 606, 862, 607, 589, 611, + 583, 619, 620, 590, 621, 591, 622, 592, 593, 594, + 595, 596, 597, 861, 610, 598, 601, 599, 600, 501, + 502, 605, 503, 604, 502, 606, 503, 607, 778, 611, + 779, 619, 620, 860, 621, 622, 504, 504, 504, 504, + + 504, 504, 504, 504, 410, 410, 859, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 411, 412, 858, 613, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 410, 410, 410, 614, 614, + 526, 526, 526, 857, 617, 617, 526, 526, 778, 526, + + 779, 626, 629, 526, 526, 526, 411, 412, 259, 624, + 628, 625, 526, 856, 627, 526, 631, 635, 855, 630, + 633, 636, 411, 412, 615, 615, 615, 615, 411, 412, + 632, 626, 629, 615, 615, 615, 615, 615, 615, 624, + 628, 625, 526, 627, 526, 526, 631, 635, 630, 854, + 633, 636, 853, 526, 647, 526, 526, 639, 526, 648, + 632, 637, 634, 615, 615, 615, 615, 615, 615, 618, + 618, 618, 618, 638, 526, 640, 644, 641, 618, 618, + 618, 618, 618, 618, 647, 526, 526, 639, 648, 649, + 654, 637, 634, 650, 646, 851, 642, 652, 653, 643, + + 655, 848, 659, 638, 640, 645, 644, 641, 618, 618, + 618, 618, 618, 618, 656, 660, 661, 662, 665, 649, + 654, 663, 650, 664, 646, 642, 652, 653, 643, 667, + 655, 657, 659, 668, 672, 645, 670, 658, 831, 671, + 673, 674, 675, 676, 660, 677, 661, 662, 665, 678, + 663, 679, 664, 680, 681, 682, 683, 684, 667, 685, + 686, 657, 687, 668, 672, 670, 688, 658, 671, 673, + 689, 674, 675, 676, 677, 690, 693, 691, 694, 678, + 679, 696, 680, 692, 681, 682, 683, 684, 685, 697, + 686, 687, 698, 706, 699, 700, 688, 701, 708, 689, + + 704, 704, 709, 526, 526, 690, 693, 691, 694, 526, + 696, 526, 692, 526, 820, 526, 526, 526, 526, 697, + 526, 698, 712, 706, 714, 711, 716, 708, 710, 721, + 526, 713, 709, 717, 411, 412, 705, 705, 705, 705, + 715, 726, 809, 728, 526, 705, 705, 705, 705, 705, + 705, 718, 712, 526, 714, 711, 716, 710, 526, 721, + 713, 526, 720, 717, 526, 719, 724, 526, 526, 526, + 715, 726, 728, 727, 526, 705, 705, 705, 705, 705, + 705, 718, 722, 526, 723, 526, 734, 729, 526, 732, + 784, 725, 720, 731, 735, 719, 724, 736, 733, 737, + + 739, 730, 744, 727, 743, 745, 741, 783, 747, 748, + 749, 738, 722, 750, 723, 734, 742, 729, 752, 732, + 725, 753, 754, 731, 735, 756, 736, 757, 733, 737, + 739, 730, 744, 743, 758, 745, 741, 747, 759, 748, + 749, 738, 760, 750, 761, 742, 762, 764, 752, 763, + 753, 765, 754, 766, 756, 768, 757, 769, 770, 772, + 773, 782, 774, 758, 775, 776, 780, 781, 759, 699, + 700, 760, 701, 761, 411, 412, 762, 764, 763, 700, + 765, 411, 412, 766, 526, 768, 526, 769, 770, 772, + 773, 774, 526, 526, 775, 776, 780, 781, 411, 412, + + 410, 785, 526, 526, 790, 526, 526, 786, 787, 526, + 789, 526, 526, 526, 526, 526, 526, 695, 526, 788, + 794, 526, 810, 803, 526, 796, 771, 791, 798, 526, + 792, 785, 526, 793, 790, 795, 799, 786, 787, 789, + 797, 526, 526, 800, 802, 801, 526, 804, 805, 788, + 794, 807, 810, 803, 526, 796, 791, 808, 798, 792, + 811, 806, 793, 812, 795, 814, 799, 815, 816, 797, + 817, 818, 800, 813, 802, 801, 819, 804, 805, 821, + 822, 807, 823, 824, 825, 826, 828, 808, 827, 811, + 829, 806, 830, 812, 832, 814, 833, 815, 816, 817, + + 818, 834, 852, 813, 841, 819, 842, 849, 526, 821, + 822, 850, 823, 824, 825, 826, 828, 827, 526, 767, + 829, 830, 364, 364, 832, 866, 833, 835, 836, 526, + 834, 852, 837, 526, 841, 838, 842, 849, 839, 843, + 844, 850, 865, 840, 845, 869, 526, 846, 868, 526, + 847, 867, 526, 526, 526, 866, 878, 835, 836, 526, + 526, 879, 837, 526, 871, 838, 877, 880, 839, 843, + 844, 865, 840, 870, 845, 869, 872, 846, 868, 526, + 847, 867, 881, 873, 874, 876, 878, 882, 875, 755, + 883, 879, 884, 887, 871, 885, 877, 880, 886, 888, + + 889, 891, 870, 890, 892, 872, 893, 894, 897, 895, + 899, 881, 873, 874, 876, 898, 905, 882, 875, 883, + 904, 906, 884, 887, 885, 896, 907, 886, 888, 908, + 889, 891, 890, 909, 892, 910, 893, 894, 897, 895, + 899, 900, 526, 914, 898, 901, 905, 911, 902, 904, + 912, 906, 915, 918, 896, 920, 907, 921, 903, 908, + 913, 946, 909, 947, 949, 910, 945, 948, 950, 951, + 953, 900, 914, 952, 954, 901, 955, 911, 902, 956, + 912, 915, 918, 957, 958, 959, 961, 903, 960, 913, + 962, 946, 963, 947, 949, 945, 948, 964, 950, 951, + + 953, 965, 952, 966, 954, 967, 955, 968, 971, 956, + 969, 970, 957, 972, 958, 959, 961, 960, 973, 974, + 962, 975, 963, 976, 751, 977, 964, 978, 979, 980, + 997, 965, 982, 966, 920, 967, 921, 968, 971, 969, + 970, 996, 920, 972, 921, 1005, 981, 973, 998, 974, + 999, 975, 1000, 976, 977, 1001, 978, 979, 1002, 980, + 997, 982, 1003, 1004, 746, 1006, 1007, 740, 1008, 1009, + 996, 1010, 707, 1011, 1005, 981, 1012, 1013, 998, 1014, + 999, 1015, 1000, 1016, 1017, 1001, 1018, 1019, 1002, 1020, + 1021, 1022, 1003, 1004, 1006, 1023, 1007, 1008, 1024, 1009, + + 1025, 1010, 1011, 1026, 1028, 1012, 1013, 1027, 1029, 1014, + 1031, 1015, 1032, 1016, 1017, 1018, 1019, 1033, 1020, 1034, + 1021, 1022, 1035, 1036, 1037, 1023, 1038, 1039, 1024, 1025, + 1040, 1041, 1026, 1028, 1042, 1043, 1027, 1044, 1029, 1045, + 1031, 1046, 1032, 1047, 1048, 1049, 1033, 1050, 1052, 1034, + 1051, 1035, 1036, 1037, 1053, 1060, 1038, 1039, 1054, 1040, + 1041, 1055, 1056, 1057, 1042, 1043, 1058, 1044, 1059, 1045, + 1061, 1046, 1062, 1047, 1048, 1049, 1063, 1050, 1052, 1051, + 1064, 410, 1065, 1066, 1053, 1060, 1067, 1054, 1068, 1069, + 1055, 1056, 1057, 1070, 1071, 1058, 1072, 1059, 1073, 1074, + + 1061, 1075, 1062, 1076, 1077, 1078, 1063, 1079, 1080, 1081, + 1064, 1065, 1082, 1066, 1083, 1084, 1067, 1085, 1068, 1069, + 1086, 1087, 1070, 1088, 1071, 1089, 1072, 1090, 1073, 1074, + 1091, 1075, 1092, 1076, 1077, 1078, 1079, 1080, 1093, 1081, + 1094, 1082, 1095, 1097, 1083, 1084, 1085, 1096, 1098, 1099, + 1086, 1087, 1100, 1088, 1101, 1089, 1102, 1090, 1103, 1104, + 1091, 1105, 1092, 1106, 1107, 1108, 417, 1093, 417, 1094, + 702, 695, 1095, 1097, 669, 666, 1096, 1098, 1099, 651, + 520, 1100, 520, 623, 1101, 410, 1102, 1103, 568, 1104, + 1105, 526, 1106, 421, 1107, 1108, 62, 62, 62, 62, + + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 92, + 85, 85, 85, 85, 85, 85, 85, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 92, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 50, 50, - 100, 100, 100, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 118, 118, 123, 123, 123, 123, 123, 123, + 112, 112, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 147, 147, + 123, 123, 123, 123, 123, 123, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 161, + 150, 150, 150, 150, 150, 150, 150, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 204, 204, 204, 204, 204, 204, 204, + 161, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 224, 224, 224, - 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 224, 224, 224, 231, 231, 282, 231, 231, 423, - 422, 421, 231, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 248, - 248, 270, 248, 248, 420, 418, 417, 248, 259, 407, + 220, 220, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 231, + 231, 392, 231, 231, 379, 458, 342, 231, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 248, 248, 339, 248, 248, 336, + 301, 299, 248, 259, 301, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 262, 254, 262, 262, 262, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 262, 268, 268, 268, 403, 268, 268, 250, 233, - - 229, 268, 280, 386, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 281, - 385, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 285, 285, 285, 285, - 285, 285, 285, 285, 285, 285, 285, 285, 384, 285, - 382, 285, 285, 295, 381, 380, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 303, 303, 378, 303, 303, 342, 340, 339, 303, 308, - 338, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 311, 337, 311, 311, + 262, 296, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 268, 268, 268, + 286, 268, 268, 282, 424, 423, 268, 280, 422, 280, - 311, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 317, 311, 311, 312, 336, 312, 335, 331, 312, 312, - 312, 312, 312, 329, 328, 327, 312, 314, 326, 314, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 281, 270, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 421, 285, 419, 285, 285, 295, 418, + 408, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 303, 303, 254, 303, 303, + 404, 250, 233, 303, 308, 229, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 311, 387, 311, 311, 311, 311, 311, 311, 311, + + 311, 311, 311, 311, 311, 386, 311, 311, 312, 385, + 312, 383, 382, 312, 312, 312, 312, 312, 381, 379, + 342, 312, 314, 340, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 318, + 318, 339, 318, 318, 338, 337, 317, 318, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 330, 336, 330, 335, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 331, 330, + 330, 330, 332, 329, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 341, + + 328, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 345, 345, 327, 326, + 345, 345, 378, 322, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 384, + 321, 384, 384, 384, 317, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 231, 231, 313, 231, + 231, 307, 310, 307, 231, 389, 306, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 390, 304, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 398, + + 398, 302, 299, 301, 398, 400, 400, 297, 296, 294, + 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 248, 248, + 293, 248, 248, 292, 289, 288, 248, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 287, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 286, 410, + 410, 259, 282, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 420, 420, + 279, 420, 420, 278, 270, 258, 420, 420, 425, 257, + + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 280, 256, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 281, 250, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 427, + 247, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 427, 428, 233, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 229, 285, 1109, 285, 285, + + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 295, 111, 111, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 303, 303, 1109, 303, 303, 1109, + 1109, 1109, 303, 312, 1109, 312, 1109, 1109, 312, 312, + 312, 312, 312, 1109, 1109, 1109, 312, 314, 1109, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 318, 318, 322, 318, 318, 321, - 317, 313, 318, 323, 323, 323, 323, 323, 323, 323, + 314, 314, 314, 314, 318, 318, 1109, 318, 318, 1109, + 1109, 1109, 318, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - 330, 307, 330, 310, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 307, 330, 330, 330, 332, 306, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 341, 304, 341, 341, 341, 341, + 330, 1109, 330, 1109, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 1109, 330, 330, 330, 448, 1109, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 341, 1109, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 345, 345, 302, 299, 345, 345, 377, 301, 377, - 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 383, 297, 383, 383, 383, 296, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, - 383, 231, 231, 294, 231, 231, 293, 292, 289, 231, - 388, 288, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 389, 287, 389, - 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, - - 389, 389, 389, 389, 397, 397, 286, 282, 279, 397, - 399, 399, 278, 270, 258, 399, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 248, 248, 257, 248, 248, 256, 250, - 247, 248, 404, 404, 404, 404, 404, 404, 404, 404, - 404, 404, 404, 404, 404, 404, 404, 404, 404, 409, - 233, 409, 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 229, 409, 409, 259, 1106, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 419, 419, 111, 419, 419, 111, 1106, - - 1106, 419, 419, 424, 1106, 424, 424, 424, 424, 424, - 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, - 280, 1106, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 281, 1106, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 426, 1106, 426, 426, 426, 426, - 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, - 426, 427, 1106, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 427, 427, 285, 285, - 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, - - 1106, 285, 1106, 285, 285, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 295, 1106, 1106, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 303, - 303, 1106, 303, 303, 1106, 1106, 1106, 303, 312, 1106, - 312, 1106, 1106, 312, 312, 312, 312, 312, 1106, 1106, - 1106, 312, 314, 1106, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 318, - 318, 1106, 318, 318, 1106, 1106, 1106, 318, 323, 323, - 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 341, 345, 345, 1109, 1109, 345, 345, 378, 1109, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 384, 1109, 384, 384, 384, 1109, + 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 389, 1109, 389, 389, 389, 389, 389, 389, 389, + + 389, 389, 389, 389, 389, 389, 389, 389, 390, 1109, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 509, 509, 1109, 509, 509, 1109, 1109, 1109, + 509, 511, 511, 1109, 511, 511, 1109, 1109, 1109, 511, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 1109, 410, 410, 410, 410, + + 410, 410, 410, 410, 410, 410, 410, 410, 1109, 410, + 410, 420, 420, 1109, 420, 420, 1109, 1109, 1109, 420, + 420, 425, 1109, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 427, 1109, + 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 428, 1109, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 438, + 438, 438, 318, 318, 1109, 318, 318, 1109, 1109, 1109, + + 318, 448, 1109, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 608, 1109, + 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, + 608, 608, 608, 608, 608, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 919, 919, 919, 919, 919, 919, 919, 919, + 919, 919, 919, 919, 919, 919, 919, 919, 919, 49, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, - 323, 323, 323, 323, 323, 330, 1106, 330, 1106, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 1106, 330, - 330, 330, 447, 1106, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 341, - 1106, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 345, 345, 1106, 1106, - 345, 345, 377, 1106, 377, 377, 377, 377, 377, 377, - 377, 377, 377, 377, 377, 377, 377, 377, 377, 383, - 1106, 383, 383, 383, 1106, 383, 383, 383, 383, 383, - 383, 383, 383, 383, 383, 383, 388, 1106, 388, 388, - - 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 389, 1106, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 507, 507, 1106, - 507, 507, 1106, 1106, 1106, 507, 509, 509, 1106, 509, - 509, 1106, 1106, 1106, 509, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 404, 404, 404, 404, 404, 404, 404, 404, - 404, 404, 404, 404, 404, 404, 404, 404, 404, 409, - - 1106, 409, 409, 409, 409, 409, 409, 409, 409, 409, - 409, 409, 409, 1106, 409, 409, 419, 419, 1106, 419, - 419, 1106, 1106, 1106, 419, 419, 424, 1106, 424, 424, - 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, - 424, 424, 424, 426, 1106, 426, 426, 426, 426, 426, - 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, - 427, 1106, 427, 427, 427, 427, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 427, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 437, 437, 437, 318, 318, 1106, - - 318, 318, 1106, 1106, 1106, 318, 447, 1106, 447, 447, - 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 447, 605, 1106, 605, 605, 605, 605, 605, - 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, - 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, - 774, 774, 774, 774, 774, 774, 774, 916, 916, 916, - 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, - 916, 916, 916, 916, 49, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106 + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 } ; -static yyconst flex_int16_t yy_chk[4060] = +static yyconst flex_int16_t yy_chk[4055] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1299,22 +1301,22 @@ static yyconst flex_int16_t yy_chk[4060] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 96, 3, 3, 5, 3, 5, 7, 3, 3, 3, - 3, 8, 992, 3, 3, 6, 6, 942, 6, 21, - 3, 941, 6, 3, 9, 126, 9, 11, 11, 96, + 3, 8, 995, 3, 3, 6, 6, 945, 6, 21, + 3, 944, 6, 3, 9, 126, 9, 11, 11, 96, - 11, 12, 12, 940, 12, 17, 939, 17, 19, 138, + 11, 12, 12, 943, 12, 17, 942, 17, 19, 138, 19, 19, 27, 20, 27, 20, 20, 17, 22, 3, 3, 17, 17, 17, 17, 28, 7, 28, 7, 51, 51, 8, 51, 8, 126, 10, 9, 10, 79, 21, 21, 10, 21, 9, 9, 87, 9, 87, 3, 3, - 3, 4, 4, 138, 4, 4, 938, 4, 4, 19, + 3, 4, 4, 138, 4, 4, 941, 4, 4, 19, 4, 4, 4, 4, 20, 9, 4, 4, 22, 22, 95, 22, 9, 4, 73, 73, 4, 10, 23, 37, 23, 45, 37, 45, 10, 10, 17, 10, 259, 259, - 45, 23, 142, 263, 263, 37, 37, 37, 37, 937, + 45, 23, 142, 263, 263, 37, 37, 37, 37, 940, 95, 38, 4, 4, 38, 4, 10, 46, 147, 46, - 147, 79, 47, 10, 47, 936, 46, 38, 38, 38, + 147, 79, 47, 10, 47, 939, 46, 38, 38, 38, 38, 142, 47, 55, 55, 149, 55, 149, 23, 23, 23, 4, 4, 4, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, @@ -1326,14 +1328,14 @@ static yyconst flex_int16_t yy_chk[4060] = 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 18, 24, - 18, 24, 168, 29, 58, 29, 74, 74, 935, 30, + 18, 24, 168, 29, 58, 29, 74, 74, 938, 30, 18, 30, 24, 29, 18, 18, 18, 18, 31, 30, 31, 31, 32, 191, 32, 32, 48, 162, 48, 67, 67, 168, 67, 246, 162, 246, 48, 75, 74, 75, 141, 58, 75, 75, 75, 75, 167, 176, 177, 24, 24, 24, 191, 29, 253, 29, 253, 105, 105, 30, 105, 30, 116, 116, 116, 116, 294, 74, 294, 31, - 141, 58, 323, 32, 323, 934, 167, 176, 177, 18, + 141, 58, 323, 32, 323, 937, 167, 176, 177, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, @@ -1347,12 +1349,12 @@ static yyconst flex_int16_t yy_chk[4060] = 34, 33, 34, 182, 41, 42, 34, 333, 43, 181, 33, 41, 42, 186, 333, 34, 203, 203, 203, 203, - 325, 43, 325, 181, 41, 42, 179, 187, 179, 188, + 325, 43, 325, 181, 41, 42, 179, 187, 179, 193, 314, 43, 179, 182, 41, 42, 43, 33, 194, 41, 42, 199, 34, 186, 33, 33, 39, 33, 39, 34, - 34, 43, 34, 181, 41, 42, 179, 187, 179, 188, - 43, 179, 933, 41, 42, 43, 33, 194, 41, 42, - 199, 34, 932, 33, 314, 39, 931, 39, 34, 35, + 34, 43, 34, 181, 41, 42, 179, 187, 179, 193, + 43, 179, 936, 41, 42, 43, 33, 194, 41, 42, + 199, 34, 935, 33, 314, 39, 934, 39, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, @@ -1362,370 +1364,370 @@ static yyconst flex_int16_t yy_chk[4060] = 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 40, 44, 40, 63, 63, 193, 63, + 35, 35, 35, 40, 44, 40, 63, 63, 195, 63, 122, 122, 347, 63, 183, 76, 76, 44, 76, 125, - 125, 348, 76, 350, 195, 132, 132, 44, 180, 184, - 190, 76, 44, 409, 409, 183, 180, 76, 193, 930, - 190, 347, 122, 196, 183, 197, 198, 44, 873, 184, - - 348, 125, 350, 40, 195, 40, 44, 132, 180, 184, - 190, 44, 236, 189, 183, 244, 180, 189, 235, 76, - 190, 122, 258, 196, 872, 197, 198, 278, 184, 871, - 125, 290, 40, 291, 40, 59, 132, 63, 228, 228, - 192, 228, 236, 189, 260, 244, 76, 189, 232, 232, - 192, 232, 258, 192, 59, 235, 59, 278, 59, 249, - 249, 290, 249, 291, 59, 870, 249, 59, 59, 59, - 192, 59, 59, 59, 260, 260, 869, 59, 298, 298, - 192, 298, 192, 868, 59, 235, 59, 867, 59, 319, - 320, 866, 239, 239, 59, 239, 865, 59, 59, 59, - - 59, 59, 59, 864, 240, 240, 59, 240, 59, 239, - 239, 239, 239, 241, 241, 863, 241, 261, 261, 319, - 320, 240, 240, 240, 240, 242, 242, 352, 242, 343, - 241, 241, 241, 241, 354, 239, 305, 305, 305, 305, - 249, 344, 242, 242, 242, 242, 346, 862, 355, 261, - 269, 269, 349, 269, 241, 357, 352, 269, 353, 343, - 346, 356, 353, 354, 239, 242, 269, 358, 861, 349, - 359, 344, 269, 360, 359, 361, 346, 355, 261, 362, - 364, 366, 349, 367, 241, 357, 368, 369, 353, 346, - 356, 371, 353, 372, 371, 242, 368, 358, 349, 374, - - 359, 375, 360, 359, 269, 361, 415, 415, 362, 364, - 366, 400, 367, 400, 614, 614, 368, 369, 402, 860, - 402, 371, 859, 372, 371, 368, 858, 387, 374, 394, - 375, 269, 307, 307, 307, 307, 307, 307, 307, 307, + 125, 348, 76, 350, 196, 132, 132, 44, 180, 184, + 190, 76, 44, 410, 410, 183, 180, 76, 195, 933, + 190, 347, 122, 197, 183, 198, 235, 44, 876, 184, + + 348, 125, 350, 40, 196, 40, 44, 132, 180, 184, + 190, 44, 236, 188, 183, 244, 180, 188, 189, 76, + 190, 122, 189, 197, 875, 198, 228, 228, 184, 228, + 125, 258, 40, 235, 40, 59, 132, 63, 232, 232, + 192, 232, 236, 188, 260, 244, 76, 188, 189, 278, + 192, 290, 189, 192, 59, 291, 59, 319, 59, 249, + 249, 258, 249, 235, 59, 874, 249, 59, 59, 59, + 192, 59, 59, 59, 260, 260, 401, 59, 401, 278, + 192, 290, 192, 873, 59, 291, 59, 319, 59, 320, + 343, 872, 239, 239, 59, 239, 516, 59, 59, 59, + + 59, 59, 59, 871, 240, 240, 59, 240, 59, 239, + 239, 239, 239, 241, 241, 870, 241, 261, 261, 320, + 343, 240, 240, 240, 240, 242, 242, 352, 242, 516, + 241, 241, 241, 241, 510, 239, 298, 298, 344, 298, + 249, 354, 242, 242, 242, 242, 349, 869, 355, 261, + 269, 269, 356, 269, 241, 346, 352, 269, 305, 305, + 305, 305, 360, 349, 239, 242, 269, 353, 344, 346, + 354, 353, 269, 357, 612, 358, 349, 355, 261, 359, + 361, 356, 363, 359, 241, 346, 362, 868, 365, 367, + 368, 360, 349, 370, 373, 242, 372, 353, 346, 372, + + 403, 353, 403, 357, 269, 358, 405, 612, 405, 359, + 361, 363, 359, 407, 510, 407, 362, 365, 367, 368, + 416, 416, 867, 370, 373, 431, 372, 431, 375, 372, + 376, 269, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 307, 307, 307, 307, 307, 387, 394, 404, - 307, 404, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 375, 866, 376, + 307, 388, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, - 307, 307, 307, 307, 307, 307, 370, 373, 390, 390, - 370, 390, 395, 396, 373, 370, 379, 379, 379, 379, - - 398, 406, 430, 406, 430, 390, 390, 390, 390, 408, - 410, 857, 423, 411, 411, 856, 370, 373, 448, 855, - 370, 395, 854, 396, 373, 370, 376, 425, 376, 428, - 398, 376, 376, 393, 393, 853, 393, 376, 376, 408, - 410, 410, 423, 376, 376, 411, 429, 448, 376, 411, - 393, 393, 393, 393, 852, 376, 376, 425, 376, 428, - 851, 376, 376, 420, 420, 420, 420, 376, 376, 432, - 847, 432, 376, 376, 411, 846, 429, 376, 412, 412, - 792, 412, 412, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, - - 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 791, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, - 412, 412, 413, 413, 445, 446, 441, 433, 434, 435, - 438, 439, 436, 442, 449, 459, 450, 498, 790, 498, - 440, 443, 789, 433, 434, 436, 441, 435, 451, 443, - 439, 788, 438, 442, 445, 446, 413, 413, 414, 414, - - 414, 414, 440, 449, 459, 440, 450, 414, 414, 414, - 414, 414, 414, 433, 434, 436, 441, 435, 451, 443, - 439, 438, 452, 442, 462, 453, 454, 455, 456, 787, - 458, 440, 414, 414, 440, 460, 786, 414, 414, 414, - 414, 414, 414, 444, 463, 464, 465, 467, 444, 444, - 444, 444, 452, 462, 444, 453, 454, 455, 456, 444, - 458, 466, 469, 444, 470, 460, 444, 785, 444, 471, - 784, 444, 472, 463, 473, 464, 465, 467, 444, 444, - 444, 444, 474, 475, 444, 476, 477, 478, 479, 444, - 466, 480, 469, 444, 470, 444, 482, 444, 483, 471, - - 444, 481, 472, 484, 473, 485, 486, 481, 487, 488, - 508, 489, 474, 475, 490, 476, 477, 478, 479, 491, - 492, 480, 493, 494, 783, 495, 482, 483, 497, 782, - 496, 481, 484, 496, 496, 485, 486, 481, 487, 488, - 489, 501, 504, 501, 490, 503, 503, 505, 503, 491, - 492, 523, 493, 494, 495, 506, 499, 499, 497, 499, - 496, 510, 496, 496, 502, 502, 600, 502, 600, 613, - 613, 613, 504, 499, 499, 499, 499, 505, 615, 615, - 523, 502, 502, 502, 502, 506, 601, 601, 780, 601, - 508, 510, 511, 511, 773, 511, 511, 511, 511, 511, - - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 514, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, - 511, 511, 511, 511, 511, 511, 512, 512, 520, 514, - 525, 527, 516, 516, 532, 526, 528, 770, 521, 522, - 526, 758, 607, 607, 529, 607, 531, 528, 525, 529, - - 525, 693, 532, 693, 744, 527, 530, 609, 520, 531, - 512, 512, 513, 513, 513, 513, 516, 516, 521, 522, - 526, 513, 513, 513, 513, 513, 513, 528, 525, 529, - 525, 535, 532, 530, 527, 733, 539, 533, 545, 531, - 609, 534, 533, 704, 535, 546, 545, 536, 537, 539, - 703, 513, 513, 513, 513, 513, 513, 517, 517, 517, - 517, 534, 530, 536, 537, 538, 517, 517, 517, 517, - 517, 517, 533, 540, 535, 546, 545, 699, 550, 539, - 542, 547, 551, 538, 541, 553, 543, 544, 554, 555, - 556, 534, 557, 536, 537, 540, 517, 517, 517, 517, - - 517, 517, 542, 541, 698, 542, 543, 544, 550, 557, - 547, 551, 558, 538, 553, 557, 560, 554, 559, 555, - 556, 563, 606, 564, 540, 565, 566, 692, 569, 570, - 574, 542, 572, 541, 542, 573, 543, 544, 576, 557, - 577, 578, 558, 579, 581, 557, 560, 559, 580, 582, - 583, 563, 564, 584, 565, 586, 566, 569, 587, 570, - 574, 572, 588, 590, 573, 589, 591, 576, 592, 594, - 577, 578, 593, 579, 581, 595, 596, 580, 582, 583, - 602, 595, 597, 584, 603, 586, 604, 616, 587, 611, - 611, 618, 588, 590, 589, 591, 621, 624, 592, 594, - - 619, 593, 606, 686, 622, 595, 596, 701, 701, 602, - 595, 623, 597, 626, 603, 604, 622, 616, 625, 624, - 618, 621, 628, 611, 611, 612, 612, 612, 612, 623, - 619, 625, 627, 626, 612, 612, 612, 612, 612, 612, - 628, 627, 629, 631, 630, 632, 622, 682, 624, 629, - 621, 630, 631, 634, 633, 774, 632, 774, 634, 623, - 635, 625, 636, 626, 612, 612, 612, 612, 612, 612, - 628, 627, 633, 636, 633, 637, 639, 640, 638, 629, - 637, 630, 631, 643, 635, 641, 632, 642, 634, 639, - 641, 668, 644, 645, 648, 640, 643, 664, 647, 650, - - 655, 653, 633, 636, 633, 638, 648, 642, 658, 654, - 637, 653, 657, 635, 659, 661, 662, 663, 665, 639, - 641, 644, 666, 645, 648, 640, 643, 647, 667, 650, - 655, 653, 669, 670, 638, 671, 648, 642, 654, 673, - 653, 674, 657, 659, 675, 661, 662, 663, 665, 676, - 679, 666, 678, 680, 681, 683, 684, 685, 667, 687, - 688, 669, 670, 689, 671, 690, 691, 694, 695, 673, - 674, 696, 696, 675, 696, 700, 700, 700, 711, 676, - 679, 678, 680, 707, 681, 683, 684, 685, 709, 687, - 688, 710, 689, 702, 702, 690, 691, 694, 695, 708, - - 707, 712, 711, 709, 708, 713, 716, 710, 714, 718, - 721, 715, 720, 712, 717, 716, 719, 722, 727, 1147, - 1147, 734, 718, 652, 720, 727, 724, 713, 721, 723, - 707, 711, 714, 709, 708, 715, 717, 710, 725, 722, - 729, 719, 723, 712, 726, 716, 724, 725, 730, 729, - 728, 734, 718, 735, 720, 727, 713, 728, 721, 730, - 738, 714, 726, 737, 715, 717, 739, 740, 722, 741, - 719, 742, 723, 737, 617, 743, 724, 725, 745, 729, - 746, 747, 735, 748, 749, 750, 752, 728, 751, 730, - 738, 754, 726, 737, 756, 760, 739, 740, 741, 761, - - 742, 762, 765, 737, 743, 767, 771, 776, 745, 776, - 746, 747, 778, 748, 749, 750, 752, 751, 772, 795, - 849, 754, 849, 756, 795, 760, 764, 764, 793, 761, - 762, 764, 765, 794, 764, 767, 771, 764, 768, 768, - 796, 778, 764, 768, 797, 809, 768, 799, 772, 768, - 794, 798, 793, 801, 795, 796, 764, 764, 802, 799, - 797, 764, 800, 803, 764, 804, 806, 764, 768, 768, - 807, 764, 803, 768, 809, 798, 768, 801, 805, 768, - 794, 793, 802, 811, 800, 796, 814, 804, 808, 799, - 797, 805, 810, 812, 610, 816, 806, 817, 608, 818, - - 807, 819, 803, 820, 798, 821, 801, 823, 825, 826, - 828, 802, 811, 800, 832, 814, 804, 833, 808, 834, - 837, 805, 810, 812, 816, 836, 828, 817, 818, 838, - 839, 819, 820, 840, 842, 821, 841, 823, 825, 826, - 828, 835, 598, 844, 832, 835, 833, 845, 835, 834, - 837, 848, 875, 843, 836, 828, 843, 874, 835, 838, - 839, 876, 878, 840, 842, 841, 843, 877, 879, 880, - 883, 835, 844, 881, 884, 835, 845, 885, 835, 886, - 848, 874, 875, 843, 888, 889, 843, 835, 890, 571, - 891, 876, 878, 892, 893, 843, 877, 894, 879, 880, - - 883, 895, 881, 897, 884, 898, 899, 885, 900, 886, - 874, 901, 902, 888, 904, 889, 905, 908, 890, 891, - 906, 909, 910, 892, 893, 911, 912, 894, 913, 915, - 895, 914, 916, 897, 916, 898, 899, 918, 900, 918, - 901, 902, 943, 944, 904, 945, 905, 908, 914, 906, - 946, 909, 910, 947, 911, 912, 948, 913, 915, 949, - 950, 914, 951, 568, 952, 953, 954, 552, 955, 956, - 958, 943, 959, 944, 960, 945, 961, 914, 962, 963, - 946, 964, 965, 947, 967, 969, 948, 970, 971, 949, - 950, 972, 951, 952, 953, 973, 954, 955, 975, 956, - - 958, 959, 976, 960, 978, 961, 977, 979, 962, 963, - 977, 964, 965, 967, 969, 993, 970, 994, 971, 995, - 996, 972, 997, 998, 999, 973, 1001, 1002, 975, 1004, - 1005, 976, 1006, 978, 1007, 977, 1008, 979, 1009, 977, - 1010, 1012, 1016, 1017, 1018, 993, 1021, 994, 995, 1022, - 996, 997, 998, 999, 1023, 1031, 1001, 1002, 1004, 1005, - 1024, 1025, 1006, 1026, 1007, 1028, 1008, 1029, 1009, 1030, - 1010, 1012, 1016, 1017, 1018, 1021, 1032, 1033, 1034, 1022, - 1037, 524, 1039, 1041, 1023, 1031, 1044, 1047, 1048, 1024, - 1025, 1049, 1026, 1050, 1028, 1051, 1029, 1052, 1030, 1053, - - 1054, 1055, 1056, 1058, 515, 1059, 1032, 1033, 1034, 1060, - 1037, 1039, 1061, 1041, 1063, 1067, 1044, 1047, 1048, 1068, - 1049, 1069, 1070, 1050, 1072, 1051, 1073, 1052, 1074, 1053, - 1054, 1055, 1056, 1058, 1059, 1075, 1076, 1077, 1060, 1078, - 1081, 1083, 1061, 1063, 1084, 1067, 1085, 468, 1086, 1068, - 1069, 1087, 1070, 1088, 1072, 1090, 1073, 1093, 1074, 1094, - 1097, 437, 1098, 1099, 1102, 1075, 1076, 1077, 1078, 1081, - 1103, 1083, 1160, 1084, 1160, 419, 1085, 1086, 392, 1189, - 1087, 1189, 1088, 377, 351, 1090, 341, 1093, 1094, 339, - 1097, 1098, 1099, 334, 1102, 301, 300, 299, 296, 285, - - 1103, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, - 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1108, 1108, - 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, - 1108, 1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109, - 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, - 1109, 1109, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, - 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1111, + 307, 307, 307, 307, 307, 307, 369, 374, 371, 865, + 395, 388, 371, 397, 374, 864, 369, 371, 380, 380, + + 380, 380, 396, 421, 421, 421, 421, 399, 433, 863, + 433, 409, 411, 500, 424, 500, 369, 374, 371, 395, + 617, 617, 371, 397, 374, 369, 426, 371, 377, 429, + 377, 396, 862, 377, 377, 391, 391, 399, 391, 377, + 377, 409, 411, 411, 424, 377, 377, 430, 394, 394, + 377, 394, 391, 391, 391, 391, 426, 377, 377, 429, + 377, 412, 412, 377, 377, 394, 394, 394, 394, 377, + 377, 414, 414, 434, 377, 377, 440, 430, 437, 377, + 444, 446, 447, 861, 449, 450, 451, 452, 444, 434, + 453, 437, 503, 412, 503, 440, 860, 412, 505, 505, + + 603, 505, 603, 618, 618, 414, 414, 604, 604, 859, + 604, 446, 447, 449, 450, 858, 451, 452, 444, 434, + 453, 437, 412, 413, 413, 440, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 857, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + + 413, 413, 413, 413, 413, 413, 413, 415, 415, 415, + 415, 435, 436, 439, 441, 454, 415, 415, 415, 415, + 415, 415, 455, 442, 443, 456, 457, 435, 459, 461, + 436, 856, 460, 463, 464, 439, 441, 465, 855, 441, + 466, 415, 415, 442, 443, 454, 415, 415, 415, 415, + 415, 415, 455, 854, 468, 456, 457, 435, 459, 461, + 436, 460, 463, 464, 439, 441, 470, 465, 441, 471, + 466, 850, 467, 442, 443, 445, 472, 473, 474, 475, + 445, 445, 445, 445, 468, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 609, 445, 470, 485, 445, 471, + + 445, 467, 486, 445, 484, 487, 472, 473, 474, 475, + 445, 445, 445, 445, 488, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 483, 445, 485, 445, 489, 445, + 483, 486, 445, 490, 484, 487, 491, 492, 493, 494, + 495, 496, 849, 497, 488, 498, 499, 795, 498, 498, + 696, 506, 696, 794, 483, 507, 793, 508, 489, 512, + 483, 522, 523, 490, 524, 491, 525, 492, 493, 494, + 495, 496, 497, 792, 609, 498, 499, 498, 498, 501, + 501, 506, 501, 504, 504, 507, 504, 508, 777, 512, + 777, 522, 523, 791, 524, 525, 501, 501, 501, 501, + + 504, 504, 504, 504, 513, 513, 790, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 789, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 514, 514, + 529, 527, 532, 788, 518, 518, 528, 531, 779, 530, + + 779, 528, 531, 533, 537, 538, 616, 616, 616, 527, + 530, 527, 534, 787, 529, 535, 533, 537, 786, 532, + 535, 538, 514, 514, 515, 515, 515, 515, 518, 518, + 534, 528, 531, 515, 515, 515, 515, 515, 515, 527, + 530, 527, 536, 529, 541, 539, 533, 537, 532, 785, + 535, 538, 783, 542, 548, 540, 545, 541, 543, 549, + 534, 539, 536, 515, 515, 515, 515, 515, 515, 519, + 519, 519, 519, 540, 544, 542, 545, 543, 519, 519, + 519, 519, 519, 519, 548, 546, 547, 541, 549, 552, + 557, 539, 536, 553, 547, 776, 544, 555, 556, 544, + + 558, 773, 560, 540, 542, 546, 545, 543, 519, 519, + 519, 519, 519, 519, 559, 561, 562, 565, 568, 552, + 557, 566, 553, 567, 547, 544, 555, 556, 544, 572, + 558, 559, 560, 573, 577, 546, 575, 559, 761, 576, + 579, 580, 581, 582, 561, 583, 562, 565, 568, 584, + 566, 585, 567, 586, 587, 589, 590, 591, 572, 592, + 593, 559, 594, 573, 577, 575, 595, 559, 576, 579, + 596, 580, 581, 582, 583, 597, 599, 598, 600, 584, + 585, 605, 586, 598, 587, 589, 590, 591, 592, 606, + 593, 594, 607, 619, 610, 610, 595, 610, 621, 596, + + 614, 614, 622, 624, 626, 597, 599, 598, 600, 627, + 605, 628, 598, 625, 747, 631, 641, 630, 635, 606, + 629, 607, 626, 619, 628, 625, 630, 621, 624, 635, + 639, 627, 622, 631, 614, 614, 615, 615, 615, 615, + 629, 639, 736, 641, 632, 615, 615, 615, 615, 615, + 615, 632, 626, 634, 628, 625, 630, 624, 633, 635, + 627, 637, 634, 631, 636, 633, 637, 638, 640, 645, + 629, 639, 641, 640, 642, 615, 615, 615, 615, 615, + 615, 632, 636, 643, 636, 646, 647, 642, 644, 645, + 707, 638, 634, 644, 648, 633, 637, 650, 646, 651, + + 653, 643, 658, 640, 657, 660, 656, 706, 662, 664, + 665, 651, 636, 666, 636, 647, 656, 642, 668, 645, + 638, 669, 670, 644, 648, 672, 650, 673, 646, 651, + 653, 643, 658, 657, 674, 660, 656, 662, 676, 664, + 665, 651, 677, 666, 678, 656, 679, 682, 668, 681, + 669, 683, 670, 684, 672, 686, 673, 687, 688, 690, + 691, 702, 692, 674, 693, 694, 697, 698, 676, 699, + 699, 677, 699, 678, 704, 704, 679, 682, 681, 701, + 683, 705, 705, 684, 710, 686, 714, 687, 688, 690, + 691, 692, 715, 712, 693, 694, 697, 698, 703, 703, + + 703, 710, 711, 713, 715, 716, 717, 711, 712, 718, + 714, 719, 721, 720, 728, 722, 723, 695, 724, 713, + 719, 725, 737, 728, 727, 721, 689, 716, 723, 729, + 717, 710, 726, 718, 715, 720, 724, 711, 712, 714, + 722, 730, 732, 725, 727, 726, 733, 729, 730, 713, + 719, 732, 737, 728, 731, 721, 716, 733, 723, 717, + 738, 731, 718, 740, 720, 741, 724, 742, 743, 722, + 744, 745, 725, 740, 727, 726, 746, 729, 730, 748, + 749, 732, 750, 751, 752, 753, 755, 733, 754, 738, + 757, 731, 759, 740, 763, 741, 764, 742, 743, 744, + + 745, 765, 781, 740, 768, 746, 770, 774, 797, 748, + 749, 775, 750, 751, 752, 753, 755, 754, 796, 685, + 757, 759, 1150, 1150, 763, 797, 764, 767, 767, 800, + 765, 781, 767, 799, 768, 767, 770, 774, 767, 771, + 771, 775, 796, 767, 771, 800, 798, 771, 799, 801, + 771, 798, 802, 808, 803, 797, 809, 767, 767, 804, + 805, 810, 767, 807, 802, 767, 808, 811, 767, 771, + 771, 796, 767, 801, 771, 800, 803, 771, 799, 806, + 771, 798, 812, 804, 805, 807, 809, 813, 806, 671, + 814, 810, 815, 820, 802, 817, 808, 811, 819, 821, + + 822, 824, 801, 823, 826, 803, 828, 829, 835, 831, + 837, 812, 804, 805, 807, 836, 840, 813, 806, 814, + 839, 841, 815, 820, 817, 831, 842, 819, 821, 843, + 822, 824, 823, 844, 826, 845, 828, 829, 835, 831, + 837, 838, 877, 847, 836, 838, 840, 846, 838, 839, + 846, 841, 848, 851, 831, 852, 842, 852, 838, 843, + 846, 878, 844, 879, 881, 845, 877, 880, 882, 883, + 886, 838, 847, 884, 887, 838, 888, 846, 838, 889, + 846, 848, 851, 891, 892, 893, 895, 838, 894, 846, + 896, 878, 897, 879, 881, 877, 880, 898, 882, 883, + + 886, 900, 884, 901, 887, 902, 888, 903, 907, 889, + 904, 905, 891, 908, 892, 893, 895, 894, 909, 911, + 896, 912, 897, 913, 667, 914, 898, 915, 916, 917, + 947, 900, 918, 901, 919, 902, 919, 903, 907, 904, + 905, 946, 921, 908, 921, 955, 917, 909, 948, 911, + 949, 912, 950, 913, 914, 951, 915, 916, 952, 917, + 947, 918, 953, 954, 661, 956, 957, 655, 958, 959, + 946, 961, 620, 962, 955, 917, 963, 964, 948, 965, + 949, 966, 950, 967, 968, 951, 970, 972, 952, 973, + 974, 975, 953, 954, 956, 976, 957, 958, 978, 959, + + 979, 961, 962, 980, 981, 963, 964, 980, 982, 965, + 996, 966, 997, 967, 968, 970, 972, 998, 973, 999, + 974, 975, 1000, 1001, 1002, 976, 1004, 1005, 978, 979, + 1007, 1008, 980, 981, 1009, 1010, 980, 1011, 982, 1012, + 996, 1013, 997, 1015, 1019, 1020, 998, 1021, 1025, 999, + 1024, 1000, 1001, 1002, 1026, 1034, 1004, 1005, 1027, 1007, + 1008, 1028, 1029, 1031, 1009, 1010, 1032, 1011, 1033, 1012, + 1035, 1013, 1036, 1015, 1019, 1020, 1037, 1021, 1025, 1024, + 1040, 613, 1042, 1044, 1026, 1034, 1047, 1027, 1050, 1051, + 1028, 1029, 1031, 1052, 1053, 1032, 1054, 1033, 1055, 1056, + + 1035, 1057, 1036, 1058, 1059, 1061, 1037, 1062, 1063, 1064, + 1040, 1042, 1066, 1044, 1070, 1071, 1047, 1072, 1050, 1051, + 1073, 1075, 1052, 1076, 1053, 1077, 1054, 1078, 1055, 1056, + 1079, 1057, 1080, 1058, 1059, 1061, 1062, 1063, 1081, 1064, + 1084, 1066, 1086, 1088, 1070, 1071, 1072, 1087, 1089, 1090, + 1073, 1075, 1091, 1076, 1093, 1077, 1096, 1078, 1097, 1100, + 1079, 1101, 1080, 1102, 1105, 1106, 1163, 1081, 1163, 1084, + 611, 601, 1086, 1088, 574, 571, 1087, 1089, 1090, 554, + 1192, 1091, 1192, 526, 1093, 517, 1096, 1097, 469, 1100, + 1101, 438, 1102, 420, 1105, 1106, 1110, 1110, 1110, 1110, + + 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, + 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, - 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, - - 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, - 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 1115, 1115, - 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, - 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, - 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, - 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, - 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, - 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, + 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, + 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116, - 1118, 1118, 1118, 1118, 1118, 1119, 1119, 1119, 1119, 1119, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, + 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, - 1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, - 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, + 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, - 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, - 1122, 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, - - 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125, 1125, 1125, - 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, - 1125, 1125, 1125, 1125, 1126, 1126, 282, 1126, 1126, 274, - 273, 272, 1126, 1127, 1127, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128, - 1128, 271, 1128, 1128, 268, 266, 265, 1128, 1129, 256, - 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, - 1129, 1129, 1129, 1129, 1129, 1130, 255, 1130, 1130, 1130, + 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, + 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, + + 1127, 1127, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, + 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, + 1129, 393, 1129, 1129, 378, 351, 341, 1129, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, - 1130, 1130, 1131, 1131, 1131, 252, 1131, 1131, 251, 234, - - 230, 1131, 1132, 227, 1132, 1132, 1132, 1132, 1132, 1132, - 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1133, - 226, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, - 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134, 1134, - 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 222, 1134, - 208, 1134, 1134, 1135, 207, 206, 1135, 1135, 1135, 1135, - 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, - 1136, 1136, 202, 1136, 1136, 175, 174, 172, 1136, 1137, - 170, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, - 1137, 1137, 1137, 1137, 1137, 1137, 1138, 169, 1138, 1138, + 1130, 1130, 1130, 1130, 1131, 1131, 339, 1131, 1131, 334, + 301, 300, 1131, 1132, 299, 1132, 1132, 1132, 1132, 1132, + 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, + 1133, 296, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, + 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134, + 285, 1134, 1134, 282, 274, 273, 1134, 1135, 272, 1135, - 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, - 166, 1138, 1138, 1139, 165, 1139, 164, 158, 1139, 1139, - 1139, 1139, 1139, 155, 154, 153, 1139, 1140, 152, 1140, + 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, + 1135, 1135, 1135, 1135, 1136, 271, 1136, 1136, 1136, 1136, + 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, + 1136, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, + 1137, 1137, 1137, 268, 1137, 266, 1137, 1137, 1138, 265, + 256, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1139, 1139, 255, 1139, 1139, + 252, 251, 234, 1139, 1140, 230, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, - 1140, 1140, 1140, 1140, 1141, 1141, 144, 1141, 1141, 143, - 139, 136, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1143, 131, 1143, 129, 1143, 1143, 1143, 1143, 1143, 1143, - 1143, 1143, 1143, 124, 1143, 1143, 1143, 1144, 120, 1144, - 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, - - 1144, 1144, 1144, 1144, 1145, 114, 1145, 1145, 1145, 1145, + 1140, 1141, 227, 1141, 1141, 1141, 1141, 1141, 1141, 1141, + + 1141, 1141, 1141, 1141, 1141, 226, 1141, 1141, 1142, 222, + 1142, 208, 207, 1142, 1142, 1142, 1142, 1142, 206, 202, + 175, 1142, 1143, 174, 1143, 1143, 1143, 1143, 1143, 1143, + 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, + 1144, 172, 1144, 1144, 170, 169, 166, 1144, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, - 1145, 1146, 1146, 109, 107, 1146, 1146, 1148, 106, 1148, - 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, - 1148, 1148, 1148, 1148, 1149, 103, 1149, 1149, 1149, 101, - 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, - 1149, 1150, 1150, 99, 1150, 1150, 98, 97, 94, 1150, - 1151, 91, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, - 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 90, 1152, - 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - - 1152, 1152, 1152, 1152, 1153, 1153, 88, 86, 84, 1153, - 1154, 1154, 80, 78, 72, 1154, 1155, 1155, 1155, 1155, - 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, - 1155, 1155, 1155, 1156, 1156, 71, 1156, 1156, 68, 65, - 60, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, - 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1158, - 57, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, - 1158, 1158, 1158, 53, 1158, 1158, 1159, 49, 1159, 1159, - 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, - 1159, 1159, 1159, 1161, 1161, 16, 1161, 1161, 15, 0, - - 0, 1161, 1161, 1162, 0, 1162, 1162, 1162, 1162, 1162, - 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, - 1163, 0, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, - 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1164, 0, 1164, - 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, - 1164, 1164, 1164, 1164, 1165, 0, 1165, 1165, 1165, 1165, - 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, - 1165, 1166, 0, 1166, 1166, 1166, 1166, 1166, 1166, 1166, - 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167, 1167, - 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, - - 0, 1167, 0, 1167, 1167, 1168, 1168, 1168, 1168, 1168, - 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, - 1168, 1168, 1169, 0, 0, 1169, 1169, 1169, 1169, 1169, - 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170, - 1170, 0, 1170, 1170, 0, 0, 0, 1170, 1171, 0, - 1171, 0, 0, 1171, 1171, 1171, 1171, 1171, 0, 0, - 0, 1171, 1172, 0, 1172, 1172, 1172, 1172, 1172, 1172, - 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1173, - 1173, 0, 1173, 1173, 0, 0, 0, 1173, 1174, 1174, - 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, - - 1174, 1174, 1174, 1174, 1174, 1175, 0, 1175, 0, 1175, - 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 0, 1175, - 1175, 1175, 1176, 0, 1176, 1176, 1176, 1176, 1176, 1176, - 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, - 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, - 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 0, 0, - 1178, 1178, 1179, 0, 1179, 1179, 1179, 1179, 1179, 1179, - 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1180, - 0, 1180, 1180, 1180, 0, 1180, 1180, 1180, 1180, 1180, - 1180, 1180, 1180, 1180, 1180, 1180, 1181, 0, 1181, 1181, + 1145, 1145, 1145, 1145, 1145, 1146, 165, 1146, 164, 1146, + 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 158, 1146, + 1146, 1146, 1147, 155, 1147, 1147, 1147, 1147, 1147, 1147, + 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148, + + 154, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, + 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 153, 152, + 1149, 1149, 1151, 144, 1151, 1151, 1151, 1151, 1151, 1151, + 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, + 143, 1152, 1152, 1152, 139, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 136, 1153, + 1153, 131, 129, 124, 1153, 1154, 120, 1154, 1154, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1155, 114, 1155, 1155, 1155, 1155, 1155, 1155, + 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1156, + + 1156, 109, 107, 106, 1156, 1157, 1157, 103, 101, 99, + 1157, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, + 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1159, 1159, + 98, 1159, 1159, 97, 94, 91, 1159, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1161, 90, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 88, 1161, + 1161, 1162, 86, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, + 84, 1164, 1164, 80, 78, 72, 1164, 1164, 1165, 71, - 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1181, 1181, 1182, 0, 1182, 1182, 1182, 1182, 1182, + 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 1165, 1165, 1165, 1165, 1165, 1166, 68, 1166, 1166, 1166, + 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, + 1166, 1166, 1167, 65, 1167, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168, + 60, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1169, 57, 1169, 1169, + 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, + 1169, 1169, 1169, 1170, 1170, 1170, 1170, 1170, 1170, 1170, + 1170, 1170, 1170, 1170, 1170, 53, 1170, 49, 1170, 1170, + + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1172, 16, 15, + 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, + 1172, 1172, 1172, 1172, 1173, 1173, 0, 1173, 1173, 0, + 0, 0, 1173, 1174, 0, 1174, 0, 0, 1174, 1174, + 1174, 1174, 1174, 0, 0, 0, 1174, 1175, 0, 1175, + 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, + 1175, 1175, 1175, 1175, 1176, 1176, 0, 1176, 1176, 0, + 0, 0, 1176, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1178, 0, 1178, 0, 1178, 1178, 1178, 1178, 1178, 1178, + 1178, 1178, 1178, 0, 1178, 1178, 1178, 1179, 0, 1179, + 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, + 1179, 1179, 1179, 1179, 1180, 0, 1180, 1180, 1180, 1180, + 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, + 1180, 1181, 1181, 0, 0, 1181, 1181, 1182, 0, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, + 1182, 1182, 1182, 1182, 1183, 0, 1183, 1183, 1183, 0, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, - 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1184, 1184, 0, - 1184, 1184, 0, 0, 0, 1184, 1185, 1185, 0, 1185, - 1185, 0, 0, 0, 1185, 1186, 1186, 1186, 1186, 1186, + 1183, 1184, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, + + 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1185, 0, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, - 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, - 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188, - - 0, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, - 1188, 1188, 1188, 0, 1188, 1188, 1190, 1190, 0, 1190, - 1190, 0, 0, 0, 1190, 1190, 1191, 0, 1191, 1191, - 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, - 1191, 1191, 1191, 1192, 0, 1192, 1192, 1192, 1192, 1192, - 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, - 1193, 0, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, - 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1194, 1194, 1194, - 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, - 1194, 1194, 1194, 1194, 1195, 1195, 1195, 1196, 1196, 0, - - 1196, 1196, 0, 0, 0, 1196, 1197, 0, 1197, 1197, - 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, - 1197, 1197, 1197, 1198, 0, 1198, 1198, 1198, 1198, 1198, - 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, - 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, - 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200, - 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, - 1200, 1200, 1200, 1200, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, - 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106 + 1186, 1186, 1187, 1187, 0, 1187, 1187, 0, 0, 0, + 1187, 1188, 1188, 0, 1188, 1188, 0, 0, 0, 1188, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1191, 0, 1191, 1191, 1191, 1191, + + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 0, 1191, + 1191, 1193, 1193, 0, 1193, 1193, 0, 0, 0, 1193, + 1193, 1194, 0, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 0, + 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + 1195, 1195, 1195, 1195, 1195, 1196, 0, 1196, 1196, 1196, + 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, + 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, + 1198, 1198, 1199, 1199, 0, 1199, 1199, 0, 0, 0, + + 1199, 1200, 0, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0, + 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, + 1201, 1201, 1201, 1201, 1201, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, + 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 } ; static yy_state_type yy_last_accepting_state; @@ -1805,7 +1807,7 @@ extern const char *escaped_qstart, *escaped_qend; #define MARK_END_OF_PROLOG mark_prolog(); #define YY_DECL \ - int flexscan() + int flexscan(void) #define RETURNCHAR \ yylval = (unsigned char) yytext[0]; \ @@ -1846,7 +1848,7 @@ extern const char *escaped_qstart, *escaped_qend; -#line 1850 "scan.c" +#line 1852 "scan.c" #define INITIAL 0 #define SECT2 1 @@ -2106,10 +2108,10 @@ YY_DECL int doing_codeblock = false; int i, brace_depth=0, brace_start_line=0; - Char nmdef[MAXLINE]; + char nmdef[MAXLINE]; -#line 2113 "scan.c" +#line 2115 "scan.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2143,13 +2145,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1107 ) + if ( yy_current_state >= 1110 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3975 ); + while ( yy_base[yy_current_state] != 3970 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2204,7 +2206,7 @@ YY_RULE_SETUP #line 147 "scan.l" { ++linenum; - line_directive_out( (FILE *) 0, 1 ); + line_directive_out(NULL, 1); indented_code = false; BEGIN(CODEBLOCK); } @@ -2238,7 +2240,7 @@ YY_RULE_SETUP sectnum = 2; bracelevel = 0; mark_defs1(); - line_directive_out( (FILE *) 0, 1 ); + line_directive_out(NULL, 1); BEGIN(SECT2PROLOG); return SECTEND; } @@ -2258,7 +2260,7 @@ yytext_is_array = true; ++linenum; case 13: YY_RULE_SETUP #line 177 "scan.l" -BEGIN(OPTION); return OPTION_OP; +BEGIN(OPTION); return TOK_OPTION; YY_BREAK case 14: /* rule 14 can match eol */ @@ -2406,8 +2408,8 @@ case 36: YY_RULE_SETUP #line 233 "scan.l" { - flex_free( (void *) infilename ); - infilename = copy_string( yytext + 1 ); + free(infilename); + infilename = xstrdup(yytext + 1); infilename[strlen( infilename ) - 1] = '\0'; } YY_BREAK @@ -2483,12 +2485,12 @@ YY_RULE_SETUP case 46: YY_RULE_SETUP #line 275 "scan.l" -buf_strnappend(&top_buf, escaped_qstart, strlen(escaped_qstart)); +buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); YY_BREAK case 47: YY_RULE_SETUP #line 276 "scan.l" -buf_strnappend(&top_buf, escaped_qend, strlen(escaped_qend)); +buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); YY_BREAK case 48: YY_RULE_SETUP @@ -2518,7 +2520,7 @@ YY_RULE_SETUP { if(yyleng < MAXLINE) { - strcpy( (char *) nmdef, yytext ); + strcpy( nmdef, yytext ); } else { @@ -2526,7 +2528,7 @@ YY_RULE_SETUP FLEX_EXIT(EXIT_FAILURE); } /* Skip trailing whitespace. */ - for ( i = strlen( (char *) nmdef ) - 1; + for ( i = strlen( nmdef ) - 1; i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); --i ) ; @@ -2700,6 +2702,11 @@ posix_compat = option_sense; case 79: YY_RULE_SETUP #line 367 "scan.l" +gen_line_dirs = option_sense; + YY_BREAK +case 80: +YY_RULE_SETUP +#line 368 "scan.l" { ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense); /* Override yywrap */ @@ -2707,261 +2714,261 @@ YY_RULE_SETUP do_yywrap = false; } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 373 "scan.l" +#line 374 "scan.l" usemecs = option_sense; YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 374 "scan.l" +#line 375 "scan.l" { ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense ); interactive = !option_sense; } YY_BREAK -case 82: -YY_RULE_SETUP -#line 378 "scan.l" -performance_report += option_sense ? 1 : -1; - YY_BREAK case 83: YY_RULE_SETUP #line 379 "scan.l" -yytext_is_array = ! option_sense; +performance_report += option_sense ? 1 : -1; YY_BREAK case 84: YY_RULE_SETUP #line 380 "scan.l" -use_read = option_sense; +yytext_is_array = ! option_sense; YY_BREAK case 85: YY_RULE_SETUP #line 381 "scan.l" -reentrant = option_sense; +use_read = option_sense; YY_BREAK case 86: YY_RULE_SETUP #line 382 "scan.l" -reject_really_used = option_sense; +reentrant = option_sense; YY_BREAK case 87: YY_RULE_SETUP #line 383 "scan.l" -ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); +reject_really_used = option_sense; YY_BREAK case 88: YY_RULE_SETUP #line 384 "scan.l" -do_stdinit = option_sense; +ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); YY_BREAK case 89: YY_RULE_SETUP #line 385 "scan.l" -use_stdout = option_sense; +do_stdinit = option_sense; YY_BREAK case 90: YY_RULE_SETUP #line 386 "scan.l" -ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); +use_stdout = option_sense; YY_BREAK case 91: YY_RULE_SETUP #line 387 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); +ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); YY_BREAK case 92: YY_RULE_SETUP #line 388 "scan.l" -printstats = option_sense; +ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); YY_BREAK case 93: YY_RULE_SETUP #line 389 "scan.l" -nowarn = ! option_sense; +printstats = option_sense; YY_BREAK case 94: YY_RULE_SETUP #line 390 "scan.l" -do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); +nowarn = ! option_sense; YY_BREAK case 95: YY_RULE_SETUP #line 391 "scan.l" -yymore_really_used = option_sense; +do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); YY_BREAK case 96: YY_RULE_SETUP #line 392 "scan.l" -do_yywrap = option_sense; +yymore_really_used = option_sense; YY_BREAK case 97: YY_RULE_SETUP -#line 394 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); +#line 393 "scan.l" +do_yywrap = option_sense; YY_BREAK case 98: YY_RULE_SETUP #line 395 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); YY_BREAK case 99: YY_RULE_SETUP #line 396 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); YY_BREAK case 100: YY_RULE_SETUP -#line 398 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); +#line 397 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); YY_BREAK case 101: YY_RULE_SETUP #line 399 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); YY_BREAK case 102: YY_RULE_SETUP #line 400 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); YY_BREAK case 103: YY_RULE_SETUP -#line 402 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); +#line 401 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); YY_BREAK case 104: YY_RULE_SETUP #line 403 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); YY_BREAK case 105: YY_RULE_SETUP #line 404 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); YY_BREAK case 106: YY_RULE_SETUP -#line 406 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); +#line 405 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); YY_BREAK case 107: YY_RULE_SETUP #line 407 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); YY_BREAK case 108: YY_RULE_SETUP #line 408 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); YY_BREAK case 109: YY_RULE_SETUP #line 409 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); YY_BREAK case 110: YY_RULE_SETUP #line 410 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); YY_BREAK case 111: YY_RULE_SETUP #line 411 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); YY_BREAK case 112: YY_RULE_SETUP #line 412 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); YY_BREAK case 113: YY_RULE_SETUP #line 413 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); YY_BREAK case 114: YY_RULE_SETUP #line 414 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); YY_BREAK case 115: YY_RULE_SETUP #line 415 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); YY_BREAK case 116: YY_RULE_SETUP #line 416 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); YY_BREAK case 117: YY_RULE_SETUP #line 417 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); YY_BREAK case 118: YY_RULE_SETUP #line 418 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); YY_BREAK case 119: YY_RULE_SETUP #line 419 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); YY_BREAK case 120: YY_RULE_SETUP #line 420 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); YY_BREAK case 121: YY_RULE_SETUP #line 421 "scan.l" -ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); +ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); YY_BREAK case 122: YY_RULE_SETUP -#line 423 "scan.l" -return OPT_EXTRA_TYPE; +#line 422 "scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); YY_BREAK case 123: YY_RULE_SETUP #line 424 "scan.l" -return OPT_OUTFILE; +return TOK_EXTRA_TYPE; YY_BREAK case 124: YY_RULE_SETUP #line 425 "scan.l" -return OPT_PREFIX; +return TOK_OUTFILE; YY_BREAK case 125: YY_RULE_SETUP #line 426 "scan.l" -return OPT_YYCLASS; +return TOK_PREFIX; YY_BREAK case 126: YY_RULE_SETUP #line 427 "scan.l" -return OPT_HEADER; +return TOK_YYCLASS; YY_BREAK case 127: YY_RULE_SETUP #line 428 "scan.l" -return OPT_TABLES; +return TOK_HEADER_FILE; YY_BREAK case 128: YY_RULE_SETUP #line 429 "scan.l" +return TOK_TABLES_FILE; + YY_BREAK +case 129: +YY_RULE_SETUP +#line 430 "scan.l" { tablesverify = option_sense; if(!tablesext && option_sense) tablesext = true; } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 436 "scan.l" +#line 437 "scan.l" { if(yyleng-1 < MAXLINE) { @@ -2976,9 +2983,9 @@ YY_RULE_SETUP return NAME; } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 450 "scan.l" +#line 451 "scan.l" { format_synerr( _( "unrecognized %%option: %s" ), yytext ); @@ -2986,31 +2993,31 @@ YY_RULE_SETUP } YY_BREAK -case 131: -/* rule 131 can match eol */ +case 132: +/* rule 132 can match eol */ YY_RULE_SETUP -#line 457 "scan.l" +#line 458 "scan.l" ++linenum; BEGIN(INITIAL); YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 461 "scan.l" +#line 462 "scan.l" ++bracelevel; yyless( 2 ); /* eat only %{ */ YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 462 "scan.l" +#line 463 "scan.l" --bracelevel; yyless( 2 ); /* eat only %} */ YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 464 "scan.l" +#line 465 "scan.l" ACTION_ECHO; /* indented code in prolog */ YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 466 "scan.l" +#line 467 "scan.l" { /* non-indented code */ if ( bracelevel <= 0 ) { /* not in %{ ... %} */ @@ -3023,19 +3030,19 @@ YY_RULE_SETUP ACTION_ECHO; } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 478 "scan.l" +#line 479 "scan.l" ACTION_ECHO; YY_BREAK -case 137: -/* rule 137 can match eol */ +case 138: +/* rule 138 can match eol */ YY_RULE_SETUP -#line 479 "scan.l" +#line 480 "scan.l" ++linenum; ACTION_ECHO; YY_BREAK case YY_STATE_EOF(SECT2PROLOG): -#line 481 "scan.l" +#line 482 "scan.l" { mark_prolog(); sectnum = 0; @@ -3044,15 +3051,15 @@ case YY_STATE_EOF(SECT2PROLOG): YY_BREAK -case 138: -/* rule 138 can match eol */ +case 139: +/* rule 139 can match eol */ YY_RULE_SETUP -#line 489 "scan.l" +#line 490 "scan.l" ++linenum; /* allow blank lines in section 2 */ YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 491 "scan.l" +#line 492 "scan.l" { indented_code = false; doing_codeblock = true; @@ -3060,9 +3067,9 @@ YY_RULE_SETUP BEGIN(PERCENT_BRACE_ACTION); } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 498 "scan.l" +#line 499 "scan.l" { /* Allow "<" to appear in (?x) patterns. */ if (!sf_skip_ws()) @@ -3070,22 +3077,22 @@ YY_RULE_SETUP return '<'; } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 504 "scan.l" +#line 505 "scan.l" return '^'; YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 505 "scan.l" +#line 506 "scan.l" BEGIN(QUOTE); return '"'; YY_BREAK -case 143: +case 144: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 506 "scan.l" +#line 507 "scan.l" { BEGIN(NUM); if ( lex_compat || posix_compat ) @@ -3094,19 +3101,19 @@ YY_RULE_SETUP return BEGIN_REPEAT_FLEX; } YY_BREAK -case 144: -/* rule 144 can match eol */ +case 145: +/* rule 145 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ YY_LINENO_REWIND_TO(yy_bp + 1); (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 513 "scan.l" +#line 514 "scan.l" return '$'; YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 515 "scan.l" +#line 516 "scan.l" { bracelevel = 1; BEGIN(PERCENT_BRACE_ACTION); @@ -3119,16 +3126,15 @@ YY_RULE_SETUP } } YY_BREAK -case 146: -/* rule 146 can match eol */ +case 147: +/* rule 147 can match eol */ YY_RULE_SETUP -#line 526 "scan.l" +#line 527 "scan.l" { if (sf_skip_ws()){ /* We're in the middle of a (?x: ) pattern. */ /* Push back everything starting at the "|" */ - size_t amt; - amt = strchr (yytext, '|') - yytext; + int amt = (int) (strchr (yytext, '|') - yytext); yyless(amt); } else { @@ -3138,7 +3144,7 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP #line 541 "scan.l" { @@ -3155,12 +3161,12 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP #line 555 "scan.l" /* allow indented rules */ ; YY_BREAK -case 149: +case 150: YY_RULE_SETUP #line 557 "scan.l" { @@ -3185,8 +3191,8 @@ YY_RULE_SETUP } } YY_BREAK -case 150: -/* rule 150 can match eol */ +case 151: +/* rule 151 can match eol */ YY_RULE_SETUP #line 579 "scan.l" { @@ -3209,14 +3215,14 @@ YY_RULE_SETUP } } YY_BREAK -case 151: -#line 600 "scan.l" case 152: +#line 600 "scan.l" +case 153: YY_RULE_SETUP #line 600 "scan.l" return EOF_OP; YY_BREAK -case 153: +case 154: YY_RULE_SETUP #line 602 "scan.l" { @@ -3226,7 +3232,7 @@ YY_RULE_SETUP yyterminate(); /* to stop the parser */ } YY_BREAK -case 154: +case 155: YY_RULE_SETUP #line 609 "scan.l" { @@ -3250,7 +3256,7 @@ YY_RULE_SETUP * The reason it was disabled is so yacc/bison can parse * ccl operations, such as ccl difference and union. */ - && (cclval = ccllookup( (Char *) nmstr )) != 0 ) + && (cclval = ccllookup( nmstr )) != 0 ) { if ( input() != ']' ) synerr( _( "bad character class" ) ); @@ -3264,7 +3270,7 @@ YY_RULE_SETUP /* We fudge a bit. We know that this ccl will * soon be numbered as lastccl + 1 by cclinit. */ - cclinstal( (Char *) nmstr, lastccl + 1 ); + cclinstal( nmstr, lastccl + 1 ); /* Push back everything but the leading bracket * so the ccl can be rescanned. @@ -3276,12 +3282,12 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP #line 655 "scan.l" return CCL_OP_DIFF; YY_BREAK -case 156: +case 157: YY_RULE_SETUP #line 656 "scan.l" return CCL_OP_UNION; @@ -3290,12 +3296,12 @@ return CCL_OP_UNION; * wrap the expanded regex in '(' ')' -- breaking trailing * context. */ -case 157: -/* rule 157 can match eol */ +case 158: +/* rule 158 can match eol */ YY_RULE_SETUP #line 663 "scan.l" { - Char *nmdefptr; + char *nmdefptr; int end_is_ws, end_ch; end_ch = yytext[yyleng-1]; @@ -3319,7 +3325,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ else { /* push back name surrounded by ()'s */ - int len = strlen( (char *) nmdefptr ); + int len = strlen( nmdefptr ); if (end_is_ws) unput(end_ch); @@ -3327,7 +3333,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ (len > 0 && nmdefptr[len - 1] == '$') || (end_is_ws && trlcontxt && !sf_skip_ws())) { /* don't use ()'s after all */ - PUT_BACK_STRING((char *) nmdefptr, 0); + PUT_BACK_STRING(nmdefptr, 0); if ( nmdefptr[0] == '^' ) BEGIN(CARETISBOL); @@ -3336,13 +3342,13 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ else { unput(')'); - PUT_BACK_STRING((char *) nmdefptr, 0); + PUT_BACK_STRING(nmdefptr, 0); unput('('); } } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP #line 711 "scan.l" { @@ -3355,7 +3361,7 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP #line 721 "scan.l" { @@ -3369,7 +3375,7 @@ YY_RULE_SETUP yy_push_state(EXTENDED_COMMENT); } YY_BREAK -case 160: +case 161: YY_RULE_SETUP #line 731 "scan.l" { @@ -3382,86 +3388,92 @@ YY_RULE_SETUP return '('; } YY_BREAK -case 161: +case 162: YY_RULE_SETUP #line 740 "scan.l" sf_push(); return '('; YY_BREAK -case 162: +case 163: YY_RULE_SETUP #line 741 "scan.l" -sf_pop(); return ')'; +{ + if (_sf_top_ix > 0) { + sf_pop(); + return ')'; + } else + synerr(_("unbalanced parenthesis")); + } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 743 "scan.l" +#line 749 "scan.l" return (unsigned char) yytext[0]; YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 744 "scan.l" +#line 750 "scan.l" RETURNCHAR; YY_BREAK -case 165: -/* rule 165 can match eol */ +case 166: +/* rule 166 can match eol */ YY_RULE_SETUP -#line 749 "scan.l" +#line 755 "scan.l" ++linenum; /* Allow blank lines & continuations */ YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 750 "scan.l" +#line 756 "scan.l" return (unsigned char) yytext[0]; YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 751 "scan.l" +#line 757 "scan.l" BEGIN(SECT2); return '>'; YY_BREAK -case 168: +case 169: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 752 "scan.l" +#line 758 "scan.l" BEGIN(CARETISBOL); return '>'; YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 753 "scan.l" +#line 759 "scan.l" RETURNNAME; YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 754 "scan.l" +#line 760 "scan.l" { format_synerr( _( "bad <start condition>: %s" ), yytext ); } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 760 "scan.l" +#line 766 "scan.l" BEGIN(SECT2); return '^'; YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 764 "scan.l" +#line 770 "scan.l" RETURNCHAR; YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 765 "scan.l" +#line 771 "scan.l" BEGIN(SECT2); return '"'; YY_BREAK -case 174: -/* rule 174 can match eol */ +case 175: +/* rule 175 can match eol */ YY_RULE_SETUP -#line 767 "scan.l" +#line 773 "scan.l" { synerr( _( "missing quote" ) ); BEGIN(SECT2); @@ -3471,100 +3483,100 @@ YY_RULE_SETUP YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 776 "scan.l" +#line 782 "scan.l" BEGIN(SECT2); YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 777 "scan.l" +#line 783 "scan.l" BEGIN(GROUP_MINUS_PARAMS); YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 778 "scan.l" +#line 784 "scan.l" sf_set_case_ins(1); YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 779 "scan.l" +#line 785 "scan.l" sf_set_dot_all(1); YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 780 "scan.l" +#line 786 "scan.l" sf_set_skip_ws(1); YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 783 "scan.l" +#line 789 "scan.l" BEGIN(SECT2); YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 784 "scan.l" +#line 790 "scan.l" sf_set_case_ins(0); YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 785 "scan.l" +#line 791 "scan.l" sf_set_dot_all(0); YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 786 "scan.l" +#line 792 "scan.l" sf_set_skip_ws(0); YY_BREAK -case 184: +case 185: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 790 "scan.l" +#line 796 "scan.l" BEGIN(CCL); return '^'; YY_BREAK -case 185: +case 186: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 791 "scan.l" +#line 797 "scan.l" return '^'; YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 792 "scan.l" +#line 798 "scan.l" BEGIN(CCL); RETURNCHAR; YY_BREAK -case 187: +case 188: *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 796 "scan.l" +#line 802 "scan.l" return '-'; YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 797 "scan.l" +#line 803 "scan.l" RETURNCHAR; YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 798 "scan.l" +#line 804 "scan.l" BEGIN(SECT2); return ']'; YY_BREAK -case 190: -/* rule 190 can match eol */ +case 191: +/* rule 191 can match eol */ YY_RULE_SETUP -#line 799 "scan.l" +#line 805 "scan.l" { synerr( _( "bad character class" ) ); BEGIN(SECT2); @@ -3573,129 +3585,129 @@ YY_RULE_SETUP YY_BREAK -case 191: +case 192: YY_RULE_SETUP -#line 807 "scan.l" +#line 813 "scan.l" BEGIN(CCL); return CCE_ALNUM; YY_BREAK -case 192: +case 193: YY_RULE_SETUP -#line 808 "scan.l" +#line 814 "scan.l" BEGIN(CCL); return CCE_ALPHA; YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 809 "scan.l" +#line 815 "scan.l" BEGIN(CCL); return CCE_BLANK; YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 810 "scan.l" +#line 816 "scan.l" BEGIN(CCL); return CCE_CNTRL; YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 811 "scan.l" +#line 817 "scan.l" BEGIN(CCL); return CCE_DIGIT; YY_BREAK -case 196: +case 197: YY_RULE_SETUP -#line 812 "scan.l" +#line 818 "scan.l" BEGIN(CCL); return CCE_GRAPH; YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 813 "scan.l" +#line 819 "scan.l" BEGIN(CCL); return CCE_LOWER; YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 814 "scan.l" +#line 820 "scan.l" BEGIN(CCL); return CCE_PRINT; YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 815 "scan.l" +#line 821 "scan.l" BEGIN(CCL); return CCE_PUNCT; YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 816 "scan.l" +#line 822 "scan.l" BEGIN(CCL); return CCE_SPACE; YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 817 "scan.l" +#line 823 "scan.l" BEGIN(CCL); return CCE_UPPER; YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 818 "scan.l" +#line 824 "scan.l" BEGIN(CCL); return CCE_XDIGIT; YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 820 "scan.l" +#line 826 "scan.l" BEGIN(CCL); return CCE_NEG_ALNUM; YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 821 "scan.l" +#line 827 "scan.l" BEGIN(CCL); return CCE_NEG_ALPHA; YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 822 "scan.l" +#line 828 "scan.l" BEGIN(CCL); return CCE_NEG_BLANK; YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 823 "scan.l" +#line 829 "scan.l" BEGIN(CCL); return CCE_NEG_CNTRL; YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 824 "scan.l" +#line 830 "scan.l" BEGIN(CCL); return CCE_NEG_DIGIT; YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 825 "scan.l" +#line 831 "scan.l" BEGIN(CCL); return CCE_NEG_GRAPH; YY_BREAK -case 209: +case 210: YY_RULE_SETUP -#line 826 "scan.l" +#line 832 "scan.l" BEGIN(CCL); return CCE_NEG_LOWER; YY_BREAK -case 210: +case 211: YY_RULE_SETUP -#line 827 "scan.l" +#line 833 "scan.l" BEGIN(CCL); return CCE_NEG_PRINT; YY_BREAK -case 211: +case 212: YY_RULE_SETUP -#line 828 "scan.l" +#line 834 "scan.l" BEGIN(CCL); return CCE_NEG_PUNCT; YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 829 "scan.l" +#line 835 "scan.l" BEGIN(CCL); return CCE_NEG_SPACE; YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 830 "scan.l" +#line 836 "scan.l" BEGIN(CCL); return CCE_NEG_UPPER; YY_BREAK -case 214: +case 215: YY_RULE_SETUP -#line 831 "scan.l" +#line 837 "scan.l" BEGIN(CCL); return CCE_NEG_XDIGIT; YY_BREAK -case 215: +case 216: YY_RULE_SETUP -#line 832 "scan.l" +#line 838 "scan.l" { format_synerr( _( "bad character class expression: %s" ), @@ -3705,22 +3717,22 @@ YY_RULE_SETUP YY_BREAK -case 216: +case 217: YY_RULE_SETUP -#line 841 "scan.l" +#line 847 "scan.l" { yylval = myctoi( yytext ); return NUMBER; } YY_BREAK -case 217: +case 218: YY_RULE_SETUP -#line 846 "scan.l" +#line 852 "scan.l" return ','; YY_BREAK -case 218: +case 219: YY_RULE_SETUP -#line 847 "scan.l" +#line 853 "scan.l" { BEGIN(SECT2); if ( lex_compat || posix_compat ) @@ -3729,19 +3741,19 @@ YY_RULE_SETUP return END_REPEAT_FLEX; } YY_BREAK -case 219: +case 220: YY_RULE_SETUP -#line 855 "scan.l" +#line 861 "scan.l" { synerr( _( "bad character inside {}'s" ) ); BEGIN(SECT2); return '}'; } YY_BREAK -case 220: -/* rule 220 can match eol */ +case 221: +/* rule 221 can match eol */ YY_RULE_SETUP -#line 861 "scan.l" +#line 867 "scan.l" { synerr( _( "missing }" ) ); BEGIN(SECT2); @@ -3751,53 +3763,53 @@ YY_RULE_SETUP YY_BREAK -case 221: +case 222: YY_RULE_SETUP -#line 871 "scan.l" +#line 877 "scan.l" bracelevel = 0; YY_BREAK -case 222: +case 223: YY_RULE_SETUP -#line 873 "scan.l" +#line 879 "scan.l" ACTION_ECHO; yy_push_state( COMMENT ); YY_BREAK -case 223: +case 224: YY_RULE_SETUP -#line 876 "scan.l" +#line 882 "scan.l" { ACTION_ECHO; CHECK_REJECT(yytext); } YY_BREAK -case 224: +case 225: YY_RULE_SETUP -#line 880 "scan.l" +#line 886 "scan.l" { ACTION_ECHO; CHECK_YYMORE(yytext); } YY_BREAK -case 225: +case 226: YY_RULE_SETUP -#line 886 "scan.l" +#line 892 "scan.l" ACTION_ECHO_QSTART; YY_BREAK -case 226: +case 227: YY_RULE_SETUP -#line 887 "scan.l" +#line 893 "scan.l" ACTION_ECHO_QEND; YY_BREAK -case 227: +case 228: YY_RULE_SETUP -#line 888 "scan.l" +#line 894 "scan.l" ACTION_ECHO; YY_BREAK -case 228: -/* rule 228 can match eol */ +case 229: +/* rule 229 can match eol */ YY_RULE_SETUP -#line 889 "scan.l" +#line 895 "scan.l" { ++linenum; ACTION_ECHO; @@ -3815,55 +3827,55 @@ YY_RULE_SETUP /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ -case 229: -YY_RULE_SETUP -#line 907 "scan.l" -ACTION_ECHO; ++bracelevel; - YY_BREAK case 230: YY_RULE_SETUP -#line 908 "scan.l" -ACTION_ECHO; --bracelevel; +#line 913 "scan.l" +ACTION_ECHO; ++bracelevel; YY_BREAK case 231: YY_RULE_SETUP -#line 909 "scan.l" -ACTION_ECHO_QSTART; +#line 914 "scan.l" +ACTION_ECHO; --bracelevel; YY_BREAK case 232: YY_RULE_SETUP -#line 910 "scan.l" -ACTION_ECHO_QEND; +#line 915 "scan.l" +ACTION_ECHO_QSTART; YY_BREAK case 233: YY_RULE_SETUP -#line 911 "scan.l" -ACTION_ECHO; +#line 916 "scan.l" +ACTION_ECHO_QEND; YY_BREAK case 234: YY_RULE_SETUP -#line 912 "scan.l" +#line 917 "scan.l" ACTION_ECHO; YY_BREAK case 235: YY_RULE_SETUP -#line 913 "scan.l" +#line 918 "scan.l" ACTION_ECHO; YY_BREAK case 236: YY_RULE_SETUP -#line 914 "scan.l" -ACTION_ECHO; /* character constant */ +#line 919 "scan.l" +ACTION_ECHO; YY_BREAK case 237: YY_RULE_SETUP -#line 915 "scan.l" -ACTION_ECHO; BEGIN(ACTION_STRING); +#line 920 "scan.l" +ACTION_ECHO; /* character constant */ YY_BREAK case 238: -/* rule 238 can match eol */ YY_RULE_SETUP -#line 916 "scan.l" +#line 921 "scan.l" +ACTION_ECHO; BEGIN(ACTION_STRING); + YY_BREAK +case 239: +/* rule 239 can match eol */ +YY_RULE_SETUP +#line 922 "scan.l" { ++linenum; ACTION_ECHO; @@ -3877,37 +3889,37 @@ YY_RULE_SETUP } } YY_BREAK -case 239: +case 240: YY_RULE_SETUP -#line 928 "scan.l" +#line 934 "scan.l" ACTION_ECHO; YY_BREAK -case 240: +case 241: YY_RULE_SETUP -#line 932 "scan.l" +#line 938 "scan.l" ACTION_ECHO; YY_BREAK -case 241: +case 242: YY_RULE_SETUP -#line 933 "scan.l" +#line 939 "scan.l" ACTION_ECHO; YY_BREAK -case 242: -/* rule 242 can match eol */ +case 243: +/* rule 243 can match eol */ YY_RULE_SETUP -#line 934 "scan.l" +#line 940 "scan.l" ++linenum; ACTION_ECHO; BEGIN(ACTION); YY_BREAK -case 243: +case 244: YY_RULE_SETUP -#line 935 "scan.l" +#line 941 "scan.l" ACTION_ECHO; BEGIN(ACTION); YY_BREAK -case 244: +case 245: YY_RULE_SETUP -#line 936 "scan.l" +#line 942 "scan.l" ACTION_ECHO; YY_BREAK @@ -3915,7 +3927,7 @@ case YY_STATE_EOF(COMMENT): case YY_STATE_EOF(COMMENT_DISCARD): case YY_STATE_EOF(ACTION): case YY_STATE_EOF(ACTION_STRING): -#line 939 "scan.l" +#line 945 "scan.l" { synerr( _( "EOF encountered inside an action" ) ); yyterminate(); @@ -3924,17 +3936,17 @@ case YY_STATE_EOF(ACTION_STRING): case YY_STATE_EOF(EXTENDED_COMMENT): case YY_STATE_EOF(GROUP_WITH_PARAMS): case YY_STATE_EOF(GROUP_MINUS_PARAMS): -#line 944 "scan.l" +#line 950 "scan.l" { synerr( _( "EOF encountered inside pattern" ) ); yyterminate(); } YY_BREAK -case 245: +case 246: YY_RULE_SETUP -#line 949 "scan.l" +#line 955 "scan.l" { - yylval = myesc( (Char *) yytext ); + yylval = myesc( (unsigned char *) yytext ); if ( YY_START == FIRSTCCL ) BEGIN(CCL); @@ -3943,45 +3955,45 @@ YY_RULE_SETUP } YY_BREAK -case 246: +case 247: YY_RULE_SETUP -#line 960 "scan.l" +#line 966 "scan.l" fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout); YY_BREAK -case 247: +case 248: YY_RULE_SETUP -#line 961 "scan.l" +#line 967 "scan.l" fwrite (escaped_qend, 1, strlen(escaped_qend), yyout); YY_BREAK -case 248: -/* rule 248 can match eol */ +case 249: +/* rule 249 can match eol */ YY_RULE_SETUP -#line 962 "scan.l" +#line 968 "scan.l" ECHO; YY_BREAK -case 249: -/* rule 249 can match eol */ +case 250: +/* rule 250 can match eol */ YY_RULE_SETUP -#line 963 "scan.l" +#line 969 "scan.l" ECHO; YY_BREAK case YY_STATE_EOF(SECT3): -#line 964 "scan.l" +#line 970 "scan.l" sectnum = 0; yyterminate(); YY_BREAK -case 250: -/* rule 250 can match eol */ +case 251: +/* rule 251 can match eol */ YY_RULE_SETUP -#line 967 "scan.l" +#line 973 "scan.l" format_synerr( _( "bad character: %s" ), yytext ); YY_BREAK -case 251: +case 252: YY_RULE_SETUP -#line 969 "scan.l" +#line 975 "scan.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 3985 "scan.c" +#line 3997 "scan.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(SECT2): case YY_STATE_EOF(CODEBLOCK): @@ -4288,7 +4300,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1107 ) + if ( yy_current_state >= 1110 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -4316,11 +4328,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1107 ) + if ( yy_current_state >= 1110 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1106); + yy_is_jam = (yy_current_state == 1109); return yy_is_jam ? 0 : yy_current_state; } @@ -5038,12 +5050,12 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 969 "scan.l" +#line 975 "scan.l" -int yywrap() +int yywrap(void) { if ( --num_input_files > 0 ) { @@ -5058,12 +5070,11 @@ int yywrap() /* set_input_file - open the given file (if NULL, stdin) for scanning */ -void set_input_file( file ) -char *file; +void set_input_file( char *file ) { if ( file && strcmp( file, "-" ) ) { - infilename = copy_string( file ); + infilename = xstrdup(file); yyin = fopen( infilename, "r" ); if ( yyin == NULL ) @@ -5073,32 +5084,9 @@ char *file; else { yyin = stdin; - infilename = copy_string( "<stdin>" ); + infilename = xstrdup("<stdin>"); } linenum = 1; } - -/* Wrapper routines for accessing the scanner's malloc routines. */ - -void *flex_alloc( size ) -size_t size; - { - return (void *) malloc( size ); - } - -void *flex_realloc( ptr, size ) -void *ptr; -size_t size; - { - return (void *) realloc( ptr, size ); - } - -void flex_free( ptr ) -void *ptr; - { - if ( ptr ) - free( ptr ); - } - @@ -59,7 +59,7 @@ extern const char *escaped_qstart, *escaped_qend; #define MARK_END_OF_PROLOG mark_prolog(); #define YY_DECL \ - int flexscan() + int flexscan(void) #define RETURNCHAR \ yylval = (unsigned char) yytext[0]; \ @@ -135,7 +135,7 @@ M4QEND "]]" int doing_codeblock = false; int i, brace_depth=0, brace_start_line=0; - Char nmdef[MAXLINE]; + char nmdef[MAXLINE]; <INITIAL>{ @@ -146,7 +146,7 @@ M4QEND "]]" ^"%x"{NAME}? return XSCDECL; ^"%{".*{NL} { ++linenum; - line_directive_out( (FILE *) 0, 1 ); + line_directive_out(NULL, 1); indented_code = false; BEGIN(CODEBLOCK); } @@ -166,7 +166,7 @@ M4QEND "]]" sectnum = 2; bracelevel = 0; mark_defs1(); - line_directive_out( (FILE *) 0, 1 ); + line_directive_out(NULL, 1); BEGIN(SECT2PROLOG); return SECTEND; } @@ -174,7 +174,7 @@ M4QEND "]]" ^"%pointer".*{NL} yytext_is_array = false; ++linenum; ^"%array".*{NL} yytext_is_array = true; ++linenum; - ^"%option" BEGIN(OPTION); return OPTION_OP; + ^"%option" BEGIN(OPTION); return TOK_OPTION; ^"%"{LEXOPT}{OPTWS}[[:digit:]]*{OPTWS}{NL} ++linenum; /* ignore */ ^"%"{LEXOPT}{WS}.*{NL} ++linenum; /* ignore */ @@ -231,8 +231,8 @@ M4QEND "]]" [[:digit:]]+ linenum = myctoi( yytext ); \"[^"\n]*\" { - flex_free( (void *) infilename ); - infilename = copy_string( yytext + 1 ); + free(infilename); + infilename = xstrdup(yytext + 1); infilename[strlen( infilename ) - 1] = '\0'; } . /* ignore spurious characters */ @@ -272,8 +272,8 @@ M4QEND "]]" buf_strnappend(&top_buf, yytext, yyleng); } - {M4QSTART} buf_strnappend(&top_buf, escaped_qstart, strlen(escaped_qstart)); - {M4QEND} buf_strnappend(&top_buf, escaped_qend, strlen(escaped_qend)); + {M4QSTART} buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); + {M4QEND} buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); [^{}\r\n] { buf_strnappend(&top_buf, yytext, yyleng); @@ -293,7 +293,7 @@ M4QEND "]]" {NOT_WS}[^\r\n]* { if(yyleng < MAXLINE) { - strcpy( (char *) nmdef, yytext ); + strcpy( nmdef, yytext ); } else { @@ -301,7 +301,7 @@ M4QEND "]]" FLEX_EXIT(EXIT_FAILURE); } /* Skip trailing whitespace. */ - for ( i = strlen( (char *) nmdef ) - 1; + for ( i = strlen( nmdef ) - 1; i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); --i ) ; @@ -421,12 +421,12 @@ M4QEND "]]" yyget_lloc ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); yyset_lloc ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); - extra-type return OPT_EXTRA_TYPE; - outfile return OPT_OUTFILE; - prefix return OPT_PREFIX; - yyclass return OPT_YYCLASS; - header(-file)? return OPT_HEADER; - tables-file return OPT_TABLES; + extra-type return TOK_EXTRA_TYPE; + outfile return TOK_OUTFILE; + prefix return TOK_PREFIX; + yyclass return TOK_YYCLASS; + header(-file)? return TOK_HEADER_FILE; + tables-file return TOK_TABLES_FILE; tables-verify { tablesverify = option_sense; if(!tablesext && option_sense) @@ -528,8 +528,7 @@ M4QEND "]]" if (sf_skip_ws()){ /* We're in the middle of a (?x: ) pattern. */ /* Push back everything starting at the "|" */ - size_t amt; - amt = strchr (yytext, '|') - yytext; + int amt = (int) (strchr (yytext, '|') - yytext); yyless(amt); } else { @@ -628,7 +627,7 @@ M4QEND "]]" * The reason it was disabled is so yacc/bison can parse * ccl operations, such as ccl difference and union. */ - && (cclval = ccllookup( (Char *) nmstr )) != 0 ) + && (cclval = ccllookup( nmstr )) != 0 ) { if ( input() != ']' ) synerr( _( "bad character class" ) ); @@ -642,7 +641,7 @@ M4QEND "]]" /* We fudge a bit. We know that this ccl will * soon be numbered as lastccl + 1 by cclinit. */ - cclinstal( (Char *) nmstr, lastccl + 1 ); + cclinstal( nmstr, lastccl + 1 ); /* Push back everything but the leading bracket * so the ccl can be rescanned. @@ -662,7 +661,7 @@ M4QEND "]]" * context. */ "{"{NAME}"}"[[:space:]]? { - Char *nmdefptr; + char *nmdefptr; int end_is_ws, end_ch; end_ch = yytext[yyleng-1]; @@ -686,7 +685,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ else { /* push back name surrounded by ()'s */ - int len = strlen( (char *) nmdefptr ); + int len = strlen( nmdefptr ); if (end_is_ws) unput(end_ch); @@ -694,7 +693,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ (len > 0 && nmdefptr[len - 1] == '$') || (end_is_ws && trlcontxt && !sf_skip_ws())) { /* don't use ()'s after all */ - PUT_BACK_STRING((char *) nmdefptr, 0); + PUT_BACK_STRING(nmdefptr, 0); if ( nmdefptr[0] == '^' ) BEGIN(CARETISBOL); @@ -703,7 +702,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ else { unput(')'); - PUT_BACK_STRING((char *) nmdefptr, 0); + PUT_BACK_STRING(nmdefptr, 0); unput('('); } } @@ -739,7 +738,13 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ return '('; } "(" sf_push(); return '('; - ")" sf_pop(); return ')'; + ")" { + if (_sf_top_ix > 0) { + sf_pop(); + return ')'; + } else + synerr(_("unbalanced parenthesis")); + } [/|*+?.(){}] return (unsigned char) yytext[0]; . RETURNCHAR; @@ -948,7 +953,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ } <SECT2,QUOTE,FIRSTCCL,CCL>{ESCSEQ} { - yylval = myesc( (Char *) yytext ); + yylval = myesc( (unsigned char *) yytext ); if ( YY_START == FIRSTCCL ) BEGIN(CCL); @@ -970,7 +975,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ %% -int yywrap() +int yywrap(void) { if ( --num_input_files > 0 ) { @@ -985,12 +990,11 @@ int yywrap() /* set_input_file - open the given file (if NULL, stdin) for scanning */ -void set_input_file( file ) -char *file; +void set_input_file( char *file ) { if ( file && strcmp( file, "-" ) ) { - infilename = copy_string( file ); + infilename = xstrdup(file); yyin = fopen( infilename, "r" ); if ( yyin == NULL ) @@ -1000,31 +1004,8 @@ char *file; else { yyin = stdin; - infilename = copy_string( "<stdin>" ); + infilename = xstrdup("<stdin>"); } linenum = 1; } - - -/* Wrapper routines for accessing the scanner's malloc routines. */ - -void *flex_alloc( size ) -size_t size; - { - return (void *) malloc( size ); - } - -void *flex_realloc( ptr, size ) -void *ptr; -size_t size; - { - return (void *) realloc( ptr, size ); - } - -void flex_free( ptr ) -void *ptr; - { - if ( ptr ) - free( ptr ); - } diff --git a/src/scanflags.c b/src/scanflags.c index 5beb24a..aa3de8a 100644 --- a/src/scanflags.c +++ b/src/scanflags.c @@ -40,7 +40,8 @@ void sf_push (void) { if (_sf_top_ix + 1 >= _sf_max) - _sf_stk = (scanflags_t*) flex_realloc ( (void*) _sf_stk, sizeof(scanflags_t) * (_sf_max += 32)); + _sf_max += 32; + _sf_stk = realloc(_sf_stk, sizeof(scanflags_t) * _sf_max); // copy the top element _sf_stk[_sf_top_ix + 1] = _sf_stk[_sf_top_ix]; @@ -59,7 +60,8 @@ void sf_init (void) { assert(_sf_stk == NULL); - _sf_stk = (scanflags_t*) flex_alloc ( sizeof(scanflags_t) * (_sf_max = 32)); + _sf_max = 32; + _sf_stk = malloc(sizeof(scanflags_t) * _sf_max); if (!_sf_stk) lerr_fatal(_("Unable to allocate %zu of stack"), sizeof(scanflags_t)); _sf_stk[_sf_top_ix] = 0; diff --git a/src/scanopt.c b/src/scanopt.c index 10c372a..a118541 100644 --- a/src/scanopt.c +++ b/src/scanopt.c @@ -37,20 +37,6 @@ /* Internal structures */ -#ifdef HAVE_STRCASECMP -#define STRCASECMP(a,b) strcasecmp(a,b) -#else -static int STRCASECMP PROTO ((const char *, const char *)); - -static int STRCASECMP (a, b) - const char *a; - const char *b; -{ - while (tolower ((unsigned char)*a++) == tolower ((unsigned char)*b++)) ; - return b - a; -} -#endif - #define ARG_NONE 0x01 #define ARG_REQ 0x02 #define ARG_OPT 0x04 @@ -77,56 +63,45 @@ struct _scanopt_t { }; /* Accessor functions. These WOULD be one-liners, but portability calls. */ -static const char *NAME PROTO ((struct _scanopt_t *, int)); -static int PRINTLEN PROTO ((struct _scanopt_t *, int)); -static int RVAL PROTO ((struct _scanopt_t *, int)); -static int FLAGS PROTO ((struct _scanopt_t *, int)); -static const char *DESC PROTO ((struct _scanopt_t *, int)); -static int scanopt_err PROTO ((struct _scanopt_t *, int, int)); -static int matchlongopt PROTO ((char *, char **, int *, char **, int *)); -static int find_opt -PROTO ((struct _scanopt_t *, int, char *, int, int *, int *opt_offset)); - -static const char *NAME (s, i) - struct _scanopt_t *s; - int i; +static const char *NAME(struct _scanopt_t *, int); +static int PRINTLEN(struct _scanopt_t *, int); +static int RVAL(struct _scanopt_t *, int); +static int FLAGS(struct _scanopt_t *, int); +static const char *DESC(struct _scanopt_t *, int); +static int scanopt_err(struct _scanopt_t *, int, int); +static int matchlongopt(char *, char **, int *, char **, int *); +static int find_opt(struct _scanopt_t *, int, char *, int, int *, int *opt_offset); + +static const char *NAME (struct _scanopt_t *s, int i) { return s->options[i].opt_fmt + ((s->aux[i].flags & IS_LONG) ? 2 : 1); } -static int PRINTLEN (s, i) - struct _scanopt_t *s; - int i; +static int PRINTLEN (struct _scanopt_t *s, int i) { return s->aux[i].printlen; } -static int RVAL (s, i) - struct _scanopt_t *s; - int i; +static int RVAL (struct _scanopt_t *s, int i) { return s->options[i].r_val; } -static int FLAGS (s, i) - struct _scanopt_t *s; - int i; +static int FLAGS (struct _scanopt_t *s, int i) { return s->aux[i].flags; } -static const char *DESC (s, i) - struct _scanopt_t *s; - int i; +static const char *DESC (struct _scanopt_t *s, int i) { return s->options[i].desc ? s->options[i].desc : ""; } #ifndef NO_SCANOPT_USAGE -static int get_cols PROTO ((void)); +static int get_cols (void); -static int get_cols () +static int get_cols (void) { char *env; int cols = 80; /* default */ @@ -159,15 +134,11 @@ static int get_cols () (s)->subscript= 0; \ }while(0) -scanopt_t *scanopt_init (options, argc, argv, flags) - const optspec_t *options; - int argc; - char **argv; - int flags; +scanopt_t *scanopt_init (const optspec_t *options, int argc, char **argv, int flags) { int i; struct _scanopt_t *s; - s = (struct _scanopt_t *) malloc (sizeof (struct _scanopt_t)); + s = malloc(sizeof (struct _scanopt_t)); s->options = options; s->optc = 0; @@ -186,10 +157,10 @@ scanopt_t *scanopt_init (options, argc, argv, flags) s->optc++; /* Build auxiliary data */ - s->aux = (struct _aux *) malloc (s->optc * sizeof (struct _aux)); + s->aux = malloc((size_t) s->optc * sizeof (struct _aux)); for (i = 0; i < s->optc; i++) { - const Char *p, *pname; + const unsigned char *p, *pname; const struct optspec_t *opt; struct _aux *aux; @@ -200,14 +171,14 @@ scanopt_t *scanopt_init (options, argc, argv, flags) if (opt->opt_fmt[0] == '-' && opt->opt_fmt[1] == '-') { aux->flags |= IS_LONG; - pname = (const Char *)(opt->opt_fmt + 2); + pname = (const unsigned char *)(opt->opt_fmt + 2); s->has_long = 1; } else { - pname = (const Char *)(opt->opt_fmt + 1); + pname = (const unsigned char *)(opt->opt_fmt + 1); s->has_short = 1; } - aux->printlen = strlen (opt->opt_fmt); + aux->printlen = (int) strlen (opt->opt_fmt); aux->namelen = 0; for (p = pname + 1; *p; p++) { @@ -255,10 +226,7 @@ typedef struct usg_elem usg_elem; [indent][option, alias1, alias2...][indent][description line1 description line2...] */ -int scanopt_usage (scanner, fp, usage) - scanopt_t *scanner; - FILE *fp; - const char *usage; +int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage) { struct _scanopt_t *s; int i, columns, indent = 2; @@ -293,7 +261,7 @@ int scanopt_usage (scanner, fp, usage) fprintf (fp, "\n"); /* Sort by r_val and string. Yes, this is O(n*n), but n is small. */ - store = (usg_elem *) malloc (s->optc * sizeof (usg_elem)); + store = malloc((size_t) s->optc * sizeof (usg_elem)); for (i = 0; i < s->optc; i++) { /* grab the next preallocate node. */ @@ -319,7 +287,7 @@ int scanopt_usage (scanner, fp, usage) } if (!ptr_if_no_alias && - STRCASECMP (NAME (s, (*ue_curr)->idx), + strcasecmp (NAME (s, (*ue_curr)->idx), NAME (s, ue->idx)) > 0) { ptr_if_no_alias = ue_curr; } @@ -391,7 +359,7 @@ int scanopt_usage (scanner, fp, usage) maxlen[0] = len; /* It's much easier to calculate length for description column! */ - len = strlen (DESC (s, ue->idx)); + len = (int) strlen (DESC (s, ue->idx)); if (len > maxlen[1]) maxlen[1] = len; } @@ -529,10 +497,7 @@ int scanopt_usage (scanner, fp, usage) #endif /* no scanopt_usage */ -static int scanopt_err (s, is_short, err) - struct _scanopt_t *s; - int is_short; - int err; +static int scanopt_err (struct _scanopt_t *s, int is_short, int err) { const char *optname = ""; char optchar[2]; @@ -587,16 +552,11 @@ static int scanopt_err (s, is_short, err) * optname will point to str + 2 * */ -static int matchlongopt (str, optname, optlen, arg, arglen) - char *str; - char **optname; - int *optlen; - char **arg; - int *arglen; +static int matchlongopt (char *str, char **optname, int *optlen, char **arg, int *arglen) { char *p; - *optname = *arg = (char *) 0; + *optname = *arg = NULL; *optlen = *arglen = 0; /* Match regex /--./ */ @@ -605,7 +565,7 @@ static int matchlongopt (str, optname, optlen, arg, arglen) return 0; p += 2; - *optname = (char *) p; + *optname = p; /* find the end of optname */ while (*p && *p != '=') @@ -634,13 +594,8 @@ static int matchlongopt (str, optname, optlen, arg, arglen) * Short options must be exact. * Return boolean true if found and no error. * Error stored in err_code or zero if no error. */ -static int find_opt (s, lookup_long, optstart, len, err_code, opt_offset) - struct _scanopt_t *s; - int lookup_long; - char *optstart; - int len; - int *err_code; - int *opt_offset; +static int find_opt (struct _scanopt_t *s, int lookup_long, char *optstart, int + len, int *err_code, int *opt_offset) { int nmatch = 0, lastr_val = 0, i; @@ -651,11 +606,9 @@ static int find_opt (s, lookup_long, optstart, len, err_code, opt_offset) return 0; for (i = 0; i < s->optc; i++) { - char *optname; + const char *optname; - optname = - (char *) (s->options[i].opt_fmt + - (lookup_long ? 2 : 1)); + optname = s->options[i].opt_fmt + (lookup_long ? 2 : 1); if (lookup_long && (s->aux[i].flags & IS_LONG)) { if (len > s->aux[i].namelen) @@ -699,10 +652,7 @@ static int find_opt (s, lookup_long, optstart, len, err_code, opt_offset) } -int scanopt (svoid, arg, optindex) - scanopt_t *svoid; - char **arg; - int *optindex; +int scanopt (scanopt_t *svoid, char **arg, int *optindex) { char *optname = NULL, *optarg = NULL, *pstart; int namelen = 0, arglen = 0; @@ -788,7 +738,7 @@ int scanopt (svoid, arg, optindex) arglen = 0; } else - arglen = strlen (optarg); + arglen = (int) strlen (optarg); } /* At this point, we have a long or short option matched at opt_offset into @@ -848,16 +798,14 @@ int scanopt (svoid, arg, optindex) } -int scanopt_destroy (svoid) - scanopt_t *svoid; +int scanopt_destroy (scanopt_t *svoid) { struct _scanopt_t *s; s = (struct _scanopt_t *) svoid; - if (s) { - if (s->aux) - free (s->aux); - free (s); + if (s != NULL) { + free(s->aux); + free(s); } return 0; } diff --git a/src/scanopt.h b/src/scanopt.h index 359a18a..c6e7dec 100644 --- a/src/scanopt.h +++ b/src/scanopt.h @@ -47,9 +47,6 @@ #ifdef __cplusplus extern "C" { #endif -#ifndef PROTO -#define PROTO(args) args -#endif /* Error codes. */ enum scanopt_err_t { SCANOPT_ERR_OPT_UNRECOGNIZED = -1, /* Unrecognized option. */ SCANOPT_ERR_OPT_AMBIGUOUS = -2, /* It matched more than one option name. */ @@ -85,12 +82,12 @@ extern "C" { * flags - Control behavior. * Return: A malloc'd pointer . */ - scanopt_t *scanopt_init PROTO ((const optspec_t * options, - int argc, char **argv, int flags)); + scanopt_t *scanopt_init (const optspec_t * options, int argc, + char **argv, int flags); /* Frees memory used by scanner. * Always returns 0. */ - int scanopt_destroy PROTO ((scanopt_t * scanner)); + int scanopt_destroy (scanopt_t * scanner); #ifndef NO_SCANOPT_USAGE /* Prints a usage message based on contents of optlist. @@ -100,10 +97,7 @@ extern "C" { * usage - Text to be prepended to option list. May be NULL. * Return: Always returns 0 (zero). */ - int scanopt_usage - PROTO ( - (scanopt_t * scanner, FILE * fp, - const char *usage)); + int scanopt_usage (scanopt_t * scanner, FILE * fp, const char *usage); #endif /* Scans command-line options in argv[]. @@ -120,10 +114,7 @@ extern "C" { * < 0 on error (return value is an error code). * */ - int scanopt - PROTO ( - (scanopt_t * scanner, char **optarg, - int *optindex)); + int scanopt (scanopt_t * scanner, char **optarg, int *optindex); #ifdef __cplusplus } @@ -90,7 +90,7 @@ const char *skel[] = { "#define FLEX_SCANNER", "#define YY_FLEX_MAJOR_VERSION 2", "#define YY_FLEX_MINOR_VERSION 6", - "#define YY_FLEX_SUBMINOR_VERSION 0", + "#define YY_FLEX_SUBMINOR_VERSION 1", "#if YY_FLEX_SUBMINOR_VERSION > 0", "#define FLEX_BETA", "#endif", @@ -290,25 +290,13 @@ const char *skel[] = { "/* end standard C++ headers. */", "%endif", "", - "#ifdef __cplusplus", - "", - "/* The \"const\" storage-class-modifier is valid. */", - "#define YY_USE_CONST", - "", - "#else /* ! __cplusplus */", - "", - "/* C99 requires __STDC__ to be defined as 1. */", - "#if defined (__STDC__)", - "", - "#define YY_USE_CONST", - "", - "#endif /* defined (__STDC__) */", - "#endif /* ! __cplusplus */", - "", - "#ifdef YY_USE_CONST", + "/* TODO: this is always defined, so inline it */", "#define yyconst const", + "", + "#if defined(__GNUC__) && __GNUC__ >= 3", + "#define yynoreturn __attribute__((__noreturn__))", "#else", - "#define yyconst", + "#define yynoreturn", "#endif", "", "%# For compilers that can not handle prototypes.", @@ -544,7 +532,7 @@ const char *skel[] = { "#endif", "", "%if-not-reentrant", - "extern yy_size_t yyleng;", + "extern int yyleng;", "%endif", "", "%if-c-only", @@ -633,7 +621,7 @@ const char *skel[] = { " /* Size of input buffer in bytes, not including room for EOB", " * characters.", " */", - " yy_size_t yy_buf_size;", + " int yy_buf_size;", "", " /* Number of characters read into yy_ch_buf, not including EOB", " * characters.", @@ -695,7 +683,7 @@ const char *skel[] = { "/* Stack of input buffers. */", "static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */", "static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */", - "static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */", + "static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */", "%endif", "%ok-for-header", "%endif", @@ -728,10 +716,10 @@ const char *skel[] = { "/* yy_hold_char holds the character lost when yytext is formed. */", "static char yy_hold_char;", "static int yy_n_chars; /* number of characters read into yy_ch_buf */", - "yy_size_t yyleng;", + "int yyleng;", "", "/* Points to current character in buffer. */", - "static char *yy_c_buf_p = (char *) 0;", + "static char *yy_c_buf_p = NULL;", "static int yy_init = 0; /* whether we need to initialize */", "static int yy_start = 0; /* start state number */", "", @@ -764,7 +752,7 @@ const char *skel[] = { "", "YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );", "YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG );", - "YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, yy_size_t len M4_YY_PROTO_LAST_ARG );", + "YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, int len M4_YY_PROTO_LAST_ARG );", "", "%endif", "", @@ -822,10 +810,7 @@ const char *skel[] = { "static yy_state_type yy_get_previous_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", "static yy_state_type yy_try_NUL_trans M4_YY_PARAMS( yy_state_type current_state M4_YY_PROTO_LAST_ARG);", "static int yy_get_next_buffer M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", - "#if defined(__GNUC__) && __GNUC__ >= 3", - "__attribute__((__noreturn__))", - "#endif", - "static void yy_fatal_error M4_YY_PARAMS( yyconst char msg[] M4_YY_PROTO_LAST_ARG );", + "static void yynoreturn yy_fatal_error M4_YY_PARAMS( yyconst char* msg M4_YY_PROTO_LAST_ARG );", "]])", "", "%endif", @@ -899,7 +884,7 @@ const char *skel[] = { " YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */", " char yy_hold_char;", " int yy_n_chars;", - " yy_size_t yyleng_r;", + " int yyleng_r;", " char *yy_c_buf_p;", " int yy_init;", " int yy_start;", @@ -1036,7 +1021,7 @@ const char *skel[] = { "", "m4_ifdef( [[M4_YY_NO_GET_LENG]],,", "[[", - "yy_size_t yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", + " int yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );", "]])", "", "m4_ifdef( [[M4_YY_NO_GET_TEXT]],,", @@ -1192,7 +1177,7 @@ const char *skel[] = { "/* This used to be an fputs(), but since the string might contain NUL's,", " * we now use fwrite().", " */", - "#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)", + "#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)", "%endif", "%if-c++-only C++ definition", "#define ECHO LexerOutput( yytext, yyleng )", @@ -1744,7 +1729,7 @@ const char *skel[] = { " * This constructor simply maintains backward compatibility.", " * DEPRECATED", " */", - "yyFlexLexer::yyFlexLexer( FLEX_STD istream* arg_yyin, FLEX_STD ostream* arg_yyout ):", + "yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ):", " yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()),", " yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf())", "{", @@ -1780,7 +1765,7 @@ const char *skel[] = { " yy_start_stack_ptr = yy_start_stack_depth = 0;", " yy_start_stack = NULL;", "", - " yy_buffer_stack = 0;", + " yy_buffer_stack = NULL;", " yy_buffer_stack_top = 0;", " yy_buffer_stack_max = 0;", "", @@ -1929,7 +1914,7 @@ const char *skel[] = { "", " else", " {", - " yy_size_t num_to_read =", + " int num_to_read =", " YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;", "", " while ( num_to_read <= 0 )", @@ -1948,7 +1933,7 @@ const char *skel[] = { "", " if ( b->yy_is_our_buffer )", " {", - " yy_size_t new_size = b->yy_buf_size * 2;", + " int new_size = b->yy_buf_size * 2;", "", " if ( new_size <= 0 )", " b->yy_buf_size += b->yy_buf_size / 8;", @@ -1962,7 +1947,7 @@ const char *skel[] = { " }", " else", " /* Can't grow it, we don't own it. */", - " b->yy_ch_buf = 0;", + " b->yy_ch_buf = NULL;", "", " if ( ! b->yy_ch_buf )", " YY_FATAL_ERROR(", @@ -2090,7 +2075,7 @@ const char *skel[] = { " if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )", " { /* need to shift things up to make room */", " /* +2 for EOB chars. */", - " yy_size_t number_to_move = YY_G(yy_n_chars) + 2;", + " int number_to_move = YY_G(yy_n_chars) + 2;", " char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[", " YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];", " char *source =", @@ -2102,7 +2087,7 @@ const char *skel[] = { " yy_cp += (int) (dest - source);", " yy_bp += (int) (dest - source);", " YY_CURRENT_BUFFER_LVALUE->yy_n_chars =", - " YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;", + " YY_G(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;", "", " if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )", " YY_FATAL_ERROR( \"flex scanner push-back overflow\" );", @@ -2157,7 +2142,7 @@ const char *skel[] = { "", " else", " { /* need more input */", - " yy_size_t offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);", + " int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);", " ++YY_G(yy_c_buf_p);", "", " switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )", @@ -2181,7 +2166,7 @@ const char *skel[] = { " case EOB_ACT_END_OF_FILE:", " {", " if ( yywrap( M4_YY_CALL_ONLY_ARG ) )", - " return EOF;", + " return 0;", "", " if ( ! YY_G(yy_did_buffer_switch_on_eof) )", " YY_NEW_FILE;", @@ -2552,7 +2537,7 @@ const char *skel[] = { "void yyFlexLexer::yyensure_buffer_stack(void)", "%endif", "{", - " yy_size_t num_to_alloc;", + " int num_to_alloc;", " M4_YY_DECL_GUTS_VAR();", "", " if (!YY_G(yy_buffer_stack)) {", @@ -2561,7 +2546,7 @@ const char *skel[] = { " * scanner will even need a stack. We use 2 instead of 1 to avoid an", " * immediate realloc on the next call.", " */", - " num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */", + " num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */", " YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc", " (num_to_alloc * sizeof(struct yy_buffer_state*)", " M4_YY_CALL_LAST_ARG);", @@ -2617,7 +2602,7 @@ const char *skel[] = { " base[size-2] != YY_END_OF_BUFFER_CHAR ||", " base[size-1] != YY_END_OF_BUFFER_CHAR )", " /* They forgot to leave room for the EOB's. */", - " return 0;", + " return NULL;", "", " b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) M4_YY_CALL_LAST_ARG );", " if ( ! b )", @@ -2626,7 +2611,7 @@ const char *skel[] = { " b->yy_buf_size = size - 2; /* \"- 2\" to take care of EOB's */", " b->yy_buf_pos = b->yy_ch_buf = base;", " b->yy_is_our_buffer = 0;", - " b->yy_input_file = 0;", + " b->yy_input_file = NULL;", " b->yy_n_chars = b->yy_buf_size;", " b->yy_is_interactive = 0;", " b->yy_at_bol = 1;", @@ -2656,7 +2641,7 @@ const char *skel[] = { "{", " m4_dnl M4_YY_DECL_GUTS_VAR();", "", - " return yy_scan_bytes( yystr, strlen(yystr) M4_YY_CALL_LAST_ARG);", + " return yy_scan_bytes( yystr, (int) strlen(yystr) M4_YY_CALL_LAST_ARG);", "}", "%endif", "]])", @@ -2672,7 +2657,7 @@ const char *skel[] = { " * M4_YY_DOC_PARAM", " * @return the newly allocated buffer state object.", " */", - "YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, yy_size_t ,_yybytes_len)", + "YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, int ,_yybytes_len)", "{", " YY_BUFFER_STATE b;", " char *buf;", @@ -2681,7 +2666,7 @@ const char *skel[] = { " m4_dnl M4_YY_DECL_GUTS_VAR();", "", " /* Get memory for full buffer, including space for trailing EOB's. */", - " n = _yybytes_len + 2;", + " n = (yy_size_t) _yybytes_len + 2;", " buf = (char *) yyalloc( n M4_YY_CALL_LAST_ARG );", " if ( ! buf )", " YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_bytes()\" );", @@ -2721,7 +2706,7 @@ const char *skel[] = { " yy_size_t new_size;", "", " YY_G(yy_start_stack_depth) += YY_START_STACK_INCR;", - " new_size = YY_G(yy_start_stack_depth) * sizeof( int );", + " new_size = (yy_size_t) YY_G(yy_start_stack_depth) * sizeof( int );", "", " if ( ! YY_G(yy_start_stack) )", " YY_G(yy_start_stack) = (int *) yyalloc( new_size M4_YY_CALL_LAST_ARG );", @@ -2778,7 +2763,7 @@ const char *skel[] = { "#endif", "", "%if-c-only", - "static void yy_fatal_error YYFARGS1(yyconst char*, msg)", + "static void yynoreturn yy_fatal_error YYFARGS1(yyconst char*, msg)", "{", " M4_YY_DECL_GUTS_VAR();", " M4_YY_NOOP_GUTS_VAR();", @@ -2787,7 +2772,7 @@ const char *skel[] = { "}", "%endif", "%if-c++-only", - "void yyFlexLexer::LexerError( yyconst char msg[] )", + "void yyFlexLexer::LexerError( yyconst char* msg )", "{", " M4_YY_DECL_GUTS_VAR();", " std::cerr << msg << std::endl;", @@ -2899,7 +2884,7 @@ const char *skel[] = { "/** Get the length of the current token.", " * M4_YY_DOC_PARAM", " */", - "yy_size_t yyget_leng YYFARGS0(void)", + "int yyget_leng YYFARGS0(void)", "{", " M4_YY_DECL_GUTS_VAR();", " return yyleng;", @@ -3162,10 +3147,10 @@ const char *skel[] = { " yylineno = 1;", " ]])", "]])", - " YY_G(yy_buffer_stack) = 0;", + " YY_G(yy_buffer_stack) = NULL;", " YY_G(yy_buffer_stack_top) = 0;", " YY_G(yy_buffer_stack_max) = 0;", - " YY_G(yy_c_buf_p) = (char *) 0;", + " YY_G(yy_c_buf_p) = NULL;", " YY_G(yy_init) = 0;", " YY_G(yy_start) = 0;", "", @@ -3196,8 +3181,8 @@ const char *skel[] = { " yyin = stdin;", " yyout = stdout;", "#else", - " yyin = (FILE *) 0;", - " yyout = (FILE *) 0;", + " yyin = NULL;", + " yyout = NULL;", "#endif", "", " /* For future reference: Set errno on error, since we are called by", @@ -3294,7 +3279,7 @@ const char *skel[] = { "{", " M4_YY_DECL_GUTS_VAR();", " M4_YY_NOOP_GUTS_VAR();", - " return (void *) malloc( size );", + " return malloc(size);", "}", "]])", "", @@ -3312,7 +3297,7 @@ const char *skel[] = { " * any pointer type to void*, and deal with argument conversions", " * as though doing an assignment.", " */", - " return (void *) realloc( (char *) ptr, size );", + " return realloc(ptr, size);", "}", "]])", "", diff --git a/src/stage1scan.c b/src/stage1scan.c new file mode 100644 index 0000000..54502ae --- /dev/null +++ b/src/stage1scan.c @@ -0,0 +1,5078 @@ +#line 2 "stage1scan.c" + +#line 4 "stage1scan.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 1 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include <stdio.h> +#include <string.h> +#include <errno.h> +#include <stdlib.h> + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include <inttypes.h> +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +/* TODO: this is always defined, so inline it */ +#define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) +#else +#define yynoreturn +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern int yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + int yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = NULL; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +typedef unsigned char YY_CHAR; + +FILE *yyin = NULL, *yyout = NULL; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yynoreturn yy_fatal_error (yyconst char* msg ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + (yytext_ptr) -= (yy_more_len); \ + yyleng = (int) (yy_cp - (yytext_ptr)); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 252 +#define YY_END_OF_BUFFER 253 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[1110] = + { 0, + 0, 0, 0, 0, 0, 0, 249, 249, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 253, 251, + 9, 20, 251, 18, 1, 19, 251, 251, 251, 251, + 17, 165, 150, 151, 165, 143, 165, 162, 163, 164, + 164, 165, 165, 165, 164, 149, 139, 165, 165, 141, + 142, 137, 138, 137, 136, 135, 136, 249, 249, 250, + 250, 41, 42, 41, 41, 41, 41, 41, 41, 50, + + 49, 51, 251, 171, 171, 166, 171, 167, 168, 170, + 172, 220, 221, 220, 218, 217, 219, 173, 175, 173, + 174, 173, 187, 187, 187, 187, 189, 191, 189, 189, + 189, 189, 190, 234, 239, 234, 238, 240, 240, 236, + 236, 236, 235, 235, 230, 231, 251, 132, 251, 25, + 26, 25, 22, 25, 25, 241, 243, 241, 244, 245, + 228, 228, 229, 228, 228, 228, 228, 228, 228, 228, + 131, 53, 52, 131, 131, 131, 131, 54, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 37, + + 34, 37, 35, 48, 45, 251, 48, 48, 44, 43, + 177, 176, 178, 179, 180, 181, 182, 183, 184, 32, + 33, 32, 31, 29, 30, 29, 28, 9, 20, 0, + 18, 1, 19, 0, 0, 0, 16, 10, 0, 0, + 0, 0, 4, 16, 5, 0, 2, 17, 150, 151, + 0, 0, 0, 145, 0, 161, 159, 0, 155, 155, + 0, 246, 246, 246, 0, 0, 144, 0, 149, 139, + 0, 0, 0, 141, 142, 154, 140, 0, 138, 136, + 135, 135, 133, 134, 249, 249, 247, 248, 42, 0, + 0, 39, 40, 0, 50, 49, 51, 0, 166, 0, + + 166, 169, 170, 221, 217, 175, 0, 185, 186, 191, + 188, 234, 239, 0, 237, 0, 223, 236, 236, 236, + 232, 233, 0, 132, 0, 26, 21, 23, 24, 241, + 243, 242, 0, 0, 229, 222, 226, 227, 53, 52, + 0, 130, 0, 0, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 55, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 36, 35, + 45, 46, 47, 32, 33, 30, 27, 0, 16, 10, + 0, 14, 0, 0, 0, 0, 0, 4, 16, 5, + + 0, 6, 0, 146, 0, 147, 0, 160, 0, 155, + 155, 0, 155, 155, 155, 246, 246, 157, 156, 0, + 158, 140, 148, 0, 154, 0, 133, 134, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 236, 222, 0, 0, + 131, 131, 131, 131, 131, 131, 131, 67, 131, 131, + 131, 72, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 14, 0, 0, 0, 0, 0, 0, 4, 8, + 5, 0, 155, 155, 155, 155, 155, 155, 155, 246, + 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 236, 56, + 57, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 73, 74, 131, 131, 131, 131, 79, 80, + 131, 131, 131, 131, 131, 131, 131, 85, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 94, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 0, 0, 0, + + 0, 15, 0, 0, 0, 0, 0, 8, 8, 8, + 0, 155, 155, 155, 155, 155, 155, 155, 0, 0, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 236, 236, 58, 131, + 131, 60, 131, 64, 131, 131, 131, 131, 70, 131, + 131, 131, 75, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 88, 131, 131, 131, 131, 92, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 0, 0, 0, 0, 3, 0, 0, 0, 8, 7, + + 8, 0, 155, 155, 155, 0, 0, 224, 225, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 225, 131, 131, 131, 63, 131, + 131, 131, 131, 131, 131, 131, 127, 131, 131, 131, + 131, 131, 131, 131, 131, 125, 131, 87, 131, 90, + 131, 91, 131, 131, 131, 106, 0, 131, 96, 131, + 0, 97, 0, 0, 0, 0, 0, 12, 0, 13, + 0, 153, 0, 152, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 131, 131, + 131, 131, 131, 131, 131, 68, 131, 71, 131, 131, + 131, 131, 131, 131, 124, 131, 84, 131, 131, 89, + 131, 93, 104, 126, 0, 0, 0, 0, 0, 0, + 131, 131, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 131, 131, + 131, 131, 131, 131, 69, 131, 131, 131, 131, 81, + 131, 131, 131, 131, 131, 131, 0, 0, 115, 0, + + 0, 0, 0, 0, 0, 95, 131, 0, 0, 116, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 0, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 86, + 131, 131, 0, 0, 0, 0, 0, 0, 117, 0, + 105, 0, 0, 0, 0, 0, 118, 0, 0, 0, + 0, 0, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 0, 131, 131, 131, 131, 131, + + 131, 131, 123, 131, 131, 77, 131, 131, 131, 131, + 131, 0, 0, 111, 0, 121, 119, 112, 0, 0, + 0, 122, 120, 0, 0, 0, 0, 0, 0, 215, + 131, 131, 131, 131, 131, 131, 131, 127, 76, 131, + 83, 131, 128, 131, 107, 109, 0, 108, 110, 0, + 0, 0, 0, 0, 0, 0, 131, 131, 131, 65, + 131, 131, 131, 131, 78, 131, 113, 114, 99, 0, + 0, 0, 0, 100, 131, 131, 131, 131, 131, 131, + 131, 129, 98, 0, 102, 0, 131, 131, 131, 131, + 131, 68, 131, 101, 103, 131, 131, 62, 66, 131, + + 131, 131, 61, 69, 131, 131, 82, 59, 0 + } ; + +static yyconst YY_CHAR yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 6, 7, 8, 9, 1, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 19, 19, + 19, 19, 19, 19, 20, 21, 22, 23, 1, 24, + 25, 26, 27, 1, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 44, + 53, 54, 55, 56, 57, 1, 58, 59, 60, 61, + + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 44, 74, 75, 76, 77, 78, 79, 80, + 81, 44, 82, 83, 84, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst YY_CHAR yy_meta[85] = + { 0, + 1, 1, 2, 1, 3, 4, 1, 1, 1, 5, + 1, 6, 1, 7, 1, 8, 1, 5, 9, 9, + 9, 9, 10, 1, 1, 1, 1, 11, 11, 11, + 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 13, 14, 15, 1, 16, 11, 11, 11, + 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 5, 1, 17 + } ; + +static yyconst flex_uint16_t yy_base[1204] = + { 0, + 0, 84, 167, 250, 171, 184, 174, 179, 192, 233, + 196, 200, 334, 0, 3464, 3463, 203, 416, 206, 211, + 187, 216, 276, 417, 500, 0, 210, 223, 421, 427, + 436, 440, 583, 588, 669, 0, 277, 299, 584, 751, + 579, 580, 576, 732, 279, 305, 310, 444, 3498, 3970, + 228, 3970, 3493, 0, 322, 3970, 3465, 423, 827, 3438, + 0, 3970, 755, 3970, 3431, 3970, 448, 3390, 3970, 3970, + 3387, 3372, 222, 408, 444, 764, 3970, 3392, 230, 3370, + 3970, 3970, 3970, 3388, 0, 3371, 164, 3366, 3970, 3303, + 3281, 3970, 3970, 3332, 239, 119, 3281, 3276, 3226, 0, + + 3307, 3970, 3305, 3970, 476, 3302, 3300, 3970, 3246, 0, + 3970, 3970, 3970, 3281, 3970, 464, 3970, 3970, 3970, 3264, + 3970, 742, 3970, 3241, 751, 180, 3970, 3970, 3260, 0, + 3239, 757, 3970, 0, 3970, 3256, 3970, 200, 3232, 0, + 429, 241, 3188, 3169, 3970, 3970, 306, 3970, 323, 3970, + 3970, 3217, 3201, 3148, 3129, 0, 3970, 3176, 3970, 0, + 3970, 446, 3970, 3166, 3083, 3134, 435, 371, 3093, 3090, + 3970, 3140, 3970, 3121, 3115, 439, 440, 3970, 578, 751, + 586, 562, 735, 752, 0, 572, 577, 782, 791, 749, + 396, 809, 588, 582, 731, 734, 762, 768, 580, 3970, + + 3970, 3114, 588, 3970, 3970, 3116, 3060, 3057, 3970, 3970, + 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 0, + 3970, 3107, 3970, 3970, 3970, 3103, 3075, 825, 3970, 3073, + 0, 837, 3970, 3070, 795, 777, 0, 0, 891, 903, + 912, 924, 0, 774, 0, 451, 3970, 0, 858, 3970, + 3069, 2989, 472, 3970, 3065, 3044, 3970, 800, 236, 822, + 899, 3970, 275, 0, 2966, 2962, 3970, 2960, 949, 3970, + 3013, 2917, 2983, 2971, 3970, 0, 3970, 818, 3970, 0, + 0, 2992, 0, 0, 2988, 3970, 3970, 3970, 3970, 815, + 816, 3970, 3970, 484, 0, 2970, 3970, 935, 2953, 2949, + + 2949, 3970, 0, 3970, 940, 3970, 1005, 3970, 3970, 3970, + 3970, 0, 3970, 611, 3970, 0, 3970, 0, 821, 850, + 3970, 3970, 490, 3970, 608, 3970, 3970, 3970, 3970, 0, + 3970, 3970, 596, 2866, 3970, 0, 3970, 3970, 2945, 3970, + 2921, 3970, 855, 903, 0, 920, 717, 727, 917, 728, + 2912, 882, 939, 896, 902, 907, 935, 948, 937, 912, + 940, 951, 936, 0, 940, 3970, 943, 946, 1051, 962, + 1061, 969, 966, 1052, 984, 986, 1101, 2919, 3970, 1080, + 3970, 3970, 3970, 0, 3970, 3970, 3970, 1021, 0, 0, + 1134, 3970, 2919, 1147, 1046, 1056, 1058, 0, 1065, 0, + + 874, 3970, 998, 3970, 1004, 3970, 1011, 3970, 1070, 731, + 1090, 1143, 1223, 1153, 1289, 1002, 0, 3970, 3970, 2510, + 1102, 3970, 3970, 1083, 0, 1085, 0, 0, 1098, 1106, + 1023, 3970, 1106, 1151, 1289, 1290, 1156, 2569, 1291, 1154, + 1292, 1301, 1302, 1158, 1353, 1150, 1141, 0, 1138, 1139, + 1153, 1160, 1155, 1288, 1285, 1296, 1285, 0, 1297, 1285, + 1302, 0, 1289, 1288, 1299, 1310, 1325, 1323, 2573, 1335, + 1329, 1349, 1346, 1346, 1347, 1345, 1352, 1356, 1359, 1350, + 1361, 1364, 1389, 1366, 1352, 1355, 1377, 1374, 1390, 1395, + 1392, 1406, 1403, 1398, 1409, 1410, 1399, 1403, 1415, 1111, + + 1478, 3970, 1190, 1482, 1197, 1424, 1420, 1417, 0, 933, + 0, 1427, 1504, 1570, 1606, 874, 2530, 1576, 1651, 3970, + 3970, 1420, 1430, 1435, 1422, 2529, 1569, 1574, 1568, 1577, + 1575, 1570, 1581, 1590, 1593, 1620, 1582, 1583, 1623, 1633, + 1622, 1631, 1636, 1652, 1634, 1663, 1664, 1625, 1615, 3970, + 3970, 1649, 1642, 2564, 1646, 1651, 1656, 1660, 1699, 1669, + 1668, 1689, 0, 0, 1686, 1675, 1679, 1689, 0, 0, + 2560, 1685, 1698, 2559, 1690, 1689, 1699, 0, 1694, 1712, + 1705, 1703, 1698, 1718, 1705, 1707, 1713, 0, 1717, 1729, + 1726, 1713, 1720, 1718, 1739, 1724, 1748, 1736, 1747, 1737, + + 2570, 3970, 1198, 1206, 1730, 1748, 1746, 0, 1393, 1793, + 2545, 952, 2426, 1782, 1818, 1554, 1068, 1151, 1761, 2347, + 1752, 1771, 3970, 1781, 1791, 1782, 1787, 1789, 1798, 1795, + 1793, 1822, 1836, 1831, 1796, 1842, 1839, 1845, 1808, 1846, + 1794, 1852, 1861, 1866, 1847, 1863, 1840, 1863, 0, 1852, + 1869, 0, 1858, 0, 2352, 1871, 1857, 1871, 0, 1867, + 2349, 1864, 0, 1882, 1869, 1882, 2309, 1880, 1877, 1891, + 2174, 1875, 1883, 1888, 0, 1903, 1896, 1899, 1916, 0, + 1904, 1906, 1906, 1922, 2063, 1924, 1926, 1920, 1970, 1917, + 1918, 1917, 1937, 1923, 2016, 1448, 1926, 1936, 1968, 3970, + + 1977, 1936, 1946, 1922, 1929, 1882, 1865, 3970, 3970, 1962, + 1980, 1971, 1981, 1964, 1970, 1983, 1984, 1987, 1989, 1991, + 1990, 1993, 1994, 1996, 1999, 2010, 2002, 1992, 2007, 2019, + 2032, 2020, 2024, 0, 0, 1827, 1991, 2016, 0, 2035, + 2025, 2036, 2030, 2025, 2025, 2030, 1799, 2050, 2041, 2053, + 2048, 2053, 2054, 2044, 2057, 0, 2063, 0, 2046, 0, + 1723, 0, 2063, 2067, 2056, 0, 2097, 2064, 0, 2068, + 2109, 0, 1645, 2073, 2071, 1639, 1486, 3970, 1596, 3970, + 2058, 3970, 1627, 3970, 1627, 1596, 1591, 1571, 1536, 1484, + 1471, 1451, 1434, 1431, 1425, 2096, 2086, 2124, 2111, 2107, + + 2127, 2130, 2132, 2137, 2138, 2157, 2141, 2131, 2121, 2129, + 2126, 2138, 2146, 2145, 2152, 0, 2150, 0, 2147, 2161, + 2153, 2158, 2158, 2161, 0, 2162, 0, 2165, 2167, 0, + 2177, 0, 0, 0, 2177, 2165, 2170, 2210, 2173, 2185, + 2180, 2185, 2198, 2183, 2195, 2212, 2196, 2207, 1386, 1315, + 2208, 2253, 3970, 1299, 1284, 1277, 1223, 1161, 1155, 1142, + 1129, 1078, 1055, 1041, 1067, 1036, 1000, 965, 925, 893, + 881, 869, 861, 843, 802, 776, 2220, 2221, 2228, 2221, + 2229, 2239, 2238, 2228, 0, 2228, 2239, 2241, 2252, 0, + 2237, 2243, 2246, 2242, 2251, 2259, 2264, 2251, 3970, 2261, + + 2263, 2264, 2280, 2264, 2261, 0, 2279, 2285, 2272, 3970, + 2279, 2280, 2296, 2279, 2281, 2283, 2301, 2286, 2332, 3970, + 2340, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 735, 612, 608, 598, 441, 374, 261, 245, + 202, 152, 149, 137, 165, 2295, 2290, 2307, 2320, 2325, + 2315, 2323, 2331, 2325, 2297, 2319, 2335, 2324, 2327, 0, + 2333, 2329, 2329, 2333, 2346, 2350, 2354, 2346, 3970, 2340, + 0, 2340, 2345, 2359, 2362, 2357, 3970, 2371, 2354, 2356, + 2358, 2381, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, + 3970, 3970, 3970, 3970, 128, 2379, 2377, 2371, 2386, 2376, + + 2378, 2378, 0, 2395, 2396, 0, 2386, 2385, 2407, 2404, + 2402, 2406, 2414, 3970, 2403, 3970, 3970, 3970, 2411, 2418, + 2407, 3970, 3970, 2404, 2421, 2422, 2412, 2417, 2416, 3970, + 2419, 2420, 2417, 2424, 2435, 2437, 2441, 0, 0, 2453, + 0, 2436, 0, 2451, 3970, 3970, 2445, 3970, 3970, 2447, + 2458, 2447, 2462, 2465, 2463, 2468, 2474, 2468, 2462, 0, + 2464, 2461, 2460, 2480, 0, 2461, 3970, 3970, 3970, 2483, + 2484, 2472, 2480, 3970, 2492, 2482, 2494, 2487, 2495, 2501, + 2492, 0, 3970, 2496, 3970, 2509, 2501, 2503, 2503, 2504, + 2504, 0, 2519, 3970, 3970, 2521, 2513, 0, 0, 2528, + + 2513, 2515, 0, 0, 2533, 2534, 0, 0, 3970, 2596, + 2613, 2630, 2647, 2664, 2681, 2698, 2715, 2732, 2749, 2766, + 2783, 2800, 2817, 2834, 2851, 2868, 2885, 2902, 2912, 2928, + 2937, 2953, 2970, 2981, 2997, 3014, 3031, 3048, 3058, 3074, + 3091, 3108, 3122, 3132, 3148, 3165, 3182, 3199, 3210, 2112, + 3222, 3239, 3249, 3265, 3282, 3289, 3295, 3311, 3321, 3337, + 3354, 3371, 2558, 3381, 3398, 3415, 3432, 3449, 3466, 3483, + 3500, 3517, 3527, 3543, 3557, 3567, 3583, 3600, 3617, 3634, + 3645, 3657, 3674, 3691, 3708, 3725, 3735, 3744, 3760, 3777, + 3794, 2572, 3804, 3821, 3838, 3855, 3872, 3880, 3885, 3901, + + 3918, 3935, 3952 + } ; + +static yyconst flex_int16_t yy_def[1204] = + { 0, + 1109, 1109, 1110, 1110, 1111, 1112, 1113, 1113, 1114, 1114, + 1115, 1115, 1109, 13, 1116, 1116, 1117, 1117, 1118, 1118, + 1119, 1119, 1120, 1120, 1109, 25, 1121, 1121, 1122, 1122, + 1123, 1123, 1124, 1124, 1109, 35, 1125, 1125, 1126, 1126, + 1116, 1116, 1116, 1116, 1127, 1127, 1128, 1128, 1109, 1109, + 1109, 1109, 1109, 1129, 1109, 1109, 1109, 1109, 1130, 1109, + 1131, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1132, 1133, 1134, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1135, 1136, 1135, 1137, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1138, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1139, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1133, 1109, 1109, 1133, 1140, 1109, 1109, 1109, 1141, + 1109, 1133, 1109, 1142, 1109, 1142, 1109, 1143, 1109, 1144, + 1144, 1144, 1109, 1109, 1109, 1109, 1145, 1109, 1145, 1109, + 1109, 1109, 1109, 1109, 1109, 1146, 1109, 1146, 1109, 1147, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1148, 1109, 1109, 1109, 1149, 1149, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, + 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1109, + + 1109, 1151, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1152, + 1109, 1152, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1153, 1109, 1109, 1109, 1109, 1109, 1154, 1155, 1109, 1109, + 1109, 1109, 1156, 1154, 1157, 1158, 1109, 1159, 1109, 1109, + 1109, 1109, 1160, 1109, 1109, 1109, 1109, 1109, 1161, 1161, + 1162, 1109, 1109, 1163, 1109, 1109, 1109, 1164, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1165, 1109, 1109, 1109, 1166, + 1167, 1167, 1168, 1169, 1170, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1171, 1172, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1173, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1174, 1109, 1175, 1109, 1175, 1109, 1176, 1176, 1176, + 1109, 1109, 1177, 1109, 1177, 1109, 1109, 1109, 1109, 1178, + 1109, 1109, 1109, 1109, 1109, 1179, 1109, 1109, 1109, 1109, + 1180, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1109, 1109, + 1109, 1109, 1109, 1183, 1109, 1109, 1109, 1109, 1184, 1185, + 1186, 1109, 1109, 1109, 1109, 1109, 1109, 1187, 1184, 1188, + + 1189, 1109, 1189, 1109, 1190, 1109, 1190, 1109, 1109, 1191, + 1191, 1191, 1109, 1191, 1191, 1109, 1192, 1109, 1109, 1193, + 1109, 1109, 1109, 1109, 1194, 1109, 1195, 1196, 1109, 1109, + 1197, 1109, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1200, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1186, + + 1186, 1109, 1186, 1186, 1109, 1109, 1109, 1109, 1187, 1201, + 1188, 1109, 1109, 1191, 415, 413, 413, 1191, 415, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1109, + 1109, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, + + 1109, 1109, 1186, 1186, 1109, 1109, 1109, 1201, 1201, 1201, + 1109, 513, 513, 1191, 415, 1191, 1191, 1191, 1109, 1109, + 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1109, 1109, 1109, 1109, 1109, 1202, 1109, 1109, 1201, 1109, + + 1201, 1109, 1191, 1191, 1191, 1109, 1109, 1109, 1109, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1199, 1199, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1181, 1181, 1181, + 1109, 1181, 1109, 1109, 1109, 1109, 1202, 1109, 1202, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1198, 1198, 1198, 1198, 1198, + 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1203, 1109, + 1203, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1198, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1181, 1181, 1181, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1109, 1109, 1109, 1109, 1181, 1181, 1181, 1181, + 1181, 1181, 1181, 1109, 1109, 1181, 1181, 1181, 1181, 1181, + + 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 0, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109 + } ; + +static yyconst flex_uint16_t yy_nxt[4055] = + { 0, + 50, 51, 52, 50, 53, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 50, 50, 50, 50, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 50, 50, 50, 50, 55, 56, 50, 57, 50, + 58, 50, 59, 50, 50, 50, 50, 50, 50, 50, + + 50, 60, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 50, 50, 50, 50, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 61, 61, 61, 50, 50, 50, 63, 64, + 291, 65, 66, 83, 67, 84, 89, 68, 69, 70, + 70, 89, 1030, 70, 71, 86, 83, 995, 84, 50, + 72, 994, 87, 70, 93, 309, 94, 101, 102, 291, + + 103, 101, 102, 993, 103, 113, 992, 114, 119, 315, + 120, 121, 148, 119, 149, 120, 121, 115, 50, 73, + 74, 116, 116, 116, 116, 148, 90, 149, 91, 228, + 229, 90, 230, 91, 309, 93, 95, 94, 276, 124, + 125, 99, 126, 96, 97, 283, 98, 284, 75, 70, + 70, 76, 77, 316, 78, 66, 991, 67, 79, 122, + 68, 69, 70, 70, 122, 95, 70, 71, 124, 125, + 290, 126, 96, 80, 260, 261, 70, 95, 128, 201, + 129, 221, 202, 222, 96, 97, 117, 98, 411, 412, + 223, 130, 320, 416, 416, 203, 203, 203, 203, 990, + + 290, 201, 73, 74, 202, 81, 95, 221, 324, 222, + 325, 277, 225, 96, 226, 989, 223, 203, 203, 203, + 203, 320, 227, 232, 233, 324, 234, 325, 131, 132, + 133, 75, 70, 70, 104, 105, 106, 104, 107, 104, + 104, 104, 104, 104, 104, 104, 108, 104, 108, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 109, + 104, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 104, 104, 104, 104, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 104, 104, 104, 113, 128, + 114, 129, 291, 151, 235, 152, 263, 263, 988, 151, + 115, 152, 130, 153, 116, 116, 116, 116, 157, 153, + 158, 159, 157, 367, 158, 159, 225, 333, 226, 254, + 254, 291, 255, 402, 334, 403, 227, 265, 264, 266, + 319, 236, 267, 267, 267, 267, 290, 343, 344, 131, + 132, 133, 367, 154, 406, 155, 407, 298, 299, 154, + 300, 155, 305, 305, 305, 305, 432, 264, 433, 160, + 319, 236, 324, 160, 325, 987, 290, 343, 344, 117, + + 134, 134, 135, 134, 136, 137, 134, 134, 134, 138, + 134, 134, 134, 134, 134, 134, 134, 139, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 141, 140, 140, 140, 140, 140, + 140, 142, 143, 134, 144, 134, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 141, 140, 140, 140, 140, 140, 140, + 142, 145, 134, 146, 162, 163, 205, 164, 206, 162, + 163, 165, 164, 353, 211, 211, 165, 333, 216, 351, + + 166, 212, 212, 358, 334, 166, 380, 380, 380, 380, + 324, 217, 325, 352, 213, 213, 346, 359, 347, 371, + 315, 218, 348, 353, 214, 214, 219, 167, 372, 215, + 215, 377, 167, 358, 168, 169, 207, 170, 208, 168, + 169, 217, 170, 352, 213, 213, 346, 359, 347, 371, + 218, 348, 986, 214, 214, 219, 167, 372, 215, 215, + 377, 167, 985, 168, 316, 209, 984, 210, 168, 171, + 172, 173, 171, 174, 175, 171, 171, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 176, 177, + 171, 171, 171, 178, 171, 171, 179, 180, 181, 182, + + 183, 184, 185, 186, 187, 185, 185, 188, 189, 190, + 191, 192, 185, 193, 194, 195, 196, 197, 198, 185, + 199, 171, 171, 171, 171, 171, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 185, 185, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 185, 199, + 171, 171, 171, 205, 216, 206, 249, 250, 373, 251, + 263, 263, 453, 252, 354, 269, 270, 217, 271, 263, + 263, 454, 272, 457, 374, 263, 263, 218, 349, 356, + 365, 273, 219, 411, 412, 355, 350, 274, 373, 983, + 366, 453, 264, 375, 354, 376, 235, 217, 944, 357, + + 454, 264, 457, 207, 374, 208, 218, 264, 349, 356, + 365, 219, 388, 360, 355, 399, 350, 361, 362, 275, + 366, 264, 363, 375, 943, 376, 228, 229, 357, 230, + 264, 409, 209, 236, 210, 238, 264, 253, 232, 233, + 368, 234, 388, 360, 413, 399, 253, 361, 362, 426, + 369, 429, 363, 370, 239, 430, 240, 446, 240, 249, + 250, 409, 251, 236, 240, 942, 252, 240, 241, 242, + 368, 240, 243, 244, 411, 412, 402, 245, 403, 426, + 369, 429, 370, 941, 239, 430, 240, 446, 240, 447, + 449, 940, 391, 392, 240, 393, 616, 240, 241, 242, + + 240, 243, 244, 939, 391, 392, 245, 393, 246, 394, + 394, 394, 394, 391, 392, 938, 393, 414, 414, 447, + 449, 394, 394, 394, 394, 391, 392, 459, 393, 410, + 394, 394, 394, 394, 609, 395, 298, 299, 450, 300, + 253, 462, 394, 394, 394, 394, 455, 937, 463, 415, + 269, 270, 464, 271, 396, 451, 459, 272, 305, 305, + 305, 305, 469, 456, 395, 397, 273, 460, 450, 452, + 462, 461, 274, 465, 703, 466, 455, 463, 415, 467, + 470, 464, 472, 468, 396, 451, 471, 936, 473, 474, + 475, 469, 456, 478, 484, 397, 482, 460, 452, 483, + + 402, 461, 403, 465, 275, 466, 406, 410, 407, 467, + 470, 472, 468, 406, 610, 407, 471, 473, 474, 475, + 262, 262, 935, 478, 484, 432, 482, 433, 487, 483, + 488, 253, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 438, + 442, 438, 443, 438, 438, 444, 438, 487, 934, 488, + 445, 499, 434, 435, 436, 437, 438, 438, 439, 438, + 438, 438, 438, 440, 438, 438, 438, 441, 438, 442, + 438, 443, 438, 438, 444, 438, 476, 485, 479, 933, + 506, 499, 480, 508, 486, 932, 477, 481, 380, 380, + + 380, 380, 507, 521, 521, 521, 521, 510, 432, 931, + 433, 512, 513, 602, 522, 603, 476, 485, 479, 506, + 411, 412, 480, 508, 486, 477, 523, 481, 489, 524, + 490, 507, 930, 491, 492, 501, 502, 510, 503, 493, + 494, 512, 411, 412, 522, 495, 496, 525, 505, 392, + 497, 393, 504, 504, 504, 504, 523, 498, 489, 524, + 490, 514, 514, 491, 492, 394, 394, 394, 394, 493, + 494, 518, 518, 526, 495, 496, 526, 525, 526, 497, + 526, 548, 549, 929, 550, 551, 552, 553, 537, 527, + 554, 530, 502, 515, 603, 532, 928, 410, 505, 392, + + 602, 393, 603, 411, 412, 411, 412, 604, 502, 927, + 503, 548, 549, 550, 551, 926, 552, 553, 537, 527, + 554, 530, 515, 410, 410, 532, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 411, 412, 925, 517, 410, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + + 516, 516, 516, 516, 410, 410, 410, 519, 519, 519, + 519, 526, 526, 526, 526, 555, 519, 519, 519, 519, + 519, 519, 556, 526, 526, 557, 558, 528, 559, 561, + 529, 924, 560, 562, 563, 531, 533, 564, 923, 534, + 565, 411, 412, 535, 536, 555, 519, 519, 519, 519, + 519, 519, 556, 922, 567, 557, 558, 528, 559, 561, + 529, 560, 562, 563, 531, 533, 569, 564, 534, 570, + 565, 917, 566, 535, 536, 1109, 571, 572, 573, 574, + 538, 539, 540, 541, 567, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 609, 544, 569, 585, 545, 570, + + 546, 566, 586, 547, 584, 587, 571, 572, 573, 574, + 538, 539, 540, 541, 588, 575, 542, 576, 577, 578, + 579, 543, 580, 581, 582, 544, 585, 545, 589, 546, + 583, 586, 547, 590, 584, 587, 591, 592, 593, 594, + 595, 596, 916, 597, 588, 598, 601, 864, 599, 600, + 778, 605, 779, 863, 582, 606, 862, 607, 589, 611, + 583, 619, 620, 590, 621, 591, 622, 592, 593, 594, + 595, 596, 597, 861, 610, 598, 601, 599, 600, 501, + 502, 605, 503, 604, 502, 606, 503, 607, 778, 611, + 779, 619, 620, 860, 621, 622, 504, 504, 504, 504, + + 504, 504, 504, 504, 410, 410, 859, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 411, 412, 858, 613, + 410, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 612, 612, 612, 410, 410, 410, 614, 614, + 526, 526, 526, 857, 617, 617, 526, 526, 778, 526, + + 779, 626, 629, 526, 526, 526, 411, 412, 259, 624, + 628, 625, 526, 856, 627, 526, 631, 635, 855, 630, + 633, 636, 411, 412, 615, 615, 615, 615, 411, 412, + 632, 626, 629, 615, 615, 615, 615, 615, 615, 624, + 628, 625, 526, 627, 526, 526, 631, 635, 630, 854, + 633, 636, 853, 526, 647, 526, 526, 639, 526, 648, + 632, 637, 634, 615, 615, 615, 615, 615, 615, 618, + 618, 618, 618, 638, 526, 640, 644, 641, 618, 618, + 618, 618, 618, 618, 647, 526, 526, 639, 648, 649, + 654, 637, 634, 650, 646, 851, 642, 652, 653, 643, + + 655, 848, 659, 638, 640, 645, 644, 641, 618, 618, + 618, 618, 618, 618, 656, 660, 661, 662, 665, 649, + 654, 663, 650, 664, 646, 642, 652, 653, 643, 667, + 655, 657, 659, 668, 672, 645, 670, 658, 831, 671, + 673, 674, 675, 676, 660, 677, 661, 662, 665, 678, + 663, 679, 664, 680, 681, 682, 683, 684, 667, 685, + 686, 657, 687, 668, 672, 670, 688, 658, 671, 673, + 689, 674, 675, 676, 677, 690, 693, 691, 694, 678, + 679, 696, 680, 692, 681, 682, 683, 684, 685, 697, + 686, 687, 698, 706, 699, 700, 688, 701, 708, 689, + + 704, 704, 709, 526, 526, 690, 693, 691, 694, 526, + 696, 526, 692, 526, 820, 526, 526, 526, 526, 697, + 526, 698, 712, 706, 714, 711, 716, 708, 710, 721, + 526, 713, 709, 717, 411, 412, 705, 705, 705, 705, + 715, 726, 809, 728, 526, 705, 705, 705, 705, 705, + 705, 718, 712, 526, 714, 711, 716, 710, 526, 721, + 713, 526, 720, 717, 526, 719, 724, 526, 526, 526, + 715, 726, 728, 727, 526, 705, 705, 705, 705, 705, + 705, 718, 722, 526, 723, 526, 734, 729, 526, 732, + 784, 725, 720, 731, 735, 719, 724, 736, 733, 737, + + 739, 730, 744, 727, 743, 745, 741, 783, 747, 748, + 749, 738, 722, 750, 723, 734, 742, 729, 752, 732, + 725, 753, 754, 731, 735, 756, 736, 757, 733, 737, + 739, 730, 744, 743, 758, 745, 741, 747, 759, 748, + 749, 738, 760, 750, 761, 742, 762, 764, 752, 763, + 753, 765, 754, 766, 756, 768, 757, 769, 770, 772, + 773, 782, 774, 758, 775, 776, 780, 781, 759, 699, + 700, 760, 701, 761, 411, 412, 762, 764, 763, 700, + 765, 411, 412, 766, 526, 768, 526, 769, 770, 772, + 773, 774, 526, 526, 775, 776, 780, 781, 411, 412, + + 410, 785, 526, 526, 790, 526, 526, 786, 787, 526, + 789, 526, 526, 526, 526, 526, 526, 695, 526, 788, + 794, 526, 810, 803, 526, 796, 771, 791, 798, 526, + 792, 785, 526, 793, 790, 795, 799, 786, 787, 789, + 797, 526, 526, 800, 802, 801, 526, 804, 805, 788, + 794, 807, 810, 803, 526, 796, 791, 808, 798, 792, + 811, 806, 793, 812, 795, 814, 799, 815, 816, 797, + 817, 818, 800, 813, 802, 801, 819, 804, 805, 821, + 822, 807, 823, 824, 825, 826, 828, 808, 827, 811, + 829, 806, 830, 812, 832, 814, 833, 815, 816, 817, + + 818, 834, 852, 813, 841, 819, 842, 849, 526, 821, + 822, 850, 823, 824, 825, 826, 828, 827, 526, 767, + 829, 830, 364, 364, 832, 866, 833, 835, 836, 526, + 834, 852, 837, 526, 841, 838, 842, 849, 839, 843, + 844, 850, 865, 840, 845, 869, 526, 846, 868, 526, + 847, 867, 526, 526, 526, 866, 878, 835, 836, 526, + 526, 879, 837, 526, 871, 838, 877, 880, 839, 843, + 844, 865, 840, 870, 845, 869, 872, 846, 868, 526, + 847, 867, 881, 873, 874, 876, 878, 882, 875, 755, + 883, 879, 884, 887, 871, 885, 877, 880, 886, 888, + + 889, 891, 870, 890, 892, 872, 893, 894, 897, 895, + 899, 881, 873, 874, 876, 898, 905, 882, 875, 883, + 904, 906, 884, 887, 885, 896, 907, 886, 888, 908, + 889, 891, 890, 909, 892, 910, 893, 894, 897, 895, + 899, 900, 526, 914, 898, 901, 905, 911, 902, 904, + 912, 906, 915, 918, 896, 920, 907, 921, 903, 908, + 913, 946, 909, 947, 949, 910, 945, 948, 950, 951, + 953, 900, 914, 952, 954, 901, 955, 911, 902, 956, + 912, 915, 918, 957, 958, 959, 961, 903, 960, 913, + 962, 946, 963, 947, 949, 945, 948, 964, 950, 951, + + 953, 965, 952, 966, 954, 967, 955, 968, 971, 956, + 969, 970, 957, 972, 958, 959, 961, 960, 973, 974, + 962, 975, 963, 976, 751, 977, 964, 978, 979, 980, + 997, 965, 982, 966, 920, 967, 921, 968, 971, 969, + 970, 996, 920, 972, 921, 1005, 981, 973, 998, 974, + 999, 975, 1000, 976, 977, 1001, 978, 979, 1002, 980, + 997, 982, 1003, 1004, 746, 1006, 1007, 740, 1008, 1009, + 996, 1010, 707, 1011, 1005, 981, 1012, 1013, 998, 1014, + 999, 1015, 1000, 1016, 1017, 1001, 1018, 1019, 1002, 1020, + 1021, 1022, 1003, 1004, 1006, 1023, 1007, 1008, 1024, 1009, + + 1025, 1010, 1011, 1026, 1028, 1012, 1013, 1027, 1029, 1014, + 1031, 1015, 1032, 1016, 1017, 1018, 1019, 1033, 1020, 1034, + 1021, 1022, 1035, 1036, 1037, 1023, 1038, 1039, 1024, 1025, + 1040, 1041, 1026, 1028, 1042, 1043, 1027, 1044, 1029, 1045, + 1031, 1046, 1032, 1047, 1048, 1049, 1033, 1050, 1052, 1034, + 1051, 1035, 1036, 1037, 1053, 1060, 1038, 1039, 1054, 1040, + 1041, 1055, 1056, 1057, 1042, 1043, 1058, 1044, 1059, 1045, + 1061, 1046, 1062, 1047, 1048, 1049, 1063, 1050, 1052, 1051, + 1064, 410, 1065, 1066, 1053, 1060, 1067, 1054, 1068, 1069, + 1055, 1056, 1057, 1070, 1071, 1058, 1072, 1059, 1073, 1074, + + 1061, 1075, 1062, 1076, 1077, 1078, 1063, 1079, 1080, 1081, + 1064, 1065, 1082, 1066, 1083, 1084, 1067, 1085, 1068, 1069, + 1086, 1087, 1070, 1088, 1071, 1089, 1072, 1090, 1073, 1074, + 1091, 1075, 1092, 1076, 1077, 1078, 1079, 1080, 1093, 1081, + 1094, 1082, 1095, 1097, 1083, 1084, 1085, 1096, 1098, 1099, + 1086, 1087, 1100, 1088, 1101, 1089, 1102, 1090, 1103, 1104, + 1091, 1105, 1092, 1106, 1107, 1108, 417, 1093, 417, 1094, + 702, 695, 1095, 1097, 669, 666, 1096, 1098, 1099, 651, + 520, 1100, 520, 623, 1101, 410, 1102, 1103, 568, 1104, + 1105, 526, 1106, 421, 1107, 1108, 62, 62, 62, 62, + + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 50, 50, + + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 123, + 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 123, 123, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 147, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + + 220, 220, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 231, + 231, 392, 231, 231, 379, 458, 342, 231, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 248, 248, 339, 248, 248, 336, + 301, 299, 248, 259, 301, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 262, 296, 262, 262, 262, 262, 262, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 268, 268, 268, + 286, 268, 268, 282, 424, 423, 268, 280, 422, 280, + + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 280, 280, 281, 270, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 421, 285, 419, 285, 285, 295, 418, + 408, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 303, 303, 254, 303, 303, + 404, 250, 233, 303, 308, 229, 308, 308, 308, 308, + 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, + 308, 311, 387, 311, 311, 311, 311, 311, 311, 311, + + 311, 311, 311, 311, 311, 386, 311, 311, 312, 385, + 312, 383, 382, 312, 312, 312, 312, 312, 381, 379, + 342, 312, 314, 340, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 318, + 318, 339, 318, 318, 338, 337, 317, 318, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 330, 336, 330, 335, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 331, 330, + 330, 330, 332, 329, 332, 332, 332, 332, 332, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 332, 341, + + 328, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 345, 345, 327, 326, + 345, 345, 378, 322, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 384, + 321, 384, 384, 384, 317, 384, 384, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 231, 231, 313, 231, + 231, 307, 310, 307, 231, 389, 306, 389, 389, 389, + 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, + 389, 389, 390, 304, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 398, + + 398, 302, 299, 301, 398, 400, 400, 297, 296, 294, + 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 401, 248, 248, + 293, 248, 248, 292, 289, 288, 248, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 287, 410, 410, 410, 410, + 410, 410, 410, 410, 410, 410, 410, 410, 286, 410, + 410, 259, 282, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 420, 420, + 279, 420, 420, 278, 270, 258, 420, 420, 425, 257, + + 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 280, 256, 280, 280, 280, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 281, 250, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 427, + 247, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 427, 428, 233, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 229, 285, 1109, 285, 285, + + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 295, 111, 111, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 303, 303, 1109, 303, 303, 1109, + 1109, 1109, 303, 312, 1109, 312, 1109, 1109, 312, 312, + 312, 312, 312, 1109, 1109, 1109, 312, 314, 1109, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 318, 318, 1109, 318, 318, 1109, + 1109, 1109, 318, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + + 330, 1109, 330, 1109, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 1109, 330, 330, 330, 448, 1109, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 341, 1109, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 345, 345, 1109, 1109, 345, 345, 378, 1109, 378, + 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, + 378, 378, 378, 378, 384, 1109, 384, 384, 384, 1109, + 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, + 384, 389, 1109, 389, 389, 389, 389, 389, 389, 389, + + 389, 389, 389, 389, 389, 389, 389, 389, 390, 1109, + 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, + 390, 390, 390, 390, 390, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 509, 509, 1109, 509, 509, 1109, 1109, 1109, + 509, 511, 511, 1109, 511, 511, 1109, 1109, 1109, 511, + 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 401, 401, 401, 401, 401, 405, 405, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 405, 405, 410, 1109, 410, 410, 410, 410, + + 410, 410, 410, 410, 410, 410, 410, 410, 1109, 410, + 410, 420, 420, 1109, 420, 420, 1109, 1109, 1109, 420, + 420, 425, 1109, 425, 425, 425, 425, 425, 425, 425, + 425, 425, 425, 425, 425, 425, 425, 425, 427, 1109, + 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 428, 1109, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 438, + 438, 438, 318, 318, 1109, 318, 318, 1109, 1109, 1109, + + 318, 448, 1109, 448, 448, 448, 448, 448, 448, 448, + 448, 448, 448, 448, 448, 448, 448, 448, 608, 1109, + 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, + 608, 608, 608, 608, 608, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, + 777, 777, 919, 919, 919, 919, 919, 919, 919, 919, + 919, 919, 919, 919, 919, 919, 919, 919, 919, 49, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 + } ; + +static yyconst flex_int16_t yy_chk[4055] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, + 96, 3, 3, 5, 3, 5, 7, 3, 3, 3, + 3, 8, 995, 3, 3, 6, 6, 945, 6, 21, + 3, 944, 6, 3, 9, 126, 9, 11, 11, 96, + + 11, 12, 12, 943, 12, 17, 942, 17, 19, 138, + 19, 19, 27, 20, 27, 20, 20, 17, 22, 3, + 3, 17, 17, 17, 17, 28, 7, 28, 7, 51, + 51, 8, 51, 8, 126, 10, 9, 10, 79, 21, + 21, 10, 21, 9, 9, 87, 9, 87, 3, 3, + 3, 4, 4, 138, 4, 4, 941, 4, 4, 19, + 4, 4, 4, 4, 20, 9, 4, 4, 22, 22, + 95, 22, 9, 4, 73, 73, 4, 10, 23, 37, + 23, 45, 37, 45, 10, 10, 17, 10, 259, 259, + 45, 23, 142, 263, 263, 37, 37, 37, 37, 940, + + 95, 38, 4, 4, 38, 4, 10, 46, 147, 46, + 147, 79, 47, 10, 47, 939, 46, 38, 38, 38, + 38, 142, 47, 55, 55, 149, 55, 149, 23, 23, + 23, 4, 4, 4, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 18, 24, + 18, 24, 168, 29, 58, 29, 74, 74, 938, 30, + 18, 30, 24, 29, 18, 18, 18, 18, 31, 30, + 31, 31, 32, 191, 32, 32, 48, 162, 48, 67, + 67, 168, 67, 246, 162, 246, 48, 75, 74, 75, + 141, 58, 75, 75, 75, 75, 167, 176, 177, 24, + 24, 24, 191, 29, 253, 29, 253, 105, 105, 30, + 105, 30, 116, 116, 116, 116, 294, 74, 294, 31, + 141, 58, 323, 32, 323, 937, 167, 176, 177, 18, + + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 33, 33, 39, 33, 39, 34, + 34, 33, 34, 182, 41, 42, 34, 333, 43, 181, + + 33, 41, 42, 186, 333, 34, 203, 203, 203, 203, + 325, 43, 325, 181, 41, 42, 179, 187, 179, 193, + 314, 43, 179, 182, 41, 42, 43, 33, 194, 41, + 42, 199, 34, 186, 33, 33, 39, 33, 39, 34, + 34, 43, 34, 181, 41, 42, 179, 187, 179, 193, + 43, 179, 936, 41, 42, 43, 33, 194, 41, 42, + 199, 34, 935, 33, 314, 39, 934, 39, 34, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, + 35, 35, 35, 40, 44, 40, 63, 63, 195, 63, + 122, 122, 347, 63, 183, 76, 76, 44, 76, 125, + 125, 348, 76, 350, 196, 132, 132, 44, 180, 184, + 190, 76, 44, 410, 410, 183, 180, 76, 195, 933, + 190, 347, 122, 197, 183, 198, 235, 44, 876, 184, + + 348, 125, 350, 40, 196, 40, 44, 132, 180, 184, + 190, 44, 236, 188, 183, 244, 180, 188, 189, 76, + 190, 122, 189, 197, 875, 198, 228, 228, 184, 228, + 125, 258, 40, 235, 40, 59, 132, 63, 232, 232, + 192, 232, 236, 188, 260, 244, 76, 188, 189, 278, + 192, 290, 189, 192, 59, 291, 59, 319, 59, 249, + 249, 258, 249, 235, 59, 874, 249, 59, 59, 59, + 192, 59, 59, 59, 260, 260, 401, 59, 401, 278, + 192, 290, 192, 873, 59, 291, 59, 319, 59, 320, + 343, 872, 239, 239, 59, 239, 516, 59, 59, 59, + + 59, 59, 59, 871, 240, 240, 59, 240, 59, 239, + 239, 239, 239, 241, 241, 870, 241, 261, 261, 320, + 343, 240, 240, 240, 240, 242, 242, 352, 242, 516, + 241, 241, 241, 241, 510, 239, 298, 298, 344, 298, + 249, 354, 242, 242, 242, 242, 349, 869, 355, 261, + 269, 269, 356, 269, 241, 346, 352, 269, 305, 305, + 305, 305, 360, 349, 239, 242, 269, 353, 344, 346, + 354, 353, 269, 357, 612, 358, 349, 355, 261, 359, + 361, 356, 363, 359, 241, 346, 362, 868, 365, 367, + 368, 360, 349, 370, 373, 242, 372, 353, 346, 372, + + 403, 353, 403, 357, 269, 358, 405, 612, 405, 359, + 361, 363, 359, 407, 510, 407, 362, 365, 367, 368, + 416, 416, 867, 370, 373, 431, 372, 431, 375, 372, + 376, 269, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 375, 866, 376, + 307, 388, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 307, 307, 307, 307, 369, 374, 371, 865, + 395, 388, 371, 397, 374, 864, 369, 371, 380, 380, + + 380, 380, 396, 421, 421, 421, 421, 399, 433, 863, + 433, 409, 411, 500, 424, 500, 369, 374, 371, 395, + 617, 617, 371, 397, 374, 369, 426, 371, 377, 429, + 377, 396, 862, 377, 377, 391, 391, 399, 391, 377, + 377, 409, 411, 411, 424, 377, 377, 430, 394, 394, + 377, 394, 391, 391, 391, 391, 426, 377, 377, 429, + 377, 412, 412, 377, 377, 394, 394, 394, 394, 377, + 377, 414, 414, 434, 377, 377, 440, 430, 437, 377, + 444, 446, 447, 861, 449, 450, 451, 452, 444, 434, + 453, 437, 503, 412, 503, 440, 860, 412, 505, 505, + + 603, 505, 603, 618, 618, 414, 414, 604, 604, 859, + 604, 446, 447, 449, 450, 858, 451, 452, 444, 434, + 453, 437, 412, 413, 413, 440, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 857, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + 413, 413, 413, 413, 413, 413, 413, 413, 413, 413, + + 413, 413, 413, 413, 413, 413, 413, 415, 415, 415, + 415, 435, 436, 439, 441, 454, 415, 415, 415, 415, + 415, 415, 455, 442, 443, 456, 457, 435, 459, 461, + 436, 856, 460, 463, 464, 439, 441, 465, 855, 441, + 466, 415, 415, 442, 443, 454, 415, 415, 415, 415, + 415, 415, 455, 854, 468, 456, 457, 435, 459, 461, + 436, 460, 463, 464, 439, 441, 470, 465, 441, 471, + 466, 850, 467, 442, 443, 445, 472, 473, 474, 475, + 445, 445, 445, 445, 468, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 609, 445, 470, 485, 445, 471, + + 445, 467, 486, 445, 484, 487, 472, 473, 474, 475, + 445, 445, 445, 445, 488, 476, 445, 477, 478, 479, + 480, 445, 481, 482, 483, 445, 485, 445, 489, 445, + 483, 486, 445, 490, 484, 487, 491, 492, 493, 494, + 495, 496, 849, 497, 488, 498, 499, 795, 498, 498, + 696, 506, 696, 794, 483, 507, 793, 508, 489, 512, + 483, 522, 523, 490, 524, 491, 525, 492, 493, 494, + 495, 496, 497, 792, 609, 498, 499, 498, 498, 501, + 501, 506, 501, 504, 504, 507, 504, 508, 777, 512, + 777, 522, 523, 791, 524, 525, 501, 501, 501, 501, + + 504, 504, 504, 504, 513, 513, 790, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 789, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, + 513, 513, 513, 513, 513, 513, 513, 513, 514, 514, + 529, 527, 532, 788, 518, 518, 528, 531, 779, 530, + + 779, 528, 531, 533, 537, 538, 616, 616, 616, 527, + 530, 527, 534, 787, 529, 535, 533, 537, 786, 532, + 535, 538, 514, 514, 515, 515, 515, 515, 518, 518, + 534, 528, 531, 515, 515, 515, 515, 515, 515, 527, + 530, 527, 536, 529, 541, 539, 533, 537, 532, 785, + 535, 538, 783, 542, 548, 540, 545, 541, 543, 549, + 534, 539, 536, 515, 515, 515, 515, 515, 515, 519, + 519, 519, 519, 540, 544, 542, 545, 543, 519, 519, + 519, 519, 519, 519, 548, 546, 547, 541, 549, 552, + 557, 539, 536, 553, 547, 776, 544, 555, 556, 544, + + 558, 773, 560, 540, 542, 546, 545, 543, 519, 519, + 519, 519, 519, 519, 559, 561, 562, 565, 568, 552, + 557, 566, 553, 567, 547, 544, 555, 556, 544, 572, + 558, 559, 560, 573, 577, 546, 575, 559, 761, 576, + 579, 580, 581, 582, 561, 583, 562, 565, 568, 584, + 566, 585, 567, 586, 587, 589, 590, 591, 572, 592, + 593, 559, 594, 573, 577, 575, 595, 559, 576, 579, + 596, 580, 581, 582, 583, 597, 599, 598, 600, 584, + 585, 605, 586, 598, 587, 589, 590, 591, 592, 606, + 593, 594, 607, 619, 610, 610, 595, 610, 621, 596, + + 614, 614, 622, 624, 626, 597, 599, 598, 600, 627, + 605, 628, 598, 625, 747, 631, 641, 630, 635, 606, + 629, 607, 626, 619, 628, 625, 630, 621, 624, 635, + 639, 627, 622, 631, 614, 614, 615, 615, 615, 615, + 629, 639, 736, 641, 632, 615, 615, 615, 615, 615, + 615, 632, 626, 634, 628, 625, 630, 624, 633, 635, + 627, 637, 634, 631, 636, 633, 637, 638, 640, 645, + 629, 639, 641, 640, 642, 615, 615, 615, 615, 615, + 615, 632, 636, 643, 636, 646, 647, 642, 644, 645, + 707, 638, 634, 644, 648, 633, 637, 650, 646, 651, + + 653, 643, 658, 640, 657, 660, 656, 706, 662, 664, + 665, 651, 636, 666, 636, 647, 656, 642, 668, 645, + 638, 669, 670, 644, 648, 672, 650, 673, 646, 651, + 653, 643, 658, 657, 674, 660, 656, 662, 676, 664, + 665, 651, 677, 666, 678, 656, 679, 682, 668, 681, + 669, 683, 670, 684, 672, 686, 673, 687, 688, 690, + 691, 702, 692, 674, 693, 694, 697, 698, 676, 699, + 699, 677, 699, 678, 704, 704, 679, 682, 681, 701, + 683, 705, 705, 684, 710, 686, 714, 687, 688, 690, + 691, 692, 715, 712, 693, 694, 697, 698, 703, 703, + + 703, 710, 711, 713, 715, 716, 717, 711, 712, 718, + 714, 719, 721, 720, 728, 722, 723, 695, 724, 713, + 719, 725, 737, 728, 727, 721, 689, 716, 723, 729, + 717, 710, 726, 718, 715, 720, 724, 711, 712, 714, + 722, 730, 732, 725, 727, 726, 733, 729, 730, 713, + 719, 732, 737, 728, 731, 721, 716, 733, 723, 717, + 738, 731, 718, 740, 720, 741, 724, 742, 743, 722, + 744, 745, 725, 740, 727, 726, 746, 729, 730, 748, + 749, 732, 750, 751, 752, 753, 755, 733, 754, 738, + 757, 731, 759, 740, 763, 741, 764, 742, 743, 744, + + 745, 765, 781, 740, 768, 746, 770, 774, 797, 748, + 749, 775, 750, 751, 752, 753, 755, 754, 796, 685, + 757, 759, 1150, 1150, 763, 797, 764, 767, 767, 800, + 765, 781, 767, 799, 768, 767, 770, 774, 767, 771, + 771, 775, 796, 767, 771, 800, 798, 771, 799, 801, + 771, 798, 802, 808, 803, 797, 809, 767, 767, 804, + 805, 810, 767, 807, 802, 767, 808, 811, 767, 771, + 771, 796, 767, 801, 771, 800, 803, 771, 799, 806, + 771, 798, 812, 804, 805, 807, 809, 813, 806, 671, + 814, 810, 815, 820, 802, 817, 808, 811, 819, 821, + + 822, 824, 801, 823, 826, 803, 828, 829, 835, 831, + 837, 812, 804, 805, 807, 836, 840, 813, 806, 814, + 839, 841, 815, 820, 817, 831, 842, 819, 821, 843, + 822, 824, 823, 844, 826, 845, 828, 829, 835, 831, + 837, 838, 877, 847, 836, 838, 840, 846, 838, 839, + 846, 841, 848, 851, 831, 852, 842, 852, 838, 843, + 846, 878, 844, 879, 881, 845, 877, 880, 882, 883, + 886, 838, 847, 884, 887, 838, 888, 846, 838, 889, + 846, 848, 851, 891, 892, 893, 895, 838, 894, 846, + 896, 878, 897, 879, 881, 877, 880, 898, 882, 883, + + 886, 900, 884, 901, 887, 902, 888, 903, 907, 889, + 904, 905, 891, 908, 892, 893, 895, 894, 909, 911, + 896, 912, 897, 913, 667, 914, 898, 915, 916, 917, + 947, 900, 918, 901, 919, 902, 919, 903, 907, 904, + 905, 946, 921, 908, 921, 955, 917, 909, 948, 911, + 949, 912, 950, 913, 914, 951, 915, 916, 952, 917, + 947, 918, 953, 954, 661, 956, 957, 655, 958, 959, + 946, 961, 620, 962, 955, 917, 963, 964, 948, 965, + 949, 966, 950, 967, 968, 951, 970, 972, 952, 973, + 974, 975, 953, 954, 956, 976, 957, 958, 978, 959, + + 979, 961, 962, 980, 981, 963, 964, 980, 982, 965, + 996, 966, 997, 967, 968, 970, 972, 998, 973, 999, + 974, 975, 1000, 1001, 1002, 976, 1004, 1005, 978, 979, + 1007, 1008, 980, 981, 1009, 1010, 980, 1011, 982, 1012, + 996, 1013, 997, 1015, 1019, 1020, 998, 1021, 1025, 999, + 1024, 1000, 1001, 1002, 1026, 1034, 1004, 1005, 1027, 1007, + 1008, 1028, 1029, 1031, 1009, 1010, 1032, 1011, 1033, 1012, + 1035, 1013, 1036, 1015, 1019, 1020, 1037, 1021, 1025, 1024, + 1040, 613, 1042, 1044, 1026, 1034, 1047, 1027, 1050, 1051, + 1028, 1029, 1031, 1052, 1053, 1032, 1054, 1033, 1055, 1056, + + 1035, 1057, 1036, 1058, 1059, 1061, 1037, 1062, 1063, 1064, + 1040, 1042, 1066, 1044, 1070, 1071, 1047, 1072, 1050, 1051, + 1073, 1075, 1052, 1076, 1053, 1077, 1054, 1078, 1055, 1056, + 1079, 1057, 1080, 1058, 1059, 1061, 1062, 1063, 1081, 1064, + 1084, 1066, 1086, 1088, 1070, 1071, 1072, 1087, 1089, 1090, + 1073, 1075, 1091, 1076, 1093, 1077, 1096, 1078, 1097, 1100, + 1079, 1101, 1080, 1102, 1105, 1106, 1163, 1081, 1163, 1084, + 611, 601, 1086, 1088, 574, 571, 1087, 1089, 1090, 554, + 1192, 1091, 1192, 526, 1093, 517, 1096, 1097, 469, 1100, + 1101, 438, 1102, 420, 1105, 1106, 1110, 1110, 1110, 1110, + + 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, + 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, + 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, + 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, + 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116, + + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, + 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, + 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, + 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1121, 1121, 1121, + 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, + + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, + 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, + 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, + 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, + 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1127, + 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, + + 1127, 1127, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, + 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, + 1129, 393, 1129, 1129, 378, 351, 341, 1129, 1130, 1130, + 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, + 1130, 1130, 1130, 1130, 1131, 1131, 339, 1131, 1131, 334, + 301, 300, 1131, 1132, 299, 1132, 1132, 1132, 1132, 1132, + 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, + 1133, 296, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, + 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134, + 285, 1134, 1134, 282, 274, 273, 1134, 1135, 272, 1135, + + 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, + 1135, 1135, 1135, 1135, 1136, 271, 1136, 1136, 1136, 1136, + 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, + 1136, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, + 1137, 1137, 1137, 268, 1137, 266, 1137, 1137, 1138, 265, + 256, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1139, 1139, 255, 1139, 1139, + 252, 251, 234, 1139, 1140, 230, 1140, 1140, 1140, 1140, + 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, + 1140, 1141, 227, 1141, 1141, 1141, 1141, 1141, 1141, 1141, + + 1141, 1141, 1141, 1141, 1141, 226, 1141, 1141, 1142, 222, + 1142, 208, 207, 1142, 1142, 1142, 1142, 1142, 206, 202, + 175, 1142, 1143, 174, 1143, 1143, 1143, 1143, 1143, 1143, + 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, + 1144, 172, 1144, 1144, 170, 169, 166, 1144, 1145, 1145, + 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, + 1145, 1145, 1145, 1145, 1145, 1146, 165, 1146, 164, 1146, + 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 158, 1146, + 1146, 1146, 1147, 155, 1147, 1147, 1147, 1147, 1147, 1147, + 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148, + + 154, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, + 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 153, 152, + 1149, 1149, 1151, 144, 1151, 1151, 1151, 1151, 1151, 1151, + 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, + 143, 1152, 1152, 1152, 139, 1152, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153, 136, 1153, + 1153, 131, 129, 124, 1153, 1154, 120, 1154, 1154, 1154, + 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 1155, 114, 1155, 1155, 1155, 1155, 1155, 1155, + 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1156, + + 1156, 109, 107, 106, 1156, 1157, 1157, 103, 101, 99, + 1157, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, + 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1159, 1159, + 98, 1159, 1159, 97, 94, 91, 1159, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, + 1160, 1160, 1160, 1160, 1161, 90, 1161, 1161, 1161, 1161, + 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 88, 1161, + 1161, 1162, 86, 1162, 1162, 1162, 1162, 1162, 1162, 1162, + 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1164, 1164, + 84, 1164, 1164, 80, 78, 72, 1164, 1164, 1165, 71, + + 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, + 1165, 1165, 1165, 1165, 1165, 1166, 68, 1166, 1166, 1166, + 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, + 1166, 1166, 1167, 65, 1167, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168, + 60, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1169, 57, 1169, 1169, + 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, + 1169, 1169, 1169, 1170, 1170, 1170, 1170, 1170, 1170, 1170, + 1170, 1170, 1170, 1170, 1170, 53, 1170, 49, 1170, 1170, + + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, + 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1172, 16, 15, + 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, + 1172, 1172, 1172, 1172, 1173, 1173, 0, 1173, 1173, 0, + 0, 0, 1173, 1174, 0, 1174, 0, 0, 1174, 1174, + 1174, 1174, 1174, 0, 0, 0, 1174, 1175, 0, 1175, + 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, + 1175, 1175, 1175, 1175, 1176, 1176, 0, 1176, 1176, 0, + 0, 0, 1176, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, + + 1178, 0, 1178, 0, 1178, 1178, 1178, 1178, 1178, 1178, + 1178, 1178, 1178, 0, 1178, 1178, 1178, 1179, 0, 1179, + 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, + 1179, 1179, 1179, 1179, 1180, 0, 1180, 1180, 1180, 1180, + 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, + 1180, 1181, 1181, 0, 0, 1181, 1181, 1182, 0, 1182, + 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, + 1182, 1182, 1182, 1182, 1183, 0, 1183, 1183, 1183, 0, + 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, + 1183, 1184, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, + + 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1185, 0, + 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1186, + 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, + 1186, 1186, 1187, 1187, 0, 1187, 1187, 0, 0, 0, + 1187, 1188, 1188, 0, 1188, 1188, 0, 0, 0, 1188, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, + 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, + 1190, 1190, 1190, 1190, 1191, 0, 1191, 1191, 1191, 1191, + + 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 0, 1191, + 1191, 1193, 1193, 0, 1193, 1193, 0, 0, 0, 1193, + 1193, 1194, 0, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 0, + 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, + 1195, 1195, 1195, 1195, 1195, 1196, 0, 1196, 1196, 1196, + 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, + 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, + 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, + 1198, 1198, 1199, 1199, 0, 1199, 1199, 0, 0, 0, + + 1199, 1200, 0, 1200, 1200, 1200, 1200, 1200, 1200, 1200, + 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0, + 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, + 1201, 1201, 1201, 1201, 1201, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, + 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, + 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1109, 1109, 1109 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +static int yy_more_flag = 0; +static int yy_more_len = 0; +#define yymore() ((yy_more_flag) = 1) +#define YY_MORE_ADJ (yy_more_len) +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "stage1scan.l" +/* scan.l - scanner for flex input -*-C-*- */ +#line 4 "stage1scan.l" +/* Copyright (c) 1990 The Regents of the University of California. */ +/* All rights reserved. */ + +/* This code is derived from software contributed to Berkeley by */ +/* Vern Paxson. */ + +/* The United States Government has rights in this work pursuant */ +/* to contract no. DE-AC03-76SF00098 between the United States */ +/* Department of Energy and the University of California. */ + +/* This file is part of flex. */ + +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ + +/* 1. Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* 2. Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ + +/* Neither the name of the University nor the names of its contributors */ +/* may be used to endorse or promote products derived from this software */ +/* without specific prior written permission. */ + +/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ +/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE. */ + +#include "flexdef.h" +#include "parse.h" +extern bool tablesverify, tablesext; +extern int trlcontxt; /* Set in parse.y for each rule. */ +extern const char *escaped_qstart, *escaped_qend; + +#define ACTION_ECHO add_action( yytext ) +#define ACTION_IFDEF(def, should_define) \ + { \ + if ( should_define ) \ + action_define( def, 1 ); \ + } + +#define ACTION_ECHO_QSTART add_action (escaped_qstart) +#define ACTION_ECHO_QEND add_action (escaped_qend) + +#define ACTION_M4_IFDEF(def, should_define) \ + do{ \ + if ( should_define ) \ + buf_m4_define( &m4defs_buf, def, NULL);\ + else \ + buf_m4_undefine( &m4defs_buf, def);\ + } while(0) + +#define MARK_END_OF_PROLOG mark_prolog(); + +#define YY_DECL \ + int flexscan(void) + +#define RETURNCHAR \ + yylval = (unsigned char) yytext[0]; \ + return CHAR; + +#define RETURNNAME \ + if(yyleng < MAXLINE) \ + { \ + strcpy( nmstr, yytext ); \ + } \ + else \ + { \ + synerr(_("Input line too long\n")); \ + FLEX_EXIT(EXIT_FAILURE); \ + } \ + return NAME; + +#define PUT_BACK_STRING(str, start) \ + for ( i = strlen( str ) - 1; i >= start; --i ) \ + unput((str)[i]) + +#define CHECK_REJECT(str) \ + if ( all_upper( str ) ) \ + reject = true; + +#define CHECK_YYMORE(str) \ + if ( all_lower( str ) ) \ + yymore_used = true; + +#define YY_USER_INIT \ + if ( getenv("POSIXLY_CORRECT") ) \ + posix_compat = true; + + + + + + + + +#line 1838 "stage1scan.c" + +#define INITIAL 0 +#define SECT2 1 +#define SECT2PROLOG 2 +#define SECT3 3 +#define CODEBLOCK 4 +#define PICKUPDEF 5 +#define SC 6 +#define CARETISBOL 7 +#define NUM 8 +#define QUOTE 9 +#define FIRSTCCL 10 +#define CCL 11 +#define ACTION 12 +#define RECOVER 13 +#define COMMENT 14 +#define ACTION_STRING 15 +#define PERCENT_BRACE_ACTION 16 +#define OPTION 17 +#define LINEDIR 18 +#define CODEBLOCK_MATCH_BRACE 19 +#define GROUP_WITH_PARAMS 20 +#define GROUP_MINUS_PARAMS 21 +#define EXTENDED_COMMENT 22 +#define COMMENT_DISCARD 23 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include <unistd.h> +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * _in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * _out_str ); + + int yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int _line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + +#ifndef YY_NO_UNPUT + + static void yyunput (int c,char *buf_ptr ); + +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + + static int yy_start_stack_ptr = 0; + static int yy_start_stack_depth = 0; + static int *yy_start_stack = NULL; + + static void yy_push_state (int _new_state ); + + static void yy_pop_state (void ); + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK /*LINTED*/break; +#endif + +#define YY_RULE_SETUP \ + if ( yyleng > 0 ) \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ + (yytext[yyleng - 1] == '\n'); \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + { +#line 131 "stage1scan.l" + + static int bracelevel, didadef, indented_code; + static int doing_rule_action = false; + static int option_sense; + + int doing_codeblock = false; + int i, brace_depth=0, brace_start_line=0; + char nmdef[MAXLINE]; + + +#line 2101 "stage1scan.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + { + (yy_more_len) = 0; + if ( (yy_more_flag) ) + { + (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); + (yy_more_flag) = 0; + } + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); + yy_current_state += YY_AT_BOL(); +yy_match: + do + { + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 3970 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 142 "stage1scan.l" +indented_code = true; BEGIN(CODEBLOCK); + YY_BREAK +case 2: +YY_RULE_SETUP +#line 143 "stage1scan.l" +ACTION_ECHO; yy_push_state( COMMENT ); + YY_BREAK +case 3: +YY_RULE_SETUP +#line 144 "stage1scan.l" +yy_push_state( LINEDIR ); + YY_BREAK +case 4: +YY_RULE_SETUP +#line 145 "stage1scan.l" +return SCDECL; + YY_BREAK +case 5: +YY_RULE_SETUP +#line 146 "stage1scan.l" +return XSCDECL; + YY_BREAK +case 6: +/* rule 6 can match eol */ +YY_RULE_SETUP +#line 147 "stage1scan.l" +{ + ++linenum; + line_directive_out(NULL, 1); + indented_code = false; + BEGIN(CODEBLOCK); + } + YY_BREAK +case 7: +/* rule 7 can match eol */ +YY_RULE_SETUP +#line 153 "stage1scan.l" +{ + brace_start_line = linenum; + ++linenum; + buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum); + brace_depth = 1; + yy_push_state(CODEBLOCK_MATCH_BRACE); + } + YY_BREAK +case 8: +YY_RULE_SETUP +#line 161 "stage1scan.l" +synerr( _("malformed '%top' directive") ); + YY_BREAK +case 9: +YY_RULE_SETUP +#line 163 "stage1scan.l" +/* discard */ + YY_BREAK +case 10: +YY_RULE_SETUP +#line 165 "stage1scan.l" +{ + sectnum = 2; + bracelevel = 0; + mark_defs1(); + line_directive_out(NULL, 1); + BEGIN(SECT2PROLOG); + return SECTEND; + } + YY_BREAK +case 11: +/* rule 11 can match eol */ +YY_RULE_SETUP +#line 174 "stage1scan.l" +yytext_is_array = false; ++linenum; + YY_BREAK +case 12: +/* rule 12 can match eol */ +YY_RULE_SETUP +#line 175 "stage1scan.l" +yytext_is_array = true; ++linenum; + YY_BREAK +case 13: +YY_RULE_SETUP +#line 177 "stage1scan.l" +BEGIN(OPTION); return TOK_OPTION; + YY_BREAK +case 14: +/* rule 14 can match eol */ +YY_RULE_SETUP +#line 179 "stage1scan.l" +++linenum; /* ignore */ + YY_BREAK +case 15: +/* rule 15 can match eol */ +YY_RULE_SETUP +#line 180 "stage1scan.l" +++linenum; /* ignore */ + YY_BREAK +/* xgettext: no-c-format */ +case 16: +/* rule 16 can match eol */ +YY_RULE_SETUP +#line 183 "stage1scan.l" +synerr( _( "unrecognized '%' directive" ) ); + YY_BREAK +case 17: +YY_RULE_SETUP +#line 185 "stage1scan.l" +{ + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Definition name too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + didadef = false; + BEGIN(PICKUPDEF); + } + YY_BREAK +case 18: +YY_RULE_SETUP +#line 200 "stage1scan.l" +RETURNNAME; + YY_BREAK +case 19: +/* rule 19 can match eol */ +YY_RULE_SETUP +#line 201 "stage1scan.l" +++linenum; /* allows blank lines in section 1 */ + YY_BREAK +case 20: +/* rule 20 can match eol */ +YY_RULE_SETUP +#line 202 "stage1scan.l" +ACTION_ECHO; ++linenum; /* maybe end of comment line */ + YY_BREAK + + +case 21: +YY_RULE_SETUP +#line 207 "stage1scan.l" +ACTION_ECHO; yy_pop_state(); + YY_BREAK +case 22: +YY_RULE_SETUP +#line 208 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 23: +YY_RULE_SETUP +#line 209 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 24: +YY_RULE_SETUP +#line 210 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 25: +YY_RULE_SETUP +#line 211 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 26: +/* rule 26 can match eol */ +YY_RULE_SETUP +#line 212 "stage1scan.l" +++linenum; ACTION_ECHO; + YY_BREAK + + +/* This is the same as COMMENT, but is discarded rather than output. */ +case 27: +YY_RULE_SETUP +#line 217 "stage1scan.l" +yy_pop_state(); + YY_BREAK +case 28: +YY_RULE_SETUP +#line 218 "stage1scan.l" +; + YY_BREAK +case 29: +YY_RULE_SETUP +#line 219 "stage1scan.l" +; + YY_BREAK +case 30: +/* rule 30 can match eol */ +YY_RULE_SETUP +#line 220 "stage1scan.l" +++linenum; + YY_BREAK + + +case 31: +YY_RULE_SETUP +#line 224 "stage1scan.l" +yy_pop_state(); + YY_BREAK +case 32: +YY_RULE_SETUP +#line 225 "stage1scan.l" +; + YY_BREAK +case 33: +/* rule 33 can match eol */ +YY_RULE_SETUP +#line 226 "stage1scan.l" +++linenum; + YY_BREAK + + +case 34: +/* rule 34 can match eol */ +YY_RULE_SETUP +#line 230 "stage1scan.l" +yy_pop_state(); + YY_BREAK +case 35: +YY_RULE_SETUP +#line 231 "stage1scan.l" +linenum = myctoi( yytext ); + YY_BREAK +case 36: +YY_RULE_SETUP +#line 233 "stage1scan.l" +{ + free(infilename); + infilename = xstrdup(yytext + 1); + infilename[strlen( infilename ) - 1] = '\0'; + } + YY_BREAK +case 37: +YY_RULE_SETUP +#line 238 "stage1scan.l" +/* ignore spurious characters */ + YY_BREAK + + +case 38: +/* rule 38 can match eol */ +YY_RULE_SETUP +#line 242 "stage1scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK +case 39: +YY_RULE_SETUP +#line 244 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 40: +YY_RULE_SETUP +#line 245 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 41: +YY_RULE_SETUP +#line 246 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 42: +/* rule 42 can match eol */ +YY_RULE_SETUP +#line 248 "stage1scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( indented_code ) + BEGIN(INITIAL); + } + YY_BREAK + + +case 43: +YY_RULE_SETUP +#line 257 "stage1scan.l" +{ + if( --brace_depth == 0){ + /* TODO: Matched. */ + yy_pop_state(); + }else + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 44: +YY_RULE_SETUP +#line 265 "stage1scan.l" +{ + brace_depth++; + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 45: +/* rule 45 can match eol */ +YY_RULE_SETUP +#line 270 "stage1scan.l" +{ + ++linenum; + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case 46: +YY_RULE_SETUP +#line 275 "stage1scan.l" +buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); + YY_BREAK +case 47: +YY_RULE_SETUP +#line 276 "stage1scan.l" +buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); + YY_BREAK +case 48: +YY_RULE_SETUP +#line 278 "stage1scan.l" +{ + buf_strnappend(&top_buf, yytext, yyleng); + } + YY_BREAK +case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE): +#line 282 "stage1scan.l" +{ + linenum = brace_start_line; + synerr(_("Unmatched '{'")); + yyterminate(); + } + YY_BREAK + + +case 49: +YY_RULE_SETUP +#line 291 "stage1scan.l" +/* separates name and definition */ + YY_BREAK +case 50: +YY_RULE_SETUP +#line 293 "stage1scan.l" +{ + if(yyleng < MAXLINE) + { + strcpy( nmdef, yytext ); + } + else + { + format_synerr( _("Definition value for {%s} too long\n"), nmstr); + FLEX_EXIT(EXIT_FAILURE); + } + /* Skip trailing whitespace. */ + for ( i = strlen( nmdef ) - 1; + i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); + --i ) + ; + + nmdef[i + 1] = '\0'; + + ndinstal( nmstr, nmdef ); + didadef = true; + } + YY_BREAK +case 51: +/* rule 51 can match eol */ +YY_RULE_SETUP +#line 315 "stage1scan.l" +{ + if ( ! didadef ) + synerr( _( "incomplete name definition" ) ); + BEGIN(INITIAL); + ++linenum; + } + YY_BREAK + + +case 52: +/* rule 52 can match eol */ +YY_RULE_SETUP +#line 325 "stage1scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK +case 53: +YY_RULE_SETUP +#line 326 "stage1scan.l" +option_sense = true; + YY_BREAK +case 54: +YY_RULE_SETUP +#line 328 "stage1scan.l" +return '='; + YY_BREAK +case 55: +YY_RULE_SETUP +#line 330 "stage1scan.l" +option_sense = ! option_sense; + YY_BREAK +case 56: +YY_RULE_SETUP +#line 332 "stage1scan.l" +csize = option_sense ? 128 : 256; + YY_BREAK +case 57: +YY_RULE_SETUP +#line 333 "stage1scan.l" +csize = option_sense ? 256 : 128; + YY_BREAK +case 58: +YY_RULE_SETUP +#line 335 "stage1scan.l" +long_align = option_sense; + YY_BREAK +case 59: +YY_RULE_SETUP +#line 336 "stage1scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense ); + interactive = option_sense; + } + YY_BREAK +case 60: +YY_RULE_SETUP +#line 340 "stage1scan.l" +yytext_is_array = option_sense; + YY_BREAK +case 61: +YY_RULE_SETUP +#line 341 "stage1scan.l" +ansi_func_defs = option_sense; + YY_BREAK +case 62: +YY_RULE_SETUP +#line 342 "stage1scan.l" +ansi_func_protos = option_sense; + YY_BREAK +case 63: +YY_RULE_SETUP +#line 343 "stage1scan.l" +backing_up_report = option_sense; + YY_BREAK +case 64: +YY_RULE_SETUP +#line 344 "stage1scan.l" +interactive = ! option_sense; + YY_BREAK +case 65: +YY_RULE_SETUP +#line 345 "stage1scan.l" +bison_bridge_lval = option_sense; + YY_BREAK +case 66: +YY_RULE_SETUP +#line 346 "stage1scan.l" +{ if((bison_bridge_lloc = option_sense)) + bison_bridge_lval = true; + } + YY_BREAK +case 67: +YY_RULE_SETUP +#line 349 "stage1scan.l" +C_plus_plus = option_sense; + YY_BREAK +case 68: +YY_RULE_SETUP +#line 350 "stage1scan.l" +sf_set_case_ins(!option_sense); + YY_BREAK +case 69: +YY_RULE_SETUP +#line 351 "stage1scan.l" +sf_set_case_ins(option_sense); + YY_BREAK +case 70: +YY_RULE_SETUP +#line 352 "stage1scan.l" +ddebug = option_sense; + YY_BREAK +case 71: +YY_RULE_SETUP +#line 353 "stage1scan.l" +spprdflt = ! option_sense; + YY_BREAK +case 72: +YY_RULE_SETUP +#line 354 "stage1scan.l" +useecs = option_sense; + YY_BREAK +case 73: +YY_RULE_SETUP +#line 355 "stage1scan.l" +{ + useecs = usemecs = false; + use_read = fullspd = true; + } + YY_BREAK +case 74: +YY_RULE_SETUP +#line 359 "stage1scan.l" +{ + useecs = usemecs = false; + use_read = fulltbl = true; + } + YY_BREAK +case 75: +YY_RULE_SETUP +#line 363 "stage1scan.l" +ACTION_IFDEF("YY_NO_INPUT", ! option_sense); + YY_BREAK +case 76: +YY_RULE_SETUP +#line 364 "stage1scan.l" +interactive = option_sense; + YY_BREAK +case 77: +YY_RULE_SETUP +#line 365 "stage1scan.l" +lex_compat = option_sense; + YY_BREAK +case 78: +YY_RULE_SETUP +#line 366 "stage1scan.l" +posix_compat = option_sense; + YY_BREAK +case 79: +YY_RULE_SETUP +#line 367 "stage1scan.l" +gen_line_dirs = option_sense; + YY_BREAK +case 80: +YY_RULE_SETUP +#line 368 "stage1scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense); + /* Override yywrap */ + if( option_sense == true ) + do_yywrap = false; + } + YY_BREAK +case 81: +YY_RULE_SETUP +#line 374 "stage1scan.l" +usemecs = option_sense; + YY_BREAK +case 82: +YY_RULE_SETUP +#line 375 "stage1scan.l" +{ + ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense ); + interactive = !option_sense; + } + YY_BREAK +case 83: +YY_RULE_SETUP +#line 379 "stage1scan.l" +performance_report += option_sense ? 1 : -1; + YY_BREAK +case 84: +YY_RULE_SETUP +#line 380 "stage1scan.l" +yytext_is_array = ! option_sense; + YY_BREAK +case 85: +YY_RULE_SETUP +#line 381 "stage1scan.l" +use_read = option_sense; + YY_BREAK +case 86: +YY_RULE_SETUP +#line 382 "stage1scan.l" +reentrant = option_sense; + YY_BREAK +case 87: +YY_RULE_SETUP +#line 383 "stage1scan.l" +reject_really_used = option_sense; + YY_BREAK +case 88: +YY_RULE_SETUP +#line 384 "stage1scan.l" +ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); + YY_BREAK +case 89: +YY_RULE_SETUP +#line 385 "stage1scan.l" +do_stdinit = option_sense; + YY_BREAK +case 90: +YY_RULE_SETUP +#line 386 "stage1scan.l" +use_stdout = option_sense; + YY_BREAK +case 91: +YY_RULE_SETUP +#line 387 "stage1scan.l" +ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); + YY_BREAK +case 92: +YY_RULE_SETUP +#line 388 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); + YY_BREAK +case 93: +YY_RULE_SETUP +#line 389 "stage1scan.l" +printstats = option_sense; + YY_BREAK +case 94: +YY_RULE_SETUP +#line 390 "stage1scan.l" +nowarn = ! option_sense; + YY_BREAK +case 95: +YY_RULE_SETUP +#line 391 "stage1scan.l" +do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); + YY_BREAK +case 96: +YY_RULE_SETUP +#line 392 "stage1scan.l" +yymore_really_used = option_sense; + YY_BREAK +case 97: +YY_RULE_SETUP +#line 393 "stage1scan.l" +do_yywrap = option_sense; + YY_BREAK +case 98: +YY_RULE_SETUP +#line 395 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); + YY_BREAK +case 99: +YY_RULE_SETUP +#line 396 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); + YY_BREAK +case 100: +YY_RULE_SETUP +#line 397 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); + YY_BREAK +case 101: +YY_RULE_SETUP +#line 399 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); + YY_BREAK +case 102: +YY_RULE_SETUP +#line 400 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); + YY_BREAK +case 103: +YY_RULE_SETUP +#line 401 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); + YY_BREAK +case 104: +YY_RULE_SETUP +#line 403 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); + YY_BREAK +case 105: +YY_RULE_SETUP +#line 404 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); + YY_BREAK +case 106: +YY_RULE_SETUP +#line 405 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); + YY_BREAK +case 107: +YY_RULE_SETUP +#line 407 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); + YY_BREAK +case 108: +YY_RULE_SETUP +#line 408 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); + YY_BREAK +case 109: +YY_RULE_SETUP +#line 409 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); + YY_BREAK +case 110: +YY_RULE_SETUP +#line 410 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); + YY_BREAK +case 111: +YY_RULE_SETUP +#line 411 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); + YY_BREAK +case 112: +YY_RULE_SETUP +#line 412 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); + YY_BREAK +case 113: +YY_RULE_SETUP +#line 413 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); + YY_BREAK +case 114: +YY_RULE_SETUP +#line 414 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); + YY_BREAK +case 115: +YY_RULE_SETUP +#line 415 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); + YY_BREAK +case 116: +YY_RULE_SETUP +#line 416 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); + YY_BREAK +case 117: +YY_RULE_SETUP +#line 417 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); + YY_BREAK +case 118: +YY_RULE_SETUP +#line 418 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); + YY_BREAK +case 119: +YY_RULE_SETUP +#line 419 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); + YY_BREAK +case 120: +YY_RULE_SETUP +#line 420 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); + YY_BREAK +case 121: +YY_RULE_SETUP +#line 421 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); + YY_BREAK +case 122: +YY_RULE_SETUP +#line 422 "stage1scan.l" +ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); + YY_BREAK +case 123: +YY_RULE_SETUP +#line 424 "stage1scan.l" +return TOK_EXTRA_TYPE; + YY_BREAK +case 124: +YY_RULE_SETUP +#line 425 "stage1scan.l" +return TOK_OUTFILE; + YY_BREAK +case 125: +YY_RULE_SETUP +#line 426 "stage1scan.l" +return TOK_PREFIX; + YY_BREAK +case 126: +YY_RULE_SETUP +#line 427 "stage1scan.l" +return TOK_YYCLASS; + YY_BREAK +case 127: +YY_RULE_SETUP +#line 428 "stage1scan.l" +return TOK_HEADER_FILE; + YY_BREAK +case 128: +YY_RULE_SETUP +#line 429 "stage1scan.l" +return TOK_TABLES_FILE; + YY_BREAK +case 129: +YY_RULE_SETUP +#line 430 "stage1scan.l" +{ + tablesverify = option_sense; + if(!tablesext && option_sense) + tablesext = true; + } + YY_BREAK +case 130: +YY_RULE_SETUP +#line 437 "stage1scan.l" +{ + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Option line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + nmstr[strlen( nmstr ) - 1] = '\0'; + return NAME; + } + YY_BREAK +case 131: +YY_RULE_SETUP +#line 451 "stage1scan.l" +{ + format_synerr( _( "unrecognized %%option: %s" ), + yytext ); + BEGIN(RECOVER); + } + YY_BREAK + +case 132: +/* rule 132 can match eol */ +YY_RULE_SETUP +#line 458 "stage1scan.l" +++linenum; BEGIN(INITIAL); + YY_BREAK + +case 133: +YY_RULE_SETUP +#line 462 "stage1scan.l" +++bracelevel; yyless( 2 ); /* eat only %{ */ + YY_BREAK +case 134: +YY_RULE_SETUP +#line 463 "stage1scan.l" +--bracelevel; yyless( 2 ); /* eat only %} */ + YY_BREAK +case 135: +YY_RULE_SETUP +#line 465 "stage1scan.l" +ACTION_ECHO; /* indented code in prolog */ + YY_BREAK +case 136: +YY_RULE_SETUP +#line 467 "stage1scan.l" +{ /* non-indented code */ + if ( bracelevel <= 0 ) + { /* not in %{ ... %} */ + yyless( 0 ); /* put it all back */ + yy_set_bol( 1 ); + mark_prolog(); + BEGIN(SECT2); + } + else + ACTION_ECHO; + } + YY_BREAK +case 137: +YY_RULE_SETUP +#line 479 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 138: +/* rule 138 can match eol */ +YY_RULE_SETUP +#line 480 "stage1scan.l" +++linenum; ACTION_ECHO; + YY_BREAK +case YY_STATE_EOF(SECT2PROLOG): +#line 482 "stage1scan.l" +{ + mark_prolog(); + sectnum = 0; + yyterminate(); /* to stop the parser */ + } + YY_BREAK + + +case 139: +/* rule 139 can match eol */ +YY_RULE_SETUP +#line 490 "stage1scan.l" +++linenum; /* allow blank lines in section 2 */ + YY_BREAK +case 140: +YY_RULE_SETUP +#line 492 "stage1scan.l" +{ + indented_code = false; + doing_codeblock = true; + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + } + YY_BREAK +case 141: +YY_RULE_SETUP +#line 499 "stage1scan.l" +{ + /* Allow "<" to appear in (?x) patterns. */ + if (!sf_skip_ws()) + BEGIN(SC); + return '<'; + } + YY_BREAK +case 142: +YY_RULE_SETUP +#line 505 "stage1scan.l" +return '^'; + YY_BREAK +case 143: +YY_RULE_SETUP +#line 506 "stage1scan.l" +BEGIN(QUOTE); return '"'; + YY_BREAK +case 144: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 507 "stage1scan.l" +{ + BEGIN(NUM); + if ( lex_compat || posix_compat ) + return BEGIN_REPEAT_POSIX; + else + return BEGIN_REPEAT_FLEX; + } + YY_BREAK +case 145: +/* rule 145 can match eol */ +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +YY_LINENO_REWIND_TO(yy_bp + 1); +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 514 "stage1scan.l" +return '$'; + YY_BREAK +case 146: +YY_RULE_SETUP +#line 516 "stage1scan.l" +{ + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + YY_BREAK +case 147: +/* rule 147 can match eol */ +YY_RULE_SETUP +#line 527 "stage1scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + /* Push back everything starting at the "|" */ + int amt = (int) (strchr (yytext, '|') - yytext); + yyless(amt); + } + else { + continued_action = true; + ++linenum; + return '\n'; + } + } + YY_BREAK +case 148: +YY_RULE_SETUP +#line 541 "stage1scan.l" +{ + + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + yy_push_state(COMMENT_DISCARD); + } + else{ + yyless( yyleng - 2 ); /* put back '/', '*' */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + } + } + YY_BREAK +case 149: +YY_RULE_SETUP +#line 555 "stage1scan.l" +/* allow indented rules */ ; + YY_BREAK +case 150: +YY_RULE_SETUP +#line 557 "stage1scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + } + else{ + /* This rule is separate from the one below because + * otherwise we get variable trailing context, so + * we can't build the scanner using -{f,F}. + */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + YY_BREAK +case 151: +/* rule 151 can match eol */ +YY_RULE_SETUP +#line 579 "stage1scan.l" +{ + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + ++linenum; + } + else{ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + unput( '\n' ); /* so <ACTION> sees it */ + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + YY_BREAK +case 152: +#line 600 "stage1scan.l" +case 153: +YY_RULE_SETUP +#line 600 "stage1scan.l" +return EOF_OP; + YY_BREAK +case 154: +YY_RULE_SETUP +#line 602 "stage1scan.l" +{ + sectnum = 3; + BEGIN(SECT3); + outn("/* Begin user sect3 */"); + yyterminate(); /* to stop the parser */ + } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 609 "stage1scan.l" +{ + int cclval; + + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + /* Check to see if we've already encountered this + * ccl. + */ + if (0 /* <--- This "0" effectively disables the reuse of a + * character class (purely based on its source text). + * The reason it was disabled is so yacc/bison can parse + * ccl operations, such as ccl difference and union. + */ + && (cclval = ccllookup( nmstr )) != 0 ) + { + if ( input() != ']' ) + synerr( _( "bad character class" ) ); + + yylval = cclval; + ++cclreuse; + return PREVCCL; + } + else + { + /* We fudge a bit. We know that this ccl will + * soon be numbered as lastccl + 1 by cclinit. + */ + cclinstal( nmstr, lastccl + 1 ); + + /* Push back everything but the leading bracket + * so the ccl can be rescanned. + */ + yyless( 1 ); + + BEGIN(FIRSTCCL); + return '['; + } + } + YY_BREAK +case 156: +YY_RULE_SETUP +#line 655 "stage1scan.l" +return CCL_OP_DIFF; + YY_BREAK +case 157: +YY_RULE_SETUP +#line 656 "stage1scan.l" +return CCL_OP_UNION; + YY_BREAK +/* Check for :space: at the end of the rule so we don't + * wrap the expanded regex in '(' ')' -- breaking trailing + * context. + */ +case 158: +/* rule 158 can match eol */ +YY_RULE_SETUP +#line 663 "stage1scan.l" +{ + char *nmdefptr; + int end_is_ws, end_ch; + + end_ch = yytext[yyleng-1]; + end_is_ws = end_ch != '}' ? 1 : 0; + + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } +nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ + + if ( (nmdefptr = ndlookup( nmstr )) == 0 ) + format_synerr( + _( "undefined definition {%s}" ), + nmstr ); + + else + { /* push back name surrounded by ()'s */ + int len = strlen( nmdefptr ); + if (end_is_ws) + unput(end_ch); + + if ( lex_compat || nmdefptr[0] == '^' || + (len > 0 && nmdefptr[len - 1] == '$') + || (end_is_ws && trlcontxt && !sf_skip_ws())) + { /* don't use ()'s after all */ + PUT_BACK_STRING(nmdefptr, 0); + + if ( nmdefptr[0] == '^' ) + BEGIN(CARETISBOL); + } + + else + { + unput(')'); + PUT_BACK_STRING(nmdefptr, 0); + unput('('); + } + } + } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 711 "stage1scan.l" +{ + if (sf_skip_ws()) + yy_push_state(COMMENT_DISCARD); + else{ + /* Push back the "*" and return "/" as usual. */ + yyless(1); + return '/'; + } + } + YY_BREAK +case 160: +YY_RULE_SETUP +#line 721 "stage1scan.l" +{ + if (lex_compat || posix_compat){ + /* Push back the "?#" and treat it like a normal parens. */ + yyless(1); + sf_push(); + return '('; + } + else + yy_push_state(EXTENDED_COMMENT); + } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 731 "stage1scan.l" +{ + sf_push(); + if (lex_compat || posix_compat) + /* Push back the "?" and treat it like a normal parens. */ + yyless(1); + else + BEGIN(GROUP_WITH_PARAMS); + return '('; + } + YY_BREAK +case 162: +YY_RULE_SETUP +#line 740 "stage1scan.l" +sf_push(); return '('; + YY_BREAK +case 163: +YY_RULE_SETUP +#line 741 "stage1scan.l" +{ + if (_sf_top_ix > 0) { + sf_pop(); + return ')'; + } else + synerr(_("unbalanced parenthesis")); + } + YY_BREAK +case 164: +YY_RULE_SETUP +#line 749 "stage1scan.l" +return (unsigned char) yytext[0]; + YY_BREAK +case 165: +YY_RULE_SETUP +#line 750 "stage1scan.l" +RETURNCHAR; + YY_BREAK + + +case 166: +/* rule 166 can match eol */ +YY_RULE_SETUP +#line 755 "stage1scan.l" +++linenum; /* Allow blank lines & continuations */ + YY_BREAK +case 167: +YY_RULE_SETUP +#line 756 "stage1scan.l" +return (unsigned char) yytext[0]; + YY_BREAK +case 168: +YY_RULE_SETUP +#line 757 "stage1scan.l" +BEGIN(SECT2); return '>'; + YY_BREAK +case 169: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 758 "stage1scan.l" +BEGIN(CARETISBOL); return '>'; + YY_BREAK +case 170: +YY_RULE_SETUP +#line 759 "stage1scan.l" +RETURNNAME; + YY_BREAK +case 171: +YY_RULE_SETUP +#line 760 "stage1scan.l" +{ + format_synerr( _( "bad <start condition>: %s" ), + yytext ); + } + YY_BREAK + +case 172: +YY_RULE_SETUP +#line 766 "stage1scan.l" +BEGIN(SECT2); return '^'; + YY_BREAK + +case 173: +YY_RULE_SETUP +#line 770 "stage1scan.l" +RETURNCHAR; + YY_BREAK +case 174: +YY_RULE_SETUP +#line 771 "stage1scan.l" +BEGIN(SECT2); return '"'; + YY_BREAK +case 175: +/* rule 175 can match eol */ +YY_RULE_SETUP +#line 773 "stage1scan.l" +{ + synerr( _( "missing quote" ) ); + BEGIN(SECT2); + ++linenum; + return '"'; + } + YY_BREAK + + +case 176: +YY_RULE_SETUP +#line 782 "stage1scan.l" +BEGIN(SECT2); + YY_BREAK +case 177: +YY_RULE_SETUP +#line 783 "stage1scan.l" +BEGIN(GROUP_MINUS_PARAMS); + YY_BREAK +case 178: +YY_RULE_SETUP +#line 784 "stage1scan.l" +sf_set_case_ins(1); + YY_BREAK +case 179: +YY_RULE_SETUP +#line 785 "stage1scan.l" +sf_set_dot_all(1); + YY_BREAK +case 180: +YY_RULE_SETUP +#line 786 "stage1scan.l" +sf_set_skip_ws(1); + YY_BREAK + + +case 181: +YY_RULE_SETUP +#line 789 "stage1scan.l" +BEGIN(SECT2); + YY_BREAK +case 182: +YY_RULE_SETUP +#line 790 "stage1scan.l" +sf_set_case_ins(0); + YY_BREAK +case 183: +YY_RULE_SETUP +#line 791 "stage1scan.l" +sf_set_dot_all(0); + YY_BREAK +case 184: +YY_RULE_SETUP +#line 792 "stage1scan.l" +sf_set_skip_ws(0); + YY_BREAK + + +case 185: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 796 "stage1scan.l" +BEGIN(CCL); return '^'; + YY_BREAK +case 186: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 797 "stage1scan.l" +return '^'; + YY_BREAK +case 187: +YY_RULE_SETUP +#line 798 "stage1scan.l" +BEGIN(CCL); RETURNCHAR; + YY_BREAK + + +case 188: +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ +(yy_c_buf_p) = yy_cp = yy_bp + 1; +YY_DO_BEFORE_ACTION; /* set up yytext again */ +YY_RULE_SETUP +#line 802 "stage1scan.l" +return '-'; + YY_BREAK +case 189: +YY_RULE_SETUP +#line 803 "stage1scan.l" +RETURNCHAR; + YY_BREAK +case 190: +YY_RULE_SETUP +#line 804 "stage1scan.l" +BEGIN(SECT2); return ']'; + YY_BREAK +case 191: +/* rule 191 can match eol */ +YY_RULE_SETUP +#line 805 "stage1scan.l" +{ + synerr( _( "bad character class" ) ); + BEGIN(SECT2); + return ']'; + } + YY_BREAK + + +case 192: +YY_RULE_SETUP +#line 813 "stage1scan.l" +BEGIN(CCL); return CCE_ALNUM; + YY_BREAK +case 193: +YY_RULE_SETUP +#line 814 "stage1scan.l" +BEGIN(CCL); return CCE_ALPHA; + YY_BREAK +case 194: +YY_RULE_SETUP +#line 815 "stage1scan.l" +BEGIN(CCL); return CCE_BLANK; + YY_BREAK +case 195: +YY_RULE_SETUP +#line 816 "stage1scan.l" +BEGIN(CCL); return CCE_CNTRL; + YY_BREAK +case 196: +YY_RULE_SETUP +#line 817 "stage1scan.l" +BEGIN(CCL); return CCE_DIGIT; + YY_BREAK +case 197: +YY_RULE_SETUP +#line 818 "stage1scan.l" +BEGIN(CCL); return CCE_GRAPH; + YY_BREAK +case 198: +YY_RULE_SETUP +#line 819 "stage1scan.l" +BEGIN(CCL); return CCE_LOWER; + YY_BREAK +case 199: +YY_RULE_SETUP +#line 820 "stage1scan.l" +BEGIN(CCL); return CCE_PRINT; + YY_BREAK +case 200: +YY_RULE_SETUP +#line 821 "stage1scan.l" +BEGIN(CCL); return CCE_PUNCT; + YY_BREAK +case 201: +YY_RULE_SETUP +#line 822 "stage1scan.l" +BEGIN(CCL); return CCE_SPACE; + YY_BREAK +case 202: +YY_RULE_SETUP +#line 823 "stage1scan.l" +BEGIN(CCL); return CCE_UPPER; + YY_BREAK +case 203: +YY_RULE_SETUP +#line 824 "stage1scan.l" +BEGIN(CCL); return CCE_XDIGIT; + YY_BREAK +case 204: +YY_RULE_SETUP +#line 826 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_ALNUM; + YY_BREAK +case 205: +YY_RULE_SETUP +#line 827 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_ALPHA; + YY_BREAK +case 206: +YY_RULE_SETUP +#line 828 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_BLANK; + YY_BREAK +case 207: +YY_RULE_SETUP +#line 829 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_CNTRL; + YY_BREAK +case 208: +YY_RULE_SETUP +#line 830 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_DIGIT; + YY_BREAK +case 209: +YY_RULE_SETUP +#line 831 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_GRAPH; + YY_BREAK +case 210: +YY_RULE_SETUP +#line 832 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_LOWER; + YY_BREAK +case 211: +YY_RULE_SETUP +#line 833 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_PRINT; + YY_BREAK +case 212: +YY_RULE_SETUP +#line 834 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_PUNCT; + YY_BREAK +case 213: +YY_RULE_SETUP +#line 835 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_SPACE; + YY_BREAK +case 214: +YY_RULE_SETUP +#line 836 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_UPPER; + YY_BREAK +case 215: +YY_RULE_SETUP +#line 837 "stage1scan.l" +BEGIN(CCL); return CCE_NEG_XDIGIT; + YY_BREAK +case 216: +YY_RULE_SETUP +#line 838 "stage1scan.l" +{ + format_synerr( + _( "bad character class expression: %s" ), + yytext ); + BEGIN(CCL); return CCE_ALNUM; + } + YY_BREAK + + +case 217: +YY_RULE_SETUP +#line 847 "stage1scan.l" +{ + yylval = myctoi( yytext ); + return NUMBER; + } + YY_BREAK +case 218: +YY_RULE_SETUP +#line 852 "stage1scan.l" +return ','; + YY_BREAK +case 219: +YY_RULE_SETUP +#line 853 "stage1scan.l" +{ + BEGIN(SECT2); + if ( lex_compat || posix_compat ) + return END_REPEAT_POSIX; + else + return END_REPEAT_FLEX; + } + YY_BREAK +case 220: +YY_RULE_SETUP +#line 861 "stage1scan.l" +{ + synerr( _( "bad character inside {}'s" ) ); + BEGIN(SECT2); + return '}'; + } + YY_BREAK +case 221: +/* rule 221 can match eol */ +YY_RULE_SETUP +#line 867 "stage1scan.l" +{ + synerr( _( "missing }" ) ); + BEGIN(SECT2); + ++linenum; + return '}'; + } + YY_BREAK + + +case 222: +YY_RULE_SETUP +#line 877 "stage1scan.l" +bracelevel = 0; + YY_BREAK +case 223: +YY_RULE_SETUP +#line 879 "stage1scan.l" +ACTION_ECHO; yy_push_state( COMMENT ); + YY_BREAK + +case 224: +YY_RULE_SETUP +#line 882 "stage1scan.l" +{ + ACTION_ECHO; + CHECK_REJECT(yytext); + } + YY_BREAK +case 225: +YY_RULE_SETUP +#line 886 "stage1scan.l" +{ + ACTION_ECHO; + CHECK_YYMORE(yytext); + } + YY_BREAK + +case 226: +YY_RULE_SETUP +#line 892 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 227: +YY_RULE_SETUP +#line 893 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 228: +YY_RULE_SETUP +#line 894 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 229: +/* rule 229 can match eol */ +YY_RULE_SETUP +#line 895 "stage1scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 || + (doing_codeblock && indented_code) ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = doing_codeblock = false; + BEGIN(SECT2); + } + } + YY_BREAK + +/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ + +case 230: +YY_RULE_SETUP +#line 913 "stage1scan.l" +ACTION_ECHO; ++bracelevel; + YY_BREAK +case 231: +YY_RULE_SETUP +#line 914 "stage1scan.l" +ACTION_ECHO; --bracelevel; + YY_BREAK +case 232: +YY_RULE_SETUP +#line 915 "stage1scan.l" +ACTION_ECHO_QSTART; + YY_BREAK +case 233: +YY_RULE_SETUP +#line 916 "stage1scan.l" +ACTION_ECHO_QEND; + YY_BREAK +case 234: +YY_RULE_SETUP +#line 917 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 235: +YY_RULE_SETUP +#line 918 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 236: +YY_RULE_SETUP +#line 919 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 237: +YY_RULE_SETUP +#line 920 "stage1scan.l" +ACTION_ECHO; /* character constant */ + YY_BREAK +case 238: +YY_RULE_SETUP +#line 921 "stage1scan.l" +ACTION_ECHO; BEGIN(ACTION_STRING); + YY_BREAK +case 239: +/* rule 239 can match eol */ +YY_RULE_SETUP +#line 922 "stage1scan.l" +{ + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = false; + BEGIN(SECT2); + } + } + YY_BREAK +case 240: +YY_RULE_SETUP +#line 934 "stage1scan.l" +ACTION_ECHO; + YY_BREAK + + +case 241: +YY_RULE_SETUP +#line 938 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 242: +YY_RULE_SETUP +#line 939 "stage1scan.l" +ACTION_ECHO; + YY_BREAK +case 243: +/* rule 243 can match eol */ +YY_RULE_SETUP +#line 940 "stage1scan.l" +++linenum; ACTION_ECHO; BEGIN(ACTION); + YY_BREAK +case 244: +YY_RULE_SETUP +#line 941 "stage1scan.l" +ACTION_ECHO; BEGIN(ACTION); + YY_BREAK +case 245: +YY_RULE_SETUP +#line 942 "stage1scan.l" +ACTION_ECHO; + YY_BREAK + +case YY_STATE_EOF(COMMENT): +case YY_STATE_EOF(COMMENT_DISCARD): +case YY_STATE_EOF(ACTION): +case YY_STATE_EOF(ACTION_STRING): +#line 945 "stage1scan.l" +{ + synerr( _( "EOF encountered inside an action" ) ); + yyterminate(); + } + YY_BREAK +case YY_STATE_EOF(EXTENDED_COMMENT): +case YY_STATE_EOF(GROUP_WITH_PARAMS): +case YY_STATE_EOF(GROUP_MINUS_PARAMS): +#line 950 "stage1scan.l" +{ + synerr( _( "EOF encountered inside pattern" ) ); + yyterminate(); + } + YY_BREAK +case 246: +YY_RULE_SETUP +#line 955 "stage1scan.l" +{ + yylval = myesc( (unsigned char *) yytext ); + + if ( YY_START == FIRSTCCL ) + BEGIN(CCL); + + return CHAR; + } + YY_BREAK + +case 247: +YY_RULE_SETUP +#line 966 "stage1scan.l" +fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout); + YY_BREAK +case 248: +YY_RULE_SETUP +#line 967 "stage1scan.l" +fwrite (escaped_qend, 1, strlen(escaped_qend), yyout); + YY_BREAK +case 249: +/* rule 249 can match eol */ +YY_RULE_SETUP +#line 968 "stage1scan.l" +ECHO; + YY_BREAK +case 250: +/* rule 250 can match eol */ +YY_RULE_SETUP +#line 969 "stage1scan.l" +ECHO; + YY_BREAK +case YY_STATE_EOF(SECT3): +#line 970 "stage1scan.l" +sectnum = 0; yyterminate(); + YY_BREAK + +case 251: +/* rule 251 can match eol */ +YY_RULE_SETUP +#line 973 "stage1scan.l" +format_synerr( _( "bad character: %s" ), yytext ); + YY_BREAK +case 252: +YY_RULE_SETUP +#line 975 "stage1scan.l" +YY_FATAL_ERROR( "flex scanner jammed" ); + YY_BREAK +#line 3983 "stage1scan.c" +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(SECT2): +case YY_STATE_EOF(CODEBLOCK): +case YY_STATE_EOF(PICKUPDEF): +case YY_STATE_EOF(SC): +case YY_STATE_EOF(CARETISBOL): +case YY_STATE_EOF(NUM): +case YY_STATE_EOF(QUOTE): +case YY_STATE_EOF(FIRSTCCL): +case YY_STATE_EOF(CCL): +case YY_STATE_EOF(RECOVER): +case YY_STATE_EOF(PERCENT_BRACE_ACTION): +case YY_STATE_EOF(OPTION): +case YY_STATE_EOF(LINEDIR): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of user's declarations */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + yy_size_t number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = NULL; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + yy_state_type yy_current_state; + char *yy_cp; + + yy_current_state = (yy_start); + yy_current_state += YY_AT_BOL(); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); + + YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1110 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 1109); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_UNPUT + + static void yyunput (int c, char * yy_bp ) +{ + char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up yytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + int number_to_move = (yy_n_chars) + 2; + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + int offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return 0; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = (yy_size_t)size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + int num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + yy_size_t grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return NULL; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = NULL; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,(int) strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + yy_size_t i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = (yy_size_t) _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + + static void yy_push_state (int _new_state ) +{ + if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) + { + yy_size_t new_size; + + (yy_start_stack_depth) += YY_START_STACK_INCR; + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); + + if ( ! (yy_start_stack) ) + (yy_start_stack) = (int *) yyalloc(new_size ); + + else + (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size ); + + if ( ! (yy_start_stack) ) + YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); + } + + (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; + + BEGIN(_new_state); +} + + static void yy_pop_state (void) +{ + if ( --(yy_start_stack_ptr) < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); + + BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yynoreturn yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +int yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param _line_number line number + * + */ +void yyset_lineno (int _line_number ) +{ + + yylineno = _line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param _in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * _in_str ) +{ + yyin = _in_str ; +} + +void yyset_out (FILE * _out_str ) +{ + yyout = _out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int _bdebug ) +{ + yy_flex_debug = _bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = NULL; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = NULL; + (yy_init) = 0; + (yy_start) = 0; + + (yy_start_stack_ptr) = 0; + (yy_start_stack_depth) = 0; + (yy_start_stack) = NULL; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = NULL; + yyout = NULL; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Destroy the start condition stack. */ + yyfree((yy_start_stack) ); + (yy_start_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + + int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return malloc(size); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return realloc(ptr, size); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 975 "stage1scan.l" + + + + +int yywrap(void) + { + if ( --num_input_files > 0 ) + { + set_input_file( *++input_files ); + return 0; + } + + else + return 1; + } + + +/* set_input_file - open the given file (if NULL, stdin) for scanning */ + +void set_input_file( char *file ) + { + if ( file && strcmp( file, "-" ) ) + { + infilename = xstrdup(file); + yyin = fopen( infilename, "r" ); + + if ( yyin == NULL ) + lerr( _( "can't open %s" ), file ); + } + + else + { + yyin = stdin; + infilename = xstrdup("<stdin>"); + } + + linenum = 1; + } + diff --git a/src/stage1scan.l b/src/stage1scan.l new file mode 100644 index 0000000..cfc832d --- /dev/null +++ b/src/stage1scan.l @@ -0,0 +1,1011 @@ +/* scan.l - scanner for flex input -*-C-*- */ + +%{ +/* Copyright (c) 1990 The Regents of the University of California. */ +/* All rights reserved. */ + +/* This code is derived from software contributed to Berkeley by */ +/* Vern Paxson. */ + +/* The United States Government has rights in this work pursuant */ +/* to contract no. DE-AC03-76SF00098 between the United States */ +/* Department of Energy and the University of California. */ + +/* This file is part of flex. */ + +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ + +/* 1. Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* 2. Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ + +/* Neither the name of the University nor the names of its contributors */ +/* may be used to endorse or promote products derived from this software */ +/* without specific prior written permission. */ + +/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ +/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ +/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ +/* PURPOSE. */ + +#include "flexdef.h" +#include "parse.h" +extern bool tablesverify, tablesext; +extern int trlcontxt; /* Set in parse.y for each rule. */ +extern const char *escaped_qstart, *escaped_qend; + +#define ACTION_ECHO add_action( yytext ) +#define ACTION_IFDEF(def, should_define) \ + { \ + if ( should_define ) \ + action_define( def, 1 ); \ + } + +#define ACTION_ECHO_QSTART add_action (escaped_qstart) +#define ACTION_ECHO_QEND add_action (escaped_qend) + +#define ACTION_M4_IFDEF(def, should_define) \ + do{ \ + if ( should_define ) \ + buf_m4_define( &m4defs_buf, def, NULL);\ + else \ + buf_m4_undefine( &m4defs_buf, def);\ + } while(0) + +#define MARK_END_OF_PROLOG mark_prolog(); + +#define YY_DECL \ + int flexscan(void) + +#define RETURNCHAR \ + yylval = (unsigned char) yytext[0]; \ + return CHAR; + +#define RETURNNAME \ + if(yyleng < MAXLINE) \ + { \ + strcpy( nmstr, yytext ); \ + } \ + else \ + { \ + synerr(_("Input line too long\n")); \ + FLEX_EXIT(EXIT_FAILURE); \ + } \ + return NAME; + +#define PUT_BACK_STRING(str, start) \ + for ( i = strlen( str ) - 1; i >= start; --i ) \ + unput((str)[i]) + +#define CHECK_REJECT(str) \ + if ( all_upper( str ) ) \ + reject = true; + +#define CHECK_YYMORE(str) \ + if ( all_lower( str ) ) \ + yymore_used = true; + +#define YY_USER_INIT \ + if ( getenv("POSIXLY_CORRECT") ) \ + posix_compat = true; + +%} + +%option caseless nodefault noreject stack noyy_top_state +%option nostdinit + +%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE +%x FIRSTCCL CCL ACTION RECOVER COMMENT ACTION_STRING PERCENT_BRACE_ACTION +%x OPTION LINEDIR CODEBLOCK_MATCH_BRACE +%x GROUP_WITH_PARAMS +%x GROUP_MINUS_PARAMS +%x EXTENDED_COMMENT +%x COMMENT_DISCARD + +WS [[:blank:]]+ +OPTWS [[:blank:]]* +NOT_WS [^[:blank:]\r\n] + +NL \r?\n + +NAME ([[:alpha:]_][[:alnum:]_-]*) +NOT_NAME [^[:alpha:]_*\n]+ + +SCNAME {NAME} + +ESCSEQ (\\([^\n]|[0-7]{1,3}|x[[:xdigit:]]{1,2})) + +FIRST_CCL_CHAR ([^\\\n]|{ESCSEQ}) +CCL_CHAR ([^\\\n\]]|{ESCSEQ}) +CCL_EXPR ("[:"^?[[:alpha:]]+":]") + +LEXOPT [aceknopr] + +M4QSTART "[[" +M4QEND "]]" + +%% + static int bracelevel, didadef, indented_code; + static int doing_rule_action = false; + static int option_sense; + + int doing_codeblock = false; + int i, brace_depth=0, brace_start_line=0; + char nmdef[MAXLINE]; + + +<INITIAL>{ + ^{WS} indented_code = true; BEGIN(CODEBLOCK); + ^"/*" ACTION_ECHO; yy_push_state( COMMENT ); + ^#{OPTWS}line{WS} yy_push_state( LINEDIR ); + ^"%s"{NAME}? return SCDECL; + ^"%x"{NAME}? return XSCDECL; + ^"%{".*{NL} { + ++linenum; + line_directive_out(NULL, 1); + indented_code = false; + BEGIN(CODEBLOCK); + } + ^"%top"[[:blank:]]*"{"[[:blank:]]*{NL} { + brace_start_line = linenum; + ++linenum; + buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum); + brace_depth = 1; + yy_push_state(CODEBLOCK_MATCH_BRACE); + } + + ^"%top".* synerr( _("malformed '%top' directive") ); + + {WS} /* discard */ + + ^"%%".* { + sectnum = 2; + bracelevel = 0; + mark_defs1(); + line_directive_out(NULL, 1); + BEGIN(SECT2PROLOG); + return SECTEND; + } + + ^"%pointer".*{NL} yytext_is_array = false; ++linenum; + ^"%array".*{NL} yytext_is_array = true; ++linenum; + + ^"%option" BEGIN(OPTION); return TOK_OPTION; + + ^"%"{LEXOPT}{OPTWS}[[:digit:]]*{OPTWS}{NL} ++linenum; /* ignore */ + ^"%"{LEXOPT}{WS}.*{NL} ++linenum; /* ignore */ + + /* xgettext: no-c-format */ + ^"%"[^sxaceknopr{}].* synerr( _( "unrecognized '%' directive" ) ); + + ^{NAME} { + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Definition name too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + didadef = false; + BEGIN(PICKUPDEF); + } + + {SCNAME} RETURNNAME; + ^{OPTWS}{NL} ++linenum; /* allows blank lines in section 1 */ + {OPTWS}{NL} ACTION_ECHO; ++linenum; /* maybe end of comment line */ +} + + +<COMMENT>{ + "*/" ACTION_ECHO; yy_pop_state(); + "*" ACTION_ECHO; + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + [^*\n] ACTION_ECHO; + {NL} ++linenum; ACTION_ECHO; +} + +<COMMENT_DISCARD>{ + /* This is the same as COMMENT, but is discarded rather than output. */ + "*/" yy_pop_state(); + "*" ; + [^*\n] ; + {NL} ++linenum; +} + +<EXTENDED_COMMENT>{ + ")" yy_pop_state(); + [^\n\)]+ ; + {NL} ++linenum; +} + +<LINEDIR>{ + \n yy_pop_state(); + [[:digit:]]+ linenum = myctoi( yytext ); + + \"[^"\n]*\" { + free(infilename); + infilename = xstrdup(yytext + 1); + infilename[strlen( infilename ) - 1] = '\0'; + } + . /* ignore spurious characters */ +} + +<CODEBLOCK>{ + ^"%}".*{NL} ++linenum; BEGIN(INITIAL); + + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + . ACTION_ECHO; + + {NL} { + ++linenum; + ACTION_ECHO; + if ( indented_code ) + BEGIN(INITIAL); + } +} + +<CODEBLOCK_MATCH_BRACE>{ + "}" { + if( --brace_depth == 0){ + /* TODO: Matched. */ + yy_pop_state(); + }else + buf_strnappend(&top_buf, yytext, yyleng); + } + + "{" { + brace_depth++; + buf_strnappend(&top_buf, yytext, yyleng); + } + + {NL} { + ++linenum; + buf_strnappend(&top_buf, yytext, yyleng); + } + + {M4QSTART} buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); + {M4QEND} buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); + + [^{}\r\n] { + buf_strnappend(&top_buf, yytext, yyleng); + } + + <<EOF>> { + linenum = brace_start_line; + synerr(_("Unmatched '{'")); + yyterminate(); + } +} + + +<PICKUPDEF>{ + {WS} /* separates name and definition */ + + {NOT_WS}[^\r\n]* { + if(yyleng < MAXLINE) + { + strcpy( nmdef, yytext ); + } + else + { + format_synerr( _("Definition value for {%s} too long\n"), nmstr); + FLEX_EXIT(EXIT_FAILURE); + } + /* Skip trailing whitespace. */ + for ( i = strlen( nmdef ) - 1; + i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); + --i ) + ; + + nmdef[i + 1] = '\0'; + + ndinstal( nmstr, nmdef ); + didadef = true; + } + + {NL} { + if ( ! didadef ) + synerr( _( "incomplete name definition" ) ); + BEGIN(INITIAL); + ++linenum; + } +} + + +<OPTION>{ + {NL} ++linenum; BEGIN(INITIAL); + {WS} option_sense = true; + + "=" return '='; + + no option_sense = ! option_sense; + + 7bit csize = option_sense ? 128 : 256; + 8bit csize = option_sense ? 256 : 128; + + align long_align = option_sense; + always-interactive { + ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense ); + interactive = option_sense; + } + array yytext_is_array = option_sense; + ansi-definitions ansi_func_defs = option_sense; + ansi-prototypes ansi_func_protos = option_sense; + backup backing_up_report = option_sense; + batch interactive = ! option_sense; + bison-bridge bison_bridge_lval = option_sense; + bison-locations { if((bison_bridge_lloc = option_sense)) + bison_bridge_lval = true; + } + "c++" C_plus_plus = option_sense; + caseful|case-sensitive sf_set_case_ins(!option_sense); + caseless|case-insensitive sf_set_case_ins(option_sense); + debug ddebug = option_sense; + default spprdflt = ! option_sense; + ecs useecs = option_sense; + fast { + useecs = usemecs = false; + use_read = fullspd = true; + } + full { + useecs = usemecs = false; + use_read = fulltbl = true; + } + input ACTION_IFDEF("YY_NO_INPUT", ! option_sense); + interactive interactive = option_sense; + lex-compat lex_compat = option_sense; + posix-compat posix_compat = option_sense; + line gen_line_dirs = option_sense; + main { + ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense); + /* Override yywrap */ + if( option_sense == true ) + do_yywrap = false; + } + meta-ecs usemecs = option_sense; + never-interactive { + ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense ); + interactive = !option_sense; + } + perf-report performance_report += option_sense ? 1 : -1; + pointer yytext_is_array = ! option_sense; + read use_read = option_sense; + reentrant reentrant = option_sense; + reject reject_really_used = option_sense; + stack ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); + stdinit do_stdinit = option_sense; + stdout use_stdout = option_sense; + unistd ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); + unput ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); + verbose printstats = option_sense; + warn nowarn = ! option_sense; + yylineno do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); + yymore yymore_really_used = option_sense; + yywrap do_yywrap = option_sense; + + yy_push_state ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); + yy_pop_state ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); + yy_top_state ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); + + yy_scan_buffer ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); + yy_scan_bytes ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); + yy_scan_string ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); + + yyalloc ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); + yyrealloc ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); + yyfree ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); + + yyget_debug ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); + yyset_debug ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); + yyget_extra ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); + yyset_extra ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); + yyget_leng ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); + yyget_text ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); + yyget_lineno ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); + yyset_lineno ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); + yyget_in ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); + yyset_in ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); + yyget_out ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); + yyset_out ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); + yyget_lval ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); + yyset_lval ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); + yyget_lloc ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); + yyset_lloc ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); + + extra-type return TOK_EXTRA_TYPE; + outfile return TOK_OUTFILE; + prefix return TOK_PREFIX; + yyclass return TOK_YYCLASS; + header(-file)? return TOK_HEADER_FILE; + tables-file return TOK_TABLES_FILE; + tables-verify { + tablesverify = option_sense; + if(!tablesext && option_sense) + tablesext = true; + } + + + \"[^"\n]*\" { + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Option line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + nmstr[strlen( nmstr ) - 1] = '\0'; + return NAME; + } + + (([a-mo-z]|n[a-np-z])[[:alpha:]\-+]*)|. { + format_synerr( _( "unrecognized %%option: %s" ), + yytext ); + BEGIN(RECOVER); + } +} + +<RECOVER>.*{NL} ++linenum; BEGIN(INITIAL); + + +<SECT2PROLOG>{ + ^"%{".* ++bracelevel; yyless( 2 ); /* eat only %{ */ + ^"%}".* --bracelevel; yyless( 2 ); /* eat only %} */ + + ^{WS}.* ACTION_ECHO; /* indented code in prolog */ + + ^{NOT_WS}.* { /* non-indented code */ + if ( bracelevel <= 0 ) + { /* not in %{ ... %} */ + yyless( 0 ); /* put it all back */ + yy_set_bol( 1 ); + mark_prolog(); + BEGIN(SECT2); + } + else + ACTION_ECHO; + } + + . ACTION_ECHO; + {NL} ++linenum; ACTION_ECHO; + + <<EOF>> { + mark_prolog(); + sectnum = 0; + yyterminate(); /* to stop the parser */ + } +} + +<SECT2>{ + ^{OPTWS}{NL} ++linenum; /* allow blank lines in section 2 */ + + ^{OPTWS}"%{" { + indented_code = false; + doing_codeblock = true; + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + } + + ^{OPTWS}"<" { + /* Allow "<" to appear in (?x) patterns. */ + if (!sf_skip_ws()) + BEGIN(SC); + return '<'; + } + ^{OPTWS}"^" return '^'; + \" BEGIN(QUOTE); return '"'; + "{"/[[:digit:]] { + BEGIN(NUM); + if ( lex_compat || posix_compat ) + return BEGIN_REPEAT_POSIX; + else + return BEGIN_REPEAT_FLEX; + } + "$"/([[:blank:]]|{NL}) return '$'; + + {WS}"%{" { + bracelevel = 1; + BEGIN(PERCENT_BRACE_ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + {WS}"|".*{NL} { + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + /* Push back everything starting at the "|" */ + int amt = (int) (strchr (yytext, '|') - yytext); + yyless(amt); + } + else { + continued_action = true; + ++linenum; + return '\n'; + } + } + + ^{WS}"/*" { + + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + yy_push_state(COMMENT_DISCARD); + } + else{ + yyless( yyleng - 2 ); /* put back '/', '*' */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + } + } + + ^{WS} /* allow indented rules */ ; + + {WS} { + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + } + else{ + /* This rule is separate from the one below because + * otherwise we get variable trailing context, so + * we can't build the scanner using -{f,F}. + */ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + + {OPTWS}{NL} { + if (sf_skip_ws()){ + /* We're in the middle of a (?x: ) pattern. */ + ++linenum; + } + else{ + bracelevel = 0; + continued_action = false; + BEGIN(ACTION); + unput( '\n' ); /* so <ACTION> sees it */ + + if ( in_rule ) + { + doing_rule_action = true; + in_rule = false; + return '\n'; + } + } + } + + ^{OPTWS}"<<EOF>>" | + "<<EOF>>" return EOF_OP; + + ^"%%".* { + sectnum = 3; + BEGIN(SECT3); + outn("/* Begin user sect3 */"); + yyterminate(); /* to stop the parser */ + } + + "["({FIRST_CCL_CHAR}|{CCL_EXPR})({CCL_CHAR}|{CCL_EXPR})* { + int cclval; + + if(yyleng < MAXLINE) + { + strcpy( nmstr, yytext ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } + + /* Check to see if we've already encountered this + * ccl. + */ + if (0 /* <--- This "0" effectively disables the reuse of a + * character class (purely based on its source text). + * The reason it was disabled is so yacc/bison can parse + * ccl operations, such as ccl difference and union. + */ + && (cclval = ccllookup( nmstr )) != 0 ) + { + if ( input() != ']' ) + synerr( _( "bad character class" ) ); + + yylval = cclval; + ++cclreuse; + return PREVCCL; + } + else + { + /* We fudge a bit. We know that this ccl will + * soon be numbered as lastccl + 1 by cclinit. + */ + cclinstal( nmstr, lastccl + 1 ); + + /* Push back everything but the leading bracket + * so the ccl can be rescanned. + */ + yyless( 1 ); + + BEGIN(FIRSTCCL); + return '['; + } + } + "{-}" return CCL_OP_DIFF; + "{+}" return CCL_OP_UNION; + + + /* Check for :space: at the end of the rule so we don't + * wrap the expanded regex in '(' ')' -- breaking trailing + * context. + */ + "{"{NAME}"}"[[:space:]]? { + char *nmdefptr; + int end_is_ws, end_ch; + + end_ch = yytext[yyleng-1]; + end_is_ws = end_ch != '}' ? 1 : 0; + + if(yyleng-1 < MAXLINE) + { + strcpy( nmstr, yytext + 1 ); + } + else + { + synerr( _("Input line too long\n")); + FLEX_EXIT(EXIT_FAILURE); + } +nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ + + if ( (nmdefptr = ndlookup( nmstr )) == 0 ) + format_synerr( + _( "undefined definition {%s}" ), + nmstr ); + + else + { /* push back name surrounded by ()'s */ + int len = strlen( nmdefptr ); + if (end_is_ws) + unput(end_ch); + + if ( lex_compat || nmdefptr[0] == '^' || + (len > 0 && nmdefptr[len - 1] == '$') + || (end_is_ws && trlcontxt && !sf_skip_ws())) + { /* don't use ()'s after all */ + PUT_BACK_STRING(nmdefptr, 0); + + if ( nmdefptr[0] == '^' ) + BEGIN(CARETISBOL); + } + + else + { + unput(')'); + PUT_BACK_STRING(nmdefptr, 0); + unput('('); + } + } + } + + "/*" { + if (sf_skip_ws()) + yy_push_state(COMMENT_DISCARD); + else{ + /* Push back the "*" and return "/" as usual. */ + yyless(1); + return '/'; + } + } + + "(?#" { + if (lex_compat || posix_compat){ + /* Push back the "?#" and treat it like a normal parens. */ + yyless(1); + sf_push(); + return '('; + } + else + yy_push_state(EXTENDED_COMMENT); + } + "(?" { + sf_push(); + if (lex_compat || posix_compat) + /* Push back the "?" and treat it like a normal parens. */ + yyless(1); + else + BEGIN(GROUP_WITH_PARAMS); + return '('; + } + "(" sf_push(); return '('; + ")" { + if (_sf_top_ix > 0) { + sf_pop(); + return ')'; + } else + synerr(_("unbalanced parenthesis")); + } + + [/|*+?.(){}] return (unsigned char) yytext[0]; + . RETURNCHAR; +} + + +<SC>{ + {OPTWS}{NL}{OPTWS} ++linenum; /* Allow blank lines & continuations */ + [,*] return (unsigned char) yytext[0]; + ">" BEGIN(SECT2); return '>'; + ">"/^ BEGIN(CARETISBOL); return '>'; + {SCNAME} RETURNNAME; + . { + format_synerr( _( "bad <start condition>: %s" ), + yytext ); + } +} + +<CARETISBOL>"^" BEGIN(SECT2); return '^'; + + +<QUOTE>{ + [^"\n] RETURNCHAR; + \" BEGIN(SECT2); return '"'; + + {NL} { + synerr( _( "missing quote" ) ); + BEGIN(SECT2); + ++linenum; + return '"'; + } +} + +<GROUP_WITH_PARAMS>{ + ":" BEGIN(SECT2); + "-" BEGIN(GROUP_MINUS_PARAMS); + i sf_set_case_ins(1); + s sf_set_dot_all(1); + x sf_set_skip_ws(1); +} +<GROUP_MINUS_PARAMS>{ + ":" BEGIN(SECT2); + i sf_set_case_ins(0); + s sf_set_dot_all(0); + x sf_set_skip_ws(0); +} + +<FIRSTCCL>{ + "^"/[^-\]\n] BEGIN(CCL); return '^'; + "^"/("-"|"]") return '^'; + . BEGIN(CCL); RETURNCHAR; +} + +<CCL>{ + -/[^\]\n] return '-'; + [^\]\n] RETURNCHAR; + "]" BEGIN(SECT2); return ']'; + .|{NL} { + synerr( _( "bad character class" ) ); + BEGIN(SECT2); + return ']'; + } +} + +<FIRSTCCL,CCL>{ + "[:alnum:]" BEGIN(CCL); return CCE_ALNUM; + "[:alpha:]" BEGIN(CCL); return CCE_ALPHA; + "[:blank:]" BEGIN(CCL); return CCE_BLANK; + "[:cntrl:]" BEGIN(CCL); return CCE_CNTRL; + "[:digit:]" BEGIN(CCL); return CCE_DIGIT; + "[:graph:]" BEGIN(CCL); return CCE_GRAPH; + "[:lower:]" BEGIN(CCL); return CCE_LOWER; + "[:print:]" BEGIN(CCL); return CCE_PRINT; + "[:punct:]" BEGIN(CCL); return CCE_PUNCT; + "[:space:]" BEGIN(CCL); return CCE_SPACE; + "[:upper:]" BEGIN(CCL); return CCE_UPPER; + "[:xdigit:]" BEGIN(CCL); return CCE_XDIGIT; + + "[:^alnum:]" BEGIN(CCL); return CCE_NEG_ALNUM; + "[:^alpha:]" BEGIN(CCL); return CCE_NEG_ALPHA; + "[:^blank:]" BEGIN(CCL); return CCE_NEG_BLANK; + "[:^cntrl:]" BEGIN(CCL); return CCE_NEG_CNTRL; + "[:^digit:]" BEGIN(CCL); return CCE_NEG_DIGIT; + "[:^graph:]" BEGIN(CCL); return CCE_NEG_GRAPH; + "[:^lower:]" BEGIN(CCL); return CCE_NEG_LOWER; + "[:^print:]" BEGIN(CCL); return CCE_NEG_PRINT; + "[:^punct:]" BEGIN(CCL); return CCE_NEG_PUNCT; + "[:^space:]" BEGIN(CCL); return CCE_NEG_SPACE; + "[:^upper:]" BEGIN(CCL); return CCE_NEG_UPPER; + "[:^xdigit:]" BEGIN(CCL); return CCE_NEG_XDIGIT; + {CCL_EXPR} { + format_synerr( + _( "bad character class expression: %s" ), + yytext ); + BEGIN(CCL); return CCE_ALNUM; + } +} + +<NUM>{ + [[:digit:]]+ { + yylval = myctoi( yytext ); + return NUMBER; + } + + "," return ','; + "}" { + BEGIN(SECT2); + if ( lex_compat || posix_compat ) + return END_REPEAT_POSIX; + else + return END_REPEAT_FLEX; + } + + . { + synerr( _( "bad character inside {}'s" ) ); + BEGIN(SECT2); + return '}'; + } + + {NL} { + synerr( _( "missing }" ) ); + BEGIN(SECT2); + ++linenum; + return '}'; + } +} + + +<PERCENT_BRACE_ACTION>{ + {OPTWS}"%}".* bracelevel = 0; + + <ACTION>"/*" ACTION_ECHO; yy_push_state( COMMENT ); + + <CODEBLOCK,ACTION>{ + "reject" { + ACTION_ECHO; + CHECK_REJECT(yytext); + } + "yymore" { + ACTION_ECHO; + CHECK_YYMORE(yytext); + } + } + + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + . ACTION_ECHO; + {NL} { + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 || + (doing_codeblock && indented_code) ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = doing_codeblock = false; + BEGIN(SECT2); + } + } +} + + + /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ +<ACTION>{ + "{" ACTION_ECHO; ++bracelevel; + "}" ACTION_ECHO; --bracelevel; + {M4QSTART} ACTION_ECHO_QSTART; + {M4QEND} ACTION_ECHO_QEND; + [^[:alpha:]_{}"'/\n\[\]]+ ACTION_ECHO; + [\[\]] ACTION_ECHO; + {NAME} ACTION_ECHO; + "'"([^'\\\n]|\\.)*"'" ACTION_ECHO; /* character constant */ + \" ACTION_ECHO; BEGIN(ACTION_STRING); + {NL} { + ++linenum; + ACTION_ECHO; + if ( bracelevel == 0 ) + { + if ( doing_rule_action ) + add_action( "\tYY_BREAK\n" ); + + doing_rule_action = false; + BEGIN(SECT2); + } + } + . ACTION_ECHO; +} + +<ACTION_STRING>{ + [^"\\\n]+ ACTION_ECHO; + \\. ACTION_ECHO; + {NL} ++linenum; ACTION_ECHO; BEGIN(ACTION); + \" ACTION_ECHO; BEGIN(ACTION); + . ACTION_ECHO; +} + +<COMMENT,COMMENT_DISCARD,ACTION,ACTION_STRING><<EOF>> { + synerr( _( "EOF encountered inside an action" ) ); + yyterminate(); + } + +<EXTENDED_COMMENT,GROUP_WITH_PARAMS,GROUP_MINUS_PARAMS><<EOF>> { + synerr( _( "EOF encountered inside pattern" ) ); + yyterminate(); + } + +<SECT2,QUOTE,FIRSTCCL,CCL>{ESCSEQ} { + yylval = myesc( (unsigned char *) yytext ); + + if ( YY_START == FIRSTCCL ) + BEGIN(CCL); + + return CHAR; + } + + +<SECT3>{ + {M4QSTART} fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout); + {M4QEND} fwrite (escaped_qend, 1, strlen(escaped_qend), yyout); + [^\[\]\n]*(\n?) ECHO; + (.|\n) ECHO; + <<EOF>> sectnum = 0; yyterminate(); +} + +<*>.|\n format_synerr( _( "bad character: %s" ), yytext ); + +%% + + +int yywrap(void) + { + if ( --num_input_files > 0 ) + { + set_input_file( *++input_files ); + return 0; + } + + else + return 1; + } + + +/* set_input_file - open the given file (if NULL, stdin) for scanning */ + +void set_input_file( char *file ) + { + if ( file && strcmp( file, "-" ) ) + { + infilename = xstrdup(file); + yyin = fopen( infilename, "r" ); + + if ( yyin == NULL ) + lerr( _( "can't open %s" ), file ); + } + + else + { + yyin = stdin; + infilename = xstrdup("<stdin>"); + } + + linenum = 1; + } @@ -59,12 +59,10 @@ static struct hash_entry *ccltab[CCL_HASH_SIZE]; /* declare functions that have forward references */ -static int addsym PROTO ((char[], char *, int, hash_table, int)); -static struct hash_entry *findsym PROTO ((const char *sym, - hash_table table, - - int table_size)); -static int hashfunct PROTO ((const char *, int)); +static int addsym(char[], char *, int, hash_table, int); +static struct hash_entry *findsym (const char *sym, hash_table table, + int table_size); +static int hashfunct(const char *, int); /* addsym - add symbol and definitions to symbol table @@ -72,12 +70,7 @@ static int hashfunct PROTO ((const char *, int)); * -1 is returned if the symbol already exists, and the change not made. */ -static int addsym (sym, str_def, int_def, table, table_size) - char sym[]; - char *str_def; - int int_def; - hash_table table; - int table_size; +static int addsym (char sym[], char *str_def, int int_def, hash_table table, int table_size) { int hash_val = hashfunct (sym, table_size); struct hash_entry *sym_entry = table[hash_val]; @@ -93,8 +86,7 @@ static int addsym (sym, str_def, int_def, table, table_size) } /* create new entry */ - new_entry = (struct hash_entry *) - flex_alloc (sizeof (struct hash_entry)); + new_entry = malloc(sizeof(struct hash_entry)); if (new_entry == NULL) flexfatal (_("symbol table memory allocation failed")); @@ -119,15 +111,13 @@ static int addsym (sym, str_def, int_def, table, table_size) /* cclinstal - save the text of a character class */ -void cclinstal (ccltxt, cclnum) - Char ccltxt[]; - int cclnum; +void cclinstal (char ccltxt[], int cclnum) { /* We don't bother checking the return status because we are not * called unless the symbol is new. */ - (void) addsym ((char *) copy_unsigned_string (ccltxt), + (void) addsym (xstrdup(ccltxt), (char *) 0, cclnum, ccltab, CCL_HASH_SIZE); } @@ -137,23 +127,18 @@ void cclinstal (ccltxt, cclnum) * Returns 0 if there's no CCL associated with the text. */ -int ccllookup (ccltxt) - Char ccltxt[]; +int ccllookup (char ccltxt[]) { - return findsym ((char *) ccltxt, ccltab, CCL_HASH_SIZE)->int_val; + return findsym (ccltxt, ccltab, CCL_HASH_SIZE)->int_val; } /* findsym - find symbol in symbol table */ -static struct hash_entry *findsym (sym, table, table_size) - const char *sym; - hash_table table; - int table_size; +static struct hash_entry *findsym (const char *sym, hash_table table, int table_size) { static struct hash_entry empty_entry = { - (struct hash_entry *) 0, (struct hash_entry *) 0, - (char *) 0, (char *) 0, 0, + NULL, NULL, NULL, NULL, 0, }; struct hash_entry *sym_entry = @@ -170,9 +155,7 @@ static struct hash_entry *findsym (sym, table, table_size) /* hashfunct - compute the hash value for "str" and hash size "hash_size" */ -static int hashfunct (str, hash_size) - const char *str; - int hash_size; +static int hashfunct (const char *str, int hash_size) { int hashval; int locstr; @@ -191,13 +174,11 @@ static int hashfunct (str, hash_size) /* ndinstal - install a name definition */ -void ndinstal (name, definition) - const char *name; - Char definition[]; +void ndinstal (const char *name, char definition[]) { - if (addsym (copy_string (name), - (char *) copy_unsigned_string (definition), 0, + if (addsym (xstrdup(name), + xstrdup(definition), 0, ndtbl, NAME_TABLE_HASH_SIZE)) synerr (_("name defined twice")); } @@ -208,16 +189,15 @@ void ndinstal (name, definition) * Returns a nil pointer if the name definition does not exist. */ -Char *ndlookup (nd) - const char *nd; +char *ndlookup (const char *nd) { - return (Char *) findsym (nd, ndtbl, NAME_TABLE_HASH_SIZE)->str_val; + return findsym (nd, ndtbl, NAME_TABLE_HASH_SIZE)->str_val; } /* scextend - increase the maximum number of start conditions */ -void scextend () +void scextend (void) { current_max_scs += MAX_SCS_INCREMENT; @@ -237,17 +217,15 @@ void scextend () * The start condition is "exclusive" if xcluflg is true. */ -void scinstal (str, xcluflg) - const char *str; - int xcluflg; +void scinstal (const char *str, int xcluflg) { if (++lastsc >= current_max_scs) scextend (); - scname[lastsc] = copy_string (str); + scname[lastsc] = xstrdup(str); - if (addsym (scname[lastsc], (char *) 0, lastsc, + if (addsym(scname[lastsc], NULL, lastsc, sctbl, START_COND_HASH_SIZE)) format_pinpoint_message (_ ("start condition %s declared twice"), @@ -265,8 +243,7 @@ str); * Returns 0 if no such start condition. */ -int sclookup (str) - const char *str; +int sclookup (const char *str) { return findsym (str, sctbl, START_COND_HASH_SIZE)->int_val; } diff --git a/src/tables.c b/src/tables.c index ef49ad0..3d043c6 100644 --- a/src/tables.c +++ b/src/tables.c @@ -90,8 +90,8 @@ int yytbl_hdr_init (struct yytbl_hdr *th, const char *version_str, th->th_hsize += yypad64 (th->th_hsize); th->th_ssize = 0; // Not known at this point. th->th_flags = 0; - th->th_version = copy_string (version_str); - th->th_name = copy_string (name); + th->th_version = xstrdup(version_str); + th->th_name = xstrdup(name); return 0; } @@ -115,8 +115,7 @@ int yytbl_data_init (struct yytbl_data *td, enum yytbl_id id) */ int yytbl_data_destroy (struct yytbl_data *td) { - if (td->td_data) - free (td->td_data); + free(td->td_data); td->td_data = 0; free (td); return 0; @@ -159,12 +158,12 @@ int yytbl_hdr_fwrite (struct yytbl_writer *wr, const struct yytbl_hdr *th) flex_die (_("th_ssize|th_flags write failed")); bwritten += 6; - sz = strlen (th->th_version) + 1; + sz = (int) strlen (th->th_version) + 1; if ((rv = yytbl_writen (wr, th->th_version, sz)) != sz) flex_die (_("th_version writen failed")); bwritten += rv; - sz = strlen (th->th_name) + 1; + sz = (int) strlen (th->th_name) + 1; if ((rv = yytbl_writen (wr, th->th_name, sz)) != sz) flex_die (_("th_name writen failed")); bwritten += rv; @@ -482,7 +481,7 @@ void yytbl_data_compress (struct yytbl_data *tbl) } total_len = yytbl_calc_total_len (tbl); - newtbl.td_data = calloc (total_len, newsz); + newtbl.td_data = calloc ((size_t) total_len, newsz); newtbl.td_flags = TFLAGS_CLRDATA (newtbl.td_flags) | BYTES2TFLAG (newsz); diff --git a/src/tblcmp.c b/src/tblcmp.c index 0c058e6..b0dc8b3 100644 --- a/src/tblcmp.c +++ b/src/tblcmp.c @@ -36,11 +36,11 @@ /* declarations for functions that have forward references */ -void mkentry PROTO ((int *, int, int, int, int)); -void mkprot PROTO ((int[], int, int)); -void mktemplate PROTO ((int[], int, int)); -void mv2front PROTO ((int)); -int tbldiff PROTO ((int[], int, int[])); +void mkentry(int *, int, int, int, int); +void mkprot(int[], int, int); +void mktemplate(int[], int, int); +void mv2front(int); +int tbldiff(int[], int, int[]); /* bldtbl - build table entries for dfa state @@ -78,8 +78,7 @@ int tbldiff PROTO ((int[], int, int[])); * cost only one difference. */ -void bldtbl (state, statenum, totaltrans, comstate, comfreq) - int state[], statenum, totaltrans, comstate, comfreq; +void bldtbl (int state[], int statenum, int totaltrans, int comstate, int comfreq) { int extptr, extrct[2][CSIZE + 1]; int mindiff, minprot, i, d; @@ -221,7 +220,7 @@ void bldtbl (state, statenum, totaltrans, comstate, comfreq) * classes. */ -void cmptmps () +void cmptmps (void) { int tmpstorage[CSIZE + 1]; int *tmp = tmpstorage, i, j; @@ -289,7 +288,7 @@ void cmptmps () /* expand_nxt_chk - expand the next check arrays */ -void expand_nxt_chk () +void expand_nxt_chk (void) { int old_max = current_max_xpairs; @@ -300,8 +299,7 @@ void expand_nxt_chk () nxt = reallocate_integer_array (nxt, current_max_xpairs); chk = reallocate_integer_array (chk, current_max_xpairs); - zero_out ((char *) (chk + old_max), - (size_t) (MAX_XPAIRS_INCREMENT * sizeof (int))); + memset(chk + old_max, 0, MAX_XPAIRS_INCREMENT * sizeof(int)); } @@ -324,8 +322,7 @@ void expand_nxt_chk () * and an action number will be added in [-1]. */ -int find_table_space (state, numtrans) - int *state, numtrans; +int find_table_space (int *state, int numtrans) { /* Firstfree is the position of the first possible occurrence of two * consecutive unused records in the chk and nxt arrays. @@ -419,13 +416,11 @@ int find_table_space (state, numtrans) * Initializes "firstfree" to be one beyond the end of the table. Initializes * all "chk" entries to be zero. */ -void inittbl () +void inittbl (void) { int i; - zero_out ((char *) chk, - - (size_t) (current_max_xpairs * sizeof (int))); + memset(chk, 0, current_max_xpairs * sizeof(int)); tblend = 0; firstfree = tblend + 1; @@ -451,7 +446,7 @@ void inittbl () /* mkdeftbl - make the default, "jam" table entries */ -void mkdeftbl () +void mkdeftbl (void) { int i; @@ -500,9 +495,8 @@ void mkdeftbl () * state array. */ -void mkentry (state, numchars, statenum, deflink, totaltrans) - int *state; - int numchars, statenum, deflink, totaltrans; +void mkentry (int *state, int numchars, int statenum, int deflink, + int totaltrans) { int minec, maxec, i, baseaddr; int tblbase, tbllast; @@ -616,8 +610,7 @@ void mkentry (state, numchars, statenum, deflink, totaltrans) * has only one out-transition */ -void mk1tbl (state, sym, onenxt, onedef) - int state, sym, onenxt, onedef; +void mk1tbl (int state, int sym, int onenxt, int onedef) { if (firstfree < sym) firstfree = sym; @@ -642,8 +635,7 @@ void mk1tbl (state, sym, onenxt, onedef) /* mkprot - create new proto entry */ -void mkprot (state, statenum, comstate) - int state[], statenum, comstate; +void mkprot (int state[], int statenum, int comstate) { int i, slot, tblbase; @@ -680,11 +672,10 @@ void mkprot (state, statenum, comstate) * to it */ -void mktemplate (state, statenum, comstate) - int state[], statenum, comstate; +void mktemplate (int state[], int statenum, int comstate) { int i, numdiff, tmpbase, tmp[CSIZE + 1]; - Char transset[CSIZE + 1]; + unsigned char transset[CSIZE + 1]; int tsptr; ++numtemps; @@ -732,8 +723,7 @@ void mktemplate (state, statenum, comstate) /* mv2front - move proto queue element to front of queue */ -void mv2front (qelm) - int qelm; +void mv2front (int qelm) { if (firstprot != qelm) { if (qelm == lastprot) @@ -759,8 +749,7 @@ void mv2front (qelm) * Transnum is the number of out-transitions for the state. */ -void place_state (state, statenum, transnum) - int *state, statenum, transnum; +void place_state (int *state, int statenum, int transnum) { int i; int *state_ptr; @@ -802,8 +791,7 @@ void place_state (state, statenum, transnum) * no room, we process the sucker right now. */ -void stack1 (statenum, sym, nextstate, deflink) - int statenum, sym, nextstate, deflink; +void stack1 (int statenum, int sym, int nextstate, int deflink) { if (onesp >= ONE_STACK_SIZE - 1) mk1tbl (statenum, sym, nextstate, deflink); @@ -832,8 +820,7 @@ void stack1 (statenum, sym, nextstate, deflink) * number is "numecs" minus the number of "SAME_TRANS" entries in "ext". */ -int tbldiff (state, pr, ext) - int state[], pr, ext[]; +int tbldiff (int state[], int pr, int ext[]) { int i, *sp = state, *ep = ext, *protp; int numdiff = 0; diff --git a/src/yylex.c b/src/yylex.c index 17b3e61..c3de1d5 100644 --- a/src/yylex.c +++ b/src/yylex.c @@ -174,12 +174,12 @@ int yylex (void) fprintf (stderr, "<<EOF>>"); break; - case OPTION_OP: + case TOK_OPTION: fprintf (stderr, "%s ", yytext); break; - case OPT_OUTFILE: - case OPT_PREFIX: + case TOK_OUTFILE: + case TOK_PREFIX: case CCE_ALNUM: case CCE_ALPHA: case CCE_BLANK: |