widl: Update to Wine 7.0-rc2.
diff --git a/mingw-w64-tools/widl/Makefile.am b/mingw-w64-tools/widl/Makefile.am index 0dee2e7..847b882 100644 --- a/mingw-w64-tools/widl/Makefile.am +++ b/mingw-w64-tools/widl/Makefile.am
@@ -20,6 +20,9 @@ src/parser.yy.c \ src/port/getopt.c \ src/port/port.c \ + src/ppy.tab.h \ + src/ppl.yy.c \ + src/ppy.tab.c \ src/proxy.c \ src/register.c \ src/server.c \ @@ -28,12 +31,9 @@ src/typetree.c \ src/utils.c \ src/widl.c \ + src/wpp_private.h \ + src/wpp.c \ src/write_msft.c \ - src/wpp/wpp_private.h \ - src/wpp/ppy.tab.h \ - src/wpp/ppl.yy.c \ - src/wpp/ppy.tab.c \ - src/wpp/wpp.c \ src/pathtools.c \ include/pshpack1.h \ include/pshpack2.h \ @@ -45,7 +45,6 @@ include/windef.h \ include/poppack.h \ include/config.h.in \ - include/wine/wpp.h \ include/wine/list.h \ include/wine/port.h \ include/wine/rpcfc.h \ @@ -56,7 +55,7 @@ include/pathtools.h \ include/winnt.rh -widl_CPPFLAGS = -I$(top_srcdir)/include -DINCLUDEDIR=\""@WIDL_INCLUDEDIR@"\" -DBIN_TO_INCLUDEDIR=\""@BIN_TO_INCLUDEDIR@"\" +widl_CPPFLAGS = -I$(top_srcdir)/include -DINCLUDEDIR=\""@WIDL_INCLUDEDIR@"\" -DBIN_TO_INCLUDEDIR=\""@BIN_TO_INCLUDEDIR@"\" -DBIN_TO_DLLDIR=\""@BIN_TO_INCLUDEDIR@"\" -DDLLDIR="\"@prefix@/lib\"" widl_CFLAGS = -O3 -g -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 DISTCHECK_CONFIGURE_FLAGS = --host=$(host) --target=$(target)
diff --git a/mingw-w64-tools/widl/Makefile.in b/mingw-w64-tools/widl/Makefile.in index b5213ee..0689470 100644 --- a/mingw-w64-tools/widl/Makefile.in +++ b/mingw-w64-tools/widl/Makefile.in
@@ -111,12 +111,12 @@ src/widl-hash.$(OBJEXT) src/widl-header.$(OBJEXT) \ src/widl-parser.tab.$(OBJEXT) src/widl-parser.yy.$(OBJEXT) \ src/port/widl-getopt.$(OBJEXT) src/port/widl-port.$(OBJEXT) \ + src/widl-ppl.yy.$(OBJEXT) src/widl-ppy.tab.$(OBJEXT) \ src/widl-proxy.$(OBJEXT) src/widl-register.$(OBJEXT) \ src/widl-server.$(OBJEXT) src/widl-typegen.$(OBJEXT) \ src/widl-typelib.$(OBJEXT) src/widl-typetree.$(OBJEXT) \ src/widl-utils.$(OBJEXT) src/widl-widl.$(OBJEXT) \ - src/widl-write_msft.$(OBJEXT) src/wpp/widl-ppl.yy.$(OBJEXT) \ - src/wpp/widl-ppy.tab.$(OBJEXT) src/wpp/widl-wpp.$(OBJEXT) \ + src/widl-wpp.$(OBJEXT) src/widl-write_msft.$(OBJEXT) \ src/widl-pathtools.$(OBJEXT) widl_OBJECTS = $(am_widl_OBJECTS) widl_LDADD = $(LDADD) @@ -141,16 +141,15 @@ src/$(DEPDIR)/widl-expr.Po src/$(DEPDIR)/widl-hash.Po \ src/$(DEPDIR)/widl-header.Po src/$(DEPDIR)/widl-parser.tab.Po \ src/$(DEPDIR)/widl-parser.yy.Po \ - src/$(DEPDIR)/widl-pathtools.Po src/$(DEPDIR)/widl-proxy.Po \ + src/$(DEPDIR)/widl-pathtools.Po src/$(DEPDIR)/widl-ppl.yy.Po \ + src/$(DEPDIR)/widl-ppy.tab.Po src/$(DEPDIR)/widl-proxy.Po \ src/$(DEPDIR)/widl-register.Po src/$(DEPDIR)/widl-server.Po \ src/$(DEPDIR)/widl-typegen.Po src/$(DEPDIR)/widl-typelib.Po \ src/$(DEPDIR)/widl-typetree.Po src/$(DEPDIR)/widl-utils.Po \ - src/$(DEPDIR)/widl-widl.Po src/$(DEPDIR)/widl-write_msft.Po \ + src/$(DEPDIR)/widl-widl.Po src/$(DEPDIR)/widl-wpp.Po \ + src/$(DEPDIR)/widl-write_msft.Po \ src/port/$(DEPDIR)/widl-getopt.Po \ - src/port/$(DEPDIR)/widl-port.Po \ - src/wpp/$(DEPDIR)/widl-ppl.yy.Po \ - src/wpp/$(DEPDIR)/widl-ppy.tab.Po \ - src/wpp/$(DEPDIR)/widl-wpp.Po + src/port/$(DEPDIR)/widl-port.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -345,6 +344,9 @@ src/parser.yy.c \ src/port/getopt.c \ src/port/port.c \ + src/ppy.tab.h \ + src/ppl.yy.c \ + src/ppy.tab.c \ src/proxy.c \ src/register.c \ src/server.c \ @@ -353,12 +355,9 @@ src/typetree.c \ src/utils.c \ src/widl.c \ + src/wpp_private.h \ + src/wpp.c \ src/write_msft.c \ - src/wpp/wpp_private.h \ - src/wpp/ppy.tab.h \ - src/wpp/ppl.yy.c \ - src/wpp/ppy.tab.c \ - src/wpp/wpp.c \ src/pathtools.c \ include/pshpack1.h \ include/pshpack2.h \ @@ -381,7 +380,7 @@ include/pathtools.h \ include/winnt.rh -widl_CPPFLAGS = -I$(top_srcdir)/include -DINCLUDEDIR=\""@WIDL_INCLUDEDIR@"\" -DBIN_TO_INCLUDEDIR=\""@BIN_TO_INCLUDEDIR@"\" +widl_CPPFLAGS = -I$(top_srcdir)/include -DINCLUDEDIR=\""@WIDL_INCLUDEDIR@"\" -DBIN_TO_INCLUDEDIR=\""@BIN_TO_INCLUDEDIR@"\" -DBIN_TO_DLLDIR=\""@BIN_TO_INCLUDEDIR@"\" -DDLLDIR="\"@prefix@/lib\"" widl_CFLAGS = -O3 -g -Wall -Wformat -Wpacked -Wmissing-declarations -Wimplicit-function-declaration -Wmissing-prototypes -Wstrict-aliasing=2 DISTCHECK_CONFIGURE_FLAGS = --host=$(host) --target=$(target) all: all-am @@ -506,6 +505,10 @@ src/port/$(DEPDIR)/$(am__dirstamp) src/port/widl-port.$(OBJEXT): src/port/$(am__dirstamp) \ src/port/$(DEPDIR)/$(am__dirstamp) +src/widl-ppl.yy.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) +src/widl-ppy.tab.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) src/widl-proxy.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/widl-register.$(OBJEXT): src/$(am__dirstamp) \ @@ -522,20 +525,10 @@ src/$(DEPDIR)/$(am__dirstamp) src/widl-widl.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) +src/widl-wpp.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) src/widl-write_msft.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) -src/wpp/$(am__dirstamp): - @$(MKDIR_P) src/wpp - @: > src/wpp/$(am__dirstamp) -src/wpp/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) src/wpp/$(DEPDIR) - @: > src/wpp/$(DEPDIR)/$(am__dirstamp) -src/wpp/widl-ppl.yy.$(OBJEXT): src/wpp/$(am__dirstamp) \ - src/wpp/$(DEPDIR)/$(am__dirstamp) -src/wpp/widl-ppy.tab.$(OBJEXT): src/wpp/$(am__dirstamp) \ - src/wpp/$(DEPDIR)/$(am__dirstamp) -src/wpp/widl-wpp.$(OBJEXT): src/wpp/$(am__dirstamp) \ - src/wpp/$(DEPDIR)/$(am__dirstamp) src/widl-pathtools.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) @@ -547,7 +540,6 @@ -rm -f *.$(OBJEXT) -rm -f src/*.$(OBJEXT) -rm -f src/port/*.$(OBJEXT) - -rm -f src/wpp/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @@ -559,6 +551,8 @@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-parser.tab.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-parser.yy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-pathtools.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-ppl.yy.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-ppy.tab.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-proxy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-register.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-server.Po@am__quote@ # am--include-marker @@ -567,12 +561,10 @@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-typetree.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-utils.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-widl.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-wpp.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/widl-write_msft.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/port/$(DEPDIR)/widl-getopt.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/port/$(DEPDIR)/widl-port.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/wpp/$(DEPDIR)/widl-ppl.yy.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/wpp/$(DEPDIR)/widl-ppy.tab.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@src/wpp/$(DEPDIR)/widl-wpp.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -708,6 +700,34 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/port/widl-port.obj `if test -f 'src/port/port.c'; then $(CYGPATH_W) 'src/port/port.c'; else $(CYGPATH_W) '$(srcdir)/src/port/port.c'; fi` +src/widl-ppl.yy.o: src/ppl.yy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-ppl.yy.o -MD -MP -MF src/$(DEPDIR)/widl-ppl.yy.Tpo -c -o src/widl-ppl.yy.o `test -f 'src/ppl.yy.c' || echo '$(srcdir)/'`src/ppl.yy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-ppl.yy.Tpo src/$(DEPDIR)/widl-ppl.yy.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ppl.yy.c' object='src/widl-ppl.yy.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-ppl.yy.o `test -f 'src/ppl.yy.c' || echo '$(srcdir)/'`src/ppl.yy.c + +src/widl-ppl.yy.obj: src/ppl.yy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-ppl.yy.obj -MD -MP -MF src/$(DEPDIR)/widl-ppl.yy.Tpo -c -o src/widl-ppl.yy.obj `if test -f 'src/ppl.yy.c'; then $(CYGPATH_W) 'src/ppl.yy.c'; else $(CYGPATH_W) '$(srcdir)/src/ppl.yy.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-ppl.yy.Tpo src/$(DEPDIR)/widl-ppl.yy.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ppl.yy.c' object='src/widl-ppl.yy.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-ppl.yy.obj `if test -f 'src/ppl.yy.c'; then $(CYGPATH_W) 'src/ppl.yy.c'; else $(CYGPATH_W) '$(srcdir)/src/ppl.yy.c'; fi` + +src/widl-ppy.tab.o: src/ppy.tab.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-ppy.tab.o -MD -MP -MF src/$(DEPDIR)/widl-ppy.tab.Tpo -c -o src/widl-ppy.tab.o `test -f 'src/ppy.tab.c' || echo '$(srcdir)/'`src/ppy.tab.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-ppy.tab.Tpo src/$(DEPDIR)/widl-ppy.tab.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ppy.tab.c' object='src/widl-ppy.tab.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-ppy.tab.o `test -f 'src/ppy.tab.c' || echo '$(srcdir)/'`src/ppy.tab.c + +src/widl-ppy.tab.obj: src/ppy.tab.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-ppy.tab.obj -MD -MP -MF src/$(DEPDIR)/widl-ppy.tab.Tpo -c -o src/widl-ppy.tab.obj `if test -f 'src/ppy.tab.c'; then $(CYGPATH_W) 'src/ppy.tab.c'; else $(CYGPATH_W) '$(srcdir)/src/ppy.tab.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-ppy.tab.Tpo src/$(DEPDIR)/widl-ppy.tab.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ppy.tab.c' object='src/widl-ppy.tab.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-ppy.tab.obj `if test -f 'src/ppy.tab.c'; then $(CYGPATH_W) 'src/ppy.tab.c'; else $(CYGPATH_W) '$(srcdir)/src/ppy.tab.c'; fi` + src/widl-proxy.o: src/proxy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-proxy.o -MD -MP -MF src/$(DEPDIR)/widl-proxy.Tpo -c -o src/widl-proxy.o `test -f 'src/proxy.c' || echo '$(srcdir)/'`src/proxy.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-proxy.Tpo src/$(DEPDIR)/widl-proxy.Po @@ -820,6 +840,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-widl.obj `if test -f 'src/widl.c'; then $(CYGPATH_W) 'src/widl.c'; else $(CYGPATH_W) '$(srcdir)/src/widl.c'; fi` +src/widl-wpp.o: src/wpp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-wpp.o -MD -MP -MF src/$(DEPDIR)/widl-wpp.Tpo -c -o src/widl-wpp.o `test -f 'src/wpp.c' || echo '$(srcdir)/'`src/wpp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-wpp.Tpo src/$(DEPDIR)/widl-wpp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp.c' object='src/widl-wpp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-wpp.o `test -f 'src/wpp.c' || echo '$(srcdir)/'`src/wpp.c + +src/widl-wpp.obj: src/wpp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-wpp.obj -MD -MP -MF src/$(DEPDIR)/widl-wpp.Tpo -c -o src/widl-wpp.obj `if test -f 'src/wpp.c'; then $(CYGPATH_W) 'src/wpp.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-wpp.Tpo src/$(DEPDIR)/widl-wpp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp.c' object='src/widl-wpp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-wpp.obj `if test -f 'src/wpp.c'; then $(CYGPATH_W) 'src/wpp.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp.c'; fi` + src/widl-write_msft.o: src/write_msft.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-write_msft.o -MD -MP -MF src/$(DEPDIR)/widl-write_msft.Tpo -c -o src/widl-write_msft.o `test -f 'src/write_msft.c' || echo '$(srcdir)/'`src/write_msft.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-write_msft.Tpo src/$(DEPDIR)/widl-write_msft.Po @@ -834,48 +868,6 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/widl-write_msft.obj `if test -f 'src/write_msft.c'; then $(CYGPATH_W) 'src/write_msft.c'; else $(CYGPATH_W) '$(srcdir)/src/write_msft.c'; fi` -src/wpp/widl-ppl.yy.o: src/wpp/ppl.yy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/wpp/widl-ppl.yy.o -MD -MP -MF src/wpp/$(DEPDIR)/widl-ppl.yy.Tpo -c -o src/wpp/widl-ppl.yy.o `test -f 'src/wpp/ppl.yy.c' || echo '$(srcdir)/'`src/wpp/ppl.yy.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/wpp/$(DEPDIR)/widl-ppl.yy.Tpo src/wpp/$(DEPDIR)/widl-ppl.yy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp/ppl.yy.c' object='src/wpp/widl-ppl.yy.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-ppl.yy.o `test -f 'src/wpp/ppl.yy.c' || echo '$(srcdir)/'`src/wpp/ppl.yy.c - -src/wpp/widl-ppl.yy.obj: src/wpp/ppl.yy.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/wpp/widl-ppl.yy.obj -MD -MP -MF src/wpp/$(DEPDIR)/widl-ppl.yy.Tpo -c -o src/wpp/widl-ppl.yy.obj `if test -f 'src/wpp/ppl.yy.c'; then $(CYGPATH_W) 'src/wpp/ppl.yy.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/ppl.yy.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/wpp/$(DEPDIR)/widl-ppl.yy.Tpo src/wpp/$(DEPDIR)/widl-ppl.yy.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp/ppl.yy.c' object='src/wpp/widl-ppl.yy.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-ppl.yy.obj `if test -f 'src/wpp/ppl.yy.c'; then $(CYGPATH_W) 'src/wpp/ppl.yy.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/ppl.yy.c'; fi` - -src/wpp/widl-ppy.tab.o: src/wpp/ppy.tab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/wpp/widl-ppy.tab.o -MD -MP -MF src/wpp/$(DEPDIR)/widl-ppy.tab.Tpo -c -o src/wpp/widl-ppy.tab.o `test -f 'src/wpp/ppy.tab.c' || echo '$(srcdir)/'`src/wpp/ppy.tab.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/wpp/$(DEPDIR)/widl-ppy.tab.Tpo src/wpp/$(DEPDIR)/widl-ppy.tab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp/ppy.tab.c' object='src/wpp/widl-ppy.tab.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-ppy.tab.o `test -f 'src/wpp/ppy.tab.c' || echo '$(srcdir)/'`src/wpp/ppy.tab.c - -src/wpp/widl-ppy.tab.obj: src/wpp/ppy.tab.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/wpp/widl-ppy.tab.obj -MD -MP -MF src/wpp/$(DEPDIR)/widl-ppy.tab.Tpo -c -o src/wpp/widl-ppy.tab.obj `if test -f 'src/wpp/ppy.tab.c'; then $(CYGPATH_W) 'src/wpp/ppy.tab.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/ppy.tab.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/wpp/$(DEPDIR)/widl-ppy.tab.Tpo src/wpp/$(DEPDIR)/widl-ppy.tab.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp/ppy.tab.c' object='src/wpp/widl-ppy.tab.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-ppy.tab.obj `if test -f 'src/wpp/ppy.tab.c'; then $(CYGPATH_W) 'src/wpp/ppy.tab.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/ppy.tab.c'; fi` - -src/wpp/widl-wpp.o: src/wpp/wpp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/wpp/widl-wpp.o -MD -MP -MF src/wpp/$(DEPDIR)/widl-wpp.Tpo -c -o src/wpp/widl-wpp.o `test -f 'src/wpp/wpp.c' || echo '$(srcdir)/'`src/wpp/wpp.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/wpp/$(DEPDIR)/widl-wpp.Tpo src/wpp/$(DEPDIR)/widl-wpp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp/wpp.c' object='src/wpp/widl-wpp.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-wpp.o `test -f 'src/wpp/wpp.c' || echo '$(srcdir)/'`src/wpp/wpp.c - -src/wpp/widl-wpp.obj: src/wpp/wpp.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/wpp/widl-wpp.obj -MD -MP -MF src/wpp/$(DEPDIR)/widl-wpp.Tpo -c -o src/wpp/widl-wpp.obj `if test -f 'src/wpp/wpp.c'; then $(CYGPATH_W) 'src/wpp/wpp.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/wpp.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/wpp/$(DEPDIR)/widl-wpp.Tpo src/wpp/$(DEPDIR)/widl-wpp.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/wpp/wpp.c' object='src/wpp/widl-wpp.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -c -o src/wpp/widl-wpp.obj `if test -f 'src/wpp/wpp.c'; then $(CYGPATH_W) 'src/wpp/wpp.c'; else $(CYGPATH_W) '$(srcdir)/src/wpp/wpp.c'; fi` - src/widl-pathtools.o: src/pathtools.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(widl_CPPFLAGS) $(CPPFLAGS) $(widl_CFLAGS) $(CFLAGS) -MT src/widl-pathtools.o -MD -MP -MF src/$(DEPDIR)/widl-pathtools.Tpo -c -o src/widl-pathtools.o `test -f 'src/pathtools.c' || echo '$(srcdir)/'`src/pathtools.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/widl-pathtools.Tpo src/$(DEPDIR)/widl-pathtools.Po @@ -1157,8 +1149,6 @@ -rm -f src/$(am__dirstamp) -rm -f src/port/$(DEPDIR)/$(am__dirstamp) -rm -f src/port/$(am__dirstamp) - -rm -f src/wpp/$(DEPDIR)/$(am__dirstamp) - -rm -f src/wpp/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -1176,6 +1166,8 @@ -rm -f src/$(DEPDIR)/widl-parser.tab.Po -rm -f src/$(DEPDIR)/widl-parser.yy.Po -rm -f src/$(DEPDIR)/widl-pathtools.Po + -rm -f src/$(DEPDIR)/widl-ppl.yy.Po + -rm -f src/$(DEPDIR)/widl-ppy.tab.Po -rm -f src/$(DEPDIR)/widl-proxy.Po -rm -f src/$(DEPDIR)/widl-register.Po -rm -f src/$(DEPDIR)/widl-server.Po @@ -1184,12 +1176,10 @@ -rm -f src/$(DEPDIR)/widl-typetree.Po -rm -f src/$(DEPDIR)/widl-utils.Po -rm -f src/$(DEPDIR)/widl-widl.Po + -rm -f src/$(DEPDIR)/widl-wpp.Po -rm -f src/$(DEPDIR)/widl-write_msft.Po -rm -f src/port/$(DEPDIR)/widl-getopt.Po -rm -f src/port/$(DEPDIR)/widl-port.Po - -rm -f src/wpp/$(DEPDIR)/widl-ppl.yy.Po - -rm -f src/wpp/$(DEPDIR)/widl-ppy.tab.Po - -rm -f src/wpp/$(DEPDIR)/widl-wpp.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags @@ -1244,6 +1234,8 @@ -rm -f src/$(DEPDIR)/widl-parser.tab.Po -rm -f src/$(DEPDIR)/widl-parser.yy.Po -rm -f src/$(DEPDIR)/widl-pathtools.Po + -rm -f src/$(DEPDIR)/widl-ppl.yy.Po + -rm -f src/$(DEPDIR)/widl-ppy.tab.Po -rm -f src/$(DEPDIR)/widl-proxy.Po -rm -f src/$(DEPDIR)/widl-register.Po -rm -f src/$(DEPDIR)/widl-server.Po @@ -1252,12 +1244,10 @@ -rm -f src/$(DEPDIR)/widl-typetree.Po -rm -f src/$(DEPDIR)/widl-utils.Po -rm -f src/$(DEPDIR)/widl-widl.Po + -rm -f src/$(DEPDIR)/widl-wpp.Po -rm -f src/$(DEPDIR)/widl-write_msft.Po -rm -f src/port/$(DEPDIR)/widl-getopt.Po -rm -f src/port/$(DEPDIR)/widl-port.Po - -rm -f src/wpp/$(DEPDIR)/widl-ppl.yy.Po - -rm -f src/wpp/$(DEPDIR)/widl-ppy.tab.Po - -rm -f src/wpp/$(DEPDIR)/widl-wpp.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic
diff --git a/mingw-w64-tools/widl/VERSION b/mingw-w64-tools/widl/VERSION index 01f38bd..beaf6b3 100644 --- a/mingw-w64-tools/widl/VERSION +++ b/mingw-w64-tools/widl/VERSION
@@ -1 +1 @@ -WIDL version 6.12 +WIDL version 7.0-rc2
diff --git a/mingw-w64-tools/widl/configure b/mingw-w64-tools/widl/configure index 95b1d25..b2c2716 100755 --- a/mingw-w64-tools/widl/configure +++ b/mingw-w64-tools/widl/configure
@@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for widl 6.12. +# Generated by GNU Autoconf 2.71 for widl 7.0-rc2. # # Report bugs to <mingw-w64-public@lists.sourceforge.net>. # @@ -610,8 +610,8 @@ # Identity of this package. PACKAGE_NAME='widl' PACKAGE_TARNAME='widl' -PACKAGE_VERSION='6.12' -PACKAGE_STRING='widl 6.12' +PACKAGE_VERSION='7.0-rc2' +PACKAGE_STRING='widl 7.0-rc2' PACKAGE_BUGREPORT='mingw-w64-public@lists.sourceforge.net' PACKAGE_URL='' @@ -1319,7 +1319,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures widl 6.12 to adapt to many kinds of systems. +\`configure' configures widl 7.0-rc2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1391,7 +1391,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of widl 6.12:";; + short | recursive ) echo "Configuration of widl 7.0-rc2:";; esac cat <<\_ACEOF @@ -1493,7 +1493,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -widl configure 6.12 +widl configure 7.0-rc2 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1905,7 +1905,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by widl $as_me 6.12, which was +It was created by widl $as_me 7.0-rc2, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3296,7 +3296,7 @@ # Define the identity of the package. PACKAGE='widl' - VERSION='6.12' + VERSION='7.0-rc2' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -5784,7 +5784,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by widl $as_me 6.12, which was +This file was extended by widl $as_me 7.0-rc2, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5852,7 +5852,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -widl config.status 6.12 +widl config.status 7.0-rc2 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\"
diff --git a/mingw-w64-tools/widl/include/basetsd.h b/mingw-w64-tools/widl/include/basetsd.h index 761af4d..a4774a2 100644 --- a/mingw-w64-tools/widl/include/basetsd.h +++ b/mingw-w64-tools/widl/include/basetsd.h
@@ -19,8 +19,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#ifndef __WINE_BASETSD_H -#define __WINE_BASETSD_H +#ifndef _BASETSD_H_ +#define _BASETSD_H_ #ifdef __cplusplus extern "C" { @@ -303,4 +303,4 @@ } /* extern "C" */ #endif /* defined(__cplusplus) */ -#endif /* !defined(__WINE_BASETSD_H) */ +#endif /* !defined(_BASETSD_H_) */
diff --git a/mingw-w64-tools/widl/include/concurrencysal.h b/mingw-w64-tools/widl/include/concurrencysal.h new file mode 100644 index 0000000..fc86045 --- /dev/null +++ b/mingw-w64-tools/widl/include/concurrencysal.h
@@ -0,0 +1,48 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef CONCURRENCYSAL_HXX +#define CONCURRENCYSAL_HXX + +#define _Benign_race_begin_ +#define _Benign_race_end_ +#define _No_competing_thread_begin_ +#define _No_competing_thread_end_ + +#define _Acquires_exclusive_lock_(lock) +#define _Acquires_lock_(lock) +#define _Acquires_nonreentrant_lock_(lock) +#define _Acquires_shared_lock_(lock) +#define _Analysis_assume_lock_acquired_(lock) +#define _Analysis_assume_lock_released_(lock) +#define _Analysis_assume_lock_held_(lock) +#define _Analysis_assume_lock_not_held_(lock) +#define _Analysis_assume_same_lock_(lock1, lock2) +#define _Analysis_suppress_lock_checking_(lock) +#define _Create_lock_level_(level) +#define _Csalcat1_(x,y) +#define _Csalcat2_(x,y) +#define _Function_ignore_lock_checking_(lock) +#define _Guarded_by_(lock) +#define _Has_lock_kind_(kind) +#define _Has_lock_level_(level) +#define _Interlocked_ +#define _Internal_lock_level_order_(a,b) +#define _Lock_level_order_(a,b) +#define _No_competing_thread_ +#define _Post_same_lock_(lock1,lock2) +#define _Releases_exclusive_lock_(lock) +#define _Releases_lock_(lock) +#define _Releases_nonreentrant_lock_(lock) +#define _Releases_shared_lock_(lock) +#define _Requires_exclusive_lock_held_(lock) +#define _Requires_shared_lock_held_(lock) +#define _Requires_lock_held_(lock) +#define _Requires_lock_not_held_(lock) +#define _Requires_no_locks_held_ +#define _Write_guarded_by_(lock) + +#endif
diff --git a/mingw-w64-tools/widl/include/driverspecs.h b/mingw-w64-tools/widl/include/driverspecs.h new file mode 100644 index 0000000..509a2bd --- /dev/null +++ b/mingw-w64-tools/widl/include/driverspecs.h
@@ -0,0 +1,55 @@ +/* + * PROJECT: ReactOS DDK + * COPYRIGHT: This file is in the Public Domain. + * FILE: driverspecs.h + * ABSTRACT: This header stubs out Driver Verifier annotations to + * allow drivers using them to compile with our header set. + */ + +#ifndef DRIVERSPECS_H +#define DRIVERSPECS_H + +#include <specstrings.h> +#include <concurrencysal.h> + +#define _IRQL_raises_(x) +#define _IRQL_requires_(x) +#define _IRQL_requires_max_(x) +#define _IRQL_requires_min_(x) +#define _IRQL_requires_same_ +#define _IRQL_restores_ +#define _IRQL_saves_ + +#define __drv_aliasesMem +#define __drv_allocatesMem(kind) +#define __drv_arg(x,y) +#define __drv_at(x,y) +#define __drv_deref(x) +#define __drv_dispatchType(x) +#define __drv_dispatchType_other +#define __drv_formatString(x) +#define __drv_freesMem(kind) +#define __drv_in(x) +#define __drv_in_deref(x) +#define __drv_maxIRQL(x) +#define __drv_nonConstant +#define __drv_out(x) +#define __drv_out_deref(x) +#define __drv_raisesIRQL(x) +#define __drv_requiresIRQL(x) +#define __drv_restoresIRQL +#define __drv_restoresIRQLGlobal(x,y) +#define __drv_savesIRQL +#define __drv_savesIRQLGlobal(x,y) +#define __drv_setsIRQL(x) +#define __drv_useCancelIRQL +#define __drv_valueIs(x) +#define __drv_when(x,y) + +#define __internal_kernel_driver +#define __kernel_code +#define __kernel_driver +#define __user_code +#define __user_driver + +#endif
diff --git a/mingw-w64-tools/widl/include/guiddef.h b/mingw-w64-tools/widl/include/guiddef.h index a25b3a7..d09ea98 100644 --- a/mingw-w64-tools/widl/include/guiddef.h +++ b/mingw-w64-tools/widl/include/guiddef.h
@@ -86,6 +86,14 @@ #undef DEFINE_GUID +#ifndef DECLSPEC_HIDDEN +# if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__) +# define DECLSPEC_HIDDEN __attribute__((visibility ("hidden"))) +# else +# define DECLSPEC_HIDDEN +# endif +#endif + #ifdef INITGUID #ifdef __cplusplus #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
diff --git a/mingw-w64-tools/widl/include/namespaceapi.h b/mingw-w64-tools/widl/include/namespaceapi.h new file mode 100644 index 0000000..9446806 --- /dev/null +++ b/mingw-w64-tools/widl/include/namespaceapi.h
@@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _NAMESPACEAPI_H_ +#define _NAMESPACEAPI_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#define PRIVATE_NAMESPACE_FLAG_DESTROY 0x00000001 + +WINBASEAPI BOOL WINAPI AddSIDToBoundaryDescriptor(HANDLE*,PSID); +WINBASEAPI BOOLEAN WINAPI ClosePrivateNamespace(HANDLE,ULONG); +WINBASEAPI HANDLE WINAPI CreateBoundaryDescriptorW(LPCWSTR,ULONG); +WINBASEAPI HANDLE WINAPI CreatePrivateNamespaceW(LPSECURITY_ATTRIBUTES,LPVOID,LPCWSTR); +WINBASEAPI void WINAPI DeleteBoundaryDescriptor(HANDLE); +WINBASEAPI HANDLE WINAPI OpenPrivateNamespaceW(LPVOID,LPCWSTR); + +#ifdef __cplusplus +} +#endif + +#endif /* _NAMESPACEAPI_H_ */
diff --git a/mingw-w64-tools/widl/include/processthreadsapi.h b/mingw-w64-tools/widl/include/processthreadsapi.h new file mode 100644 index 0000000..8cdaff4 --- /dev/null +++ b/mingw-w64-tools/widl/include/processthreadsapi.h
@@ -0,0 +1,33 @@ +/* + * Copyright 2021 Brendan Shanks for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _PROCESSTHREADSAPI_H +#define _PROCESSTHREADSAPI_H + +#ifdef __cplusplus +extern "C" { +#endif + +WINBASEAPI HRESULT WINAPI GetThreadDescription(HANDLE,PWSTR *); +WINBASEAPI HRESULT WINAPI SetThreadDescription(HANDLE,PCWSTR); + +#ifdef __cplusplus +} +#endif + +#endif /* _PROCESSTHREADSAPI_H */
diff --git a/mingw-w64-tools/widl/include/sal.h b/mingw-w64-tools/widl/include/sal.h new file mode 100644 index 0000000..72803a1 --- /dev/null +++ b/mingw-w64-tools/widl/include/sal.h
@@ -0,0 +1,430 @@ +/* + * Copyright (C) 2018 Alistair Leslie-Hughes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_SAL_H__ +#define __WINE_SAL_H__ + +#define _Always_(exp) + +#define _Analysis_noreturn_ + +#define _At_(a, b) +#define _At_buffer_(a, b, c, d) + +#define _Check_return_ + +#define _COM_Outptr_ +#define _COM_Outptr_result_maybenull_ + +#define _Deref_in_range_(cnt) +#define _Deref_out_ +#define _Deref_out_z_ +#define _Deref_out_opt_ +#define _Deref_out_opt_z_ +#define _Deref_out_range_(x, y) +#define _Deref_post_maybenull_ +#define _Deref_post_opt_cap_(count) +#define _Deref_post_opt_valid_ +#define _Deref_post_opt_z_cap_(count) +#define _Deref_post_valid_ +#define _Deref_post_z_ +#define _Deref_pre_maybenull_ +#define _Deref_pre_z_ +#define _Deref_prepost_opt_z_ +#define _Deref_ret_z_ + +#define _Field_range_(min, max) + +#define _In_ +#define _In_bytecount_(count) +#define _In_bytecount_c_(count) +#define _In_bytecount_x_(count) +#define _In_count_(count) +#define _In_count_c_(count) +#define _In_count_x_(count) +#define _In_opt_ +#define _In_opt_bytecount_(count) +#define _In_opt_bytecount_c_(count) +#define _In_opt_bytecount_x_(count) +#define _In_opt_count_(count) +#define _In_opt_count_c_(count) +#define _In_opt_count_x_(count) +#define _In_opt_ptrdiff_count_(count) +#define _In_opt_z_ +#define _In_opt_z_count_(count) +#define _In_opt_z_count_c_(count) +#define _In_opt_z_bytecount_(count) +#define _In_opt_z_bytecount_c_(count) +#define _In_ptrdiff_count_(count) +#define _In_range_(min, max) +#define _In_reads_(count) +#define _In_reads_bytes_(count) +#define _In_reads_bytes_opt_(count) +#define _In_reads_opt_(count) +#define _In_reads_opt_z_(count) +#define _In_reads_or_z_(count) +#define _In_reads_or_z_opt_(count) +#define _In_reads_z_(count) +#define _In_z_ +#define _In_z_bytecount_(count) +#define _In_z_bytecount_c_(count) +#define _In_z_count_(count) +#define _In_z_count_c_(count) + +#define _Inout_ +#define _Inout_bytecap_x_(count) +#define _Inout_cap_(count) +#define _Inout_opt_ +#define _Inout_opt_cap_c_(count) +#define _Inout_opt_z_ +#define _Inout_opt_z_bytecap_(count) +#define _Inout_updates_(count) +#define _Inout_updates_bytes_(count) +#define _Inout_updates_bytes_all_opt_(count) +#define _Inout_updates_bytes_opt_(count) +#define _Inout_updates_opt_(count) +#define _Inout_updates_z_(count) +#define _Inout_updates_opt_z_(count) +#define _Inout_z_ +#define _Inout_z_bytecap_(count) +#define _Inout_z_cap_(count) +#define _Inout_z_cap_c_(count) + +#define _Must_inspect_result_ + +#define _Null_ +#define _Null_terminated_ + +#define _Out_ +#define _Outptr_ +#define _Out_bytecap_(count) +#define _Out_bytecap_c_(count) +#define _Out_bytecap_x_(count) +#define _Out_bytecapcount_(count) +#define _Out_bytecap_post_bytecount_(count1, count2) +#define _Out_cap_(count) +#define _Out_cap_c_(count) +#define _Out_cap_m_(count1, count2) +#define _Out_cap_x_(count) +#define _Out_cap_post_count_(count1, count2) +#define _Out_opt_ +#define _Out_opt_bytecap_(count) +#define _Out_opt_bytecap_c_(count) +#define _Out_opt_bytecap_x_(count) +#define _Out_opt_bytecap_post_bytecount_(count1, count2) +#define _Out_opt_bytecapcount_(count) +#define _Out_opt_cap_(count) +#define _Out_opt_cap_m_(count1, count2) +#define _Out_opt_cap_c_(count) +#define _Out_opt_cap_x_(count) +#define _Out_opt_cap_post_count_(count1, count2) +#define _Out_opt_ptrdiff_cap_(count) +#define _Out_opt_z_bytecap_(count) +#define _Out_opt_z_bytecap_c_(count) +#define _Out_opt_z_bytecap_x_(count) +#define _Out_opt_z_bytecap_post_bytecount_(count1, count2) +#define _Out_opt_z_cap_(count) +#define _Out_opt_z_cap_c_(count) +#define _Out_opt_z_cap_m_(count1, count2) +#define _Out_opt_z_cap_x_(count) +#define _Out_opt_z_cap_post_count_(count1, count2) +#define _Out_ptrdiff_cap_(count) +#define _Out_writes_(count) +#define _Out_writes_all_(count) +#define _Out_writes_bytes_(count) +#define _Out_writes_bytes_all_(count) +#define _Out_writes_bytes_all_opt_(count) +#define _Out_writes_bytes_opt_(count) +#define _Out_writes_bytes_to_(count1, count2) +#define _Out_writes_bytes_to_opt_(count1, count2) +#define _Out_writes_opt_(count) +#define _Out_writes_opt_z_(count) +#define _Out_writes_to_(count1, count2) +#define _Out_writes_to_opt_(count1, count2) +#define _Out_writes_z_(count) +#define _Out_z_bytecap_(count) +#define _Out_z_bytecap_c_(count) +#define _Out_z_bytecap_x_(count) +#define _Out_z_bytecap_post_bytecount_(count1, count2) +#define _Out_z_cap_(count) +#define _Out_z_cap_c_(count) +#define _Out_z_cap_m_(count1, count2) +#define _Out_z_cap_x_(count) +#define _Out_z_cap_post_count_(count1, count2) + +#define _Outptr_opt_ +#define _Outptr_opt_result_buffer_(count) +#define _Outptr_opt_result_maybenull_ +#define _Outptr_opt_result_z_ +#define _Outptr_result_buffer_(count) +#define _Outptr_result_buffer_all_maybenull_(ptr) +#define _Outptr_result_buffer_maybenull_(count) +#define _Outptr_result_maybenull_ +#define _Outptr_result_maybenull_z_ +#define _Outptr_result_nullonfailure_ +#define _Outptr_result_z_ + +#define _Post_count_(count) +#define _Post_count_c_(count) +#define _Post_equal_to_(exp) +#define _Post_invalid_ +#define _Post_maybez_ +#define _Post_ptr_invalid_ +#define _Post_readable_byte_size_(count) +#define _Post_readable_size_(count) +#define _Post_satisfies_(exp) +#define _Post_writable_byte_size_(count) +#define _Post_writable_size_(count) +#define _Post_z_ + +#define _Pre_cap_for_(count) +#define _Pre_maybenull_ +#define _Pre_notnull_ +#define _Pre_null_ +#define _Pre_opt_z_ +#define _Pre_valid_ +#define _Pre_writable_size_(count) +#define _Pre_z_ +#define _Prepost_z_ + +#define _Printf_format_string_ +#define _Printf_format_string_params_(count) + +#define _Reserved_ + +#define _Result_nullonfailure_ + +#define _Ret_maybenull_ +#define _Ret_maybenull_z_ +#define _Ret_notnull_ +#define _Ret_opt_ +#define _Ret_opt_bytecap_(count) +#define _Ret_opt_bytecap_x_(count) +#define _Ret_opt_z_cap_(count) +#define _Ret_range_(exp,exp2) +#define _Ret_writes_bytes_maybenull_(count) +#define _Ret_writes_z_(count) +#define _Ret_z_ + +#define _Return_type_success_(count) + +#define _Scanf_format_string_ +#define _Scanf_format_string_params_(count) +#define _Scanf_s_format_string_ +#define _Scanf_s_format_string_params_(count) + +#define _Success_(exp) + +#define _When_(exp1, exp2) + +#define __bcount(size) +#define __bcount_opt(size) + +#define __deref_bcount(size) +#define __deref_bcount_opt(size) +#define __deref_ecount(size) +#define __deref_ecount_opt(size) +#define __deref_inout +#define __deref_inout_bcount(size) +#define __deref_inout_bcount_full(size) +#define __deref_inout_bcount_full_opt(size) +#define __deref_inout_bcount_nz(size) +#define __deref_inout_bcount_nz_opt(size) +#define __deref_inout_bcount_opt(size) +#define __deref_inout_bcount_part(size,length) +#define __deref_inout_bcount_part_opt(size,length) +#define __deref_inout_bcount_z(size) +#define __deref_inout_bcount_z_opt(size) +#define __deref_inout_ecount(size) +#define __deref_inout_ecount_full(size) +#define __deref_inout_ecount_full_opt(size) +#define __deref_inout_ecount_nz(size) +#define __deref_inout_ecount_nz_opt(size) +#define __deref_inout_ecount_opt(size) +#define __deref_inout_ecount_part(size,length) +#define __deref_inout_ecount_part_opt(size,length) +#define __deref_inout_ecount_z(size) +#define __deref_inout_ecount_z_opt(size) +#define __deref_inout_nz +#define __deref_inout_nz_opt +#define __deref_inout_opt +#define __deref_inout_z +#define __deref_inout_z_opt +#define __deref_opt_bcount(size) +#define __deref_opt_bcount_opt(size) +#define __deref_opt_ecount(size) +#define __deref_opt_ecount_opt(size) +#define __deref_opt_inout +#define __deref_opt_inout_bcount(size) +#define __deref_opt_inout_bcount_full(size) +#define __deref_opt_inout_bcount_full_opt(size) +#define __deref_opt_inout_bcount_nz(size) +#define __deref_opt_inout_bcount_nz_opt(size) +#define __deref_opt_inout_bcount_opt(size) +#define __deref_opt_inout_bcount_part(size,length) +#define __deref_opt_inout_bcount_part_opt(size,length) +#define __deref_opt_inout_bcount_z(size) +#define __deref_opt_inout_bcount_z_opt(size) +#define __deref_opt_inout_ecount(size) +#define __deref_opt_inout_ecount_full(size) +#define __deref_opt_inout_ecount_full_opt(size) +#define __deref_opt_inout_ecount_nz(size) +#define __deref_opt_inout_ecount_nz_opt(size) +#define __deref_opt_inout_ecount_opt(size) +#define __deref_opt_inout_ecount_part(size,length) +#define __deref_opt_inout_ecount_part_opt(size,length) +#define __deref_opt_inout_ecount_z(size) +#define __deref_opt_inout_ecount_z_opt(size) +#define __deref_opt_inout_nz +#define __deref_opt_inout_nz_opt +#define __deref_opt_inout_opt +#define __deref_opt_inout_z +#define __deref_opt_inout_z_opt +#define __deref_opt_out +#define __deref_opt_out_bcount(size) +#define __deref_opt_out_bcount_full(size) +#define __deref_opt_out_bcount_full_opt(size) +#define __deref_opt_out_bcount_nz_opt(size) +#define __deref_opt_out_bcount_opt(size) +#define __deref_opt_out_bcount_part(size,length) +#define __deref_opt_out_bcount_part_opt(size,length) +#define __deref_opt_out_bcount_z_opt(size) +#define __deref_opt_out_ecount(size) +#define __deref_opt_out_ecount_full(size) +#define __deref_opt_out_ecount_full_opt(size) +#define __deref_opt_out_ecount_nz_opt(size) +#define __deref_opt_out_ecount_opt(size) +#define __deref_opt_out_ecount_part(size,length) +#define __deref_opt_out_ecount_part_opt(size,length) +#define __deref_opt_out_ecount_z_opt(size) +#define __deref_opt_out_nz_opt +#define __deref_opt_out_opt +#define __deref_opt_out_z +#define __deref_opt_out_z_opt +#define __deref_out +#define __deref_out_bcount(size) +#define __deref_out_bcount_full(size) +#define __deref_out_bcount_full_opt(size) +#define __deref_out_bcount_nz(size) +#define __deref_out_bcount_nz_opt(size) +#define __deref_out_bcount_opt(size) +#define __deref_out_bcount_part(size,length) +#define __deref_out_bcount_part_opt(size,length) +#define __deref_out_bcount_z(size) +#define __deref_out_bcount_z_opt(size) +#define __deref_out_ecount(size) +#define __deref_out_ecount_full(size) +#define __deref_out_ecount_full_opt(size) +#define __deref_out_ecount_nz(size) +#define __deref_out_ecount_nz_opt(size) +#define __deref_out_ecount_opt(size) +#define __deref_out_ecount_part(size,length) +#define __deref_out_ecount_part_opt(size,length) +#define __deref_out_ecount_z(size) +#define __deref_out_ecount_z_opt(size) +#define __deref_out_nz +#define __deref_out_nz_opt +#define __deref_out_opt +#define __deref_out_z +#define __deref_out_z_opt + +#define __ecount(size) +#define __ecount_opt(size) + +/* #define __in */ /* conflicts with system headers */ +#define __in_bcount(size) +#define __in_bcount_nz(size) +#define __in_bcount_nz_opt(size) +#define __in_bcount_opt(size) +#define __in_bcount_z(size) +#define __in_bcount_z_opt(size) +#define __in_ecount(size) +#define __in_ecount_nz(size) +#define __in_ecount_nz_opt(size) +#define __in_ecount_opt(size) +#define __in_ecount_z(size) +#define __in_ecount_z_opt(size) +#define __in_nz +#define __in_nz_opt +#define __in_opt +#define __in_z +#define __in_z_opt +#define __inout +#define __inout_bcount(size) +#define __inout_bcount_full(size) +#define __inout_bcount_full_opt(size) +#define __inout_bcount_nz(size) +#define __inout_bcount_nz_opt(size) +#define __inout_bcount_opt(size) +#define __inout_bcount_part(size,length) +#define __inout_bcount_part_opt(size,length) +#define __inout_bcount_z(size) +#define __inout_bcount_z_opt(size) +#define __inout_ecount(size) +#define __inout_ecount_full(size) +#define __inout_ecount_full_opt(size) +#define __inout_ecount_nz(size) +#define __inout_ecount_nz_opt(size) +#define __inout_ecount_opt(size) +#define __inout_ecount_part(size,length) +#define __inout_ecount_part_opt(size,length) +#define __inout_ecount_z(size) +#define __inout_ecount_z_opt(size) +#define __inout_ecount_z_opt(size) +#define __inout_nz +#define __inout_nz_opt +#define __inout_opt +#define __inout_z +#define __inout_z_opt + +/* #define __out */ /* conflicts with system headers */ +#define __out_bcount(size) +#define __out_bcount_full(size) +#define __out_bcount_full_opt(size) +#define __out_bcount_full_z(size) +#define __out_bcount_full_z_opt(size) +#define __out_bcount_nz(size) +#define __out_bcount_nz_opt(size) +#define __out_bcount_opt(size) +#define __out_bcount_part(size,length) +#define __out_bcount_part_opt(size,length) +#define __out_bcount_part_z(size,length) +#define __out_bcount_part_z_opt(size,length) +#define __out_bcount_z(size) +#define __out_bcount_z_opt(size) +#define __out_ecount(size) +#define __out_ecount_full(size) +#define __out_ecount_full_opt(size) +#define __out_ecount_full_z(size) +#define __out_ecount_full_z_opt(size) +#define __out_ecount_nz(size) +#define __out_ecount_nz_opt(size) +#define __out_ecount_opt(size) +#define __out_ecount_part(size,length) +#define __out_ecount_part_opt(size,length) +#define __out_ecount_part_z(size,length) +#define __out_ecount_part_z_opt(size,length) +#define __out_ecount_z(size) +#define __out_ecount_z_opt(size) +#define __out_nz +#define __out_nz_opt +#define __out_opt +#define __out_z +#define __out_z_opt + +#endif
diff --git a/mingw-w64-tools/widl/include/specstrings.h b/mingw-w64-tools/widl/include/specstrings.h new file mode 100644 index 0000000..f2636a4 --- /dev/null +++ b/mingw-w64-tools/widl/include/specstrings.h
@@ -0,0 +1,340 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef SPECSTRINGS_H +#define SPECSTRINGS_H + +#define __specstrings + +#include <sal.h> + +#ifdef __cplusplus +#ifndef __nothrow +#define __nothrow __declspec(nothrow) +#endif +extern "C" { +#else +#ifndef __nothrow +#define __nothrow +#endif +#endif + +#define SAL__deref_in +#define SAL__deref_in_ecount(size) +#define SAL__deref_in_bcount(size) + +#define SAL__deref_in_opt +#define SAL__deref_in_ecount_opt(size) +#define SAL__deref_in_bcount_opt(size) + +#define SAL__deref_opt_in +#define SAL__deref_opt_in_ecount(size) +#define SAL__deref_opt_in_bcount(size) + +#define SAL__deref_opt_in_opt +#define SAL__deref_opt_in_ecount_opt(size) +#define SAL__deref_opt_in_bcount_opt(size) + +#define SAL__out_awcount(expr,size) +#define SAL__in_awcount(expr,size) + +/* Renamed __null to SAL__null for avoiding private keyword conflicts between + gcc and MS world. */ +#define SAL__null +#define SAL__notnull +#define SAL__maybenull +#define SAL__readonly +#define SAL__notreadonly +#define SAL__maybereadonly +#define SAL__valid +#define SAL__notvalid +#define SAL__maybevalid +#define SAL__readableTo(extent) +#define SAL__elem_readableTo(size) +#define SAL__byte_readableTo(size) +#define SAL__writableTo(size) +#define SAL__elem_writableTo(size) +#define SAL__byte_writableTo(size) +#define SAL__deref +#define SAL__pre +#define SAL__post +#define SAL__precond(expr) +#define SAL__postcond(expr) +#define SAL__exceptthat +#define SAL__execeptthat +#define SAL__inner_success(expr) +#define SAL__inner_checkReturn +#define SAL__inner_typefix(ctype) +#define SAL__inner_override +#define SAL__inner_callback +#define SAL__inner_blocksOn(resource) +#define SAL__inner_fallthrough_dec +#define SAL__inner_fallthrough +#define __refparam +#define SAL__inner_control_entrypoint(category) +#define SAL__inner_data_entrypoint(category) + +#define SAL__ecount(size) +#define SAL__bcount(size) + +#define SAL__in +#define SAL__in_opt +#define SAL__in_nz +#define SAL__in_nz_opt +#define SAL__in_z +#define SAL__in_z_opt +#define SAL__in_ecount(size) +#define SAL__in_ecount_nz(size) +#define SAL__in_ecount_z(size) +#define SAL__in_bcount(size) +#define SAL__in_bcount_z(size) +#define SAL__in_bcount_nz(size) +#define SAL__in_ecount_opt(size) +#define SAL__in_bcount_opt(size) +#define SAL__in_ecount_z_opt(size) +#define SAL__in_bcount_z_opt(size) +#define SAL__in_ecount_nz_opt(size) +#define SAL__in_bcount_nz_opt(size) + +#define SAL__out +#define SAL__out_ecount(size) +#define SAL__out_z +#define SAL__out_nz +#define SAL__out_nz_opt +#define SAL__out_z_opt +#define SAL__out_ecount_part(size,length) +#define SAL__out_ecount_full(size) +#define SAL__out_ecount_nz(size) +#define SAL__out_ecount_z(size) +#define SAL__out_ecount_part_z(size,length) +#define SAL__out_ecount_full_z(size) +#define SAL__out_bcount(size) +#define SAL__out_bcount_part(size,length) +#define SAL__out_bcount_full(size) +#define SAL__out_bcount_z(size) +#define SAL__out_bcount_part_z(size,length) +#define SAL__out_bcount_full_z(size) +#define SAL__out_bcount_nz(size) + +#define SAL__inout +#define SAL__inout_ecount(size) +#define SAL__inout_bcount(size) +#define SAL__inout_ecount_part(size,length) +#define SAL__inout_bcount_part(size,length) +#define SAL__inout_ecount_full(size) +#define SAL__inout_bcount_full(size) +#define SAL__inout_z +#define SAL__inout_ecount_z(size) +#define SAL__inout_bcount_z(size) +#define SAL__inout_nz +#define SAL__inout_ecount_nz(size) +#define SAL__inout_bcount_nz(size) +#define SAL__ecount_opt(size) +#define SAL__bcount_opt(size) +#define SAL__out_opt +#define SAL__out_ecount_opt(size) +#define SAL__out_bcount_opt(size) +#define SAL__out_ecount_part_opt(size,length) +#define SAL__out_bcount_part_opt(size,length) +#define SAL__out_ecount_full_opt(size) +#define SAL__out_bcount_full_opt(size) +#define SAL__out_ecount_z_opt(size) +#define SAL__out_bcount_z_opt(size) +#define SAL__out_ecount_part_z_opt(size,length) +#define SAL__out_bcount_part_z_opt(size,length) +#define SAL__out_ecount_full_z_opt(size) +#define SAL__out_bcount_full_z_opt(size) +#define SAL__out_ecount_nz_opt(size) +#define SAL__out_bcount_nz_opt(size) +#define SAL__inout_opt +#define SAL__inout_ecount_opt(size) +#define SAL__inout_bcount_opt(size) +#define SAL__inout_ecount_part_opt(size,length) +#define SAL__inout_bcount_part_opt(size,length) +#define SAL__inout_ecount_full_opt(size) +#define SAL__inout_bcount_full_opt(size) +#define SAL__inout_z_opt +#define SAL__inout_ecount_z_opt(size) +#define SAL__inout_bcount_z_opt(size) +#define SAL__inout_nz_opt +#define SAL__inout_ecount_nz_opt(size) +#define SAL__inout_bcount_nz_opt(size) +#define SAL__deref_ecount(size) +#define SAL__deref_bcount(size) +#define SAL__deref_out +#define SAL__deref_out_ecount(size) +#define SAL__deref_out_bcount(size) +#define SAL__deref_out_ecount_part(size,length) +#define SAL__deref_out_bcount_part(size,length) +#define SAL__deref_out_ecount_full(size) +#define SAL__deref_out_bcount_full(size) +#define SAL__deref_out_z +#define SAL__deref_out_ecount_z(size) +#define SAL__deref_out_bcount_z(size) +#define SAL__deref_out_nz +#define SAL__deref_out_ecount_nz(size) +#define SAL__deref_out_bcount_nz(size) +#define SAL__deref_inout +#define SAL__deref_inout_ecount(size) +#define SAL__deref_inout_bcount(size) +#define SAL__deref_inout_ecount_part(size,length) +#define SAL__deref_inout_bcount_part(size,length) +#define SAL__deref_inout_ecount_full(size) +#define SAL__deref_inout_bcount_full(size) +#define SAL__deref_inout_z +#define SAL__deref_inout_ecount_z(size) +#define SAL__deref_inout_bcount_z(size) +#define SAL__deref_inout_nz +#define SAL__deref_inout_ecount_nz(size) +#define SAL__deref_inout_bcount_nz(size) +#define SAL__deref_ecount_opt(size) +#define SAL__deref_bcount_opt(size) +#define SAL__deref_out_opt +#define SAL__deref_out_ecount_opt(size) +#define SAL__deref_out_bcount_opt(size) +#define SAL__deref_out_ecount_part_opt(size,length) +#define SAL__deref_out_bcount_part_opt(size,length) +#define SAL__deref_out_ecount_full_opt(size) +#define SAL__deref_out_bcount_full_opt(size) +#define SAL__deref_out_z_opt +#define SAL__deref_out_ecount_z_opt(size) +#define SAL__deref_out_bcount_z_opt(size) +#define SAL__deref_out_nz_opt +#define SAL__deref_out_ecount_nz_opt(size) +#define SAL__deref_out_bcount_nz_opt(size) +#define SAL__deref_inout_opt +#define SAL__deref_inout_ecount_opt(size) +#define SAL__deref_inout_bcount_opt(size) +#define SAL__deref_inout_ecount_part_opt(size,length) +#define SAL__deref_inout_bcount_part_opt(size,length) +#define SAL__deref_inout_ecount_full_opt(size) +#define SAL__deref_inout_bcount_full_opt(size) +#define SAL__deref_inout_z_opt +#define SAL__deref_inout_ecount_z_opt(size) +#define SAL__deref_inout_bcount_z_opt(size) +#define SAL__deref_inout_nz_opt +#define SAL__deref_inout_ecount_nz_opt(size) +#define SAL__deref_inout_bcount_nz_opt(size) +#define SAL__deref_opt_ecount(size) +#define SAL__deref_opt_bcount(size) +#define SAL__deref_opt_out +#define SAL__deref_opt_out_z +#define SAL__deref_opt_out_ecount(size) +#define SAL__deref_opt_out_bcount(size) +#define SAL__deref_opt_out_ecount_part(size,length) +#define SAL__deref_opt_out_bcount_part(size,length) +#define SAL__deref_opt_out_ecount_full(size) +#define SAL__deref_opt_out_bcount_full(size) +#define SAL__deref_opt_inout +#define SAL__deref_opt_inout_ecount(size) +#define SAL__deref_opt_inout_bcount(size) +#define SAL__deref_opt_inout_ecount_part(size,length) +#define SAL__deref_opt_inout_bcount_part(size,length) +#define SAL__deref_opt_inout_ecount_full(size) +#define SAL__deref_opt_inout_bcount_full(size) +#define SAL__deref_opt_inout_z +#define SAL__deref_opt_inout_ecount_z(size) +#define SAL__deref_opt_inout_bcount_z(size) +#define SAL__deref_opt_inout_nz +#define SAL__deref_opt_inout_ecount_nz(size) +#define SAL__deref_opt_inout_bcount_nz(size) +#define SAL__deref_opt_ecount_opt(size) +#define SAL__deref_opt_bcount_opt(size) +#define SAL__deref_opt_out_opt +#define SAL__deref_opt_out_ecount_opt(size) +#define SAL__deref_opt_out_bcount_opt(size) +#define SAL__deref_opt_out_ecount_part_opt(size,length) +#define SAL__deref_opt_out_bcount_part_opt(size,length) +#define SAL__deref_opt_out_ecount_full_opt(size) +#define SAL__deref_opt_out_bcount_full_opt(size) +#define SAL__deref_opt_out_z_opt +#define SAL__deref_opt_out_ecount_z_opt(size) +#define SAL__deref_opt_out_bcount_z_opt(size) +#define SAL__deref_opt_out_nz_opt +#define SAL__deref_opt_out_ecount_nz_opt(size) +#define SAL__deref_opt_out_bcount_nz_opt(size) +#define SAL__deref_opt_inout_opt +#define SAL__deref_opt_inout_ecount_opt(size) +#define SAL__deref_opt_inout_bcount_opt(size) +#define SAL__deref_opt_inout_ecount_part_opt(size,length) +#define SAL__deref_opt_inout_bcount_part_opt(size,length) +#define SAL__deref_opt_inout_ecount_full_opt(size) +#define SAL__deref_opt_inout_bcount_full_opt(size) +#define SAL__deref_opt_inout_z_opt +#define SAL__deref_opt_inout_ecount_z_opt(size) +#define SAL__deref_opt_inout_bcount_z_opt(size) +#define SAL__deref_opt_inout_nz_opt +#define SAL__deref_opt_inout_ecount_nz_opt(size) +#define SAL__deref_opt_inout_bcount_nz_opt(size) + +#define SAL__success(expr) +#define SAL__nullterminated +#define SAL__nullnullterminated +#define SAL__reserved +#define SAL__checkReturn +#define SAL__typefix(ctype) +#define SAL__override +#define SAL__callback +#define SAL__format_string +#define SAL__blocksOn(resource) +#define SAL__control_entrypoint(category) +#define SAL__data_entrypoint(category) + +#define __encoded_pointer + +#define _Post_equals_last_error_ + +#ifndef __fallthrough +#define __fallthrough +#endif + +#ifndef __analysis_assume +#define __analysis_assume(expr) +#endif + +#ifndef __CLR_OR_THIS_CALL +#define __CLR_OR_THIS_CALL +#endif + +#ifndef __CLRCALL_OR_CDECL +#define __CLRCALL_OR_CDECL __cdecl +#endif + +#ifndef __STDC_WANT_SECURE_LIB__ +#define __STDC_WANT_SECURE_LIB__ 0 +#endif + +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif + +#ifndef RC_INVOKED +#ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES +#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0 +#endif +#ifndef _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT +#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT 0 +#endif +#ifndef _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES +#define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0 +#endif +#endif + +#ifndef DECLSPEC_ADDRSAFE +#if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) +#define DECLSPEC_ADDRSAFE __declspec(address_safe) +#else +#define DECLSPEC_ADDRSAFE +#endif +#endif /* DECLSPEC_ADDRSAFE */ + +#ifdef __cplusplus +} +#endif + +#include <driverspecs.h> + +#endif
diff --git a/mingw-w64-tools/widl/include/winbase.h b/mingw-w64-tools/widl/include/winbase.h index 2928385..0a0bfde 100644 --- a/mingw-w64-tools/widl/include/winbase.h +++ b/mingw-w64-tools/widl/include/winbase.h
@@ -40,6 +40,7 @@ #endif #include <libloaderapi.h> +#include <processthreadsapi.h> #include <synchapi.h> #include <threadpoolapiset.h> @@ -240,6 +241,8 @@ BOOL bInheritHandle; } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; +#include <namespaceapi.h> + #ifndef _FILETIME_ #define _FILETIME_ /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */ @@ -2611,6 +2614,7 @@ WINBASEAPI DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*); #define SearchPath WINELIB_NAME_AW(SearchPath) WINADVAPI BOOL WINAPI SetAclInformation(PACL,LPVOID,DWORD,ACL_INFORMATION_CLASS); +WINBASEAPI BOOL WINAPI SetCachedSigningLevel(PHANDLE,ULONG,ULONG,HANDLE); WINBASEAPI BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD); WINBASEAPI BOOL WINAPI SetCommBreak(HANDLE); WINBASEAPI BOOL WINAPI SetCommMask(HANDLE,DWORD);
diff --git a/mingw-w64-tools/widl/include/windef.h b/mingw-w64-tools/widl/include/windef.h index ac2ec61..f352706 100644 --- a/mingw-w64-tools/widl/include/windef.h +++ b/mingw-w64-tools/widl/include/windef.h
@@ -72,7 +72,7 @@ # else # define __stdcall __attribute__((ms_abi)) # endif -# elif defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__) && !defined(_WIN32) +# elif defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__) && !defined(__MINGW32__) && !defined(__CYGWIN__) # define __stdcall __attribute__((pcs("aapcs-vfp"))) # elif defined(__aarch64__) && defined (__GNUC__) && __has_attribute(ms_abi) # define __stdcall __attribute__((ms_abi)) @@ -120,7 +120,7 @@ # endif #endif -#if defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__) && !defined(_WIN32) +#if defined(__arm__) && defined (__GNUC__) && !defined(__SOFTFP__) && !defined(__MINGW32__) && !defined(__CYGWIN__) # define WINAPIV __attribute__((pcs("aapcs"))) #else # define WINAPIV __cdecl
diff --git a/mingw-w64-tools/widl/include/wine/wpp.h b/mingw-w64-tools/widl/include/wine/wpp.h deleted file mode 100644 index 4994577..0000000 --- a/mingw-w64-tools/widl/include/wine/wpp.h +++ /dev/null
@@ -1,36 +0,0 @@ -/* - * Exported functions of the Wine preprocessor - * - * Copyright 2002 Alexandre Julliard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifndef __WINE_WPP_H -#define __WINE_WPP_H - -#include <stdio.h> -#include <stdarg.h> - -extern void wpp_del_define( const char *name ); -extern void wpp_add_cmdline_define( const char *value ); -extern void wpp_set_debug( int lex_debug, int parser_debug, int msg_debug ); -extern void wpp_set_pedantic( int on ); -extern void wpp_add_include_path( const char *path ); -extern char *wpp_find_include( const char *name, const char *parent_name ); -/* Return value == 0 means successful execution */ -extern int wpp_parse( const char *input, FILE *output ); - -#endif /* __WINE_WPP_H */
diff --git a/mingw-w64-tools/widl/include/winerror.h b/mingw-w64-tools/widl/include/winerror.h index f22b24f..f412989 100644 --- a/mingw-w64-tools/widl/include/winerror.h +++ b/mingw-w64-tools/widl/include/winerror.h
@@ -19,6 +19,8 @@ #ifndef __WINE_WINERROR_H #define __WINE_WINERROR_H +#include <specstrings.h> + #define FACILITY_NULL 0 #define FACILITY_RPC 1 #define FACILITY_DISPATCH 2 @@ -3038,6 +3040,21 @@ #define CO_E_DECODEFAILED _HRESULT_TYPEDEF_(0x8004021A) #define CO_E_ACNOTINITIALIZED _HRESULT_TYPEDEF_(0x8004021B) +#define CONTEXT_S_FIRST _HRESULT_TYPEDEF_(0x0004e000) +#define CONTEXT_S_LAST _HRESULT_TYPEDEF_(0x0004e02f) +#define CONTEXT_E_FIRST _HRESULT_TYPEDEF_(0x8004e000) +#define CONTEXT_E_ABORTED _HRESULT_TYPEDEF_(0x8004e002) +#define CONTEXT_E_ABORTING _HRESULT_TYPEDEF_(0x8004e003) +#define CONTEXT_E_NOCONTEXT _HRESULT_TYPEDEF_(0x8004e004) +#define CONTEXT_E_WOULD_DEADLOCK _HRESULT_TYPEDEF_(0x8004e005) +#define CONTEXT_E_SYNCH_TIMEOUT _HRESULT_TYPEDEF_(0x8004e006) +#define CONTEXT_E_OLDREF _HRESULT_TYPEDEF_(0x8004e007) +#define CONTEXT_E_ROLENOTFOUND _HRESULT_TYPEDEF_(0x8004e00c) +#define CONTEXT_E_TMNOTAVAILABLE _HRESULT_TYPEDEF_(0x8004e00f) +#define CONTEXT_E_NOJIT _HRESULT_TYPEDEF_(0x8004e026) +#define CONTEXT_E_NOTRANSACTION _HRESULT_TYPEDEF_(0x8004e027) +#define CONTEXT_E_LAST _HRESULT_TYPEDEF_(0x8004e02f) + /* Task Scheduler Service Error Codes */ #define SCHED_S_TASK_READY _HRESULT_TYPEDEF_(0x00041300) #define SCHED_S_TASK_RUNNING _HRESULT_TYPEDEF_(0x00041301)
diff --git a/mingw-w64-tools/widl/include/winnt.h b/mingw-w64-tools/widl/include/winnt.h index b83f588..c80efee 100644 --- a/mingw-w64-tools/widl/include/winnt.h +++ b/mingw-w64-tools/widl/include/winnt.h
@@ -24,6 +24,7 @@ #include <basetsd.h> #include <guiddef.h> #include <winapifamily.h> +#include <specstrings.h> #ifndef RC_INVOKED #include <ctype.h> @@ -41,7 +42,7 @@ extern "C" { #endif -#ifdef _NTSYSTEM_ +#if defined(_NTSYSTEM_) || defined(WINE_UNIX_LIB) #define NTSYSAPI #else #define NTSYSAPI DECLSPEC_IMPORT @@ -123,10 +124,14 @@ #endif #ifndef NOP_FUNCTION -# if defined(_MSC_VER) && (_MSC_VER >= 1210) -# define NOP_FUNCTION __noop +# if defined(_MSC_VER) +# if (_MSC_VER >= 1210) +# define NOP_FUNCTION __noop +# else +# define NOP_FUNCTION (void)0 +# endif # else -# define NOP_FUNCTION (void)0 +# define NOP_FUNCTION(...) # endif #endif @@ -173,12 +178,14 @@ # define DECLSPEC_EXPORT #endif -#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) || defined(__sun) -# define DECLSPEC_HIDDEN -#elif defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3))) -# define DECLSPEC_HIDDEN __attribute__((visibility ("hidden"))) -#else -# define DECLSPEC_HIDDEN +#ifndef DECLSPEC_HIDDEN +# if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) || defined(__sun) +# define DECLSPEC_HIDDEN +# elif defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3))) +# define DECLSPEC_HIDDEN __attribute__((visibility ("hidden"))) +# else +# define DECLSPEC_HIDDEN +# endif #endif #ifndef __has_attribute @@ -769,6 +776,12 @@ } DUMMYUNIONNAME; } MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER; +typedef struct _WIN32_MEMORY_RANGE_ENTRY +{ + PVOID VirtualAddress; + SIZE_T NumberOfBytes; +} WIN32_MEMORY_RANGE_ENTRY, *PWIN32_MEMORY_RANGE_ENTRY; + #define PAGE_NOACCESS 0x01 #define PAGE_READONLY 0x02 #define PAGE_READWRITE 0x04 @@ -3735,6 +3748,8 @@ } SID,*PISID; #endif /* !defined(SID_DEFINED) */ +#define CREATE_BOUNDARY_DESCRIPTOR_ADD_APPCONTAINER_SID 0x01 + #define SID_REVISION (1) /* Current revision */ #define SID_MAX_SUB_AUTHORITIES (15) /* current max subauths */ #define SID_RECOMMENDED_SUB_AUTHORITIES (1) /* recommended subauths */ @@ -6301,6 +6316,19 @@ /* Interlocked functions */ +#define InterlockedAnd _InterlockedAnd +#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedCompareExchange64 _InterlockedCompareExchange64 +#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer +#define InterlockedDecrement _InterlockedDecrement +#define InterlockedDecrement16 _InterlockedDecrement16 +#define InterlockedExchange _InterlockedExchange +#define InterlockedExchangeAdd _InterlockedExchangeAdd +#define InterlockedExchangePointer _InterlockedExchangePointer +#define InterlockedIncrement _InterlockedIncrement +#define InterlockedIncrement16 _InterlockedIncrement16 +#define InterlockedOr _InterlockedOr + #ifdef _MSC_VER #pragma intrinsic(_InterlockedAnd) @@ -6325,66 +6353,13 @@ short _InterlockedIncrement16(short volatile*); long _InterlockedOr(long volatile *,long); -static FORCEINLINE LONG WINAPI InterlockedAnd( LONG volatile *dest, LONG val ) -{ - return _InterlockedAnd( (long volatile *)dest, val ); -} - -static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare ) -{ - return _InterlockedCompareExchange( (long volatile *)dest, xchg, compare ); -} - -static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare ) -{ - return _InterlockedCompareExchange64( (long long volatile *)dest, xchg, compare ); -} - -static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val ) -{ - return _InterlockedExchange( (long volatile *)dest, val ); -} - -static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr ) -{ - return _InterlockedExchangeAdd( (long volatile *)dest, incr ); -} - -static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest ) -{ - return _InterlockedIncrement( (long volatile *)dest ); -} - -static FORCEINLINE short WINAPI InterlockedIncrement16( short volatile *dest ) -{ - return _InterlockedIncrement16( dest ); -} - -static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest ) -{ - return _InterlockedDecrement( (long volatile *)dest ); -} - -static FORCEINLINE short WINAPI InterlockedDecrement16( short volatile *dest ) -{ - return _InterlockedDecrement16( dest ); -} - -static FORCEINLINE LONG WINAPI InterlockedOr( LONG volatile *dest, LONG val ) -{ - return _InterlockedOr( (long volatile *)dest, val ); -} - -#ifndef __i386__ +#if !defined(__i386__) || _MSC_VER >= 1600 #pragma intrinsic(_InterlockedCompareExchangePointer) #pragma intrinsic(_InterlockedExchangePointer) -#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer -#define InterlockedExchangePointer _InterlockedExchangePointer - -void *InterlockedCompareExchangePointer(void *volatile*,void*,void*); -void *InterlockedExchangePointer(void *volatile*,void*); +void *_InterlockedCompareExchangePointer(void *volatile*,void*,void*); +void *_InterlockedExchangePointer(void *volatile*,void*); #else @@ -6524,6 +6499,9 @@ #endif /* __GNUC__ */ #ifdef _WIN64 + +#define InterlockedCompareExchange128 _InterlockedCompareExchange128 + #if defined(_MSC_VER) && !defined(__clang__) #pragma intrinsic(_InterlockedCompareExchange128)
diff --git a/mingw-w64-tools/widl/patches/0001-relocatable.patch b/mingw-w64-tools/widl/patches/0001-relocatable.patch index a0406ea..aafc97f 100644 --- a/mingw-w64-tools/widl/patches/0001-relocatable.patch +++ b/mingw-w64-tools/widl/patches/0001-relocatable.patch
@@ -10,15 +10,6 @@ static const char usage[] = "Usage: widl [options...] infile.idl\n" -@@ -596,7 +597,7 @@ static void init_argv0_dir( const char *argv0 ) - - int main(int argc,char *argv[]) - { -- int i, optc; -+ int optc; - int ret = 0; - int opti = 0; - char *output_name = NULL; @@ -772,19 +773,12 @@ int main(int argc,char *argv[]) if (stdinc)
diff --git a/mingw-w64-tools/widl/src/client.c b/mingw-w64-tools/widl/src/client.c index 6ecae41..1ce7d24 100644 --- a/mingw-w64-tools/widl/src/client.c +++ b/mingw-w64-tools/widl/src/client.c
@@ -19,13 +19,9 @@ */ #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <ctype.h>
diff --git a/mingw-w64-tools/widl/src/header.c b/mingw-w64-tools/widl/src/header.c index 1a69b29..2a745b8 100644 --- a/mingw-w64-tools/widl/src/header.c +++ b/mingw-w64-tools/widl/src/header.c
@@ -23,9 +23,6 @@ #include <stdarg.h> #include <stdio.h> #include <stdlib.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <ctype.h> @@ -192,11 +189,11 @@ { if(is_global_namespace(namespace)) { if(use_abi_namespace) - write_line(header, -1, "}", namespace->name); + write_line(header, -1, "}"); return; } - write_line(header, -1, "}", namespace->name); + write_line(header, -1, "}"); write_namespace_end(header, namespace->parent); } @@ -1929,12 +1926,9 @@ static void write_import(FILE *header, const char *fname) { - char *hname, *p; + char *hname = replace_extension( get_basename(fname), ".idl", "" ); - hname = dup_basename(fname, ".idl"); - p = hname + strlen(hname) - 2; - if (p <= hname || strcmp( p, ".h" )) strcat(hname, ".h"); - + if (!strendswith( hname, ".h" )) hname = strmake( "%s.h", hname ); fprintf(header, "#include <%s>\n", hname); free(hname); }
diff --git a/mingw-w64-tools/widl/src/parser.l b/mingw-w64-tools/widl/src/parser.l index 4d3b9d6..fb6aa93 100644 --- a/mingw-w64-tools/widl/src/parser.l +++ b/mingw-w64-tools/widl/src/parser.l
@@ -43,7 +43,6 @@ %{ #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> @@ -52,17 +51,12 @@ #include <assert.h> #include <errno.h> #include <limits.h> - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#else #define YY_NO_UNISTD_H -#endif #include "widl.h" #include "utils.h" #include "parser.h" -#include "wine/wpp.h" +#include "wpp_private.h" #include "parser.tab.h" @@ -564,10 +558,7 @@ input_name = path; line_number = 1; - name = xstrdup( "widl.XXXXXX" ); - if((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - + fd = make_temp_file( "widl-pp", NULL, &name ); temp_name = name; if (!(f = fdopen(fd, "wt"))) error("Could not open fd %s for writing\n", name); @@ -605,10 +596,7 @@ acf_name = NULL; line_number = 1; - name = xstrdup( "widl.XXXXXX" ); - if((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - + fd = make_temp_file( "widl-acf", NULL, &name ); temp_name = name; if (!(f = fdopen(fd, "wt"))) error("Could not open fd %s for writing\n", name);
diff --git a/mingw-w64-tools/widl/src/parser.tab.c b/mingw-w64-tools/widl/src/parser.tab.c index d7ba108..95d9ee7 100644 --- a/mingw-w64-tools/widl/src/parser.tab.c +++ b/mingw-w64-tools/widl/src/parser.tab.c
@@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.5. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison implementation for Yacc-like parsers in C @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -46,10 +46,10 @@ USER NAME SPACE" below. */ /* Identify Bison output, and Bison version. */ -#define YYBISON 30705 +#define YYBISON 30706 /* Bison version string. */ -#define YYBISON_VERSION "3.7.5" +#define YYBISON_VERSION "3.7.6" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -1200,7 +1200,7 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3579 +#define YYLAST 3552 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 234 @@ -1462,7 +1462,7 @@ }; #endif -#define YYPACT_NINF (-643) +#define YYPACT_NINF (-642) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -1476,96 +1476,96 @@ STATE-NUM. */ static const yytype_int16 yypact[] = { - -643, 115, 1791, -643, -89, -643, -39, -45, 222, -643, - -643, -643, 222, -643, 5, -32, 222, -643, 288, -643, - -643, -643, -643, 138, 249, -643, -643, -643, -643, -643, - 222, 138, 268, 54, -643, 222, 97, 138, 39, -643, - -643, 301, 369, 39, -643, -643, 3380, -643, -643, -643, - -643, 118, -643, -643, -643, -643, -643, 45, 2860, 125, - 143, -643, -643, -643, 372, 149, -643, 148, -643, 151, - -643, 155, -643, 114, 165, 338, 193, 195, -643, -643, - -643, 207, 207, 207, 126, 3036, 199, -643, 207, 200, - 201, -643, 75, -643, -45, 316, -643, -643, -643, -643, - 425, -643, -643, 182, 206, -643, -643, -643, 208, 227, - -643, -643, 82, -643, 3036, -643, -643, 188, 210, -103, - -71, -643, 209, -643, 211, -643, -643, 213, -643, -643, - -643, 214, 215, -643, -643, -643, -643, -643, 216, 220, - -643, 228, -643, -643, -643, -643, 233, -643, -643, -643, - 234, -643, -643, -643, 235, 236, -643, -643, 240, -643, - -643, -643, -643, -643, 242, 243, 244, 245, 247, -643, - 248, -643, -643, 250, -643, 251, -643, -643, 254, 255, - -643, -643, 256, -643, -643, -643, -643, -643, -643, -643, - -643, -643, -643, -643, 258, -643, -643, -643, 262, 269, - -643, -643, -643, -643, -643, -643, 270, -643, -643, 272, - -643, -643, -643, 273, -643, 274, -643, -643, 278, 279, - 280, 283, -643, -643, -643, 285, 286, -643, -643, 294, - 303, 304, -106, -643, -643, -643, 1937, 1114, 3036, 311, - 377, 222, 222, 381, 385, 212, 225, 312, 319, 323, - -643, 324, 126, 252, 271, -643, 315, 343, 3098, -643, - -643, -643, -643, -643, 326, -643, -643, -643, -643, -643, - -643, -643, -643, -643, -643, -643, -643, 126, 126, -643, - -643, 325, -107, -643, -643, -643, 207, -643, -643, -643, - 328, -643, -643, -643, -51, -643, -643, 555, 331, -34, - -48, -643, -643, 360, 361, 345, -643, 348, -643, 2931, - 571, 314, 222, 725, 2931, 581, 314, 725, 579, 580, - 725, 2931, 725, 583, 584, 725, 585, 725, 725, 2377, - 725, 725, 59, 592, -60, 593, 725, 3036, 725, 2931, - 725, 3036, -36, 3036, 3036, 314, 419, 595, 3036, 3380, - 379, -643, 378, 375, -643, -643, -643, -643, 387, -643, - 389, -643, 390, -643, 384, 391, 395, -643, -643, -643, - 193, 222, 2931, -643, 393, -643, -643, 393, -70, -643, - -643, -643, 396, 417, -643, -643, -643, -643, 372, 102, - 412, -643, -95, -643, -10, 174, 406, -643, 725, 137, - 2377, -643, -643, 30, 75, -643, 399, -643, 394, -643, - 222, 409, 435, 408, -643, 222, 636, 636, -643, -17, - 311, 94, 411, 439, 413, -643, -643, 428, 430, -643, - -643, -643, -643, -643, -643, -643, -643, -643, 432, -643, - 725, 725, 725, 725, 725, 725, 923, 2615, -110, -643, - 433, 444, 438, 466, 2615, 442, 443, -643, -102, 447, - 448, 449, 451, 452, 454, 459, 461, 859, 462, 2931, - 217, 463, -91, -643, 2615, -643, -643, -643, 464, 469, - 471, 472, 468, 474, -49, 480, 473, 2291, 482, -643, - -643, -643, -643, -643, -643, 484, 485, 486, 487, 496, - -643, 492, 493, 494, -643, 3380, -643, 667, -643, -643, - -643, -643, -643, -643, -643, -3, 126, 108, 109, 193, - 394, 537, 1466, -643, -643, -643, 3098, -643, 1330, 520, - -38, 501, -643, -643, -643, -643, 575, -643, 2461, 498, - 532, -643, -643, -643, -643, -643, -643, -25, -643, -643, - 553, 528, -643, -643, 132, 725, -643, -643, 535, -643, - 46, 49, -643, 2931, -643, 2931, 509, -643, 514, -643, - 515, -643, 581, -643, -643, -643, 3117, 43, 43, 43, - 43, 43, 43, -643, 2376, 446, 3222, 207, 725, 725, - 741, 725, 725, 725, 725, 725, 725, 725, 725, 725, - 725, 725, 725, 725, 725, 725, 725, 725, 743, 725, - 725, -643, -643, 742, -643, 725, -643, -643, 738, -643, - -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, - 217, -643, 2029, -643, 217, -643, -643, -643, 53, -643, - 725, -643, -643, -643, -643, -643, 725, -643, -643, -643, - 2931, -643, -643, -643, -643, -643, -643, 744, -643, -643, - -643, -643, -27, 517, -643, -643, 2377, -643, 547, 193, - 24, -643, 193, -643, 149, -643, 394, 524, 193, -643, - 570, 2931, -643, -643, -643, 550, 530, 1668, 531, -643, - -643, -643, 2246, 30, -643, 534, 533, 553, 3098, -643, - -643, 222, 552, -643, -643, -643, 217, 538, 126, 135, - 222, -643, -643, -643, 446, -643, -643, 2175, -643, 446, - -643, 541, 77, 207, -643, 383, 383, -643, 441, 441, - 281, 281, 2542, 2634, 2594, 2664, 1033, 1463, 281, 281, - 187, 187, 43, 43, 43, -643, 2509, -643, -643, 542, - -643, -643, 170, -643, 544, 217, 545, -643, 2377, -643, - -643, 559, -643, -643, 394, -643, 193, 1259, 222, 560, - 126, -643, 222, 394, 551, 554, -643, 149, -643, 557, - -643, -643, -643, -643, -643, 2931, 556, -643, -643, -643, - -643, -643, 765, -643, -643, -94, -643, -643, 588, -643, - -93, -643, -643, 558, -643, 564, 293, -643, 565, 217, - 566, -643, 725, 2377, -643, -643, 725, -643, -643, -643, - 170, -643, -643, -643, 567, -643, 589, -643, -643, -92, - 193, -643, -643, -643, 372, -643, -643, 394, 1537, -643, - 573, 576, 725, -643, 217, -643, -643, -643, -643, 170, - -643, -643, -643, 43, 578, 2615, -643, -643, 3098, 572, - -643, -643, 149, -643, 193, -643, -643, -643, -643, 36, - -643, -643, 55, 2377, -643, 725, 598, -643, -643, 586, - 597, 600, 194, -643, -643, 194, -643, -643, 587, 193, - -643, -643, -643 + -642, 122, 1799, -642, -100, -642, 48, -34, 283, -642, + -642, -642, 283, -642, -117, -92, 283, -642, 297, -642, + -642, -642, -642, 97, 223, -642, -642, -642, -642, -642, + 283, 97, 251, 34, -642, 283, 46, 97, 618, -642, + -642, 357, 373, 618, -642, -642, 3353, -642, -642, -642, + -642, 50, -642, -642, -642, -642, -642, 15, 2839, 81, + 82, -642, -642, -642, 374, 53, -642, 96, -642, 103, + -642, 136, -642, 40, 162, 286, 169, 177, -642, -642, + -642, 24, 24, 24, 263, 2979, 185, -642, 24, 189, + 192, -642, 77, -642, -34, 224, -642, -642, -642, -642, + 401, -642, -642, -62, 205, -642, -642, -642, 203, 229, + -642, -642, 85, -642, 2979, -642, -642, 13, 212, -89, + -111, -642, 213, -642, 214, -642, -642, 218, -642, -642, + -642, 219, 221, -642, -642, -642, -642, -642, 227, 228, + -642, 230, -642, -642, -642, -642, 231, -642, -642, -642, + 232, -642, -642, -642, 234, 235, -642, -642, 236, -642, + -642, -642, -642, -642, 237, 239, 240, 241, 242, -642, + 243, -642, -642, 244, -642, 246, -642, -642, 248, 249, + -642, -642, 252, -642, -642, -642, -642, -642, -642, -642, + -642, -642, -642, -642, 253, -642, -642, -642, 254, 257, + -642, -642, -642, -642, -642, -642, 258, -642, -642, 260, + -642, -642, -642, 261, -642, 264, -642, -642, 265, 268, + 269, 270, -642, -642, -642, 272, 274, -642, -642, 275, + 276, 277, -97, -642, -642, -642, 1945, 1159, 2979, 283, + 217, 225, 382, 283, 397, 413, 280, 290, 282, 285, + 293, -642, 263, 301, 302, -642, 300, 323, 3027, -642, + -642, -642, -642, -642, 307, -642, -642, -642, -642, -642, + -642, -642, -642, -642, -642, -642, -642, 263, 263, -642, + -642, 209, -5, -642, -642, -642, 24, -642, -642, -642, + 306, -642, -642, -642, -59, -642, -642, 455, 308, -26, + -74, -642, -642, 331, 334, 311, -642, 315, -642, 2887, + 541, 104, 283, 1010, 2887, 547, 104, 1010, 550, 551, + 1010, 2887, 1010, 552, 553, 1010, 556, 1010, 1010, 2385, + 1010, 1010, 32, 569, -53, 571, 1010, 2979, 1010, 2887, + 1010, 2979, 134, 2979, 2979, 104, 216, 572, 2979, 3353, + 356, -642, 354, 358, -642, -642, -642, -642, 360, -642, + 369, -642, 370, -642, 355, 371, 372, -642, -642, -642, + 169, 283, -642, 2887, -642, -642, 376, -642, 376, -80, + -642, -642, -642, 379, 394, -642, -642, -642, 374, -21, + 391, -642, -24, -642, -4, 80, 380, -642, 1010, 703, + 2385, -642, -642, 27, 77, -642, 381, -642, 418, -642, + 283, 383, 410, 352, -642, 283, 610, 610, -642, 73, + 217, 131, 386, 414, 399, -642, -642, 400, 402, -642, + -642, -642, -642, -642, -642, -642, -642, -642, 392, -642, + 1010, 1010, 1010, 1010, 1010, 1010, 894, 2623, -85, -642, + 403, 404, 405, 434, 2623, 408, 409, -642, -79, 411, + 412, 416, 419, 420, 421, 422, 424, 2299, 426, 2887, + 118, 427, -78, -642, 2623, -642, -642, -642, 428, 429, + 430, 433, 437, 435, -77, 439, 445, 2384, 440, -642, + -642, -642, -642, -642, -642, 442, 443, 444, 446, 441, + -642, 448, 450, 460, -642, 3353, -642, 660, -642, -642, + -642, -642, -642, -642, -642, -61, 263, 1446, 166, 173, + 169, 418, 516, -642, -642, -642, 3027, -642, 1375, 480, + -13, 468, -642, -642, -642, -642, 917, -642, 1156, 465, + 493, -642, -642, -642, -642, -642, -642, -45, -642, -642, + 514, 490, -642, -642, 182, 1010, -642, -642, 498, -642, + 60, 64, -642, 2887, -642, 2887, 473, -642, 489, -642, + 491, -642, 547, -642, -642, -642, 3124, 65, 65, 65, + 65, 65, 65, -642, 2469, 271, 3195, 24, 1010, 1010, + 705, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, + 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 715, 1010, + 1010, -642, -642, 714, -642, 1010, -642, -642, 712, -642, + -642, -642, -642, -642, -642, -642, -642, -642, -642, -642, + 118, -642, 2037, -642, 118, -642, -642, -642, 86, -642, + 1010, -642, -642, -642, -642, -642, 1010, -642, -642, -642, + 2887, -642, -642, -642, -642, -642, -642, 716, -642, -642, + -642, -642, -23, 492, -642, -642, 2385, -642, 518, 169, + -642, 542, 2887, 169, 23, -642, 169, -642, 53, -642, + 418, 497, -642, -642, -642, 521, 505, 1653, 504, -642, + -642, -642, 2254, 27, -642, 509, 506, 514, 3027, -642, + -642, 283, 525, -642, -642, -642, 118, 510, 263, -3, + 283, -642, -642, -642, 271, -642, -642, 2183, -642, 271, + -642, 508, 124, 24, -642, 211, 211, -642, 605, 605, + 378, 378, 2550, 2642, 2602, 158, 1494, 2649, 378, 378, + 126, 126, 65, 65, 65, -642, 2517, -642, -642, 511, + -642, -642, 114, -642, 512, 118, 513, -642, 2385, -642, + -642, 515, -642, -642, 418, -642, 169, 1230, 283, 522, + 263, -642, -642, 283, 418, 520, 527, -642, 53, -642, + 536, -642, -642, -642, -642, 2887, 529, -642, -642, -642, + -642, -642, 737, -642, -642, -19, -642, -642, 543, -642, + -96, -642, -642, 524, -642, 526, 337, -642, 528, 118, + 531, -642, 1010, 2385, -642, -642, 1010, -642, -642, -642, + 114, -642, -642, -642, 534, -642, 548, -642, -642, 92, + 169, -642, -642, -642, 374, -642, -642, 418, 1582, -642, + 533, 544, 1010, -642, 118, -642, -642, -642, -642, 114, + -642, -642, -642, 65, 537, 2623, -642, -642, 3027, 539, + -642, -642, 53, -642, 169, -642, -642, -642, -642, 33, + -642, -642, 93, 2385, -642, 1010, 564, -642, -642, 545, + 554, 568, 204, -642, -642, 204, -642, -642, 549, 169, + -642, -642, -642 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1596,9 +1596,9 @@ 182, 183, 184, 185, 449, 186, 0, 188, 447, 0, 190, 191, 192, 0, 194, 0, 196, 197, 0, 0, 0, 0, 202, 448, 203, 0, 0, 207, 208, 0, - 0, 0, 0, 91, 212, 51, 88, 88, 0, 88, - 298, 0, 0, 298, 298, 0, 453, 0, 0, 0, - 376, 0, 0, 455, 457, 52, 300, 462, 0, 18, + 0, 0, 0, 91, 212, 51, 88, 88, 0, 0, + 88, 0, 298, 0, 298, 298, 0, 453, 0, 0, + 0, 376, 0, 455, 457, 52, 300, 462, 0, 18, 22, 20, 12, 15, 0, 49, 378, 14, 399, 396, 398, 397, 215, 216, 217, 218, 389, 0, 0, 302, 403, 439, 402, 295, 453, 455, 395, 457, 391, 54, @@ -1610,8 +1610,8 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 90, 72, 0, 0, 45, 42, 43, 44, 0, 36, 0, 40, 0, 38, 0, 0, 0, 34, 33, 41, - 48, 0, 0, 89, 454, 74, 382, 456, 458, 75, - 344, 344, 0, 356, 46, 294, 326, 330, 0, 331, + 48, 0, 382, 0, 89, 46, 454, 74, 456, 458, + 75, 344, 344, 0, 356, 294, 326, 330, 0, 331, 333, 335, 0, 11, 0, 0, 0, 401, 0, 0, 77, 405, 392, 0, 0, 477, 0, 70, 0, 7, 0, 0, 225, 230, 226, 0, 0, 0, 459, 88, @@ -1624,8 +1624,8 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 446, 441, 442, 443, 444, 445, 0, 0, 0, 0, 467, 469, 0, 0, 0, 92, 103, 8, 0, 35, 39, - 37, 31, 30, 29, 76, 0, 0, 88, 88, 48, - 0, 374, 88, 328, 332, 334, 0, 329, 88, 0, + 37, 31, 30, 29, 76, 0, 0, 88, 88, 88, + 48, 0, 374, 328, 332, 334, 0, 329, 88, 0, 88, 0, 390, 400, 404, 440, 0, 87, 0, 0, 81, 78, 79, 488, 486, 489, 487, 0, 484, 479, 472, 0, 228, 231, 88, 0, 359, 360, 364, 59, @@ -1640,8 +1640,8 @@ 234, 159, 164, 176, 180, 181, 0, 189, 193, 195, 0, 198, 199, 201, 200, 204, 205, 0, 209, 210, 211, 93, 0, 0, 28, 367, 77, 432, 464, 48, - 0, 345, 48, 342, 357, 358, 0, 0, 48, 47, - 0, 89, 336, 13, 350, 0, 0, 0, 0, 86, + 47, 0, 89, 48, 0, 345, 48, 342, 357, 358, + 0, 0, 336, 13, 350, 0, 0, 0, 0, 86, 85, 406, 0, 0, 480, 476, 0, 472, 0, 227, 229, 0, 0, 60, 57, 58, 0, 457, 0, 455, 296, 286, 285, 101, 412, 276, 389, 77, 416, 412, @@ -1650,8 +1650,8 @@ 261, 260, 263, 264, 262, 272, 0, 278, 100, 0, 95, 83, 424, 389, 0, 424, 0, 420, 77, 428, 233, 0, 102, 468, 0, 10, 48, 88, 0, 0, - 0, 338, 0, 0, 0, 0, 340, 370, 371, 375, - 46, 383, 352, 351, 354, 0, 0, 293, 355, 82, + 0, 383, 338, 0, 0, 0, 0, 340, 370, 371, + 375, 46, 352, 351, 354, 0, 0, 293, 355, 82, 80, 485, 0, 475, 473, 0, 361, 365, 434, 437, 0, 284, 291, 0, 297, 0, 412, 389, 0, 424, 0, 408, 0, 77, 415, 394, 0, 275, 122, 419, @@ -1668,37 +1668,37 @@ /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -643, -643, -643, -643, -643, -643, -643, 420, -643, -50, - -643, 32, -254, 0, -643, 400, -643, -643, -643, -643, - -643, -643, -643, 28, -584, -643, -643, -323, -231, -235, - -2, -643, -643, -643, 246, -291, -643, -281, -222, -83, - -643, -643, -643, -643, -643, 266, 16, 478, 181, 382, - -643, -280, -271, -643, -643, -643, -643, -54, -331, -643, - 145, -643, 20, -1, -62, -238, 124, 163, -246, -221, - -226, 308, -641, 17, 29, 19, 33, 22, 34, 37, - 456, -643, 23, -643, -643, -643, -643, -643, 129, 67, - 14, -643, -643, 41, -643, -643, -643, -643, 42, -643, - -643, -643, -643, 44, -643, -643, -357, -553, 1, 264, - -74, -55, -224, -643, -643, -643, -613, -643, -642, -643, - -563, -643, -643, -643, 3, -643, 590, -643, 507, 8, - -314, -12, -643, 11, -643, 750, 153, -643, -643, 150, - -643, 453, -643, 158 + -642, -642, -642, -642, -642, -642, -642, 387, -642, -50, + -642, 1, -310, -1, -642, 359, -642, -642, -642, -642, + -642, -642, -642, 30, -586, -642, -642, -278, -232, -236, + -2, -642, -642, -642, 207, -262, -642, -293, -211, -81, + -642, -642, -642, -642, -642, 247, 16, 447, 148, 353, + -642, -288, -295, -642, -642, -642, -642, -95, -319, -642, + 113, -642, 12, -6, -63, -250, 111, 202, -251, -247, + -241, 278, -641, 21, 36, 28, 38, 29, 39, 41, + 423, -642, 20, -642, -642, -642, -642, -642, 90, 42, + 17, -642, -642, 43, -642, -642, -642, -642, 45, -642, + -642, -642, -642, 47, -642, -642, -351, -547, 7, 226, + -68, -55, -215, -642, -642, -642, -604, -642, -635, -642, + -536, -642, -642, -642, -38, -642, 555, -642, 474, 11, + -385, -18, -642, 14, -642, 718, 112, -642, -642, 120, + -642, 425, -642, 130 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { 0, 1, 47, 299, 48, 662, 354, 2, 393, 236, - 664, 522, 266, 355, 50, 560, 51, 52, 53, 54, - 356, 245, 55, 357, 539, 540, 541, 542, 633, 57, - 373, 232, 458, 478, 452, 422, 485, 233, 427, 634, + 664, 517, 266, 355, 50, 560, 51, 52, 53, 54, + 356, 246, 55, 357, 539, 540, 541, 542, 633, 57, + 374, 232, 458, 478, 452, 422, 485, 233, 427, 634, 869, 878, 411, 412, 413, 414, 284, 472, 473, 447, 448, 449, 455, 419, 564, 569, 421, 887, 888, 786, 60, 803, 104, 61, 635, 62, 107, 63, 64, 65, 66, 391, 392, 358, 359, 360, 361, 362, 363, 364, - 517, 671, 365, 75, 530, 687, 76, 521, 557, 558, - 366, 415, 702, 367, 768, 889, 779, 677, 368, 383, - 774, 775, 251, 369, 81, 82, 83, 395, 470, 585, + 518, 675, 365, 75, 530, 687, 76, 522, 557, 558, + 366, 415, 702, 367, 768, 889, 780, 681, 368, 384, + 775, 776, 241, 369, 81, 82, 83, 395, 470, 585, 268, 85, 281, 282, 720, 810, 721, 722, 636, 756, 637, 638, 668, 843, 799, 800, 283, 495, 234, 285, 87, 88, 89, 287, 501, 93, 696, 697, 94, 95, @@ -1710,503 +1710,491 @@ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 58, 278, 49, 84, 372, 237, 468, 98, 270, 271, - 86, 99, 388, 90, 288, 102, 77, 105, 59, 67, - 387, 69, 280, 450, 71, 74, 269, 269, 269, 109, - 56, 68, 390, 269, 113, 70, 72, 389, 532, 73, - 105, 105, 461, 78, 79, 464, 80, 466, 754, 459, - 471, 401, 703, 396, 397, 703, 482, 795, 543, 252, - 590, 118, 120, 257, 798, 410, 253, 751, 504, 254, - -476, 757, 250, 286, 246, 247, -300, 248, 752, 875, - 249, 408, 769, 279, 11, 303, 475, 685, 764, 566, - 570, 489, 772, 204, 453, 610, 876, 208, 264, 349, - 544, 805, 305, 618, 290, 30, 811, 238, 307, -300, - 526, 526, 844, 701, 640, 3, 514, 527, 841, 399, - 859, 350, 611, 498, 400, -66, -300, 535, 223, 96, - 619, 97, 587, 808, 291, 845, 91, 23, 529, 773, - 429, 641, 304, 430, 431, 432, 433, 434, 435, 292, - 26, 27, 28, 29, 404, 110, 640, 293, 308, -300, - 31, 115, 388, 806, 490, 491, 492, 493, 494, 278, - 272, 533, -301, 96, 824, 97, 405, 96, 46, 97, - 693, 92, -223, 648, 563, 565, 565, 551, 46, 819, - 280, 476, 822, 848, 278, 278, 409, 101, 545, 686, - 820, 116, 798, 765, 590, 37, 121, 694, 665, 46, - 39, 273, 402, 562, 272, 280, 280, 872, 272, 13, - 96, 436, 97, 13, 661, 96, 371, 97, 666, 854, - 239, 269, 477, 546, 58, 58, 100, 84, 84, 105, - 375, 376, 105, 105, 86, 86, 851, 90, 90, 106, - 428, 279, 59, 59, 849, 273, 13, 856, 108, 273, - 526, 272, 587, 118, 120, 673, 877, 879, 608, 609, - 274, 111, 723, 437, 388, 700, 279, 279, 704, 399, - 388, 705, 670, 670, 758, 112, 870, 680, 387, 880, - 20, 103, 667, 97, 675, 565, 588, 589, 590, 674, - 390, 275, 273, 399, 117, 389, 97, 438, 813, 515, - 423, 279, 278, 258, 274, 423, 25, 524, 274, 410, - 46, 439, 460, 425, 567, 483, 426, 469, 114, 488, - 747, 496, 497, 280, 46, 46, 503, 272, 669, 672, - 486, 276, 13, 262, 749, 275, 235, 440, 552, 275, - 441, 442, 536, -61, 718, 444, 445, 277, 46, 762, - 258, 274, -224, -292, 537, 34, 761, -292, 446, 790, - 279, 255, 119, 516, 97, 256, 259, 97, 273, 260, - 374, 40, 97, 261, 377, 631, 97, 523, 378, 276, - 97, 586, 275, 263, 279, 532, 399, 4, 469, 97, - 590, 632, 605, 606, 607, 277, 16, 759, 531, 279, - -62, -300, 608, 609, 556, 771, -64, -300, 776, 568, - 46, 265, 886, 267, 781, 499, 500, -63, 289, -65, - 388, 297, 631, 278, 298, 300, 301, 274, 302, 306, - 309, 379, 310, 399, 311, 312, 313, 314, 632, 532, - 778, 315, 388, -67, 280, 777, 588, 589, 590, 316, - 387, 593, 594, 532, 317, 318, 319, 320, 275, 279, - 630, 321, 390, 322, 323, 324, 325, 389, 326, 327, - -68, 328, 329, 718, 802, 330, 331, 332, 718, 333, - 272, 814, 532, 334, 603, 604, 605, 606, 607, -69, - 335, 336, 719, 337, 338, 339, 608, 609, 716, 340, - 341, 342, 827, 724, 343, 279, 344, 345, 388, 399, - 681, 586, 679, 84, 717, 346, 58, 834, 49, 84, - 86, 273, 269, 90, 347, 348, 86, 46, 59, 90, - 386, 380, 77, 826, 59, 67, 831, 69, 381, 755, - 71, 74, 382, 384, -328, 394, 56, 68, 398, 403, - 406, 70, 72, 407, 706, 73, 708, 416, 417, 78, - 79, 867, 80, 709, 707, 718, 860, 418, 429, 420, - 424, 430, 431, 432, 433, 434, 435, 451, 456, 457, - 274, 388, 462, 463, 465, 881, 603, 604, 605, 606, - 607, 479, 481, 680, 502, 505, 507, 506, 608, 609, - 874, 863, 388, 511, 767, 508, 862, 509, 510, 512, - 387, 275, -300, 513, 520, 278, 519, 525, 550, 279, - 469, 719, 390, 279, 809, 892, 719, 389, 534, 553, - 554, 555, 559, 571, 572, 573, 280, 565, 804, 815, - 565, 423, 601, 602, 603, 604, 605, 606, 607, 436, - 574, 716, 575, 576, 469, 612, 608, 609, 269, 613, - 614, 615, 399, 646, 616, 617, 663, 717, 650, 620, - 621, 622, 252, 623, 624, 785, 625, 278, 84, 253, - 469, 626, 254, 627, 629, 639, 642, 246, 676, 454, - 556, 643, 454, 644, 645, 279, 647, 279, 280, 279, - 467, 437, 649, 474, 652, 469, 653, 654, 655, 656, - 474, 657, 487, 719, 658, 659, 660, 684, 429, 688, - 691, 430, 431, 432, 433, 434, 435, 692, 695, 698, - 701, 710, 711, 712, 727, 438, 745, 750, 748, 766, - 763, 279, 770, 780, 279, 239, 469, 782, 783, 439, - 92, 788, 837, 793, 797, 58, 801, 556, 84, 279, - 840, 832, 833, 812, 818, 86, 821, 823, 90, 835, - 454, 538, 836, 59, 839, 440, 252, 846, 441, 442, - 443, 825, 830, 444, 445, 842, 847, 850, 852, 857, - 858, 865, 689, 873, 866, 882, 446, 885, 279, 436, - 871, 469, 838, 528, 883, 891, 484, 561, 713, 279, - 699, 760, 577, 578, 579, 580, 581, 582, 584, 884, - 796, 890, 787, 861, 682, 829, 681, 518, 679, 84, - 714, 480, 385, 279, 296, 792, 86, 868, 279, 90, - 794, 791, 0, 0, 59, 0, 0, 549, 0, 0, - 0, 437, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 469, 0, 0, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 438, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 439, - 0, 0, 0, 0, 0, 0, 0, 0, 580, 0, - 0, 0, 0, 0, 0, 0, 429, 0, 583, 430, - 431, 432, 433, 434, 435, 440, 0, 0, 441, 442, - 443, 0, 0, 444, 445, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 446, 0, 0, 0, - 9, 0, 10, 0, 0, 0, 0, 0, 11, 0, - 725, 726, 13, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, - 0, 746, 0, 0, 17, 0, 0, 454, 0, 0, - 240, 19, 0, 0, 0, 0, 20, 436, 0, 0, - 0, 21, 0, 0, 22, 0, 0, 0, 0, 0, - 0, 23, 474, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 0, 26, 27, 28, 29, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 588, 589, - 590, 591, 592, 593, 594, 0, 0, 0, 0, 437, - 0, 0, 0, 0, 0, 597, 0, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 0, 0, 0, - 0, 34, 0, 0, 608, 609, 0, 0, 36, 37, - 38, 628, 0, 438, 39, 0, 0, 40, 0, 0, - 0, 243, 0, 0, 0, 0, 0, 439, 0, 0, - 244, 0, 43, 0, 0, 0, 0, 4, 5, 6, - 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 440, 0, 0, 441, 442, 443, 0, - 0, 444, 445, 0, 0, 8, 0, 0, 0, 0, - 0, 9, 0, 10, 446, 0, 0, 0, 0, 11, - 12, 0, 0, 13, 0, 0, 0, 0, 0, 0, - 14, 0, 352, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 19, 0, 853, 0, 0, 20, 855, 0, + 58, 49, 98, 278, 373, 237, 99, 388, 387, 84, + 102, 389, 105, 86, 270, 271, 90, 390, 59, 77, + 288, 280, 74, 67, 109, 459, 269, 269, 269, 113, + 69, 71, 56, 269, 461, 105, 105, 464, 68, 466, + 70, 72, 471, 73, 532, 78, 754, 79, 482, 80, + 401, 468, 450, 118, 120, 543, 504, 795, 257, 475, + 514, 587, 396, 397, 410, 252, 703, 286, 307, 253, + 703, 798, 254, 13, 247, 251, 875, 238, 279, 248, + 769, -476, 590, 96, 752, 97, 249, 250, 303, 408, + -300, 773, 764, 876, 751, 264, 305, 544, 757, -300, + 204, 566, 570, 535, 208, 453, 290, 20, 349, 844, + 805, 30, 685, 425, 100, 811, 426, 96, 308, 97, + 610, 96, 3, 97, 272, 91, 618, 640, 640, 13, + 350, 808, 845, 25, 498, 223, 291, 101, 774, -66, + -300, 239, 110, 590, 529, 304, 404, 611, 115, -300, + 665, 292, 46, 619, 641, 648, -223, 388, 272, 293, + 693, 551, 272, 13, 476, 273, -62, -300, 405, 806, + 666, 278, 824, 588, 589, 590, 591, 592, 593, 594, + 533, 526, 34, 563, 565, 565, 526, 694, 527, 280, + 258, 587, 92, 841, 524, 545, 278, 278, 40, 273, + 240, 723, 848, 273, 409, 477, 820, 765, 106, 798, + 677, 686, 661, 46, 280, 280, 819, 872, 402, 822, + 371, 399, 499, 500, 274, -292, 400, 854, 590, -292, + 546, 269, 108, 372, 58, 58, 105, 377, 105, 105, + 116, -64, -300, 84, 84, 121, 279, 86, 86, 428, + 90, 90, 59, 59, 111, 275, 118, 120, 274, -301, + 849, 489, 274, 877, 258, 112, 96, 700, 97, 262, + 388, 279, 279, 851, 678, 388, 387, 114, 235, 389, + 679, 671, 674, 674, 856, 390, 96, 880, 97, 275, + 608, 609, 704, 275, 565, 276, 705, 701, 526, 46, + 103, 667, 97, 562, 859, 879, 279, 272, 515, -61, + 255, 277, 399, 870, 278, 272, 423, 758, 410, 483, + 749, 423, 747, 488, 259, 496, 497, 469, 460, 631, + 503, 260, 280, 631, 490, 491, 492, 493, 494, 297, + 399, 605, 606, 607, 399, 632, 486, 552, 273, 632, + 399, 608, 609, 718, 16, 813, 273, 46, 761, 771, + 117, 567, 97, 772, 261, 279, 777, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 119, 256, 97, 97, + 516, 272, 523, 608, 609, 376, 13, 97, 762, 279, + 263, 586, 46, 588, 589, 590, 673, 265, 469, 46, + 378, 532, 97, 676, 279, 267, 759, 274, 46, 556, + 298, 531, -224, -63, 790, 274, 379, 289, 97, 568, + -65, 4, 273, 97, 603, 604, 605, 606, 607, 388, + 46, 301, 886, 778, 300, 278, 608, 609, 275, 779, + 302, 306, 398, 46, 309, 310, 275, 388, 387, 311, + 312, 389, 313, 280, 375, 532, 827, 390, 314, 315, + 406, 316, 317, 318, 279, 319, 320, 321, 322, 532, + 323, 324, 325, 326, 327, 328, 630, 329, 276, 330, + 331, 274, 718, 332, 333, 334, 716, 718, 335, 336, + 814, 337, 338, 802, 277, 339, 340, 399, 532, 341, + 342, 343, 717, 344, 719, 345, 346, 347, 348, 380, + 279, 381, 275, 388, 382, 672, 670, 826, -67, 724, + 860, 586, 383, 834, 84, 386, 58, 49, 86, -68, + -69, 90, 269, 59, -328, 84, 394, 403, 416, 86, + 407, 417, 90, 418, 59, 77, 420, 867, 74, 67, + 424, 755, 716, 451, 874, 831, 69, 71, 56, 456, + 457, 462, 463, 399, 68, 465, 70, 72, 717, 73, + 706, 78, 708, 79, 718, 80, 709, 707, 479, 892, + 481, 502, 505, 506, 511, 555, 388, 881, 508, 507, + 862, 603, 604, 605, 606, 607, 863, 509, 510, 512, + 513, 521, 671, 608, 609, -300, 525, 388, 387, 520, + 550, 389, 534, 553, 767, 554, 559, 390, 571, 572, + 588, 589, 590, 576, 279, 593, 594, 278, 279, 613, + 469, 573, 574, 719, 575, 612, 809, 614, 719, 615, + 616, 617, 646, 620, 621, 280, 565, 804, 622, 565, + 650, 623, 624, 625, 626, 815, 627, 423, 629, 639, + 642, 643, 644, 11, 469, 645, 657, 647, 269, 663, + 454, 649, 652, 454, 653, 654, 655, 680, 656, 252, + 658, 467, 659, 253, 474, 785, 254, 684, 247, 278, + 469, 474, 660, 487, 84, 556, 688, 691, 692, 695, + 279, 698, 279, 701, 279, 710, 429, 280, 727, 430, + 431, 432, 433, 434, 435, 469, 23, 711, 745, 712, + 748, 750, 763, 770, 766, 719, 781, 240, 782, 26, + 27, 28, 29, 783, 788, 92, 793, 797, 801, 31, + 812, 837, 840, 818, 821, 823, 279, 825, 835, 279, + 842, 454, 538, 846, 830, 836, 469, 839, 847, 858, + 850, 865, 556, 852, 279, 58, 857, 832, 833, 871, + 873, 882, 866, 883, 84, 885, 561, 891, 86, 713, + 528, 90, 838, 59, 37, 484, 884, 436, 760, 39, + 890, 796, 252, 577, 578, 579, 580, 581, 582, 584, + 787, 699, 714, 279, 682, 519, 868, 385, 480, 794, + 829, 469, 296, 0, 279, 792, 601, 602, 603, 604, + 605, 606, 607, 791, 0, 0, 0, 0, 861, 549, + 608, 609, 0, 0, 0, 0, 672, 670, 279, 437, + 0, 0, 0, 279, 0, 84, 0, 0, 0, 86, + 0, 0, 90, 0, 59, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 469, 0, 438, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 439, 0, 580, + 0, 0, 0, 0, 0, 0, 0, 429, 0, 583, + 430, 431, 432, 433, 434, 435, 0, 0, 0, 0, + 0, 0, 0, 440, 0, 0, 441, 442, 536, 0, + 429, 444, 445, 430, 431, 432, 433, 434, 435, 0, + 537, 9, 0, 10, 446, 0, 0, 0, 0, 11, + 0, 725, 726, 13, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 0, 746, 0, 0, 17, 0, 0, 454, 0, + 0, 242, 19, 0, 0, 0, 0, 20, 436, 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 24, - 353, 0, 0, 25, 454, 26, 27, 28, 29, 30, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, - 0, 0, 32, 600, 601, 602, 603, 604, 605, 606, - 607, 0, 0, 0, 0, 0, 0, 0, 608, 609, - 33, 0, 4, 5, 6, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 35, 36, - 37, 38, 0, 0, 0, 39, 0, 0, 40, 0, - 8, 0, 41, 0, 0, 0, 9, 0, 10, 0, - 0, 42, 0, 43, 11, 12, 0, 0, 13, 0, - 0, 44, 45, 0, 0, 14, 0, 352, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 0, 0, 23, 474, 0, 0, 0, 0, 0, 0, + 0, 436, 0, 25, 0, 26, 27, 28, 29, 0, + 0, 0, 0, 429, 0, 31, 430, 431, 432, 433, + 434, 435, 0, 0, 0, 0, 0, 0, 0, 0, + 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 437, 0, 0, 0, 0, 0, 36, + 37, 38, 0, 0, 438, 39, 0, 0, 40, 0, + 0, 0, 244, 0, 0, 0, 0, 0, 439, 0, + 0, 245, 0, 43, 0, 0, 0, 438, 0, 0, + 0, 44, 45, 0, 436, 0, 0, 0, 0, 0, + 0, 439, 0, 0, 440, 0, 0, 441, 442, 443, + 0, 0, 444, 445, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 446, 0, 440, 0, 0, + 441, 442, 443, 0, 0, 444, 445, 0, 0, 0, + 0, 0, 0, 0, 689, 0, 437, 0, 446, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 6, 853, 0, 0, 0, 855, + 0, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 439, 454, 9, 0, 10, 0, + 0, 0, 0, 0, 11, 12, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 14, 0, 352, 0, 0, + 440, 0, 0, 441, 442, 443, 0, 16, 444, 445, 17, 0, 0, 4, 5, 6, 18, 19, 0, 0, - 46, 0, 20, 0, 370, 0, 0, 21, 0, 0, + 0, 446, 20, 0, 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 8, 0, 0, 24, 353, 0, 9, 25, 10, 26, 27, 28, 29, 30, 11, 12, 0, 0, 13, - 31, 0, 0, 0, 0, 0, 14, 32, 15, 0, + 31, 0, 0, 0, 0, 0, 14, 32, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 17, 0, 0, 0, 33, 0, 18, 19, 0, 0, 0, 0, 20, 0, 0, 0, 34, 21, 0, 0, 22, 0, 35, 36, 37, 38, 0, 23, 0, - 39, 0, 0, 40, 0, 24, 0, 41, 0, 25, + 39, 0, 0, 40, 0, 24, 353, 41, 0, 25, 0, 26, 27, 28, 29, 30, 42, 0, 43, 0, 0, 31, 0, 0, 0, 0, 44, 45, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 5, 6, 0, 0, 0, 0, 33, 0, 588, 589, - 590, 591, 592, 593, 594, 46, 0, 0, 34, 828, + 0, 0, 597, 0, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 0, 0, 33, 0, 4, 5, + 6, 608, 609, 690, 0, 46, 0, 0, 34, 370, 0, 0, 0, 0, 35, 36, 37, 38, 0, 0, - 0, 39, 0, 9, 40, 10, 0, 0, 41, 0, - 0, 11, 0, 0, 0, 13, 0, 42, 0, 43, - 0, 0, 14, 0, 0, 0, 0, 44, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 4, 5, 6, 18, 19, 0, 0, 0, 0, 20, - 0, 0, 0, 0, 21, 0, 46, 22, 0, 0, - 683, 0, 0, 0, 23, 0, 0, 0, 0, 0, - 0, 24, 0, 0, 9, 25, 10, 26, 27, 28, - 29, 0, 11, 0, 0, 0, 13, 31, 0, 0, - 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 33, 0, 18, 19, 0, 0, 0, 0, - 20, 0, 0, 0, 34, 21, 0, 0, 22, 0, - 0, 36, 37, 38, 0, 23, 0, 39, 0, 0, - 40, 0, 24, 0, 41, 0, 25, 0, 26, 27, - 28, 29, 0, 42, 0, 43, 0, 0, 31, 0, + 0, 39, 0, 0, 40, 0, 8, 0, 41, 0, + 0, 0, 9, 0, 10, 0, 0, 42, 0, 43, + 11, 12, 0, 0, 13, 0, 0, 44, 45, 0, + 0, 14, 0, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 17, 0, 0, 4, + 5, 6, 18, 19, 0, 0, 46, 0, 20, 0, + 828, 0, 0, 21, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 9, 25, 10, 26, 27, 28, 29, + 30, 11, 0, 0, 0, 13, 31, 0, 0, 0, + 0, 0, 14, 32, 0, 0, 0, 0, 0, 588, + 589, 590, 591, 592, 593, 594, 0, 17, 0, 0, + 0, 33, 0, 18, 19, 0, 0, 0, 0, 20, + 0, 0, 0, 34, 21, 0, 0, 22, 0, 35, + 36, 37, 38, 0, 23, 0, 39, 0, 0, 40, + 0, 24, 0, 41, 0, 25, 0, 26, 27, 28, + 29, 0, 42, 0, 43, 0, 0, 31, 0, 0, + 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 5, 6, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 0, 0, 34, 683, 0, 0, 0, 0, + 0, 36, 37, 38, 0, 0, 0, 39, 0, 9, + 40, 10, 0, 0, 41, 0, 0, 11, 0, 0, + 0, 13, 0, 42, 0, 43, 0, 0, 14, 0, 0, 0, 0, 44, 45, 0, 0, 0, 0, 0, - 0, 4, 0, 6, 601, 602, 603, 604, 605, 606, - 607, 0, 0, 33, 0, 0, 0, 0, 608, 609, - 0, 0, 46, 0, 0, 34, 678, 0, 0, 0, - 0, 0, 36, 37, 38, 9, 0, 10, 39, 0, - 0, 40, 0, 11, 0, 41, 0, 13, 0, 0, - 0, 0, 0, 0, 42, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 0, 0, 17, - 0, 0, 0, 0, 0, 240, 19, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 21, 0, 0, 22, - 0, 0, 0, 46, 0, 0, 23, 864, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 25, 0, 26, - 27, 28, 29, 0, 0, 0, 0, 0, 0, 31, - 0, -3, 0, 0, 4, 5, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 4, 0, 6, 18, + 19, 0, 0, 0, 0, 20, 0, 0, 0, 0, + 21, 0, 46, 22, 0, 0, 669, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 9, 25, 10, 26, 27, 28, 29, 0, 11, 0, + 0, 0, 13, 31, 600, 601, 602, 603, 604, 605, + 606, 607, 0, 0, 0, 0, 0, 0, 0, 608, + 609, 0, 0, 0, 17, 0, 0, 0, 33, 0, + 242, 19, 0, 0, 0, 0, 20, 0, 0, 0, + 34, 21, 0, 0, 22, 0, 0, 36, 37, 38, + 0, 23, 0, 39, 0, 0, 40, 0, 0, 0, + 41, 0, 25, 0, 26, 27, 28, 29, 0, 42, + 0, 43, 0, 0, 31, 0, 0, 0, 0, 44, + 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -3, + 0, 0, 4, 5, 6, 0, 0, 0, 46, 0, + 0, 34, 864, 7, 0, 0, 0, 0, 36, 37, + 38, 0, 0, 0, 39, 0, 0, 40, 0, 0, + 8, 244, 0, 0, 0, 0, 9, 0, 10, 0, + 245, 0, 43, 0, 11, 12, 0, 0, 13, 0, + 44, 45, 0, 0, 0, 14, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 17, 0, 0, 0, 0, 0, 18, 19, 0, 46, + 0, 0, 20, 784, 0, 0, 0, 21, 0, 0, + 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, + 26, 27, 28, 29, 30, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 34, 0, 9, 0, - 10, 0, 0, 36, 37, 38, 11, 12, 0, 39, - 13, 0, 40, 0, 0, 0, 243, 14, 0, 15, - 0, 0, 0, 0, 0, 244, 0, 43, 0, 16, - 0, 0, 17, 0, 0, 44, 45, 0, 18, 19, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, - 0, 0, 0, 0, 46, 0, 24, 0, 784, 0, - 25, 0, 26, 27, 28, 29, 30, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, + 0, 0, 0, 0, 0, 33, 0, 0, 4, 5, + 6, 0, 0, 0, 0, 0, 0, 34, 351, 0, + 0, 0, 0, 35, 36, 37, 38, 0, 0, 0, + 39, 0, 0, 40, 0, 0, 8, 41, 0, 0, + 0, 0, 9, 0, 10, 0, 42, 0, 43, 0, + 11, 12, 0, 0, 13, 0, 44, 45, 0, 0, + 0, 14, 0, 352, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 17, 0, 0, 0, + 0, 0, 18, 19, 0, 46, 0, 0, 20, 0, + 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, + 4, 0, 6, 23, 0, 0, 0, 0, 0, 0, + 24, 353, 0, 0, 25, 0, 26, 27, 28, 29, + 30, 0, 0, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 0, 32, 9, 0, 10, 0, 0, 0, + 0, 272, 11, 0, 0, 0, 13, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 17, 35, + 36, 37, 38, 0, 242, 19, 39, 0, 0, 40, + 20, 0, 273, 41, 0, 21, 0, 0, 22, 0, + 0, 0, 42, 0, 43, 23, 0, 0, 0, 0, + 0, 0, 44, 45, 0, 0, 25, 0, 26, 27, + 28, 29, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 4, 5, 6, 0, 0, 0, 0, 0, 0, 34, - 351, 0, 0, 0, 0, 35, 36, 37, 38, 0, - 0, 0, 39, 0, 0, 40, 0, 0, 8, 41, - 0, 0, 0, 0, 9, 0, 10, 0, 42, 0, - 43, 0, 11, 12, 0, 0, 13, 0, 44, 45, - 0, 0, 0, 14, 0, 352, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 0, 17, 0, - 0, 0, 0, 0, 18, 19, 0, 46, 0, 0, + 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 0, 0, 0, 4, 0, 6, 0, + 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, + 0, 0, 36, 37, 38, 0, 0, 0, 39, 0, + 0, 40, 275, 0, 0, 244, 0, 0, 0, 0, + 9, 0, 10, 0, 245, 0, 43, 272, 11, 0, + 0, 0, 13, 0, 44, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 753, 0, 17, 0, 0, 4, 0, 6, + 242, 19, 0, 46, 0, 0, 20, 0, 273, 0, + 0, 21, 0, 0, 22, 0, 0, 0, 789, 0, + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 25, 10, 26, 27, 28, 29, 0, 11, + 0, 0, 0, 13, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 0, 0, 17, 0, 274, 0, 0, + 0, 242, 19, 0, 0, 0, 0, 20, 0, 0, + 0, 34, 21, 0, 0, 22, 0, 0, 36, 37, + 38, 0, 23, 0, 39, 0, 0, 40, 275, 0, + 0, 244, 0, 25, 0, 26, 27, 28, 29, 0, + 245, 0, 43, 0, 0, 31, 0, 0, 0, 0, + 44, 45, 0, 0, 0, 0, 0, 0, 4, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 807, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 0, 46, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 36, + 37, 38, 9, 0, 10, 39, 0, 0, 40, 0, + 11, 0, 244, 0, 13, 0, 0, 0, 0, 0, + 0, 245, 0, 43, 0, 0, 0, 0, 0, 0, + 0, 44, 45, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 242, 19, 0, 0, 0, 0, 20, 0, + 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, + 46, 0, 0, 23, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 0, 25, 0, 26, 27, 28, 29, + 0, 0, 0, 0, 0, 597, 31, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 0, 0, 0, + 0, 0, 0, 0, 608, 609, 0, 0, 0, 0, + 0, 628, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 36, 37, 38, 0, 0, 0, 39, 0, 0, 40, + 0, 0, 0, 244, 0, 588, 589, 590, 591, 592, + 593, 594, 245, 596, 43, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, + 597, 0, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 0, 0, 0, 0, 0, 0, 0, 608, + 609, 46, 0, 0, 0, 0, 651, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 588, 589, 590, + 591, 592, 593, 594, 588, 589, 590, 591, 592, 593, + 594, 0, 0, 0, 0, 597, 0, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 0, 0, 0, + 0, 0, 0, 0, 608, 609, 0, 0, 0, 0, + 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 597, 0, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 0, 0, 0, 0, 0, + 0, 0, 608, 609, 817, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 0, 0, + 0, 0, 0, 0, 0, 608, 609, 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, 597, 816, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 0, 0, 0, 0, 0, 0, 0, 608, 609, 597, + 0, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 0, 4, 0, 6, 0, 0, 0, 608, 609, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 0, + 8, 0, 0, 0, 608, 609, 9, 0, 10, 0, + 0, 0, 0, 0, 11, 12, 0, 0, 13, 0, + 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -349, 0, 0, + 17, 0, 0, 0, 0, 0, 242, 19, 0, 0, + 0, 0, 20, 0, 9, 0, 10, 21, 0, 0, + 22, 0, 11, 0, 0, 0, 13, 23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 26, 27, 28, 29, 30, 0, 0, 243, 17, 0, + 31, 0, 0, 0, 242, 19, 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, 4, 0, 6, 23, 0, 0, 0, 0, - 0, 0, 24, 353, 0, 0, 25, 0, 26, 27, - 28, 29, 30, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 32, 9, 0, 10, 0, - 0, 0, 0, 272, 11, 0, 0, 0, 13, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 25, 34, 26, 27, + 28, 29, 0, 35, 36, 37, 38, 0, 31, 0, + 39, 0, 0, 40, 0, 0, 9, 244, 10, 0, + 0, 0, 0, 0, 11, 0, 245, 0, 43, 0, + 4, 0, 97, 0, 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 17, 35, 36, 37, 38, 0, 240, 19, 39, 0, - 0, 40, 20, 0, 273, 41, 0, 21, 0, 0, - 22, 0, 0, 0, 42, 0, 43, 23, 0, 0, - 0, 0, 0, 0, 44, 45, 0, 0, 25, 0, - 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 274, 0, 0, 0, 0, 4, 0, - 6, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 36, 37, 38, 0, 0, 0, - 39, 0, 0, 40, 275, 0, 0, 243, 0, 0, - 0, 0, 9, 0, 10, 0, 244, 0, 43, 272, - 11, 0, 0, 0, 13, 0, 44, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 753, 0, 17, 0, 0, 4, - 0, 6, 240, 19, 0, 46, 0, 0, 20, 0, - 273, 0, 0, 21, 0, 0, 22, 0, 0, 0, - 789, 0, 0, 23, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 25, 10, 26, 27, 28, 29, - 0, 11, 0, 0, 0, 13, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 0, 0, 17, 0, 274, - 0, 0, 0, 240, 19, 0, 0, 0, 0, 20, - 0, 0, 0, 34, 21, 0, 0, 22, 0, 0, - 36, 37, 38, 0, 23, 0, 39, 0, 0, 40, - 275, 0, 0, 243, 0, 25, 0, 26, 27, 28, - 29, 0, 244, 0, 43, 0, 0, 31, 0, 0, - 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, - 4, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 807, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 0, 46, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 36, 37, 38, 9, 0, 10, 39, 0, 0, - 40, 0, 11, 0, 243, 0, 13, 0, 0, 0, - 0, 0, 0, 244, 0, 43, 0, 0, 0, 0, - 0, 0, 0, 44, 45, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 240, 19, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 21, 0, 0, 22, 0, - 0, 0, 46, 0, 0, 23, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 0, 25, 0, 26, 27, - 28, 29, 0, 0, 0, 0, 0, 597, 31, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 0, - 0, 0, 0, 0, 0, 0, 608, 609, 0, 0, - 0, 0, 0, 651, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 36, 37, 38, 0, 0, 0, 39, 0, - 0, 40, 0, 0, 0, 243, 0, 588, 589, 590, - 591, 592, 593, 594, 244, 596, 43, 0, 0, 0, + 17, 0, 36, 37, 38, 0, 242, 19, 39, 0, + 0, 40, 0, 0, 9, 244, 10, 21, 0, 0, + 22, 0, 11, 0, 245, 0, 43, 23, 0, 0, 0, 0, 0, 0, 44, 45, 0, 0, 0, 0, - 0, 0, 597, 0, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 0, 0, 0, 0, 0, 0, - 0, 608, 609, 46, 0, 0, 0, 0, 715, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 0, 0, + 26, 27, 28, 29, 0, 0, 0, 0, 17, 0, + 31, 0, 0, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 23, 0, 0, 0, 583, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, + 28, 29, 0, 0, 36, 37, 38, 0, 31, 0, + 39, 0, 0, 0, 0, 0, 0, 244, 0, 0, + 0, 9, 0, 10, 0, 0, 245, 0, 43, 11, + 0, 0, 0, 13, 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, - 589, 590, 591, 592, 593, 594, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 597, 0, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 588, - 589, 590, 591, 592, 593, 594, 608, 609, 690, 0, + 0, 0, 0, 37, 38, 17, 0, 0, 39, 0, + 583, 242, 19, 0, 0, 0, 0, 20, 0, 0, + 0, 0, 21, 0, 0, 22, 43, 0, 0, 0, + 0, 0, 23, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 9, 25, 10, 26, 27, 28, 29, 0, + 11, 0, 0, 0, 0, 31, 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, 597, 0, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 0, 0, 0, - 0, 0, 0, 0, 608, 609, 817, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 0, 0, 0, 0, 0, 0, 0, 608, 609, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 242, 19, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 21, 0, 0, 22, 0, 0, 36, + 37, 38, 0, 23, 0, 39, 0, 0, 40, 0, + 0, 0, 244, 0, 0, 0, 26, 27, 28, 29, + 0, 245, 0, 43, 0, 0, 31, 0, 0, 0, + 0, 44, 45, 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, - 597, 816, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 0, 0, 0, 0, 0, 0, 0, 608, - 609, 597, 0, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 0, 0, 0, 0, 0, 0, 0, - 608, 609, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 0, 0, 0, 0, 0, 0, 0, 608, - 609, 0, 0, 4, 0, 6, 0, 0, 0, 0, - 0, 0, 0, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 0, 0, 0, 0, 0, 0, 0, 608, - 609, 8, 0, 0, 0, 0, 0, 9, 0, 10, - 0, 0, 0, 0, 0, 11, 12, 0, 0, 13, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -349, 0, - 0, 17, 0, 0, 4, 0, 6, 240, 19, 0, - 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, - 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 25, - 10, 26, 27, 28, 29, 30, 11, 0, 241, 0, - 13, 31, 0, 0, 0, 0, 242, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 240, 19, - 0, 0, 0, 0, 20, 0, 0, 0, 34, 21, - 0, 0, 22, 0, 35, 36, 37, 38, 0, 23, - 0, 39, 0, 0, 40, 0, 0, 0, 243, 4, - 25, 6, 26, 27, 28, 29, 0, 244, 0, 43, - 0, 0, 31, 0, 0, 0, 0, 44, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, - 0, 11, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 36, 37, 38, 0, - 0, 4, 39, 97, 0, 40, 0, 17, 0, 243, - 0, 0, 0, 240, 19, 0, 0, 0, 244, 0, - 43, 0, 583, 0, 21, 0, 0, 22, 44, 45, - 0, 0, 0, 0, 23, 9, 0, 10, 0, 0, - 0, 0, 0, 11, 0, 0, 0, 26, 27, 28, - 29, 0, 0, 0, 9, 0, 10, 31, 0, 0, - 0, 0, 11, 0, 0, 0, 13, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 21, 0, 17, 22, - 0, 0, 0, 0, 240, 19, 23, 0, 0, 0, - 20, 36, 37, 38, 0, 21, 0, 39, 22, 26, - 27, 28, 29, 0, 243, 23, 0, 0, 0, 31, - 0, 0, 0, 244, 0, 43, 25, 583, 26, 27, - 28, 29, 0, 44, 45, 0, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 10, 0, 0, 37, 38, 0, 11, 0, 39, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 36, 37, 38, 0, 0, 43, 39, 0, - 0, 40, 0, 17, 0, 243, 45, 0, 0, 240, - 19, 0, 0, 0, 244, 0, 43, 0, 0, 0, - 21, 0, 0, 22, 44, 45, 0, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 26, 27, 28, 29, 0, 0, 0, - 0, 0, 0, 31, 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, 0, 0, 0, 36, 37, 38, - 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, - 243, 0, 0, 0, 0, 122, 123, 0, 0, 244, - 124, 43, 125, 126, 127, 128, 129, 0, 130, 44, - 45, 131, 0, 132, 0, 0, 0, 133, 134, 0, - 135, 136, 137, 138, 139, 140, 0, 141, 0, 142, - 143, 144, 0, 145, 146, 147, 148, 149, 0, 150, - 0, 0, 151, 152, 153, 154, 155, 0, 0, 156, - 157, 158, 159, 0, 0, 0, 160, 161, 0, 162, - 163, 0, 164, 165, 166, 167, 168, 169, 0, 170, - 171, 172, 173, 174, 175, 0, 0, 176, 0, 0, - 177, 0, 0, 0, 0, 0, 178, 179, 0, 180, - 181, 0, 182, 183, 184, 0, 0, 0, 0, 185, - 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, - 194, 195, 196, 197, 0, 198, 0, 199, 0, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, - 210, 0, 211, 212, 0, 0, 0, 0, 0, 213, - 0, 0, 214, 0, 215, 0, 216, 217, 0, 0, - 218, 219, 220, 221, 0, 0, 222, 0, 223, 0, - 224, 225, 226, 227, 228, 229, 230, 0, 0, 231 + 36, 37, 38, 0, 0, 0, 39, 0, 0, 0, + 0, 0, 0, 244, 0, 0, 0, 0, 122, 123, + 0, 0, 245, 124, 43, 125, 126, 127, 128, 129, + 0, 130, 44, 45, 131, 0, 132, 0, 0, 0, + 133, 134, 0, 135, 136, 137, 138, 139, 140, 0, + 141, 0, 142, 143, 144, 0, 145, 146, 147, 148, + 149, 0, 150, 0, 0, 151, 152, 153, 154, 155, + 0, 0, 156, 157, 158, 159, 0, 0, 0, 160, + 161, 0, 162, 163, 0, 164, 165, 166, 167, 168, + 169, 0, 170, 171, 172, 173, 174, 175, 0, 0, + 176, 0, 0, 177, 0, 0, 0, 0, 0, 178, + 179, 0, 180, 181, 0, 182, 183, 184, 0, 0, + 0, 0, 185, 186, 187, 0, 188, 189, 190, 0, + 191, 192, 193, 194, 195, 196, 197, 0, 198, 0, + 199, 0, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 0, 209, 210, 0, 211, 212, 0, 0, 0, + 0, 0, 213, 0, 0, 214, 0, 215, 0, 216, + 217, 0, 0, 218, 219, 220, 221, 0, 0, 222, + 0, 223, 0, 224, 225, 226, 227, 228, 229, 230, + 0, 0, 231 }; static const yytype_int16 yycheck[] = { - 2, 84, 2, 2, 239, 55, 329, 8, 82, 83, - 2, 12, 258, 2, 88, 16, 2, 18, 2, 2, - 258, 2, 84, 314, 2, 2, 81, 82, 83, 30, - 2, 2, 258, 88, 35, 2, 2, 258, 395, 2, - 41, 42, 322, 2, 2, 325, 2, 327, 632, 320, - 330, 282, 6, 277, 278, 6, 336, 698, 28, 58, - 17, 41, 42, 64, 706, 300, 58, 630, 349, 58, - 115, 634, 58, 85, 58, 58, 179, 58, 631, 43, - 58, 115, 666, 84, 45, 3, 27, 125, 115, 420, - 421, 127, 68, 153, 316, 205, 60, 157, 75, 205, - 70, 714, 114, 205, 29, 115, 719, 62, 179, 179, - 205, 205, 205, 205, 205, 0, 370, 212, 212, 226, - 212, 227, 232, 345, 231, 228, 229, 398, 188, 3, - 232, 5, 446, 717, 59, 228, 225, 98, 148, 115, - 3, 232, 60, 6, 7, 8, 9, 10, 11, 74, - 111, 112, 113, 114, 205, 31, 205, 82, 229, 229, - 121, 37, 408, 716, 200, 201, 202, 203, 204, 252, - 44, 395, 211, 3, 758, 5, 227, 3, 226, 5, - 205, 226, 230, 232, 419, 420, 421, 408, 226, 752, - 252, 132, 755, 806, 277, 278, 230, 229, 168, 530, - 753, 38, 844, 230, 17, 166, 43, 232, 211, 226, - 171, 85, 286, 230, 44, 277, 278, 858, 44, 49, - 3, 84, 5, 49, 505, 3, 238, 5, 231, 813, - 185, 286, 173, 203, 236, 237, 231, 236, 237, 240, - 241, 242, 243, 244, 236, 237, 809, 236, 237, 111, - 312, 252, 236, 237, 807, 85, 49, 820, 9, 85, - 205, 44, 576, 243, 244, 519, 230, 212, 225, 226, - 144, 3, 586, 136, 520, 555, 277, 278, 232, 226, - 526, 232, 517, 518, 231, 231, 849, 522, 526, 873, - 83, 3, 516, 5, 520, 530, 15, 16, 17, 520, - 526, 175, 85, 226, 3, 526, 5, 170, 231, 371, - 309, 312, 395, 211, 144, 314, 109, 215, 144, 554, - 226, 184, 321, 9, 230, 337, 12, 329, 231, 341, - 610, 343, 344, 395, 226, 226, 348, 44, 230, 230, - 339, 215, 49, 229, 615, 175, 228, 210, 410, 175, - 213, 214, 215, 228, 585, 218, 219, 231, 226, 650, - 211, 144, 230, 228, 227, 158, 646, 232, 231, 692, - 371, 228, 3, 372, 5, 3, 228, 5, 85, 228, - 3, 174, 5, 228, 3, 215, 5, 388, 3, 215, - 5, 446, 175, 228, 395, 752, 226, 3, 400, 5, - 17, 231, 215, 216, 217, 231, 68, 638, 394, 410, - 228, 229, 225, 226, 415, 669, 228, 229, 672, 421, - 226, 228, 228, 228, 678, 6, 7, 228, 228, 228, - 676, 115, 215, 516, 9, 229, 228, 144, 211, 229, - 231, 229, 231, 226, 231, 231, 231, 231, 231, 806, - 676, 231, 698, 228, 516, 676, 15, 16, 17, 231, - 698, 20, 21, 820, 231, 231, 231, 231, 175, 470, - 469, 231, 698, 231, 231, 231, 231, 698, 231, 231, - 228, 231, 231, 714, 708, 231, 231, 231, 719, 231, - 44, 722, 849, 231, 213, 214, 215, 216, 217, 228, - 231, 231, 585, 231, 231, 231, 225, 226, 215, 231, - 231, 231, 766, 587, 231, 516, 231, 231, 764, 226, - 522, 576, 522, 522, 231, 231, 528, 773, 528, 528, - 522, 85, 587, 522, 231, 231, 528, 226, 522, 528, - 225, 229, 528, 764, 528, 528, 770, 528, 229, 632, - 528, 528, 229, 229, 211, 229, 528, 528, 233, 231, - 5, 528, 528, 232, 563, 528, 565, 207, 207, 528, - 528, 842, 528, 565, 563, 806, 830, 232, 3, 231, - 9, 6, 7, 8, 9, 10, 11, 6, 9, 9, - 144, 837, 9, 9, 9, 875, 213, 214, 215, 216, - 217, 9, 9, 838, 9, 226, 231, 229, 225, 226, - 864, 837, 858, 229, 664, 228, 837, 228, 228, 228, - 858, 175, 229, 228, 207, 708, 230, 215, 229, 630, - 632, 714, 858, 634, 717, 889, 719, 858, 232, 230, - 205, 233, 6, 232, 205, 232, 708, 882, 710, 723, - 885, 650, 211, 212, 213, 214, 215, 216, 217, 84, - 232, 215, 232, 231, 666, 232, 225, 226, 723, 225, - 232, 205, 226, 205, 232, 232, 9, 231, 205, 232, - 232, 232, 681, 232, 232, 687, 232, 770, 687, 681, - 692, 232, 681, 232, 232, 232, 232, 681, 161, 317, - 701, 232, 320, 232, 232, 706, 232, 708, 770, 710, - 328, 136, 232, 331, 232, 717, 232, 232, 232, 232, - 338, 225, 340, 806, 232, 232, 232, 207, 3, 228, - 232, 6, 7, 8, 9, 10, 11, 205, 185, 211, - 205, 232, 228, 228, 3, 170, 3, 9, 6, 232, - 6, 752, 205, 229, 755, 185, 758, 207, 228, 184, - 226, 230, 205, 230, 212, 767, 228, 768, 767, 770, - 5, 772, 773, 232, 232, 767, 232, 232, 767, 228, - 398, 399, 228, 767, 228, 210, 785, 229, 213, 214, - 215, 232, 232, 218, 219, 207, 232, 232, 232, 232, - 211, 228, 227, 231, 228, 207, 231, 207, 809, 84, - 232, 813, 780, 393, 228, 228, 338, 417, 572, 820, - 554, 640, 440, 441, 442, 443, 444, 445, 446, 232, - 701, 885, 687, 834, 526, 768, 838, 381, 838, 838, - 576, 334, 252, 844, 94, 695, 838, 844, 849, 838, - 697, 693, -1, -1, 838, -1, -1, 404, -1, -1, - -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 873, -1, -1, 15, 16, 17, 18, 19, 20, - 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 170, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, - -1, -1, -1, -1, -1, -1, -1, -1, 536, -1, - -1, -1, -1, -1, -1, -1, 3, -1, 5, 6, - 7, 8, 9, 10, 11, 210, -1, -1, 213, 214, - 215, -1, -1, 218, 219, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 231, -1, -1, -1, - 37, -1, 39, -1, -1, -1, -1, -1, 45, -1, - 588, 589, 49, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - -1, 609, -1, -1, 71, -1, -1, 615, -1, -1, - 77, 78, -1, -1, -1, -1, 83, 84, -1, -1, - -1, 88, -1, -1, 91, -1, -1, -1, -1, -1, - -1, 98, 640, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, -1, 111, 112, 113, 114, -1, -1, - -1, -1, -1, -1, 121, -1, -1, -1, 15, 16, - 17, 18, 19, 20, 21, -1, -1, -1, -1, 136, - -1, -1, -1, -1, -1, 206, -1, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, - -1, 158, -1, -1, 225, 226, -1, -1, 165, 166, - 167, 232, -1, 170, 171, -1, -1, 174, -1, -1, - -1, 178, -1, -1, -1, -1, -1, 184, -1, -1, - 187, -1, 189, -1, -1, -1, -1, 3, 4, 5, - 197, 198, -1, -1, -1, -1, -1, -1, -1, -1, + 2, 2, 8, 84, 240, 55, 12, 258, 258, 2, + 16, 258, 18, 2, 82, 83, 2, 258, 2, 2, + 88, 84, 2, 2, 30, 320, 81, 82, 83, 35, + 2, 2, 2, 88, 322, 41, 42, 325, 2, 327, + 2, 2, 330, 2, 395, 2, 632, 2, 336, 2, + 282, 329, 314, 41, 42, 28, 349, 698, 64, 27, + 370, 446, 277, 278, 300, 58, 6, 85, 179, 58, + 6, 706, 58, 49, 58, 58, 43, 62, 84, 58, + 666, 115, 17, 3, 631, 5, 58, 58, 3, 115, + 179, 68, 115, 60, 630, 75, 114, 70, 634, 179, + 153, 420, 421, 398, 157, 316, 29, 83, 205, 205, + 714, 115, 125, 9, 231, 719, 12, 3, 229, 5, + 205, 3, 0, 5, 44, 225, 205, 205, 205, 49, + 227, 717, 228, 109, 345, 188, 59, 229, 115, 228, + 229, 126, 31, 17, 148, 60, 205, 232, 37, 229, + 211, 74, 226, 232, 232, 232, 230, 408, 44, 82, + 205, 408, 44, 49, 132, 85, 228, 229, 227, 716, + 231, 252, 758, 15, 16, 17, 18, 19, 20, 21, + 395, 205, 158, 419, 420, 421, 205, 232, 212, 252, + 211, 576, 226, 212, 215, 168, 277, 278, 174, 85, + 185, 586, 806, 85, 230, 173, 753, 230, 111, 844, + 520, 530, 505, 226, 277, 278, 752, 858, 286, 755, + 238, 226, 6, 7, 144, 228, 231, 813, 17, 232, + 203, 286, 9, 239, 236, 237, 242, 243, 244, 245, + 38, 228, 229, 236, 237, 43, 252, 236, 237, 312, + 236, 237, 236, 237, 3, 175, 244, 245, 144, 211, + 807, 127, 144, 230, 211, 231, 3, 555, 5, 229, + 521, 277, 278, 809, 521, 526, 526, 231, 228, 526, + 521, 517, 518, 519, 820, 526, 3, 873, 5, 175, + 225, 226, 232, 175, 530, 215, 232, 205, 205, 226, + 3, 516, 5, 230, 212, 212, 312, 44, 371, 228, + 228, 231, 226, 849, 395, 44, 309, 231, 554, 337, + 615, 314, 610, 341, 228, 343, 344, 329, 321, 215, + 348, 228, 395, 215, 200, 201, 202, 203, 204, 115, + 226, 215, 216, 217, 226, 231, 339, 410, 85, 231, + 226, 225, 226, 585, 68, 231, 85, 226, 646, 669, + 3, 230, 5, 673, 228, 371, 676, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 3, 3, 5, 5, + 373, 44, 388, 225, 226, 3, 49, 5, 650, 395, + 228, 446, 226, 15, 16, 17, 230, 228, 400, 226, + 3, 752, 5, 230, 410, 228, 638, 144, 226, 415, + 9, 394, 230, 228, 692, 144, 3, 228, 5, 421, + 228, 3, 85, 5, 213, 214, 215, 216, 217, 680, + 226, 228, 228, 680, 229, 516, 225, 226, 175, 680, + 211, 229, 233, 226, 231, 231, 175, 698, 698, 231, + 231, 698, 231, 516, 229, 806, 766, 698, 231, 231, + 5, 231, 231, 231, 470, 231, 231, 231, 231, 820, + 231, 231, 231, 231, 231, 231, 469, 231, 215, 231, + 231, 144, 714, 231, 231, 231, 215, 719, 231, 231, + 722, 231, 231, 708, 231, 231, 231, 226, 849, 231, + 231, 231, 231, 231, 585, 231, 231, 231, 231, 229, + 516, 229, 175, 764, 229, 517, 517, 764, 228, 587, + 830, 576, 229, 774, 517, 225, 528, 528, 517, 228, + 228, 517, 587, 517, 211, 528, 229, 231, 207, 528, + 232, 207, 528, 232, 528, 528, 231, 842, 528, 528, + 9, 632, 215, 6, 864, 770, 528, 528, 528, 9, + 9, 9, 9, 226, 528, 9, 528, 528, 231, 528, + 563, 528, 565, 528, 806, 528, 565, 563, 9, 889, + 9, 9, 226, 229, 229, 233, 837, 875, 228, 231, + 837, 213, 214, 215, 216, 217, 837, 228, 228, 228, + 228, 207, 838, 225, 226, 229, 215, 858, 858, 230, + 229, 858, 232, 230, 664, 205, 6, 858, 232, 205, + 15, 16, 17, 231, 630, 20, 21, 708, 634, 225, + 632, 232, 232, 714, 232, 232, 717, 232, 719, 205, + 232, 232, 205, 232, 232, 708, 882, 710, 232, 885, + 205, 232, 232, 232, 232, 723, 232, 650, 232, 232, + 232, 232, 232, 45, 666, 232, 225, 232, 723, 9, + 317, 232, 232, 320, 232, 232, 232, 161, 232, 672, + 232, 328, 232, 672, 331, 687, 672, 207, 672, 770, + 692, 338, 232, 340, 687, 701, 228, 232, 205, 185, + 706, 211, 708, 205, 710, 232, 3, 770, 3, 6, + 7, 8, 9, 10, 11, 717, 98, 228, 3, 228, + 6, 9, 6, 205, 232, 806, 229, 185, 207, 111, + 112, 113, 114, 228, 230, 226, 230, 212, 228, 121, + 232, 205, 5, 232, 232, 232, 752, 232, 228, 755, + 207, 398, 399, 229, 232, 228, 758, 228, 232, 211, + 232, 228, 768, 232, 770, 767, 232, 773, 774, 232, + 231, 207, 228, 228, 767, 207, 417, 228, 767, 572, + 393, 767, 781, 767, 166, 338, 232, 84, 640, 171, + 885, 701, 785, 440, 441, 442, 443, 444, 445, 446, + 687, 554, 576, 809, 526, 382, 844, 252, 334, 697, + 768, 813, 94, -1, 820, 695, 211, 212, 213, 214, + 215, 216, 217, 693, -1, -1, -1, -1, 834, 404, + 225, 226, -1, -1, -1, -1, 838, 838, 844, 136, + -1, -1, -1, 849, -1, 838, -1, -1, -1, 838, + -1, -1, 838, -1, 838, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 873, -1, 170, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 184, -1, 536, + -1, -1, -1, -1, -1, -1, -1, 3, -1, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 210, -1, -1, 213, 214, 215, -1, - -1, 218, 219, -1, -1, 31, -1, -1, -1, -1, - -1, 37, -1, 39, 231, -1, -1, -1, -1, 45, - 46, -1, -1, 49, -1, -1, -1, -1, -1, -1, - 56, -1, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, 77, 78, -1, 812, -1, -1, 83, 816, -1, + 3, 218, 219, 6, 7, 8, 9, 10, 11, -1, + 227, 37, -1, 39, 231, -1, -1, -1, -1, 45, + -1, 588, 589, 49, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, -1, 609, -1, -1, 71, -1, -1, 615, -1, + -1, 77, 78, -1, -1, -1, -1, 83, 84, -1, -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, - -1, -1, 98, -1, -1, -1, -1, -1, -1, 105, - 106, -1, -1, 109, 842, 111, 112, 113, 114, 115, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, - -1, -1, 128, 210, 211, 212, 213, 214, 215, 216, - 217, -1, -1, -1, -1, -1, -1, -1, 225, 226, - 146, -1, 3, 4, 5, -1, -1, -1, -1, -1, - -1, -1, 158, -1, -1, -1, -1, -1, 164, 165, - 166, 167, -1, -1, -1, 171, -1, -1, 174, -1, - 31, -1, 178, -1, -1, -1, 37, -1, 39, -1, - -1, 187, -1, 189, 45, 46, -1, -1, 49, -1, - -1, 197, 198, -1, -1, 56, -1, 58, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, + -1, -1, 98, 640, -1, -1, -1, -1, -1, -1, + -1, 84, -1, 109, -1, 111, 112, 113, 114, -1, + -1, -1, -1, 3, -1, 121, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 158, 136, -1, -1, -1, -1, -1, 165, + 166, 167, -1, -1, 170, 171, -1, -1, 174, -1, + -1, -1, 178, -1, -1, -1, -1, -1, 184, -1, + -1, 187, -1, 189, -1, -1, -1, 170, -1, -1, + -1, 197, 198, -1, 84, -1, -1, -1, -1, -1, + -1, 184, -1, -1, 210, -1, -1, 213, 214, 215, + -1, -1, 218, 219, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 231, -1, 210, -1, -1, + 213, 214, 215, -1, -1, 218, 219, -1, -1, -1, + -1, -1, -1, -1, 227, -1, 136, -1, 231, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, 812, -1, -1, -1, 816, + -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 170, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 31, -1, -1, -1, 184, 842, 37, -1, 39, -1, + -1, -1, -1, -1, 45, 46, -1, -1, 49, -1, + -1, -1, -1, -1, -1, 56, -1, 58, -1, -1, + 210, -1, -1, 213, 214, 215, -1, 68, 218, 219, 71, -1, -1, 3, 4, 5, 77, 78, -1, -1, - 226, -1, 83, -1, 230, -1, -1, 88, -1, -1, + -1, 231, 83, -1, -1, -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, 31, -1, -1, 105, 106, -1, 37, 109, 39, 111, 112, 113, 114, 115, 45, 46, -1, -1, 49, @@ -2215,221 +2203,229 @@ -1, 71, -1, -1, -1, 146, -1, 77, 78, -1, -1, -1, -1, 83, -1, -1, -1, 158, 88, -1, -1, 91, -1, 164, 165, 166, 167, -1, 98, -1, - 171, -1, -1, 174, -1, 105, -1, 178, -1, 109, + 171, -1, -1, 174, -1, 105, 106, 178, -1, 109, -1, 111, 112, 113, 114, 115, 187, -1, 189, -1, -1, 121, -1, -1, -1, -1, 197, 198, 128, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, - 4, 5, -1, -1, -1, -1, 146, -1, 15, 16, - 17, 18, 19, 20, 21, 226, -1, -1, 158, 230, + -1, -1, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, -1, 146, -1, 3, 4, + 5, 225, 226, 227, -1, 226, -1, -1, 158, 230, -1, -1, -1, -1, 164, 165, 166, 167, -1, -1, - -1, 171, -1, 37, 174, 39, -1, -1, 178, -1, - -1, 45, -1, -1, -1, 49, -1, 187, -1, 189, - -1, -1, 56, -1, -1, -1, -1, 197, 198, -1, - -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, - 3, 4, 5, 77, 78, -1, -1, -1, -1, 83, - -1, -1, -1, -1, 88, -1, 226, 91, -1, -1, - 230, -1, -1, -1, 98, -1, -1, -1, -1, -1, - -1, 105, -1, -1, 37, 109, 39, 111, 112, 113, - 114, -1, 45, -1, -1, -1, 49, 121, -1, -1, - -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, - -1, -1, 146, -1, 77, 78, -1, -1, -1, -1, - 83, -1, -1, -1, 158, 88, -1, -1, 91, -1, - -1, 165, 166, 167, -1, 98, -1, 171, -1, -1, - 174, -1, 105, -1, 178, -1, 109, -1, 111, 112, - 113, 114, -1, 187, -1, 189, -1, -1, 121, -1, - -1, -1, -1, 197, 198, -1, -1, -1, -1, -1, - -1, 3, -1, 5, 211, 212, 213, 214, 215, 216, - 217, -1, -1, 146, -1, -1, -1, -1, 225, 226, - -1, -1, 226, -1, -1, 158, 230, -1, -1, -1, - -1, -1, 165, 166, 167, 37, -1, 39, 171, -1, - -1, 174, -1, 45, -1, 178, -1, 49, -1, -1, - -1, -1, -1, -1, 187, -1, 189, -1, -1, -1, - -1, -1, -1, -1, 197, 198, -1, -1, -1, 71, - -1, -1, -1, -1, -1, 77, 78, -1, -1, -1, - -1, 83, -1, -1, -1, -1, 88, -1, -1, 91, - -1, -1, -1, 226, -1, -1, 98, 230, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, - 112, 113, 114, -1, -1, -1, -1, -1, -1, 121, - -1, 0, -1, -1, 3, 4, 5, -1, -1, -1, - -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 31, -1, -1, -1, 158, -1, 37, -1, - 39, -1, -1, 165, 166, 167, 45, 46, -1, 171, - 49, -1, 174, -1, -1, -1, 178, 56, -1, 58, - -1, -1, -1, -1, -1, 187, -1, 189, -1, 68, - -1, -1, 71, -1, -1, 197, 198, -1, 77, 78, - -1, -1, -1, -1, 83, -1, -1, -1, -1, 88, - -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, - -1, -1, -1, -1, 226, -1, 105, -1, 230, -1, - 109, -1, 111, 112, 113, 114, 115, -1, -1, -1, - -1, -1, 121, -1, -1, -1, -1, -1, -1, 128, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 146, -1, -1, - 3, 4, 5, -1, -1, -1, -1, -1, -1, 158, - 13, -1, -1, -1, -1, 164, 165, 166, 167, -1, - -1, -1, 171, -1, -1, 174, -1, -1, 31, 178, - -1, -1, -1, -1, 37, -1, 39, -1, 187, -1, - 189, -1, 45, 46, -1, -1, 49, -1, 197, 198, - -1, -1, -1, 56, -1, 58, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, 77, 78, -1, 226, -1, -1, - 83, -1, -1, -1, -1, 88, -1, -1, 91, -1, - -1, -1, 3, -1, 5, 98, -1, -1, -1, -1, - -1, -1, 105, 106, -1, -1, 109, -1, 111, 112, - 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, - -1, -1, -1, -1, -1, 128, 37, -1, 39, -1, - -1, -1, -1, 44, 45, -1, -1, -1, 49, -1, - -1, -1, -1, 146, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, - 71, 164, 165, 166, 167, -1, 77, 78, 171, -1, - -1, 174, 83, -1, 85, 178, -1, 88, -1, -1, - 91, -1, -1, -1, 187, -1, 189, 98, -1, -1, - -1, -1, -1, -1, 197, 198, -1, -1, 109, -1, - 111, 112, 113, 114, -1, -1, -1, -1, -1, -1, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 226, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 144, -1, -1, -1, -1, 3, -1, - 5, -1, -1, -1, -1, -1, -1, 158, -1, -1, - -1, -1, -1, -1, 165, 166, 167, -1, -1, -1, - 171, -1, -1, 174, 175, -1, -1, 178, -1, -1, - -1, -1, 37, -1, 39, -1, 187, -1, 189, 44, - 45, -1, -1, -1, 49, -1, 197, 198, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, -1, 71, -1, -1, 3, - -1, 5, 77, 78, -1, 226, -1, -1, 83, -1, - 85, -1, -1, 88, -1, -1, 91, -1, -1, -1, - 24, -1, -1, 98, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37, 109, 39, 111, 112, 113, 114, - -1, 45, -1, -1, -1, 49, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 15, 16, 17, 18, - 19, 20, 21, 22, 23, -1, -1, 71, -1, 144, - -1, -1, -1, 77, 78, -1, -1, -1, -1, 83, - -1, -1, -1, 158, 88, -1, -1, 91, -1, -1, + -1, 171, -1, -1, 174, -1, 31, -1, 178, -1, + -1, -1, 37, -1, 39, -1, -1, 187, -1, 189, + 45, 46, -1, -1, 49, -1, -1, 197, 198, -1, + -1, 56, -1, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 68, -1, -1, 71, -1, -1, 3, + 4, 5, 77, 78, -1, -1, 226, -1, 83, -1, + 230, -1, -1, 88, -1, -1, 91, -1, -1, -1, + -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, + 105, -1, -1, 37, 109, 39, 111, 112, 113, 114, + 115, 45, -1, -1, -1, 49, 121, -1, -1, -1, + -1, -1, 56, 128, -1, -1, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, -1, 71, -1, -1, + -1, 146, -1, 77, 78, -1, -1, -1, -1, 83, + -1, -1, -1, 158, 88, -1, -1, 91, -1, 164, 165, 166, 167, -1, 98, -1, 171, -1, -1, 174, - 175, -1, -1, 178, -1, 109, -1, 111, 112, 113, + -1, 105, -1, 178, -1, 109, -1, 111, 112, 113, 114, -1, 187, -1, 189, -1, -1, 121, -1, -1, -1, -1, 197, 198, -1, -1, -1, -1, -1, -1, - 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, - 215, 15, 16, 17, 18, 19, 20, 21, 22, 23, - -1, 226, -1, -1, 158, -1, -1, -1, -1, -1, - -1, 165, 166, 167, 37, -1, 39, 171, -1, -1, - 174, -1, 45, -1, 178, -1, 49, -1, -1, -1, - -1, -1, -1, 187, -1, 189, -1, -1, -1, -1, - -1, -1, -1, 197, 198, -1, -1, -1, 71, -1, - -1, -1, -1, -1, 77, 78, -1, -1, -1, -1, - 83, -1, -1, -1, -1, 88, -1, -1, 91, -1, - -1, -1, 226, -1, -1, 98, 15, 16, 17, 18, - 19, 20, 21, 22, 23, -1, 109, -1, 111, 112, - 113, 114, -1, -1, -1, -1, -1, 206, 121, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, - -1, -1, -1, -1, -1, -1, 225, 226, -1, -1, - -1, -1, -1, 232, 15, 16, 17, 18, 19, 20, - 21, 22, 23, -1, -1, 158, -1, -1, -1, -1, - -1, -1, 165, 166, 167, -1, -1, -1, 171, -1, - -1, 174, -1, -1, -1, 178, -1, 15, 16, 17, - 18, 19, 20, 21, 187, 23, 189, -1, -1, -1, - -1, -1, -1, -1, 197, 198, -1, -1, -1, -1, - -1, -1, 206, -1, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, -1, -1, -1, -1, -1, -1, - -1, 225, 226, 226, -1, -1, -1, -1, 232, 15, - 16, 17, 18, 19, 20, 21, 22, 23, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 15, 16, 17, 18, 19, 20, 21, 22, 23, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 206, -1, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 15, - 16, 17, 18, 19, 20, 21, 225, 226, 227, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 206, -1, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, - -1, -1, -1, -1, 225, 226, 227, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - -1, -1, -1, -1, -1, -1, -1, 225, 226, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + -1, -1, -1, -1, -1, 3, 4, 5, -1, -1, + -1, -1, 146, -1, -1, -1, -1, -1, -1, -1, + -1, 226, -1, -1, 158, 230, -1, -1, -1, -1, + -1, 165, 166, 167, -1, -1, -1, 171, -1, 37, + 174, 39, -1, -1, 178, -1, -1, 45, -1, -1, + -1, 49, -1, 187, -1, 189, -1, -1, 56, -1, + -1, -1, -1, 197, 198, -1, -1, -1, -1, -1, + -1, -1, -1, 71, -1, -1, 3, -1, 5, 77, + 78, -1, -1, -1, -1, 83, -1, -1, -1, -1, + 88, -1, 226, 91, -1, -1, 230, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, 105, -1, -1, + 37, 109, 39, 111, 112, 113, 114, -1, 45, -1, + -1, -1, 49, 121, 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, -1, -1, 225, - 226, 206, -1, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, -1, -1, -1, -1, -1, -1, -1, - 225, 226, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, -1, -1, -1, -1, -1, -1, 225, - 226, -1, -1, 3, -1, 5, -1, -1, -1, -1, - -1, -1, -1, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, -1, -1, -1, -1, -1, -1, 225, - 226, 31, -1, -1, -1, -1, -1, 37, -1, 39, - -1, -1, -1, -1, -1, 45, 46, -1, -1, 49, + 226, -1, -1, -1, 71, -1, -1, -1, 146, -1, + 77, 78, -1, -1, -1, -1, 83, -1, -1, -1, + 158, 88, -1, -1, 91, -1, -1, 165, 166, 167, + -1, 98, -1, 171, -1, -1, 174, -1, -1, -1, + 178, -1, 109, -1, 111, 112, 113, 114, -1, 187, + -1, 189, -1, -1, 121, -1, -1, -1, -1, 197, + 198, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + -1, -1, 3, 4, 5, -1, -1, -1, 226, -1, + -1, 158, 230, 14, -1, -1, -1, -1, 165, 166, + 167, -1, -1, -1, 171, -1, -1, 174, -1, -1, + 31, 178, -1, -1, -1, -1, 37, -1, 39, -1, + 187, -1, 189, -1, 45, 46, -1, -1, 49, -1, + 197, 198, -1, -1, -1, 56, -1, 58, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, + 71, -1, -1, -1, -1, -1, 77, 78, -1, 226, + -1, -1, 83, 230, -1, -1, -1, 88, -1, -1, + 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, 105, -1, -1, -1, 109, -1, + 111, 112, 113, 114, 115, -1, -1, -1, -1, -1, + 121, -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, - -1, 71, -1, -1, 3, -1, 5, 77, 78, -1, - -1, -1, -1, 83, -1, -1, -1, -1, 88, -1, - -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 37, 109, - 39, 111, 112, 113, 114, 115, 45, -1, 118, -1, - 49, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, -1, -1, 146, -1, -1, 3, 4, + 5, -1, -1, -1, -1, -1, -1, 158, 13, -1, + -1, -1, -1, 164, 165, 166, 167, -1, -1, -1, + 171, -1, -1, 174, -1, -1, 31, 178, -1, -1, + -1, -1, 37, -1, 39, -1, 187, -1, 189, -1, + 45, 46, -1, -1, 49, -1, 197, 198, -1, -1, + -1, 56, -1, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, + -1, -1, 77, 78, -1, 226, -1, -1, 83, -1, + -1, -1, -1, 88, -1, -1, 91, -1, -1, -1, + 3, -1, 5, 98, -1, -1, -1, -1, -1, -1, + 105, 106, -1, -1, 109, -1, 111, 112, 113, 114, + 115, -1, -1, -1, -1, -1, 121, -1, -1, -1, + -1, -1, -1, 128, 37, -1, 39, -1, -1, -1, + -1, 44, 45, -1, -1, -1, 49, -1, -1, -1, + -1, 146, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 158, -1, -1, -1, -1, 71, 164, + 165, 166, 167, -1, 77, 78, 171, -1, -1, 174, + 83, -1, 85, 178, -1, 88, -1, -1, 91, -1, + -1, -1, 187, -1, 189, 98, -1, -1, -1, -1, + -1, -1, 197, 198, -1, -1, 109, -1, 111, 112, + 113, 114, -1, -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 71, -1, -1, -1, -1, -1, 77, 78, - -1, -1, -1, -1, 83, -1, -1, -1, 158, 88, - -1, -1, 91, -1, 164, 165, 166, 167, -1, 98, - -1, 171, -1, -1, 174, -1, -1, -1, 178, 3, - 109, 5, 111, 112, 113, 114, -1, 187, -1, 189, - -1, -1, 121, -1, -1, -1, -1, 197, 198, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37, -1, 39, -1, -1, -1, -1, - -1, 45, -1, -1, -1, -1, -1, -1, -1, 158, - -1, -1, -1, -1, -1, -1, 165, 166, 167, -1, - -1, 3, 171, 5, -1, 174, -1, 71, -1, 178, - -1, -1, -1, 77, 78, -1, -1, -1, 187, -1, - 189, -1, 5, -1, 88, -1, -1, 91, 197, 198, - -1, -1, -1, -1, 98, 37, -1, 39, -1, -1, - -1, -1, -1, 45, -1, -1, -1, 111, 112, 113, - 114, -1, -1, -1, 37, -1, 39, 121, -1, -1, - -1, -1, 45, -1, -1, -1, 49, -1, -1, 71, - -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, -1, 71, 91, - -1, -1, -1, -1, 77, 78, 98, -1, -1, -1, - 83, 165, 166, 167, -1, 88, -1, 171, 91, 111, - 112, 113, 114, -1, 178, 98, -1, -1, -1, 121, - -1, -1, -1, 187, -1, 189, 109, 5, 111, 112, - 113, 114, -1, 197, 198, -1, -1, -1, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, - -1, 39, -1, -1, 166, 167, -1, 45, -1, 171, + -1, 226, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 144, -1, -1, -1, -1, 3, -1, 5, -1, -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, - -1, -1, 165, 166, 167, -1, -1, 189, 171, -1, - -1, 174, -1, 71, -1, 178, 198, -1, -1, 77, - 78, -1, -1, -1, 187, -1, 189, -1, -1, -1, - 88, -1, -1, 91, 197, 198, -1, -1, -1, -1, - 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 111, 112, 113, 114, -1, -1, -1, - -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, + -1, -1, 165, 166, 167, -1, -1, -1, 171, -1, + -1, 174, 175, -1, -1, 178, -1, -1, -1, -1, + 37, -1, 39, -1, 187, -1, 189, 44, 45, -1, + -1, -1, 49, -1, 197, 198, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 215, -1, 71, -1, -1, 3, -1, 5, + 77, 78, -1, 226, -1, -1, 83, -1, 85, -1, + -1, 88, -1, -1, 91, -1, -1, -1, 24, -1, + -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 109, 39, 111, 112, 113, 114, -1, 45, + -1, -1, -1, 49, 121, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, + 21, 22, 23, -1, -1, 71, -1, 144, -1, -1, + -1, 77, 78, -1, -1, -1, -1, 83, -1, -1, + -1, 158, 88, -1, -1, 91, -1, -1, 165, 166, + 167, -1, 98, -1, 171, -1, -1, 174, 175, -1, + -1, 178, -1, 109, -1, 111, 112, 113, 114, -1, + 187, -1, 189, -1, -1, 121, -1, -1, -1, -1, + 197, 198, -1, -1, -1, -1, -1, -1, 3, -1, + 5, -1, -1, -1, -1, -1, -1, -1, 215, 15, + 16, 17, 18, 19, 20, 21, 22, 23, -1, 226, + -1, -1, 158, -1, -1, -1, -1, -1, -1, 165, + 166, 167, 37, -1, 39, 171, -1, -1, 174, -1, + 45, -1, 178, -1, 49, -1, -1, -1, -1, -1, + -1, 187, -1, 189, -1, -1, -1, -1, -1, -1, + -1, 197, 198, -1, -1, -1, 71, -1, -1, -1, + -1, -1, 77, 78, -1, -1, -1, -1, 83, -1, + -1, -1, -1, 88, -1, -1, 91, -1, -1, -1, + 226, -1, -1, 98, 15, 16, 17, 18, 19, 20, + 21, 22, 23, -1, 109, -1, 111, 112, 113, 114, + -1, -1, -1, -1, -1, 206, 121, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + -1, -1, -1, -1, 225, 226, -1, -1, -1, -1, + -1, 232, 15, 16, 17, 18, 19, 20, 21, 22, + 23, -1, -1, 158, -1, -1, -1, -1, -1, -1, + 165, 166, 167, -1, -1, -1, 171, -1, -1, 174, + -1, -1, -1, 178, -1, 15, 16, 17, 18, 19, + 20, 21, 187, 23, 189, -1, -1, -1, -1, -1, + -1, -1, 197, 198, -1, -1, -1, -1, -1, -1, + 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, -1, -1, -1, -1, -1, -1, -1, 225, + 226, 226, -1, -1, -1, -1, 232, 15, 16, 17, + 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 15, 16, + 17, 18, 19, 20, 21, 22, 23, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 15, 16, 17, + 18, 19, 20, 21, 15, 16, 17, 18, 19, 20, + 21, -1, -1, -1, -1, 206, -1, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + -1, -1, -1, -1, 225, 226, -1, -1, -1, -1, + -1, 232, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 206, -1, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, + -1, -1, 225, 226, 227, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, -1, -1, + -1, -1, -1, -1, -1, 225, 226, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + -1, -1, -1, -1, -1, -1, -1, 225, 226, 206, + -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, -1, 3, -1, 5, -1, -1, -1, 225, 226, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 211, 212, 213, 214, 215, 216, 217, 225, 226, -1, + 31, -1, -1, -1, 225, 226, 37, -1, 39, -1, + -1, -1, -1, -1, 45, 46, -1, -1, 49, -1, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, + 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, + -1, -1, 83, -1, 37, -1, 39, 88, -1, -1, + 91, -1, 45, -1, -1, -1, 49, 98, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, + 111, 112, 113, 114, 115, -1, -1, 118, 71, -1, + 121, -1, -1, -1, 77, 78, -1, -1, -1, -1, + 83, -1, -1, -1, -1, 88, -1, -1, 91, -1, + -1, -1, 3, -1, 5, 98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 158, 111, 112, + 113, 114, -1, 164, 165, 166, 167, -1, 121, -1, + 171, -1, -1, 174, -1, -1, 37, 178, 39, -1, + -1, -1, -1, -1, 45, -1, 187, -1, 189, -1, + 3, -1, 5, -1, -1, -1, 197, 198, -1, -1, + -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, + 71, -1, 165, 166, 167, -1, 77, 78, 171, -1, + -1, 174, -1, -1, 37, 178, 39, 88, -1, -1, + 91, -1, 45, -1, 187, -1, 189, 98, -1, -1, + -1, -1, -1, -1, 197, 198, -1, -1, -1, -1, + 111, 112, 113, 114, -1, -1, -1, -1, 71, -1, + 121, -1, -1, -1, -1, 78, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, -1, -1, 91, -1, + -1, -1, -1, -1, -1, 98, -1, -1, -1, 5, + -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, + 113, 114, -1, -1, 165, 166, 167, -1, 121, -1, + 171, -1, -1, -1, -1, -1, -1, 178, -1, -1, + -1, 37, -1, 39, -1, -1, 187, -1, 189, 45, + -1, -1, -1, 49, -1, -1, 197, 198, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 166, 167, 71, -1, -1, 171, -1, + 5, 77, 78, -1, -1, -1, -1, 83, -1, -1, + -1, -1, 88, -1, -1, 91, 189, -1, -1, -1, + -1, -1, 98, -1, -1, 198, -1, -1, -1, -1, + -1, -1, 37, 109, 39, 111, 112, 113, 114, -1, + 45, -1, -1, -1, -1, 121, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + -1, -1, 77, 78, -1, -1, -1, -1, -1, -1, + -1, -1, 158, 88, -1, -1, 91, -1, -1, 165, + 166, 167, -1, 98, -1, 171, -1, -1, 174, -1, + -1, -1, 178, -1, -1, -1, 111, 112, 113, 114, + -1, 187, -1, 189, -1, -1, 121, -1, -1, -1, + -1, 197, 198, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 165, 166, 167, - -1, -1, -1, 171, -1, -1, -1, -1, -1, -1, - 178, -1, -1, -1, -1, 25, 26, -1, -1, 187, - 30, 189, 32, 33, 34, 35, 36, -1, 38, 197, - 198, 41, -1, 43, -1, -1, -1, 47, 48, -1, - 50, 51, 52, 53, 54, 55, -1, 57, -1, 59, - 60, 61, -1, 63, 64, 65, 66, 67, -1, 69, - -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, - 80, 81, 82, -1, -1, -1, 86, 87, -1, 89, - 90, -1, 92, 93, 94, 95, 96, 97, -1, 99, - 100, 101, 102, 103, 104, -1, -1, 107, -1, -1, - 110, -1, -1, -1, -1, -1, 116, 117, -1, 119, - 120, -1, 122, 123, 124, -1, -1, -1, -1, 129, - 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, - 140, 141, 142, 143, -1, 145, -1, 147, -1, 149, - 150, 151, 152, 153, 154, 155, 156, 157, -1, 159, - 160, -1, 162, 163, -1, -1, -1, -1, -1, 169, - -1, -1, 172, -1, 174, -1, 176, 177, -1, -1, - 180, 181, 182, 183, -1, -1, 186, -1, 188, -1, - 190, 191, 192, 193, 194, 195, 196, -1, -1, 199 + 165, 166, 167, -1, -1, -1, 171, -1, -1, -1, + -1, -1, -1, 178, -1, -1, -1, -1, 25, 26, + -1, -1, 187, 30, 189, 32, 33, 34, 35, 36, + -1, 38, 197, 198, 41, -1, 43, -1, -1, -1, + 47, 48, -1, 50, 51, 52, 53, 54, 55, -1, + 57, -1, 59, 60, 61, -1, 63, 64, 65, 66, + 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, + -1, -1, 79, 80, 81, 82, -1, -1, -1, 86, + 87, -1, 89, 90, -1, 92, 93, 94, 95, 96, + 97, -1, 99, 100, 101, 102, 103, 104, -1, -1, + 107, -1, -1, 110, -1, -1, -1, -1, -1, 116, + 117, -1, 119, 120, -1, 122, 123, 124, -1, -1, + -1, -1, 129, 130, 131, -1, 133, 134, 135, -1, + 137, 138, 139, 140, 141, 142, 143, -1, 145, -1, + 147, -1, 149, 150, 151, 152, 153, 154, 155, 156, + 157, -1, 159, 160, -1, 162, 163, -1, -1, -1, + -1, -1, 169, -1, -1, 172, -1, 174, -1, 176, + 177, -1, -1, 180, 181, 182, 183, -1, -1, 186, + -1, 188, -1, 190, 191, 192, 193, 194, 195, 196, + -1, -1, 199 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2459,9 +2455,9 @@ 149, 150, 151, 152, 153, 154, 155, 156, 157, 159, 160, 162, 163, 169, 172, 174, 176, 177, 180, 181, 182, 183, 186, 188, 190, 191, 192, 193, 194, 195, - 196, 199, 265, 271, 362, 228, 243, 243, 62, 185, - 77, 118, 126, 178, 187, 255, 280, 307, 309, 311, - 324, 336, 342, 363, 367, 228, 3, 297, 211, 228, + 196, 199, 265, 271, 362, 228, 243, 243, 62, 126, + 185, 336, 77, 118, 178, 187, 255, 280, 307, 309, + 311, 324, 342, 363, 367, 228, 3, 297, 211, 228, 228, 228, 229, 228, 316, 228, 246, 228, 344, 345, 344, 344, 44, 85, 144, 175, 215, 231, 273, 297, 298, 346, 347, 360, 280, 363, 365, 367, 344, 228, @@ -2473,8 +2469,8 @@ 231, 231, 231, 231, 231, 231, 231, 231, 231, 205, 227, 13, 58, 106, 240, 247, 254, 257, 307, 308, 309, 310, 311, 312, 313, 316, 324, 327, 332, 337, - 230, 365, 263, 264, 3, 297, 297, 3, 3, 229, - 229, 229, 229, 333, 229, 360, 225, 299, 302, 303, + 230, 365, 297, 263, 264, 229, 3, 297, 3, 3, + 229, 229, 229, 229, 333, 360, 225, 299, 302, 303, 304, 305, 306, 242, 229, 341, 346, 346, 233, 226, 231, 262, 344, 231, 205, 227, 5, 232, 115, 230, 263, 276, 277, 278, 279, 325, 207, 207, 232, 287, @@ -2487,8 +2483,8 @@ 362, 9, 285, 365, 281, 270, 342, 283, 365, 127, 200, 201, 202, 203, 204, 361, 365, 365, 272, 6, 7, 368, 9, 365, 271, 226, 229, 231, 228, 228, - 228, 229, 228, 228, 246, 298, 342, 314, 314, 230, - 207, 321, 245, 297, 215, 215, 205, 212, 241, 148, + 228, 229, 228, 228, 246, 298, 342, 245, 314, 314, + 230, 207, 321, 297, 215, 215, 205, 212, 241, 148, 318, 324, 340, 346, 232, 286, 215, 227, 283, 258, 259, 260, 261, 28, 70, 168, 203, 376, 377, 375, 229, 303, 298, 230, 205, 233, 297, 322, 323, 6, @@ -2503,8 +2499,8 @@ 205, 232, 232, 232, 232, 232, 205, 232, 232, 232, 205, 232, 232, 232, 232, 232, 232, 225, 232, 232, 232, 271, 239, 9, 244, 211, 231, 346, 356, 230, - 263, 315, 230, 246, 303, 304, 161, 331, 230, 247, - 263, 264, 305, 230, 207, 125, 292, 319, 228, 227, + 247, 263, 264, 230, 263, 315, 230, 246, 303, 304, + 161, 331, 305, 230, 207, 125, 292, 319, 228, 227, 227, 232, 205, 205, 232, 185, 370, 371, 211, 279, 285, 205, 326, 6, 232, 232, 342, 367, 342, 363, 232, 228, 228, 268, 343, 232, 215, 231, 262, 273, @@ -2513,8 +2509,8 @@ 283, 283, 283, 283, 283, 3, 283, 285, 6, 286, 9, 354, 341, 215, 258, 273, 353, 354, 231, 262, 282, 285, 269, 6, 115, 230, 232, 243, 328, 258, - 205, 246, 68, 115, 334, 335, 246, 303, 304, 330, - 229, 246, 207, 228, 230, 264, 293, 294, 230, 24, + 205, 246, 246, 68, 115, 334, 335, 246, 303, 304, + 330, 229, 207, 228, 230, 264, 293, 294, 230, 24, 261, 377, 373, 230, 370, 306, 322, 212, 352, 358, 359, 228, 346, 295, 298, 350, 341, 215, 258, 273, 349, 350, 232, 231, 262, 344, 207, 227, 232, 354, @@ -3385,13 +3381,13 @@ write_dlldata((yyvsp[-1].stmt_list)); write_local_stubs((yyvsp[-1].stmt_list)); } -#line 3389 "tools/widl/parser.tab.c" +#line 3385 "tools/widl/parser.tab.c" break; case 5: /* decl_statements: %empty */ #line 366 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3395 "tools/widl/parser.tab.c" +#line 3391 "tools/widl/parser.tab.c" break; case 6: /* decl_statements: decl_statements tINTERFACE qualified_type '<' parameterized_type_args '>' ';' */ @@ -3399,73 +3395,73 @@ { parameterized_type_stmts = append_statement(parameterized_type_stmts, make_statement_parameterized_type((yyvsp[-4].type), (yyvsp[-2].typeref_list))); (yyval.stmt_list) = append_statement((yyvsp[-6].stmt_list), make_statement_reference(type_parameterized_type_specialize_declare((yyvsp[-4].type), (yyvsp[-2].typeref_list)))); } -#line 3403 "tools/widl/parser.tab.c" +#line 3399 "tools/widl/parser.tab.c" break; case 7: /* decl_block: tDECLARE '{' decl_statements '}' */ #line 373 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-1].stmt_list); } -#line 3409 "tools/widl/parser.tab.c" +#line 3405 "tools/widl/parser.tab.c" break; case 8: /* imp_decl_statements: %empty */ #line 375 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3415 "tools/widl/parser.tab.c" +#line 3411 "tools/widl/parser.tab.c" break; case 9: /* imp_decl_statements: imp_decl_statements tINTERFACE qualified_type '<' parameterized_type_args '>' ';' */ #line 377 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-6].stmt_list), make_statement_reference(type_parameterized_type_specialize_declare((yyvsp[-4].type), (yyvsp[-2].typeref_list)))); } -#line 3421 "tools/widl/parser.tab.c" +#line 3417 "tools/widl/parser.tab.c" break; case 10: /* imp_decl_block: tDECLARE '{' imp_decl_statements '}' */ #line 380 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-1].stmt_list); } -#line 3427 "tools/widl/parser.tab.c" +#line 3423 "tools/widl/parser.tab.c" break; case 11: /* gbl_statements: %empty */ #line 382 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3433 "tools/widl/parser.tab.c" +#line 3429 "tools/widl/parser.tab.c" break; case 12: /* $@1: %empty */ #line 383 "tools/widl/parser.y" { push_namespace((yyvsp[-1].str)); } -#line 3439 "tools/widl/parser.tab.c" +#line 3435 "tools/widl/parser.tab.c" break; case 13: /* gbl_statements: gbl_statements namespacedef '{' $@1 gbl_statements '}' */ #line 384 "tools/widl/parser.y" { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } -#line 3445 "tools/widl/parser.tab.c" +#line 3441 "tools/widl/parser.tab.c" break; case 14: /* gbl_statements: gbl_statements interface ';' */ #line 385 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3451 "tools/widl/parser.tab.c" +#line 3447 "tools/widl/parser.tab.c" break; case 15: /* gbl_statements: gbl_statements dispinterface ';' */ #line 386 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3457 "tools/widl/parser.tab.c" +#line 3453 "tools/widl/parser.tab.c" break; case 16: /* gbl_statements: gbl_statements interfacedef */ #line 387 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3463 "tools/widl/parser.tab.c" +#line 3459 "tools/widl/parser.tab.c" break; case 17: /* gbl_statements: gbl_statements delegatedef */ #line 388 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3469 "tools/widl/parser.tab.c" +#line 3465 "tools/widl/parser.tab.c" break; case 18: /* gbl_statements: gbl_statements coclass ';' */ @@ -3473,7 +3469,7 @@ { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3477 "tools/widl/parser.tab.c" +#line 3473 "tools/widl/parser.tab.c" break; case 19: /* gbl_statements: gbl_statements coclassdef */ @@ -3481,105 +3477,105 @@ { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 3485 "tools/widl/parser.tab.c" +#line 3481 "tools/widl/parser.tab.c" break; case 20: /* gbl_statements: gbl_statements apicontract ';' */ #line 395 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3491 "tools/widl/parser.tab.c" +#line 3487 "tools/widl/parser.tab.c" break; case 21: /* gbl_statements: gbl_statements apicontract_def */ #line 396 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 3498 "tools/widl/parser.tab.c" +#line 3494 "tools/widl/parser.tab.c" break; case 22: /* gbl_statements: gbl_statements runtimeclass ';' */ #line 398 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3504 "tools/widl/parser.tab.c" +#line 3500 "tools/widl/parser.tab.c" break; case 23: /* gbl_statements: gbl_statements runtimeclass_def */ #line 399 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 3511 "tools/widl/parser.tab.c" +#line 3507 "tools/widl/parser.tab.c" break; case 24: /* gbl_statements: gbl_statements moduledef */ #line 401 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } -#line 3517 "tools/widl/parser.tab.c" +#line 3513 "tools/widl/parser.tab.c" break; case 25: /* gbl_statements: gbl_statements librarydef */ #line 402 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } -#line 3523 "tools/widl/parser.tab.c" +#line 3519 "tools/widl/parser.tab.c" break; case 26: /* gbl_statements: gbl_statements statement */ #line 403 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 3529 "tools/widl/parser.tab.c" +#line 3525 "tools/widl/parser.tab.c" break; case 27: /* gbl_statements: gbl_statements decl_block */ #line 404 "tools/widl/parser.y" { (yyval.stmt_list) = append_statements((yyvsp[-1].stmt_list), (yyvsp[0].stmt_list)); } -#line 3535 "tools/widl/parser.tab.c" +#line 3531 "tools/widl/parser.tab.c" break; case 28: /* imp_statements: %empty */ #line 407 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3541 "tools/widl/parser.tab.c" +#line 3537 "tools/widl/parser.tab.c" break; case 29: /* imp_statements: imp_statements interface ';' */ #line 408 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3547 "tools/widl/parser.tab.c" +#line 3543 "tools/widl/parser.tab.c" break; case 30: /* imp_statements: imp_statements dispinterface ';' */ #line 409 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3553 "tools/widl/parser.tab.c" +#line 3549 "tools/widl/parser.tab.c" break; case 31: /* $@2: %empty */ #line 410 "tools/widl/parser.y" { push_namespace((yyvsp[-1].str)); } -#line 3559 "tools/widl/parser.tab.c" +#line 3555 "tools/widl/parser.tab.c" break; case 32: /* imp_statements: imp_statements namespacedef '{' $@2 imp_statements '}' */ #line 411 "tools/widl/parser.y" { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } -#line 3565 "tools/widl/parser.tab.c" +#line 3561 "tools/widl/parser.tab.c" break; case 33: /* imp_statements: imp_statements interfacedef */ #line 412 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3571 "tools/widl/parser.tab.c" +#line 3567 "tools/widl/parser.tab.c" break; case 34: /* imp_statements: imp_statements delegatedef */ #line 413 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3577 "tools/widl/parser.tab.c" +#line 3573 "tools/widl/parser.tab.c" break; case 35: /* imp_statements: imp_statements coclass ';' */ #line 414 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3583 "tools/widl/parser.tab.c" +#line 3579 "tools/widl/parser.tab.c" break; case 36: /* imp_statements: imp_statements coclassdef */ @@ -3587,117 +3583,117 @@ { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 3591 "tools/widl/parser.tab.c" +#line 3587 "tools/widl/parser.tab.c" break; case 37: /* imp_statements: imp_statements apicontract ';' */ #line 418 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3597 "tools/widl/parser.tab.c" +#line 3593 "tools/widl/parser.tab.c" break; case 38: /* imp_statements: imp_statements apicontract_def */ #line 419 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 3604 "tools/widl/parser.tab.c" +#line 3600 "tools/widl/parser.tab.c" break; case 39: /* imp_statements: imp_statements runtimeclass ';' */ #line 421 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3610 "tools/widl/parser.tab.c" +#line 3606 "tools/widl/parser.tab.c" break; case 40: /* imp_statements: imp_statements runtimeclass_def */ #line 422 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 3617 "tools/widl/parser.tab.c" +#line 3613 "tools/widl/parser.tab.c" break; case 41: /* imp_statements: imp_statements moduledef */ #line 424 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } -#line 3623 "tools/widl/parser.tab.c" +#line 3619 "tools/widl/parser.tab.c" break; case 42: /* imp_statements: imp_statements statement */ #line 425 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 3629 "tools/widl/parser.tab.c" +#line 3625 "tools/widl/parser.tab.c" break; case 43: /* imp_statements: imp_statements importlib */ #line 426 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_importlib((yyvsp[0].str))); } -#line 3635 "tools/widl/parser.tab.c" +#line 3631 "tools/widl/parser.tab.c" break; case 44: /* imp_statements: imp_statements librarydef */ #line 427 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } -#line 3641 "tools/widl/parser.tab.c" +#line 3637 "tools/widl/parser.tab.c" break; case 45: /* imp_statements: imp_statements imp_decl_block */ #line 428 "tools/widl/parser.y" { (yyval.stmt_list) = append_statements((yyvsp[-1].stmt_list), (yyvsp[0].stmt_list)); } -#line 3647 "tools/widl/parser.tab.c" +#line 3643 "tools/widl/parser.tab.c" break; case 46: /* int_statements: %empty */ #line 431 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3653 "tools/widl/parser.tab.c" +#line 3649 "tools/widl/parser.tab.c" break; case 47: /* int_statements: int_statements statement */ #line 432 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 3659 "tools/widl/parser.tab.c" +#line 3655 "tools/widl/parser.tab.c" break; case 50: /* statement: cppquote */ #line 440 "tools/widl/parser.y" { (yyval.statement) = make_statement_cppquote((yyvsp[0].str)); } -#line 3665 "tools/widl/parser.tab.c" +#line 3661 "tools/widl/parser.tab.c" break; case 51: /* statement: typedecl ';' */ #line 441 "tools/widl/parser.y" { (yyval.statement) = make_statement_type_decl((yyvsp[-1].type)); } -#line 3671 "tools/widl/parser.tab.c" +#line 3667 "tools/widl/parser.tab.c" break; case 52: /* statement: declaration ';' */ #line 442 "tools/widl/parser.y" { (yyval.statement) = make_statement_declaration((yyvsp[-1].var)); } -#line 3677 "tools/widl/parser.tab.c" +#line 3673 "tools/widl/parser.tab.c" break; case 53: /* statement: import */ #line 443 "tools/widl/parser.y" { (yyval.statement) = make_statement_import((yyvsp[0].str)); } -#line 3683 "tools/widl/parser.tab.c" +#line 3679 "tools/widl/parser.tab.c" break; case 54: /* statement: typedef ';' */ #line 444 "tools/widl/parser.y" { (yyval.statement) = (yyvsp[-1].statement); } -#line 3689 "tools/widl/parser.tab.c" +#line 3685 "tools/widl/parser.tab.c" break; case 55: /* statement: aPRAGMA */ #line 445 "tools/widl/parser.y" { (yyval.statement) = make_statement_pragma((yyvsp[0].str)); } -#line 3695 "tools/widl/parser.tab.c" +#line 3691 "tools/widl/parser.tab.c" break; case 56: /* statement: pragma_warning */ #line 446 "tools/widl/parser.y" { (yyval.statement) = NULL; } -#line 3701 "tools/widl/parser.tab.c" +#line 3697 "tools/widl/parser.tab.c" break; case 57: /* pragma_warning: tPRAGMA_WARNING '(' aIDENTIFIER ':' warnings ')' */ @@ -3709,7 +3705,7 @@ if(!result) error_loc("expected \"disable\", \"enable\" or \"default\"\n"); } -#line 3713 "tools/widl/parser.tab.c" +#line 3709 "tools/widl/parser.tab.c" break; case 58: /* pragma_warning: tPRAGMA_WARNING '(' tDEFAULT ':' warnings ')' */ @@ -3718,61 +3714,61 @@ (yyval.statement) = NULL; do_warning("default", (yyvsp[-1].warning_list)); } -#line 3722 "tools/widl/parser.tab.c" +#line 3718 "tools/widl/parser.tab.c" break; case 59: /* warnings: aNUM */ #line 465 "tools/widl/parser.y" { (yyval.warning_list) = append_warning(NULL, (yyvsp[0].num)); } -#line 3728 "tools/widl/parser.tab.c" +#line 3724 "tools/widl/parser.tab.c" break; case 60: /* warnings: warnings aNUM */ #line 466 "tools/widl/parser.y" { (yyval.warning_list) = append_warning((yyvsp[-1].warning_list), (yyvsp[0].num)); } -#line 3734 "tools/widl/parser.tab.c" +#line 3730 "tools/widl/parser.tab.c" break; case 62: /* typedecl: tENUM aIDENTIFIER */ #line 471 "tools/widl/parser.y" { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 3740 "tools/widl/parser.tab.c" +#line 3736 "tools/widl/parser.tab.c" break; case 64: /* typedecl: tSTRUCT aIDENTIFIER */ #line 473 "tools/widl/parser.y" { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 3746 "tools/widl/parser.tab.c" +#line 3742 "tools/widl/parser.tab.c" break; case 66: /* typedecl: tUNION aIDENTIFIER */ #line 475 "tools/widl/parser.y" { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } -#line 3752 "tools/widl/parser.tab.c" +#line 3748 "tools/widl/parser.tab.c" break; case 67: /* typedecl: attributes enumdef */ #line 476 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[-1].attr_list)); } -#line 3758 "tools/widl/parser.tab.c" +#line 3754 "tools/widl/parser.tab.c" break; case 68: /* typedecl: attributes structdef */ #line 477 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[-1].attr_list)); } -#line 3764 "tools/widl/parser.tab.c" +#line 3760 "tools/widl/parser.tab.c" break; case 69: /* typedecl: attributes uniondef */ #line 478 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_union_attrs((yyvsp[-1].attr_list)); } -#line 3770 "tools/widl/parser.tab.c" +#line 3766 "tools/widl/parser.tab.c" break; case 70: /* cppquote: tCPPQUOTE '(' aSTRING ')' */ #line 481 "tools/widl/parser.y" { (yyval.str) = (yyvsp[-1].str); } -#line 3776 "tools/widl/parser.tab.c" +#line 3772 "tools/widl/parser.tab.c" break; case 71: /* import_start: tIMPORT aSTRING ';' */ @@ -3783,7 +3779,7 @@ (yyval.import)->import_performed = do_import((yyvsp[-1].str)); if (!(yyval.import)->import_performed) yychar = aEOF; } -#line 3787 "tools/widl/parser.tab.c" +#line 3783 "tools/widl/parser.tab.c" break; case 72: /* import: import_start imp_statements aEOF */ @@ -3792,19 +3788,19 @@ if ((yyvsp[-2].import)->import_performed) pop_import(); free((yyvsp[-2].import)); } -#line 3796 "tools/widl/parser.tab.c" +#line 3792 "tools/widl/parser.tab.c" break; case 73: /* importlib: tIMPORTLIB '(' aSTRING ')' semicolon_opt */ #line 498 "tools/widl/parser.y" { (yyval.str) = (yyvsp[-2].str); if(!parse_only) add_importlib((yyvsp[-2].str), current_typelib); } -#line 3802 "tools/widl/parser.tab.c" +#line 3798 "tools/widl/parser.tab.c" break; case 74: /* libraryhdr: tLIBRARY typename */ #line 501 "tools/widl/parser.y" { (yyval.str) = (yyvsp[0].str); } -#line 3808 "tools/widl/parser.tab.c" +#line 3804 "tools/widl/parser.tab.c" break; case 75: /* library_start: attributes libraryhdr '{' */ @@ -3812,37 +3808,37 @@ { (yyval.typelib) = make_library((yyvsp[-1].str), check_library_attrs((yyvsp[-1].str), (yyvsp[-2].attr_list))); if (!parse_only && do_typelib) current_typelib = (yyval.typelib); } -#line 3816 "tools/widl/parser.tab.c" +#line 3812 "tools/widl/parser.tab.c" break; case 76: /* librarydef: library_start imp_statements '}' semicolon_opt */ #line 508 "tools/widl/parser.y" { (yyval.typelib) = (yyvsp[-3].typelib); (yyval.typelib)->stmts = (yyvsp[-2].stmt_list); } -#line 3822 "tools/widl/parser.tab.c" +#line 3818 "tools/widl/parser.tab.c" break; case 77: /* m_args: %empty */ #line 511 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 3828 "tools/widl/parser.tab.c" +#line 3824 "tools/widl/parser.tab.c" break; case 79: /* arg_list: arg */ #line 515 "tools/widl/parser.y" { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); } -#line 3834 "tools/widl/parser.tab.c" +#line 3830 "tools/widl/parser.tab.c" break; case 80: /* arg_list: arg_list ',' arg */ #line 516 "tools/widl/parser.y" { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); } -#line 3840 "tools/widl/parser.tab.c" +#line 3836 "tools/widl/parser.tab.c" break; case 82: /* args: arg_list ',' ELLIPSIS */ #line 520 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-2].var_list), make_var(strdup("...")) ); } -#line 3846 "tools/widl/parser.tab.c" +#line 3842 "tools/widl/parser.tab.c" break; case 83: /* arg: attributes decl_spec m_any_declarator */ @@ -3852,7 +3848,7 @@ (yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), TRUE); free((yyvsp[-1].declspec)); free((yyvsp[0].declarator)); } -#line 3856 "tools/widl/parser.tab.c" +#line 3852 "tools/widl/parser.tab.c" break; case 84: /* arg: decl_spec m_any_declarator */ @@ -3862,7 +3858,7 @@ (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), TRUE); free((yyvsp[-1].declspec)); free((yyvsp[0].declarator)); } -#line 3866 "tools/widl/parser.tab.c" +#line 3862 "tools/widl/parser.tab.c" break; case 85: /* array: '[' expr ']' */ @@ -3871,91 +3867,91 @@ if (!(yyval.expr)->is_const || (yyval.expr)->cval <= 0) error_loc("array dimension is not a positive integer constant\n"); } -#line 3875 "tools/widl/parser.tab.c" +#line 3871 "tools/widl/parser.tab.c" break; case 86: /* array: '[' '*' ']' */ #line 540 "tools/widl/parser.y" { (yyval.expr) = make_expr(EXPR_VOID); } -#line 3881 "tools/widl/parser.tab.c" +#line 3877 "tools/widl/parser.tab.c" break; case 87: /* array: '[' ']' */ #line 541 "tools/widl/parser.y" { (yyval.expr) = make_expr(EXPR_VOID); } -#line 3887 "tools/widl/parser.tab.c" +#line 3883 "tools/widl/parser.tab.c" break; case 88: /* m_attributes: %empty */ #line 544 "tools/widl/parser.y" { (yyval.attr_list) = NULL; } -#line 3893 "tools/widl/parser.tab.c" +#line 3889 "tools/widl/parser.tab.c" break; case 90: /* attributes: '[' attrib_list ']' */ #line 549 "tools/widl/parser.y" { (yyval.attr_list) = (yyvsp[-1].attr_list); } -#line 3899 "tools/widl/parser.tab.c" +#line 3895 "tools/widl/parser.tab.c" break; case 91: /* attrib_list: attribute */ #line 552 "tools/widl/parser.y" { (yyval.attr_list) = append_attr( NULL, (yyvsp[0].attr) ); } -#line 3905 "tools/widl/parser.tab.c" +#line 3901 "tools/widl/parser.tab.c" break; case 92: /* attrib_list: attrib_list ',' attribute */ #line 553 "tools/widl/parser.y" { (yyval.attr_list) = append_attr( (yyvsp[-2].attr_list), (yyvsp[0].attr) ); } -#line 3911 "tools/widl/parser.tab.c" +#line 3907 "tools/widl/parser.tab.c" break; case 93: /* attrib_list: attrib_list ']' '[' attribute */ #line 554 "tools/widl/parser.y" { (yyval.attr_list) = append_attr( (yyvsp[-3].attr_list), (yyvsp[0].attr) ); } -#line 3917 "tools/widl/parser.tab.c" +#line 3913 "tools/widl/parser.tab.c" break; case 94: /* str_list: aSTRING */ #line 557 "tools/widl/parser.y" { (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); } -#line 3923 "tools/widl/parser.tab.c" +#line 3919 "tools/widl/parser.tab.c" break; case 95: /* str_list: str_list ',' aSTRING */ #line 558 "tools/widl/parser.y" { (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); } -#line 3929 "tools/widl/parser.tab.c" +#line 3925 "tools/widl/parser.tab.c" break; case 96: /* marshaling_behavior: tAGILE */ #line 562 "tools/widl/parser.y" { (yyval.num) = MARSHALING_AGILE; } -#line 3935 "tools/widl/parser.tab.c" +#line 3931 "tools/widl/parser.tab.c" break; case 97: /* marshaling_behavior: tNONE */ #line 563 "tools/widl/parser.y" { (yyval.num) = MARSHALING_NONE; } -#line 3941 "tools/widl/parser.tab.c" +#line 3937 "tools/widl/parser.tab.c" break; case 98: /* marshaling_behavior: tSTANDARD */ #line 564 "tools/widl/parser.y" { (yyval.num) = MARSHALING_STANDARD; } -#line 3947 "tools/widl/parser.tab.c" +#line 3943 "tools/widl/parser.tab.c" break; case 99: /* contract_ver: aNUM */ #line 568 "tools/widl/parser.y" { (yyval.num) = MAKEVERSION(0, (yyvsp[0].num)); } -#line 3953 "tools/widl/parser.tab.c" +#line 3949 "tools/widl/parser.tab.c" break; case 100: /* contract_ver: aNUM '.' aNUM */ #line 569 "tools/widl/parser.y" { (yyval.num) = MAKEVERSION((yyvsp[0].num), (yyvsp[-2].num)); } -#line 3959 "tools/widl/parser.tab.c" +#line 3955 "tools/widl/parser.tab.c" break; case 101: /* contract_req: decl_spec ',' contract_ver */ @@ -3965,7 +3961,7 @@ (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); (yyval.expr) = make_exprt(EXPR_GTREQL, declare_var(NULL, (yyvsp[-2].declspec), make_declarator(NULL), 0), (yyval.expr)); } -#line 3969 "tools/widl/parser.tab.c" +#line 3965 "tools/widl/parser.tab.c" break; case 102: /* static_attr: decl_spec ',' contract_req */ @@ -3974,223 +3970,223 @@ error_loc("type %s is not an interface\n", (yyvsp[-2].declspec)->type->name); (yyval.expr) = make_exprt(EXPR_MEMBER, declare_var(NULL, (yyvsp[-2].declspec), make_declarator(NULL), 0), (yyvsp[0].expr)); } -#line 3978 "tools/widl/parser.tab.c" +#line 3974 "tools/widl/parser.tab.c" break; case 103: /* attribute: %empty */ #line 583 "tools/widl/parser.y" { (yyval.attr) = NULL; } -#line 3984 "tools/widl/parser.tab.c" +#line 3980 "tools/widl/parser.tab.c" break; case 104: /* attribute: tACTIVATABLE '(' contract_req ')' */ #line 584 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ACTIVATABLE, (yyvsp[-1].expr)); } -#line 3990 "tools/widl/parser.tab.c" +#line 3986 "tools/widl/parser.tab.c" break; case 105: /* attribute: tAGGREGATABLE */ #line 585 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); } -#line 3996 "tools/widl/parser.tab.c" +#line 3992 "tools/widl/parser.tab.c" break; case 106: /* attribute: tANNOTATION '(' aSTRING ')' */ #line 586 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ANNOTATION, (yyvsp[-1].str)); } -#line 4002 "tools/widl/parser.tab.c" +#line 3998 "tools/widl/parser.tab.c" break; case 107: /* attribute: tAPPOBJECT */ #line 587 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_APPOBJECT); } -#line 4008 "tools/widl/parser.tab.c" +#line 4004 "tools/widl/parser.tab.c" break; case 108: /* attribute: tASYNC */ #line 588 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ASYNC); } -#line 4014 "tools/widl/parser.tab.c" +#line 4010 "tools/widl/parser.tab.c" break; case 109: /* attribute: tAUTOHANDLE */ #line 589 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); } -#line 4020 "tools/widl/parser.tab.c" +#line 4016 "tools/widl/parser.tab.c" break; case 110: /* attribute: tBINDABLE */ #line 590 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_BINDABLE); } -#line 4026 "tools/widl/parser.tab.c" +#line 4022 "tools/widl/parser.tab.c" break; case 111: /* attribute: tBROADCAST */ #line 591 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_BROADCAST); } -#line 4032 "tools/widl/parser.tab.c" +#line 4028 "tools/widl/parser.tab.c" break; case 112: /* attribute: tCALLAS '(' ident ')' */ #line 592 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[-1].var)); } -#line 4038 "tools/widl/parser.tab.c" +#line 4034 "tools/widl/parser.tab.c" break; case 113: /* attribute: tCASE '(' expr_list_int_const ')' */ #line 593 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[-1].expr_list)); } -#line 4044 "tools/widl/parser.tab.c" +#line 4040 "tools/widl/parser.tab.c" break; case 114: /* attribute: tCODE */ #line 594 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_CODE); } -#line 4050 "tools/widl/parser.tab.c" +#line 4046 "tools/widl/parser.tab.c" break; case 115: /* attribute: tCOMMSTATUS */ #line 595 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_COMMSTATUS); } -#line 4056 "tools/widl/parser.tab.c" +#line 4052 "tools/widl/parser.tab.c" break; case 116: /* attribute: tCONTEXTHANDLE */ #line 596 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); } -#line 4062 "tools/widl/parser.tab.c" +#line 4058 "tools/widl/parser.tab.c" break; case 117: /* attribute: tCONTEXTHANDLENOSERIALIZE */ #line 597 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } -#line 4068 "tools/widl/parser.tab.c" +#line 4064 "tools/widl/parser.tab.c" break; case 118: /* attribute: tCONTEXTHANDLESERIALIZE */ #line 598 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } -#line 4074 "tools/widl/parser.tab.c" +#line 4070 "tools/widl/parser.tab.c" break; case 119: /* attribute: tCONTRACT '(' contract_req ')' */ #line 599 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_CONTRACT, (yyvsp[-1].expr)); } -#line 4080 "tools/widl/parser.tab.c" +#line 4076 "tools/widl/parser.tab.c" break; case 120: /* attribute: tCONTRACTVERSION '(' contract_ver ')' */ #line 600 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTRACTVERSION, (yyvsp[-1].num)); } -#line 4086 "tools/widl/parser.tab.c" +#line 4082 "tools/widl/parser.tab.c" break; case 121: /* attribute: tCONTROL */ #line 601 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_CONTROL); } -#line 4092 "tools/widl/parser.tab.c" +#line 4088 "tools/widl/parser.tab.c" break; case 122: /* attribute: tCUSTOM '(' uuid_string ',' expr_const ')' */ #line 602 "tools/widl/parser.y" { (yyval.attr) = make_custom_attr((yyvsp[-3].uuid), (yyvsp[-1].expr)); } -#line 4098 "tools/widl/parser.tab.c" +#line 4094 "tools/widl/parser.tab.c" break; case 123: /* attribute: tDECODE */ #line 603 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DECODE); } -#line 4104 "tools/widl/parser.tab.c" +#line 4100 "tools/widl/parser.tab.c" break; case 124: /* attribute: tDEFAULT */ #line 604 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULT); } -#line 4110 "tools/widl/parser.tab.c" +#line 4106 "tools/widl/parser.tab.c" break; case 125: /* attribute: tDEFAULTBIND */ #line 605 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULTBIND); } -#line 4116 "tools/widl/parser.tab.c" +#line 4112 "tools/widl/parser.tab.c" break; case 126: /* attribute: tDEFAULTCOLLELEM */ #line 606 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); } -#line 4122 "tools/widl/parser.tab.c" +#line 4118 "tools/widl/parser.tab.c" break; case 127: /* attribute: tDEFAULTVALUE '(' expr_const ')' */ #line 607 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE, (yyvsp[-1].expr)); } -#line 4128 "tools/widl/parser.tab.c" +#line 4124 "tools/widl/parser.tab.c" break; case 128: /* attribute: tDEFAULTVTABLE */ #line 608 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); } -#line 4134 "tools/widl/parser.tab.c" +#line 4130 "tools/widl/parser.tab.c" break; case 129: /* attribute: tDISABLECONSISTENCYCHECK */ #line 609 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DISABLECONSISTENCYCHECK); } -#line 4140 "tools/widl/parser.tab.c" +#line 4136 "tools/widl/parser.tab.c" break; case 130: /* attribute: tDISPLAYBIND */ #line 610 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); } -#line 4146 "tools/widl/parser.tab.c" +#line 4142 "tools/widl/parser.tab.c" break; case 131: /* attribute: tDLLNAME '(' aSTRING ')' */ #line 611 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[-1].str)); } -#line 4152 "tools/widl/parser.tab.c" +#line 4148 "tools/widl/parser.tab.c" break; case 132: /* attribute: tDUAL */ #line 612 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DUAL); } -#line 4158 "tools/widl/parser.tab.c" +#line 4154 "tools/widl/parser.tab.c" break; case 133: /* attribute: tENABLEALLOCATE */ #line 613 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ENABLEALLOCATE); } -#line 4164 "tools/widl/parser.tab.c" +#line 4160 "tools/widl/parser.tab.c" break; case 134: /* attribute: tENCODE */ #line 614 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ENCODE); } -#line 4170 "tools/widl/parser.tab.c" +#line 4166 "tools/widl/parser.tab.c" break; case 135: /* attribute: tENDPOINT '(' str_list ')' */ #line 615 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[-1].str_list)); } -#line 4176 "tools/widl/parser.tab.c" +#line 4172 "tools/widl/parser.tab.c" break; case 136: /* attribute: tENTRY '(' expr_const ')' */ #line 616 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ENTRY, (yyvsp[-1].expr)); } -#line 4182 "tools/widl/parser.tab.c" +#line 4178 "tools/widl/parser.tab.c" break; case 137: /* attribute: tEVENTADD */ #line 617 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EVENTADD); } -#line 4188 "tools/widl/parser.tab.c" +#line 4184 "tools/widl/parser.tab.c" break; case 138: /* attribute: tEVENTREMOVE */ #line 618 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EVENTREMOVE); } -#line 4194 "tools/widl/parser.tab.c" +#line 4190 "tools/widl/parser.tab.c" break; case 139: /* attribute: tEXCLUSIVETO '(' decl_spec ')' */ @@ -4198,289 +4194,289 @@ { if ((yyvsp[-1].declspec)->type->type_type != TYPE_RUNTIMECLASS) error_loc("type %s is not a runtimeclass\n", (yyvsp[-1].declspec)->type->name); (yyval.attr) = make_attrp(ATTR_EXCLUSIVETO, (yyvsp[-1].declspec)->type); } -#line 4202 "tools/widl/parser.tab.c" +#line 4198 "tools/widl/parser.tab.c" break; case 140: /* attribute: tEXPLICITHANDLE */ #line 622 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } -#line 4208 "tools/widl/parser.tab.c" +#line 4204 "tools/widl/parser.tab.c" break; case 141: /* attribute: tFAULTSTATUS */ #line 623 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_FAULTSTATUS); } -#line 4214 "tools/widl/parser.tab.c" +#line 4210 "tools/widl/parser.tab.c" break; case 142: /* attribute: tFLAGS */ #line 624 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_FLAGS); } -#line 4220 "tools/widl/parser.tab.c" +#line 4216 "tools/widl/parser.tab.c" break; case 143: /* attribute: tFORCEALLOCATE */ #line 625 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_FORCEALLOCATE); } -#line 4226 "tools/widl/parser.tab.c" +#line 4222 "tools/widl/parser.tab.c" break; case 144: /* attribute: tHANDLE */ #line 626 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_HANDLE); } -#line 4232 "tools/widl/parser.tab.c" +#line 4228 "tools/widl/parser.tab.c" break; case 145: /* attribute: tHELPCONTEXT '(' expr_int_const ')' */ #line 627 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[-1].expr)); } -#line 4238 "tools/widl/parser.tab.c" +#line 4234 "tools/widl/parser.tab.c" break; case 146: /* attribute: tHELPFILE '(' aSTRING ')' */ #line 628 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[-1].str)); } -#line 4244 "tools/widl/parser.tab.c" +#line 4240 "tools/widl/parser.tab.c" break; case 147: /* attribute: tHELPSTRING '(' aSTRING ')' */ #line 629 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[-1].str)); } -#line 4250 "tools/widl/parser.tab.c" +#line 4246 "tools/widl/parser.tab.c" break; case 148: /* attribute: tHELPSTRINGCONTEXT '(' expr_int_const ')' */ #line 630 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[-1].expr)); } -#line 4256 "tools/widl/parser.tab.c" +#line 4252 "tools/widl/parser.tab.c" break; case 149: /* attribute: tHELPSTRINGDLL '(' aSTRING ')' */ #line 631 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[-1].str)); } -#line 4262 "tools/widl/parser.tab.c" +#line 4258 "tools/widl/parser.tab.c" break; case 150: /* attribute: tHIDDEN */ #line 632 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_HIDDEN); } -#line 4268 "tools/widl/parser.tab.c" +#line 4264 "tools/widl/parser.tab.c" break; case 151: /* attribute: tID '(' expr_int_const ')' */ #line 633 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[-1].expr)); } -#line 4274 "tools/widl/parser.tab.c" +#line 4270 "tools/widl/parser.tab.c" break; case 152: /* attribute: tIDEMPOTENT */ #line 634 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); } -#line 4280 "tools/widl/parser.tab.c" +#line 4276 "tools/widl/parser.tab.c" break; case 153: /* attribute: tIGNORE */ #line 635 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IGNORE); } -#line 4286 "tools/widl/parser.tab.c" +#line 4282 "tools/widl/parser.tab.c" break; case 154: /* attribute: tIIDIS '(' expr ')' */ #line 636 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[-1].expr)); } -#line 4292 "tools/widl/parser.tab.c" +#line 4288 "tools/widl/parser.tab.c" break; case 155: /* attribute: tIMMEDIATEBIND */ #line 637 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); } -#line 4298 "tools/widl/parser.tab.c" +#line 4294 "tools/widl/parser.tab.c" break; case 156: /* attribute: tIMPLICITHANDLE '(' arg ')' */ #line 638 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[-1].var)); } -#line 4304 "tools/widl/parser.tab.c" +#line 4300 "tools/widl/parser.tab.c" break; case 157: /* attribute: tIN */ #line 639 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IN); } -#line 4310 "tools/widl/parser.tab.c" +#line 4306 "tools/widl/parser.tab.c" break; case 158: /* attribute: tINPUTSYNC */ #line 640 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_INPUTSYNC); } -#line 4316 "tools/widl/parser.tab.c" +#line 4312 "tools/widl/parser.tab.c" break; case 159: /* attribute: tLENGTHIS '(' m_exprs ')' */ #line 641 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[-1].expr_list)); } -#line 4322 "tools/widl/parser.tab.c" +#line 4318 "tools/widl/parser.tab.c" break; case 160: /* attribute: tLCID '(' expr_int_const ')' */ #line 642 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_LIBLCID, (yyvsp[-1].expr)); } -#line 4328 "tools/widl/parser.tab.c" +#line 4324 "tools/widl/parser.tab.c" break; case 161: /* attribute: tLCID */ #line 643 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PARAMLCID); } -#line 4334 "tools/widl/parser.tab.c" +#line 4330 "tools/widl/parser.tab.c" break; case 162: /* attribute: tLICENSED */ #line 644 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_LICENSED); } -#line 4340 "tools/widl/parser.tab.c" +#line 4336 "tools/widl/parser.tab.c" break; case 163: /* attribute: tLOCAL */ #line 645 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_LOCAL); } -#line 4346 "tools/widl/parser.tab.c" +#line 4342 "tools/widl/parser.tab.c" break; case 164: /* attribute: tMARSHALINGBEHAVIOR '(' marshaling_behavior ')' */ #line 647 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_MARSHALING_BEHAVIOR, (yyvsp[-1].num)); } -#line 4352 "tools/widl/parser.tab.c" +#line 4348 "tools/widl/parser.tab.c" break; case 165: /* attribute: tMAYBE */ #line 648 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_MAYBE); } -#line 4358 "tools/widl/parser.tab.c" +#line 4354 "tools/widl/parser.tab.c" break; case 166: /* attribute: tMESSAGE */ #line 649 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_MESSAGE); } -#line 4364 "tools/widl/parser.tab.c" +#line 4360 "tools/widl/parser.tab.c" break; case 167: /* attribute: tNOCODE */ #line 650 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NOCODE); } -#line 4370 "tools/widl/parser.tab.c" +#line 4366 "tools/widl/parser.tab.c" break; case 168: /* attribute: tNONBROWSABLE */ #line 651 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); } -#line 4376 "tools/widl/parser.tab.c" +#line 4372 "tools/widl/parser.tab.c" break; case 169: /* attribute: tNONCREATABLE */ #line 652 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NONCREATABLE); } -#line 4382 "tools/widl/parser.tab.c" +#line 4378 "tools/widl/parser.tab.c" break; case 170: /* attribute: tNONEXTENSIBLE */ #line 653 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); } -#line 4388 "tools/widl/parser.tab.c" +#line 4384 "tools/widl/parser.tab.c" break; case 171: /* attribute: tNOTIFY */ #line 654 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NOTIFY); } -#line 4394 "tools/widl/parser.tab.c" +#line 4390 "tools/widl/parser.tab.c" break; case 172: /* attribute: tNOTIFYFLAG */ #line 655 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NOTIFYFLAG); } -#line 4400 "tools/widl/parser.tab.c" +#line 4396 "tools/widl/parser.tab.c" break; case 173: /* attribute: tOBJECT */ #line 656 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OBJECT); } -#line 4406 "tools/widl/parser.tab.c" +#line 4402 "tools/widl/parser.tab.c" break; case 174: /* attribute: tODL */ #line 657 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ODL); } -#line 4412 "tools/widl/parser.tab.c" +#line 4408 "tools/widl/parser.tab.c" break; case 175: /* attribute: tOLEAUTOMATION */ #line 658 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); } -#line 4418 "tools/widl/parser.tab.c" +#line 4414 "tools/widl/parser.tab.c" break; case 176: /* attribute: tOPTIMIZE '(' aSTRING ')' */ #line 659 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_OPTIMIZE, (yyvsp[-1].str)); } -#line 4424 "tools/widl/parser.tab.c" +#line 4420 "tools/widl/parser.tab.c" break; case 177: /* attribute: tOPTIONAL */ #line 660 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OPTIONAL); } -#line 4430 "tools/widl/parser.tab.c" +#line 4426 "tools/widl/parser.tab.c" break; case 178: /* attribute: tOUT */ #line 661 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OUT); } -#line 4436 "tools/widl/parser.tab.c" +#line 4432 "tools/widl/parser.tab.c" break; case 179: /* attribute: tPARTIALIGNORE */ #line 662 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PARTIALIGNORE); } -#line 4442 "tools/widl/parser.tab.c" +#line 4438 "tools/widl/parser.tab.c" break; case 180: /* attribute: tPOINTERDEFAULT '(' pointer_type ')' */ #line 663 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[-1].num)); } -#line 4448 "tools/widl/parser.tab.c" +#line 4444 "tools/widl/parser.tab.c" break; case 181: /* attribute: tPROGID '(' aSTRING ')' */ #line 664 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_PROGID, (yyvsp[-1].str)); } -#line 4454 "tools/widl/parser.tab.c" +#line 4450 "tools/widl/parser.tab.c" break; case 182: /* attribute: tPROPGET */ #line 665 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROPGET); } -#line 4460 "tools/widl/parser.tab.c" +#line 4456 "tools/widl/parser.tab.c" break; case 183: /* attribute: tPROPPUT */ #line 666 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROPPUT); } -#line 4466 "tools/widl/parser.tab.c" +#line 4462 "tools/widl/parser.tab.c" break; case 184: /* attribute: tPROPPUTREF */ #line 667 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROPPUTREF); } -#line 4472 "tools/widl/parser.tab.c" +#line 4468 "tools/widl/parser.tab.c" break; case 185: /* attribute: tPROXY */ #line 668 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROXY); } -#line 4478 "tools/widl/parser.tab.c" +#line 4474 "tools/widl/parser.tab.c" break; case 186: /* attribute: tPUBLIC */ #line 669 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PUBLIC); } -#line 4484 "tools/widl/parser.tab.c" +#line 4480 "tools/widl/parser.tab.c" break; case 187: /* attribute: tRANGE '(' expr_int_const ',' expr_int_const ')' */ @@ -4488,157 +4484,157 @@ { expr_list_t *list = append_expr( NULL, (yyvsp[-3].expr) ); list = append_expr( list, (yyvsp[-1].expr) ); (yyval.attr) = make_attrp(ATTR_RANGE, list); } -#line 4492 "tools/widl/parser.tab.c" +#line 4488 "tools/widl/parser.tab.c" break; case 188: /* attribute: tREADONLY */ #line 674 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_READONLY); } -#line 4498 "tools/widl/parser.tab.c" +#line 4494 "tools/widl/parser.tab.c" break; case 189: /* attribute: tREPRESENTAS '(' type ')' */ #line 675 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_REPRESENTAS, (yyvsp[-1].type)); } -#line 4504 "tools/widl/parser.tab.c" +#line 4500 "tools/widl/parser.tab.c" break; case 190: /* attribute: tREQUESTEDIT */ #line 676 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); } -#line 4510 "tools/widl/parser.tab.c" +#line 4506 "tools/widl/parser.tab.c" break; case 191: /* attribute: tRESTRICTED */ #line 677 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_RESTRICTED); } -#line 4516 "tools/widl/parser.tab.c" +#line 4512 "tools/widl/parser.tab.c" break; case 192: /* attribute: tRETVAL */ #line 678 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_RETVAL); } -#line 4522 "tools/widl/parser.tab.c" +#line 4518 "tools/widl/parser.tab.c" break; case 193: /* attribute: tSIZEIS '(' m_exprs ')' */ #line 679 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[-1].expr_list)); } -#line 4528 "tools/widl/parser.tab.c" +#line 4524 "tools/widl/parser.tab.c" break; case 194: /* attribute: tSOURCE */ #line 680 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_SOURCE); } -#line 4534 "tools/widl/parser.tab.c" +#line 4530 "tools/widl/parser.tab.c" break; case 195: /* attribute: tSTATIC '(' static_attr ')' */ #line 681 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_STATIC, (yyvsp[-1].expr)); } -#line 4540 "tools/widl/parser.tab.c" +#line 4536 "tools/widl/parser.tab.c" break; case 196: /* attribute: tSTRICTCONTEXTHANDLE */ #line 682 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); } -#line 4546 "tools/widl/parser.tab.c" +#line 4542 "tools/widl/parser.tab.c" break; case 197: /* attribute: tSTRING */ #line 683 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_STRING); } -#line 4552 "tools/widl/parser.tab.c" +#line 4548 "tools/widl/parser.tab.c" break; case 198: /* attribute: tSWITCHIS '(' expr ')' */ #line 684 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[-1].expr)); } -#line 4558 "tools/widl/parser.tab.c" +#line 4554 "tools/widl/parser.tab.c" break; case 199: /* attribute: tSWITCHTYPE '(' type ')' */ #line 685 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[-1].type)); } -#line 4564 "tools/widl/parser.tab.c" +#line 4560 "tools/widl/parser.tab.c" break; case 200: /* attribute: tTRANSMITAS '(' type ')' */ #line 686 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[-1].type)); } -#line 4570 "tools/widl/parser.tab.c" +#line 4566 "tools/widl/parser.tab.c" break; case 201: /* attribute: tTHREADING '(' threading_type ')' */ #line 687 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_THREADING, (yyvsp[-1].num)); } -#line 4576 "tools/widl/parser.tab.c" +#line 4572 "tools/widl/parser.tab.c" break; case 202: /* attribute: tUIDEFAULT */ #line 688 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_UIDEFAULT); } -#line 4582 "tools/widl/parser.tab.c" +#line 4578 "tools/widl/parser.tab.c" break; case 203: /* attribute: tUSESGETLASTERROR */ #line 689 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_USESGETLASTERROR); } -#line 4588 "tools/widl/parser.tab.c" +#line 4584 "tools/widl/parser.tab.c" break; case 204: /* attribute: tUSERMARSHAL '(' type ')' */ #line 690 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_USERMARSHAL, (yyvsp[-1].type)); } -#line 4594 "tools/widl/parser.tab.c" +#line 4590 "tools/widl/parser.tab.c" break; case 205: /* attribute: tUUID '(' uuid_string ')' */ #line 691 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[-1].uuid)); } -#line 4600 "tools/widl/parser.tab.c" +#line 4596 "tools/widl/parser.tab.c" break; case 206: /* attribute: tASYNCUUID '(' uuid_string ')' */ #line 692 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ASYNCUUID, (yyvsp[-1].uuid)); } -#line 4606 "tools/widl/parser.tab.c" +#line 4602 "tools/widl/parser.tab.c" break; case 207: /* attribute: tV1ENUM */ #line 693 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_V1ENUM); } -#line 4612 "tools/widl/parser.tab.c" +#line 4608 "tools/widl/parser.tab.c" break; case 208: /* attribute: tVARARG */ #line 694 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_VARARG); } -#line 4618 "tools/widl/parser.tab.c" +#line 4614 "tools/widl/parser.tab.c" break; case 209: /* attribute: tVERSION '(' version ')' */ #line 695 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[-1].num)); } -#line 4624 "tools/widl/parser.tab.c" +#line 4620 "tools/widl/parser.tab.c" break; case 210: /* attribute: tVIPROGID '(' aSTRING ')' */ #line 696 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_VIPROGID, (yyvsp[-1].str)); } -#line 4630 "tools/widl/parser.tab.c" +#line 4626 "tools/widl/parser.tab.c" break; case 211: /* attribute: tWIREMARSHAL '(' type ')' */ #line 697 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[-1].type)); } -#line 4636 "tools/widl/parser.tab.c" +#line 4632 "tools/widl/parser.tab.c" break; case 212: /* attribute: pointer_type */ #line 698 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[0].num)); } -#line 4642 "tools/widl/parser.tab.c" +#line 4638 "tools/widl/parser.tab.c" break; case 214: /* uuid_string: aSTRING */ @@ -4646,43 +4642,43 @@ { if (!is_valid_uuid((yyvsp[0].str))) error_loc("invalid UUID: %s\n", (yyvsp[0].str)); (yyval.uuid) = parse_uuid((yyvsp[0].str)); } -#line 4650 "tools/widl/parser.tab.c" +#line 4646 "tools/widl/parser.tab.c" break; case 215: /* callconv: tCDECL */ #line 708 "tools/widl/parser.y" { (yyval.str) = xstrdup("__cdecl"); } -#line 4656 "tools/widl/parser.tab.c" +#line 4652 "tools/widl/parser.tab.c" break; case 216: /* callconv: tFASTCALL */ #line 709 "tools/widl/parser.y" { (yyval.str) = xstrdup("__fastcall"); } -#line 4662 "tools/widl/parser.tab.c" +#line 4658 "tools/widl/parser.tab.c" break; case 217: /* callconv: tPASCAL */ #line 710 "tools/widl/parser.y" { (yyval.str) = xstrdup("__pascal"); } -#line 4668 "tools/widl/parser.tab.c" +#line 4664 "tools/widl/parser.tab.c" break; case 218: /* callconv: tSTDCALL */ #line 711 "tools/widl/parser.y" { (yyval.str) = xstrdup("__stdcall"); } -#line 4674 "tools/widl/parser.tab.c" +#line 4670 "tools/widl/parser.tab.c" break; case 219: /* cases: %empty */ #line 714 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 4680 "tools/widl/parser.tab.c" +#line 4676 "tools/widl/parser.tab.c" break; case 220: /* cases: cases case */ #line 715 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } -#line 4686 "tools/widl/parser.tab.c" +#line 4682 "tools/widl/parser.tab.c" break; case 221: /* case: tCASE expr_int_const ':' union_field */ @@ -4691,7 +4687,7 @@ (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); } -#line 4695 "tools/widl/parser.tab.c" +#line 4691 "tools/widl/parser.tab.c" break; case 222: /* case: tDEFAULT ':' union_field */ @@ -4700,19 +4696,19 @@ (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); } -#line 4704 "tools/widl/parser.tab.c" +#line 4700 "tools/widl/parser.tab.c" break; case 223: /* enums: %empty */ #line 728 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 4710 "tools/widl/parser.tab.c" +#line 4706 "tools/widl/parser.tab.c" break; case 224: /* enums: enum_list ',' */ #line 729 "tools/widl/parser.y" { (yyval.var_list) = (yyvsp[-1].var_list); } -#line 4716 "tools/widl/parser.tab.c" +#line 4712 "tools/widl/parser.tab.c" break; case 226: /* enum_list: enum */ @@ -4721,7 +4717,7 @@ (yyvsp[0].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); } -#line 4725 "tools/widl/parser.tab.c" +#line 4721 "tools/widl/parser.tab.c" break; case 227: /* enum_list: enum_list ',' enum */ @@ -4736,7 +4732,7 @@ } (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); } -#line 4740 "tools/widl/parser.tab.c" +#line 4736 "tools/widl/parser.tab.c" break; case 228: /* enum_member: m_attributes ident */ @@ -4744,7 +4740,7 @@ { (yyval.var) = (yyvsp[0].var); (yyval.var)->attrs = check_enum_member_attrs((yyvsp[-1].attr_list)); } -#line 4748 "tools/widl/parser.tab.c" +#line 4744 "tools/widl/parser.tab.c" break; case 229: /* enum: enum_member '=' expr_int_const */ @@ -4753,7 +4749,7 @@ (yyval.var)->eval = (yyvsp[0].expr); (yyval.var)->declspec.type = type_new_int(TYPE_BASIC_INT, 0); } -#line 4757 "tools/widl/parser.tab.c" +#line 4753 "tools/widl/parser.tab.c" break; case 230: /* enum: enum_member */ @@ -4761,289 +4757,289 @@ { (yyval.var) = reg_const((yyvsp[0].var)); (yyval.var)->declspec.type = type_new_int(TYPE_BASIC_INT, 0); } -#line 4765 "tools/widl/parser.tab.c" +#line 4761 "tools/widl/parser.tab.c" break; case 231: /* enumdef: tENUM m_typename '{' enums '}' */ #line 763 "tools/widl/parser.y" { (yyval.type) = type_new_enum((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } -#line 4771 "tools/widl/parser.tab.c" +#line 4767 "tools/widl/parser.tab.c" break; case 232: /* m_exprs: m_expr */ #line 766 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } -#line 4777 "tools/widl/parser.tab.c" +#line 4773 "tools/widl/parser.tab.c" break; case 233: /* m_exprs: m_exprs ',' m_expr */ #line 767 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } -#line 4783 "tools/widl/parser.tab.c" +#line 4779 "tools/widl/parser.tab.c" break; case 234: /* m_expr: %empty */ #line 770 "tools/widl/parser.y" { (yyval.expr) = make_expr(EXPR_VOID); } -#line 4789 "tools/widl/parser.tab.c" +#line 4785 "tools/widl/parser.tab.c" break; case 236: /* expr: aNUM */ #line 774 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); } -#line 4795 "tools/widl/parser.tab.c" +#line 4791 "tools/widl/parser.tab.c" break; case 237: /* expr: aHEXNUM */ #line 775 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[0].num)); } -#line 4801 "tools/widl/parser.tab.c" +#line 4797 "tools/widl/parser.tab.c" break; case 238: /* expr: aDOUBLE */ #line 776 "tools/widl/parser.y" { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[0].dbl)); } -#line 4807 "tools/widl/parser.tab.c" +#line 4803 "tools/widl/parser.tab.c" break; case 239: /* expr: tFALSE */ #line 777 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); } -#line 4813 "tools/widl/parser.tab.c" +#line 4809 "tools/widl/parser.tab.c" break; case 240: /* expr: tNULL */ #line 778 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_NUM, 0); } -#line 4819 "tools/widl/parser.tab.c" +#line 4815 "tools/widl/parser.tab.c" break; case 241: /* expr: tTRUE */ #line 779 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); } -#line 4825 "tools/widl/parser.tab.c" +#line 4821 "tools/widl/parser.tab.c" break; case 242: /* expr: aSTRING */ #line 780 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[0].str)); } -#line 4831 "tools/widl/parser.tab.c" +#line 4827 "tools/widl/parser.tab.c" break; case 243: /* expr: aWSTRING */ #line 781 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[0].str)); } -#line 4837 "tools/widl/parser.tab.c" +#line 4833 "tools/widl/parser.tab.c" break; case 244: /* expr: aSQSTRING */ #line 782 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[0].str)); } -#line 4843 "tools/widl/parser.tab.c" +#line 4839 "tools/widl/parser.tab.c" break; case 245: /* expr: aIDENTIFIER */ #line 783 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str)); } -#line 4849 "tools/widl/parser.tab.c" +#line 4845 "tools/widl/parser.tab.c" break; case 246: /* expr: expr '?' expr ':' expr */ #line 784 "tools/widl/parser.y" { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4855 "tools/widl/parser.tab.c" +#line 4851 "tools/widl/parser.tab.c" break; case 247: /* expr: expr LOGICALOR expr */ #line 785 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4861 "tools/widl/parser.tab.c" +#line 4857 "tools/widl/parser.tab.c" break; case 248: /* expr: expr LOGICALAND expr */ #line 786 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4867 "tools/widl/parser.tab.c" +#line 4863 "tools/widl/parser.tab.c" break; case 249: /* expr: expr '|' expr */ #line 787 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4873 "tools/widl/parser.tab.c" +#line 4869 "tools/widl/parser.tab.c" break; case 250: /* expr: expr '^' expr */ #line 788 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4879 "tools/widl/parser.tab.c" +#line 4875 "tools/widl/parser.tab.c" break; case 251: /* expr: expr '&' expr */ #line 789 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4885 "tools/widl/parser.tab.c" +#line 4881 "tools/widl/parser.tab.c" break; case 252: /* expr: expr EQUALITY expr */ #line 790 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4891 "tools/widl/parser.tab.c" +#line 4887 "tools/widl/parser.tab.c" break; case 253: /* expr: expr INEQUALITY expr */ #line 791 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4897 "tools/widl/parser.tab.c" +#line 4893 "tools/widl/parser.tab.c" break; case 254: /* expr: expr '>' expr */ #line 792 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4903 "tools/widl/parser.tab.c" +#line 4899 "tools/widl/parser.tab.c" break; case 255: /* expr: expr '<' expr */ #line 793 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4909 "tools/widl/parser.tab.c" +#line 4905 "tools/widl/parser.tab.c" break; case 256: /* expr: expr GREATEREQUAL expr */ #line 794 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4915 "tools/widl/parser.tab.c" +#line 4911 "tools/widl/parser.tab.c" break; case 257: /* expr: expr LESSEQUAL expr */ #line 795 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4921 "tools/widl/parser.tab.c" +#line 4917 "tools/widl/parser.tab.c" break; case 258: /* expr: expr SHL expr */ #line 796 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4927 "tools/widl/parser.tab.c" +#line 4923 "tools/widl/parser.tab.c" break; case 259: /* expr: expr SHR expr */ #line 797 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4933 "tools/widl/parser.tab.c" +#line 4929 "tools/widl/parser.tab.c" break; case 260: /* expr: expr '+' expr */ #line 798 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4939 "tools/widl/parser.tab.c" +#line 4935 "tools/widl/parser.tab.c" break; case 261: /* expr: expr '-' expr */ #line 799 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4945 "tools/widl/parser.tab.c" +#line 4941 "tools/widl/parser.tab.c" break; case 262: /* expr: expr '%' expr */ #line 800 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4951 "tools/widl/parser.tab.c" +#line 4947 "tools/widl/parser.tab.c" break; case 263: /* expr: expr '*' expr */ #line 801 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4957 "tools/widl/parser.tab.c" +#line 4953 "tools/widl/parser.tab.c" break; case 264: /* expr: expr '/' expr */ #line 802 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4963 "tools/widl/parser.tab.c" +#line 4959 "tools/widl/parser.tab.c" break; case 265: /* expr: '!' expr */ #line 803 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[0].expr)); } -#line 4969 "tools/widl/parser.tab.c" +#line 4965 "tools/widl/parser.tab.c" break; case 266: /* expr: '~' expr */ #line 804 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[0].expr)); } -#line 4975 "tools/widl/parser.tab.c" +#line 4971 "tools/widl/parser.tab.c" break; case 267: /* expr: '+' expr */ #line 805 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[0].expr)); } -#line 4981 "tools/widl/parser.tab.c" +#line 4977 "tools/widl/parser.tab.c" break; case 268: /* expr: '-' expr */ #line 806 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[0].expr)); } -#line 4987 "tools/widl/parser.tab.c" +#line 4983 "tools/widl/parser.tab.c" break; case 269: /* expr: '&' expr */ #line 807 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[0].expr)); } -#line 4993 "tools/widl/parser.tab.c" +#line 4989 "tools/widl/parser.tab.c" break; case 270: /* expr: '*' expr */ #line 808 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[0].expr)); } -#line 4999 "tools/widl/parser.tab.c" +#line 4995 "tools/widl/parser.tab.c" break; case 271: /* expr: expr MEMBERPTR aIDENTIFIER */ #line 809 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[-2].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); } -#line 5005 "tools/widl/parser.tab.c" +#line 5001 "tools/widl/parser.tab.c" break; case 272: /* expr: expr '.' aIDENTIFIER */ #line 810 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[-2].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); } -#line 5011 "tools/widl/parser.tab.c" +#line 5007 "tools/widl/parser.tab.c" break; case 273: /* expr: '(' unqualified_decl_spec m_abstract_declarator ')' expr */ #line 812 "tools/widl/parser.y" { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[-3].declspec), (yyvsp[-2].declarator), 0), (yyvsp[0].expr)); free((yyvsp[-3].declspec)); free((yyvsp[-2].declarator)); } -#line 5017 "tools/widl/parser.tab.c" +#line 5013 "tools/widl/parser.tab.c" break; case 274: /* expr: tSIZEOF '(' unqualified_decl_spec m_abstract_declarator ')' */ #line 814 "tools/widl/parser.y" { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[-2].declspec), (yyvsp[-1].declarator), 0), NULL); free((yyvsp[-2].declspec)); free((yyvsp[-1].declarator)); } -#line 5023 "tools/widl/parser.tab.c" +#line 5019 "tools/widl/parser.tab.c" break; case 275: /* expr: expr '[' expr ']' */ #line 815 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 5029 "tools/widl/parser.tab.c" +#line 5025 "tools/widl/parser.tab.c" break; case 276: /* expr: '(' expr ')' */ #line 816 "tools/widl/parser.y" { (yyval.expr) = (yyvsp[-1].expr); } -#line 5035 "tools/widl/parser.tab.c" +#line 5031 "tools/widl/parser.tab.c" break; case 277: /* expr_list_int_const: expr_int_const */ #line 819 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } -#line 5041 "tools/widl/parser.tab.c" +#line 5037 "tools/widl/parser.tab.c" break; case 278: /* expr_list_int_const: expr_list_int_const ',' expr_int_const */ #line 820 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } -#line 5047 "tools/widl/parser.tab.c" +#line 5043 "tools/widl/parser.tab.c" break; case 279: /* expr_int_const: expr */ @@ -5052,7 +5048,7 @@ if (!(yyval.expr)->is_const) error_loc("expression is not an integer constant\n"); } -#line 5056 "tools/widl/parser.tab.c" +#line 5052 "tools/widl/parser.tab.c" break; case 280: /* expr_const: expr */ @@ -5061,19 +5057,19 @@ if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT) error_loc("expression is not constant\n"); } -#line 5065 "tools/widl/parser.tab.c" +#line 5061 "tools/widl/parser.tab.c" break; case 281: /* fields: %empty */ #line 835 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 5071 "tools/widl/parser.tab.c" +#line 5067 "tools/widl/parser.tab.c" break; case 282: /* fields: fields field */ #line 836 "tools/widl/parser.y" { (yyval.var_list) = append_var_list((yyvsp[-1].var_list), (yyvsp[0].var_list)); } -#line 5077 "tools/widl/parser.tab.c" +#line 5073 "tools/widl/parser.tab.c" break; case 283: /* field: m_attributes decl_spec struct_declarator_list ';' */ @@ -5082,7 +5078,7 @@ check_field_attrs(first, (yyvsp[-3].attr_list)); (yyval.var_list) = set_var_types((yyvsp[-3].attr_list), (yyvsp[-2].declspec), (yyvsp[-1].declarator_list)); } -#line 5086 "tools/widl/parser.tab.c" +#line 5082 "tools/widl/parser.tab.c" break; case 284: /* field: m_attributes uniondef ';' */ @@ -5091,43 +5087,43 @@ v->declspec.type = (yyvsp[-1].type); v->attrs = (yyvsp[-2].attr_list); (yyval.var_list) = append_var(NULL, v); } -#line 5095 "tools/widl/parser.tab.c" +#line 5091 "tools/widl/parser.tab.c" break; case 285: /* ne_union_field: s_field ';' */ #line 851 "tools/widl/parser.y" { (yyval.var) = (yyvsp[-1].var); } -#line 5101 "tools/widl/parser.tab.c" +#line 5097 "tools/widl/parser.tab.c" break; case 286: /* ne_union_field: attributes ';' */ #line 852 "tools/widl/parser.y" { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[-1].attr_list); } -#line 5107 "tools/widl/parser.tab.c" +#line 5103 "tools/widl/parser.tab.c" break; case 287: /* ne_union_fields: %empty */ #line 855 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 5113 "tools/widl/parser.tab.c" +#line 5109 "tools/widl/parser.tab.c" break; case 288: /* ne_union_fields: ne_union_fields ne_union_field */ #line 856 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } -#line 5119 "tools/widl/parser.tab.c" +#line 5115 "tools/widl/parser.tab.c" break; case 289: /* union_field: s_field ';' */ #line 860 "tools/widl/parser.y" { (yyval.var) = (yyvsp[-1].var); } -#line 5125 "tools/widl/parser.tab.c" +#line 5121 "tools/widl/parser.tab.c" break; case 290: /* union_field: ';' */ #line 861 "tools/widl/parser.y" { (yyval.var) = NULL; } -#line 5131 "tools/widl/parser.tab.c" +#line 5127 "tools/widl/parser.tab.c" break; case 291: /* s_field: m_attributes decl_spec declarator */ @@ -5136,7 +5132,7 @@ (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 5140 "tools/widl/parser.tab.c" +#line 5136 "tools/widl/parser.tab.c" break; case 292: /* s_field: m_attributes structdef */ @@ -5145,7 +5141,7 @@ v->declspec.type = (yyvsp[0].type); v->attrs = (yyvsp[-1].attr_list); (yyval.var) = v; } -#line 5149 "tools/widl/parser.tab.c" +#line 5145 "tools/widl/parser.tab.c" break; case 293: /* funcdef: declaration */ @@ -5155,7 +5151,7 @@ error_loc("only methods may be declared inside the methods section of a dispinterface\n"); check_function_attrs((yyval.var)->name, (yyval.var)->attrs); } -#line 5159 "tools/widl/parser.tab.c" +#line 5155 "tools/widl/parser.tab.c" break; case 294: /* declaration: attributes decl_spec init_declarator */ @@ -5163,7 +5159,7 @@ { (yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 5167 "tools/widl/parser.tab.c" +#line 5163 "tools/widl/parser.tab.c" break; case 295: /* declaration: decl_spec init_declarator */ @@ -5171,385 +5167,385 @@ { (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 5175 "tools/widl/parser.tab.c" +#line 5171 "tools/widl/parser.tab.c" break; case 296: /* m_ident: %empty */ #line 891 "tools/widl/parser.y" { (yyval.var) = NULL; } -#line 5181 "tools/widl/parser.tab.c" +#line 5177 "tools/widl/parser.tab.c" break; case 298: /* m_typename: %empty */ #line 895 "tools/widl/parser.y" { (yyval.str) = NULL; } -#line 5187 "tools/widl/parser.tab.c" +#line 5183 "tools/widl/parser.tab.c" break; case 302: /* ident: typename */ #line 903 "tools/widl/parser.y" { (yyval.var) = make_var((yyvsp[0].str)); } -#line 5193 "tools/widl/parser.tab.c" +#line 5189 "tools/widl/parser.tab.c" break; case 303: /* base_type: tBYTE */ #line 906 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5199 "tools/widl/parser.tab.c" +#line 5195 "tools/widl/parser.tab.c" break; case 304: /* base_type: tWCHAR */ #line 907 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5205 "tools/widl/parser.tab.c" +#line 5201 "tools/widl/parser.tab.c" break; case 306: /* base_type: tSIGNED int_std */ #line 909 "tools/widl/parser.y" { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), -1); } -#line 5211 "tools/widl/parser.tab.c" +#line 5207 "tools/widl/parser.tab.c" break; case 307: /* base_type: tUNSIGNED int_std */ #line 910 "tools/widl/parser.y" { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), 1); } -#line 5217 "tools/widl/parser.tab.c" +#line 5213 "tools/widl/parser.tab.c" break; case 308: /* base_type: tUNSIGNED */ #line 911 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } -#line 5223 "tools/widl/parser.tab.c" +#line 5219 "tools/widl/parser.tab.c" break; case 309: /* base_type: tFLOAT */ #line 912 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5229 "tools/widl/parser.tab.c" +#line 5225 "tools/widl/parser.tab.c" break; case 310: /* base_type: tDOUBLE */ #line 913 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5235 "tools/widl/parser.tab.c" +#line 5231 "tools/widl/parser.tab.c" break; case 311: /* base_type: tBOOLEAN */ #line 914 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5241 "tools/widl/parser.tab.c" +#line 5237 "tools/widl/parser.tab.c" break; case 312: /* base_type: tERRORSTATUST */ #line 915 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5247 "tools/widl/parser.tab.c" +#line 5243 "tools/widl/parser.tab.c" break; case 313: /* base_type: tHANDLET */ #line 916 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5253 "tools/widl/parser.tab.c" +#line 5249 "tools/widl/parser.tab.c" break; case 316: /* int_std: tINT */ #line 923 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } -#line 5259 "tools/widl/parser.tab.c" +#line 5255 "tools/widl/parser.tab.c" break; case 317: /* int_std: tSHORT m_int */ #line 924 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } -#line 5265 "tools/widl/parser.tab.c" +#line 5261 "tools/widl/parser.tab.c" break; case 318: /* int_std: tSMALL */ #line 925 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } -#line 5271 "tools/widl/parser.tab.c" +#line 5267 "tools/widl/parser.tab.c" break; case 319: /* int_std: tLONG m_int */ #line 926 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_LONG, 0); } -#line 5277 "tools/widl/parser.tab.c" +#line 5273 "tools/widl/parser.tab.c" break; case 320: /* int_std: tHYPER m_int */ #line 927 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } -#line 5283 "tools/widl/parser.tab.c" +#line 5279 "tools/widl/parser.tab.c" break; case 321: /* int_std: tINT64 */ #line 928 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } -#line 5289 "tools/widl/parser.tab.c" +#line 5285 "tools/widl/parser.tab.c" break; case 322: /* int_std: tCHAR */ #line 929 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } -#line 5295 "tools/widl/parser.tab.c" +#line 5291 "tools/widl/parser.tab.c" break; case 323: /* int_std: tINT32 */ #line 930 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } -#line 5301 "tools/widl/parser.tab.c" +#line 5297 "tools/widl/parser.tab.c" break; case 324: /* int_std: tINT3264 */ #line 931 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } -#line 5307 "tools/widl/parser.tab.c" +#line 5303 "tools/widl/parser.tab.c" break; case 325: /* namespace_pfx: aIDENTIFIER '.' */ #line 935 "tools/widl/parser.y" { (yyval.namespace) = find_namespace_or_error(&global_namespace, (yyvsp[-1].str)); } -#line 5313 "tools/widl/parser.tab.c" +#line 5309 "tools/widl/parser.tab.c" break; case 326: /* namespace_pfx: namespace_pfx aIDENTIFIER '.' */ #line 936 "tools/widl/parser.y" { (yyval.namespace) = find_namespace_or_error((yyvsp[-2].namespace), (yyvsp[-1].str)); } -#line 5319 "tools/widl/parser.tab.c" +#line 5315 "tools/widl/parser.tab.c" break; case 327: /* qualified_type: typename */ #line 940 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(current_namespace, (yyvsp[0].str)); } -#line 5325 "tools/widl/parser.tab.c" +#line 5321 "tools/widl/parser.tab.c" break; case 328: /* qualified_type: namespace_pfx typename */ #line 941 "tools/widl/parser.y" { (yyval.type) = find_type_or_error((yyvsp[-1].namespace), (yyvsp[0].str)); } -#line 5331 "tools/widl/parser.tab.c" +#line 5327 "tools/widl/parser.tab.c" break; case 329: /* parameterized_type: qualified_type '<' parameterized_type_args '>' */ #line 945 "tools/widl/parser.y" { (yyval.type) = find_parameterized_type((yyvsp[-3].type), (yyvsp[-1].typeref_list)); } -#line 5337 "tools/widl/parser.tab.c" +#line 5333 "tools/widl/parser.tab.c" break; case 330: /* parameterized_type_arg: base_type */ #line 949 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5343 "tools/widl/parser.tab.c" +#line 5339 "tools/widl/parser.tab.c" break; case 331: /* parameterized_type_arg: qualified_type */ #line 950 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5349 "tools/widl/parser.tab.c" +#line 5345 "tools/widl/parser.tab.c" break; case 332: /* parameterized_type_arg: qualified_type '*' */ #line 951 "tools/widl/parser.y" { (yyval.type) = type_new_pointer((yyvsp[-1].type)); } -#line 5355 "tools/widl/parser.tab.c" +#line 5351 "tools/widl/parser.tab.c" break; case 333: /* parameterized_type_arg: parameterized_type */ #line 952 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5361 "tools/widl/parser.tab.c" +#line 5357 "tools/widl/parser.tab.c" break; case 334: /* parameterized_type_arg: parameterized_type '*' */ #line 953 "tools/widl/parser.y" { (yyval.type) = type_new_pointer((yyvsp[-1].type)); } -#line 5367 "tools/widl/parser.tab.c" +#line 5363 "tools/widl/parser.tab.c" break; case 335: /* parameterized_type_args: parameterized_type_arg */ #line 957 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5373 "tools/widl/parser.tab.c" +#line 5369 "tools/widl/parser.tab.c" break; case 336: /* parameterized_type_args: parameterized_type_args ',' parameterized_type_arg */ #line 959 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5379 "tools/widl/parser.tab.c" +#line 5375 "tools/widl/parser.tab.c" break; case 337: /* coclass: tCOCLASS typename */ #line 962 "tools/widl/parser.y" { (yyval.type) = type_coclass_declare((yyvsp[0].str)); } -#line 5385 "tools/widl/parser.tab.c" +#line 5381 "tools/widl/parser.tab.c" break; case 338: /* coclassdef: attributes coclass '{' class_interfaces '}' semicolon_opt */ #line 966 "tools/widl/parser.y" { (yyval.type) = type_coclass_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].typeref_list)); } -#line 5391 "tools/widl/parser.tab.c" +#line 5387 "tools/widl/parser.tab.c" break; case 339: /* runtimeclass: tRUNTIMECLASS typename */ #line 969 "tools/widl/parser.y" { (yyval.type) = type_runtimeclass_declare((yyvsp[0].str), current_namespace); } -#line 5397 "tools/widl/parser.tab.c" +#line 5393 "tools/widl/parser.tab.c" break; case 340: /* runtimeclass_def: attributes runtimeclass '{' class_interfaces '}' semicolon_opt */ #line 973 "tools/widl/parser.y" { (yyval.type) = type_runtimeclass_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].typeref_list)); } -#line 5403 "tools/widl/parser.tab.c" +#line 5399 "tools/widl/parser.tab.c" break; case 341: /* apicontract: tAPICONTRACT typename */ #line 976 "tools/widl/parser.y" { (yyval.type) = type_apicontract_declare((yyvsp[0].str), current_namespace); } -#line 5409 "tools/widl/parser.tab.c" +#line 5405 "tools/widl/parser.tab.c" break; case 342: /* apicontract_def: attributes apicontract '{' '}' semicolon_opt */ #line 980 "tools/widl/parser.y" { (yyval.type) = type_apicontract_define((yyvsp[-3].type), (yyvsp[-4].attr_list)); } -#line 5415 "tools/widl/parser.tab.c" +#line 5411 "tools/widl/parser.tab.c" break; case 343: /* namespacedef: tNAMESPACE aIDENTIFIER */ #line 983 "tools/widl/parser.y" { (yyval.str) = (yyvsp[0].str); } -#line 5421 "tools/widl/parser.tab.c" +#line 5417 "tools/widl/parser.tab.c" break; case 344: /* class_interfaces: %empty */ #line 986 "tools/widl/parser.y" { (yyval.typeref_list) = NULL; } -#line 5427 "tools/widl/parser.tab.c" +#line 5423 "tools/widl/parser.tab.c" break; case 345: /* class_interfaces: class_interfaces class_interface */ #line 987 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref( (yyvsp[-1].typeref_list), (yyvsp[0].typeref) ); } -#line 5433 "tools/widl/parser.tab.c" +#line 5429 "tools/widl/parser.tab.c" break; case 346: /* class_interface: m_attributes interfaceref ';' */ #line 991 "tools/widl/parser.y" { (yyval.typeref) = make_typeref((yyvsp[-1].type)); (yyval.typeref)->attrs = (yyvsp[-2].attr_list); } -#line 5439 "tools/widl/parser.tab.c" +#line 5435 "tools/widl/parser.tab.c" break; case 347: /* class_interface: m_attributes dispinterfaceref ';' */ #line 992 "tools/widl/parser.y" { (yyval.typeref) = make_typeref((yyvsp[-1].type)); (yyval.typeref)->attrs = (yyvsp[-2].attr_list); } -#line 5445 "tools/widl/parser.tab.c" +#line 5441 "tools/widl/parser.tab.c" break; case 348: /* dispinterface: tDISPINTERFACE typename */ #line 995 "tools/widl/parser.y" { (yyval.type) = type_dispinterface_declare((yyvsp[0].str)); } -#line 5451 "tools/widl/parser.tab.c" +#line 5447 "tools/widl/parser.tab.c" break; case 349: /* dispattributes: attributes */ #line 998 "tools/widl/parser.y" { (yyval.attr_list) = append_attr((yyvsp[0].attr_list), make_attr(ATTR_DISPINTERFACE)); } -#line 5457 "tools/widl/parser.tab.c" +#line 5453 "tools/widl/parser.tab.c" break; case 350: /* dispint_props: tPROPERTIES ':' */ #line 1001 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 5463 "tools/widl/parser.tab.c" +#line 5459 "tools/widl/parser.tab.c" break; case 351: /* dispint_props: dispint_props s_field ';' */ #line 1002 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } -#line 5469 "tools/widl/parser.tab.c" +#line 5465 "tools/widl/parser.tab.c" break; case 352: /* dispint_meths: tMETHODS ':' */ #line 1005 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 5475 "tools/widl/parser.tab.c" +#line 5471 "tools/widl/parser.tab.c" break; case 353: /* dispint_meths: dispint_meths funcdef ';' */ #line 1006 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } -#line 5481 "tools/widl/parser.tab.c" +#line 5477 "tools/widl/parser.tab.c" break; case 354: /* dispinterfacedef: dispattributes dispinterface '{' dispint_props dispint_meths '}' */ #line 1011 "tools/widl/parser.y" { (yyval.type) = type_dispinterface_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].var_list), (yyvsp[-1].var_list)); } -#line 5487 "tools/widl/parser.tab.c" +#line 5483 "tools/widl/parser.tab.c" break; case 355: /* dispinterfacedef: dispattributes dispinterface '{' interface ';' '}' */ #line 1013 "tools/widl/parser.y" { (yyval.type) = type_dispinterface_define_from_iface((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].type)); } -#line 5493 "tools/widl/parser.tab.c" +#line 5489 "tools/widl/parser.tab.c" break; case 356: /* inherit: %empty */ #line 1016 "tools/widl/parser.y" { (yyval.type) = NULL; } -#line 5499 "tools/widl/parser.tab.c" +#line 5495 "tools/widl/parser.tab.c" break; case 357: /* inherit: ':' qualified_type */ #line 1017 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5505 "tools/widl/parser.tab.c" +#line 5501 "tools/widl/parser.tab.c" break; case 358: /* inherit: ':' parameterized_type */ #line 1018 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5511 "tools/widl/parser.tab.c" +#line 5507 "tools/widl/parser.tab.c" break; case 359: /* type_parameter: typename */ #line 1021 "tools/widl/parser.y" { (yyval.type) = get_type(TYPE_PARAMETER, (yyvsp[0].str), parameters_namespace, 0); } -#line 5517 "tools/widl/parser.tab.c" +#line 5513 "tools/widl/parser.tab.c" break; case 360: /* type_parameters: type_parameter */ #line 1025 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5523 "tools/widl/parser.tab.c" +#line 5519 "tools/widl/parser.tab.c" break; case 361: /* type_parameters: type_parameters ',' type_parameter */ #line 1026 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5529 "tools/widl/parser.tab.c" +#line 5525 "tools/widl/parser.tab.c" break; case 362: /* interface: tINTERFACE typename */ #line 1030 "tools/widl/parser.y" { (yyval.type) = type_interface_declare((yyvsp[0].str), current_namespace); } -#line 5535 "tools/widl/parser.tab.c" +#line 5531 "tools/widl/parser.tab.c" break; case 363: /* $@3: %empty */ #line 1031 "tools/widl/parser.y" { push_parameters_namespace((yyvsp[-1].str)); } -#line 5541 "tools/widl/parser.tab.c" +#line 5537 "tools/widl/parser.tab.c" break; case 364: /* $@4: %empty */ #line 1031 "tools/widl/parser.y" { pop_parameters_namespace((yyvsp[-3].str)); } -#line 5547 "tools/widl/parser.tab.c" +#line 5543 "tools/widl/parser.tab.c" break; case 365: /* interface: tINTERFACE typename '<' $@3 type_parameters $@4 '>' */ #line 1032 "tools/widl/parser.y" { (yyval.type) = type_parameterized_interface_declare((yyvsp[-5].str), current_namespace, (yyvsp[-2].typeref_list)); } -#line 5553 "tools/widl/parser.tab.c" +#line 5549 "tools/widl/parser.tab.c" break; case 366: /* delegatedef: m_attributes tDELEGATE type ident '(' m_args ')' semicolon_opt */ @@ -5557,19 +5553,19 @@ { (yyval.type) = type_delegate_declare((yyvsp[-4].var)->name, current_namespace); (yyval.type) = type_delegate_define((yyval.type), (yyvsp[-7].attr_list), append_statement(NULL, make_statement_delegate((yyvsp[-5].type), (yyvsp[-2].var_list)))); } -#line 5561 "tools/widl/parser.tab.c" +#line 5557 "tools/widl/parser.tab.c" break; case 367: /* $@5: %empty */ #line 1040 "tools/widl/parser.y" { push_parameters_namespace((yyvsp[-1].var)->name); } -#line 5567 "tools/widl/parser.tab.c" +#line 5563 "tools/widl/parser.tab.c" break; case 368: /* $@6: %empty */ #line 1041 "tools/widl/parser.y" { pop_parameters_namespace((yyvsp[-7].var)->name); } -#line 5573 "tools/widl/parser.tab.c" +#line 5569 "tools/widl/parser.tab.c" break; case 369: /* delegatedef: m_attributes tDELEGATE type ident '<' $@5 type_parameters '>' '(' m_args ')' $@6 semicolon_opt */ @@ -5577,49 +5573,49 @@ { (yyval.type) = type_parameterized_delegate_declare((yyvsp[-9].var)->name, current_namespace, (yyvsp[-6].typeref_list)); (yyval.type) = type_parameterized_delegate_define((yyval.type), (yyvsp[-12].attr_list), append_statement(NULL, make_statement_delegate((yyvsp[-10].type), (yyvsp[-3].var_list)))); } -#line 5581 "tools/widl/parser.tab.c" +#line 5577 "tools/widl/parser.tab.c" break; case 370: /* required_types: qualified_type */ #line 1048 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5587 "tools/widl/parser.tab.c" +#line 5583 "tools/widl/parser.tab.c" break; case 371: /* required_types: parameterized_type */ #line 1049 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5593 "tools/widl/parser.tab.c" +#line 5589 "tools/widl/parser.tab.c" break; case 372: /* required_types: required_types ',' qualified_type */ #line 1050 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5599 "tools/widl/parser.tab.c" +#line 5595 "tools/widl/parser.tab.c" break; case 373: /* required_types: required_types ',' parameterized_type */ #line 1051 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5605 "tools/widl/parser.tab.c" +#line 5601 "tools/widl/parser.tab.c" break; case 374: /* requires: %empty */ #line 1053 "tools/widl/parser.y" { (yyval.typeref_list) = NULL; } -#line 5611 "tools/widl/parser.tab.c" +#line 5607 "tools/widl/parser.tab.c" break; case 375: /* requires: tREQUIRES required_types */ #line 1054 "tools/widl/parser.y" { (yyval.typeref_list) = (yyvsp[0].typeref_list); } -#line 5617 "tools/widl/parser.tab.c" +#line 5613 "tools/widl/parser.tab.c" break; case 376: /* $@7: %empty */ #line 1057 "tools/widl/parser.y" { if ((yyvsp[0].type)->type_type == TYPE_PARAMETERIZED_TYPE) push_parameters_namespace((yyvsp[0].type)->name); } -#line 5623 "tools/widl/parser.tab.c" +#line 5619 "tools/widl/parser.tab.c" break; case 377: /* interfacedef: attributes interface $@7 inherit requires '{' int_statements '}' semicolon_opt */ @@ -5635,217 +5631,217 @@ check_async_uuid((yyval.type)); } } -#line 5639 "tools/widl/parser.tab.c" +#line 5635 "tools/widl/parser.tab.c" break; case 378: /* interfacedef: dispinterfacedef semicolon_opt */ #line 1070 "tools/widl/parser.y" { (yyval.type) = (yyvsp[-1].type); } -#line 5645 "tools/widl/parser.tab.c" +#line 5641 "tools/widl/parser.tab.c" break; case 379: /* interfaceref: tINTERFACE typename */ #line 1074 "tools/widl/parser.y" { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 5651 "tools/widl/parser.tab.c" +#line 5647 "tools/widl/parser.tab.c" break; case 380: /* interfaceref: tINTERFACE namespace_pfx typename */ #line 1075 "tools/widl/parser.y" { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), (yyvsp[-1].namespace), 0); } -#line 5657 "tools/widl/parser.tab.c" +#line 5653 "tools/widl/parser.tab.c" break; case 381: /* dispinterfaceref: tDISPINTERFACE typename */ #line 1079 "tools/widl/parser.y" { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 5663 "tools/widl/parser.tab.c" +#line 5659 "tools/widl/parser.tab.c" break; case 382: /* module: tMODULE typename */ #line 1082 "tools/widl/parser.y" { (yyval.type) = type_module_declare((yyvsp[0].str)); } -#line 5669 "tools/widl/parser.tab.c" +#line 5665 "tools/widl/parser.tab.c" break; - case 383: /* moduledef: attributes module '{' int_statements '}' semicolon_opt */ + case 383: /* moduledef: m_attributes module '{' int_statements '}' semicolon_opt */ #line 1086 "tools/widl/parser.y" { (yyval.type) = type_module_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].stmt_list)); } -#line 5675 "tools/widl/parser.tab.c" +#line 5671 "tools/widl/parser.tab.c" break; case 384: /* storage_cls_spec: tEXTERN */ #line 1090 "tools/widl/parser.y" { (yyval.stgclass) = STG_EXTERN; } -#line 5681 "tools/widl/parser.tab.c" +#line 5677 "tools/widl/parser.tab.c" break; case 385: /* storage_cls_spec: tSTATIC */ #line 1091 "tools/widl/parser.y" { (yyval.stgclass) = STG_STATIC; } -#line 5687 "tools/widl/parser.tab.c" +#line 5683 "tools/widl/parser.tab.c" break; case 386: /* storage_cls_spec: tREGISTER */ #line 1092 "tools/widl/parser.y" { (yyval.stgclass) = STG_REGISTER; } -#line 5693 "tools/widl/parser.tab.c" +#line 5689 "tools/widl/parser.tab.c" break; case 387: /* function_specifier: tINLINE */ #line 1096 "tools/widl/parser.y" { (yyval.function_specifier) = FUNCTION_SPECIFIER_INLINE; } -#line 5699 "tools/widl/parser.tab.c" +#line 5695 "tools/widl/parser.tab.c" break; case 388: /* type_qualifier: tCONST */ #line 1100 "tools/widl/parser.y" { (yyval.type_qualifier) = TYPE_QUALIFIER_CONST; } -#line 5705 "tools/widl/parser.tab.c" +#line 5701 "tools/widl/parser.tab.c" break; case 389: /* m_type_qual_list: %empty */ #line 1103 "tools/widl/parser.y" { (yyval.type_qualifier) = 0; } -#line 5711 "tools/widl/parser.tab.c" +#line 5707 "tools/widl/parser.tab.c" break; case 390: /* m_type_qual_list: m_type_qual_list type_qualifier */ #line 1104 "tools/widl/parser.y" { (yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier); } -#line 5717 "tools/widl/parser.tab.c" +#line 5713 "tools/widl/parser.tab.c" break; case 391: /* decl_spec: type m_decl_spec_no_type */ #line 1107 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, STG_NONE, 0, 0); } -#line 5723 "tools/widl/parser.tab.c" +#line 5719 "tools/widl/parser.tab.c" break; case 392: /* decl_spec: decl_spec_no_type type m_decl_spec_no_type */ #line 1109 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), STG_NONE, 0, 0); } -#line 5729 "tools/widl/parser.tab.c" +#line 5725 "tools/widl/parser.tab.c" break; case 393: /* unqualified_decl_spec: unqualified_type m_decl_spec_no_type */ #line 1113 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, STG_NONE, 0, 0); } -#line 5735 "tools/widl/parser.tab.c" +#line 5731 "tools/widl/parser.tab.c" break; case 394: /* unqualified_decl_spec: decl_spec_no_type unqualified_type m_decl_spec_no_type */ #line 1115 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), STG_NONE, 0, 0); } -#line 5741 "tools/widl/parser.tab.c" +#line 5737 "tools/widl/parser.tab.c" break; case 395: /* m_decl_spec_no_type: %empty */ #line 1118 "tools/widl/parser.y" { (yyval.declspec) = NULL; } -#line 5747 "tools/widl/parser.tab.c" +#line 5743 "tools/widl/parser.tab.c" break; case 397: /* decl_spec_no_type: type_qualifier m_decl_spec_no_type */ #line 1123 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, (yyvsp[-1].type_qualifier), 0); } -#line 5753 "tools/widl/parser.tab.c" +#line 5749 "tools/widl/parser.tab.c" break; case 398: /* decl_spec_no_type: function_specifier m_decl_spec_no_type */ #line 1124 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, 0, (yyvsp[-1].function_specifier)); } -#line 5759 "tools/widl/parser.tab.c" +#line 5755 "tools/widl/parser.tab.c" break; case 399: /* decl_spec_no_type: storage_cls_spec m_decl_spec_no_type */ #line 1125 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, (yyvsp[-1].stgclass), 0, 0); } -#line 5765 "tools/widl/parser.tab.c" +#line 5761 "tools/widl/parser.tab.c" break; case 400: /* declarator: '*' m_type_qual_list declarator */ #line 1130 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5771 "tools/widl/parser.tab.c" +#line 5767 "tools/widl/parser.tab.c" break; case 401: /* declarator: callconv declarator */ #line 1131 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5777 "tools/widl/parser.tab.c" +#line 5773 "tools/widl/parser.tab.c" break; case 403: /* direct_declarator: ident */ #line 1136 "tools/widl/parser.y" { (yyval.declarator) = make_declarator((yyvsp[0].var)); } -#line 5783 "tools/widl/parser.tab.c" +#line 5779 "tools/widl/parser.tab.c" break; case 404: /* direct_declarator: '(' declarator ')' */ #line 1137 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 5789 "tools/widl/parser.tab.c" +#line 5785 "tools/widl/parser.tab.c" break; case 405: /* direct_declarator: direct_declarator array */ #line 1138 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5795 "tools/widl/parser.tab.c" +#line 5791 "tools/widl/parser.tab.c" break; case 406: /* direct_declarator: direct_declarator '(' m_args ')' */ #line 1139 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-3].declarator); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } -#line 5801 "tools/widl/parser.tab.c" +#line 5797 "tools/widl/parser.tab.c" break; case 407: /* abstract_declarator: '*' m_type_qual_list m_abstract_declarator */ #line 1145 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5807 "tools/widl/parser.tab.c" +#line 5803 "tools/widl/parser.tab.c" break; case 408: /* abstract_declarator: callconv m_abstract_declarator */ #line 1146 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5813 "tools/widl/parser.tab.c" +#line 5809 "tools/widl/parser.tab.c" break; case 410: /* abstract_declarator_no_direct: '*' m_type_qual_list m_any_declarator */ #line 1153 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5819 "tools/widl/parser.tab.c" +#line 5815 "tools/widl/parser.tab.c" break; case 411: /* abstract_declarator_no_direct: callconv m_any_declarator */ #line 1154 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5825 "tools/widl/parser.tab.c" +#line 5821 "tools/widl/parser.tab.c" break; case 412: /* m_abstract_declarator: %empty */ #line 1158 "tools/widl/parser.y" { (yyval.declarator) = make_declarator(NULL); } -#line 5831 "tools/widl/parser.tab.c" +#line 5827 "tools/widl/parser.tab.c" break; case 414: /* abstract_direct_declarator: '(' abstract_declarator_no_direct ')' */ #line 1164 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 5837 "tools/widl/parser.tab.c" +#line 5833 "tools/widl/parser.tab.c" break; case 415: /* abstract_direct_declarator: abstract_direct_declarator array */ #line 1165 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5843 "tools/widl/parser.tab.c" +#line 5839 "tools/widl/parser.tab.c" break; case 416: /* abstract_direct_declarator: array */ #line 1166 "tools/widl/parser.y" { (yyval.declarator) = make_declarator(NULL); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5849 "tools/widl/parser.tab.c" +#line 5845 "tools/widl/parser.tab.c" break; case 417: /* abstract_direct_declarator: '(' m_args ')' */ @@ -5853,7 +5849,7 @@ { (yyval.declarator) = make_declarator(NULL); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } -#line 5857 "tools/widl/parser.tab.c" +#line 5853 "tools/widl/parser.tab.c" break; case 418: /* abstract_direct_declarator: abstract_direct_declarator '(' m_args ')' */ @@ -5861,61 +5857,61 @@ { (yyval.declarator) = (yyvsp[-3].declarator); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } -#line 5865 "tools/widl/parser.tab.c" +#line 5861 "tools/widl/parser.tab.c" break; case 419: /* any_declarator: '*' m_type_qual_list m_any_declarator */ #line 1180 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5871 "tools/widl/parser.tab.c" +#line 5867 "tools/widl/parser.tab.c" break; case 420: /* any_declarator: callconv m_any_declarator */ #line 1181 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5877 "tools/widl/parser.tab.c" +#line 5873 "tools/widl/parser.tab.c" break; case 422: /* any_declarator_no_direct: '*' m_type_qual_list m_any_declarator */ #line 1188 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5883 "tools/widl/parser.tab.c" +#line 5879 "tools/widl/parser.tab.c" break; case 423: /* any_declarator_no_direct: callconv m_any_declarator */ #line 1189 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5889 "tools/widl/parser.tab.c" +#line 5885 "tools/widl/parser.tab.c" break; case 424: /* m_any_declarator: %empty */ #line 1193 "tools/widl/parser.y" { (yyval.declarator) = make_declarator(NULL); } -#line 5895 "tools/widl/parser.tab.c" +#line 5891 "tools/widl/parser.tab.c" break; case 426: /* any_direct_declarator: ident */ #line 1201 "tools/widl/parser.y" { (yyval.declarator) = make_declarator((yyvsp[0].var)); } -#line 5901 "tools/widl/parser.tab.c" +#line 5897 "tools/widl/parser.tab.c" break; case 427: /* any_direct_declarator: '(' any_declarator_no_direct ')' */ #line 1202 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 5907 "tools/widl/parser.tab.c" +#line 5903 "tools/widl/parser.tab.c" break; case 428: /* any_direct_declarator: any_direct_declarator array */ #line 1203 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5913 "tools/widl/parser.tab.c" +#line 5909 "tools/widl/parser.tab.c" break; case 429: /* any_direct_declarator: array */ #line 1204 "tools/widl/parser.y" { (yyval.declarator) = make_declarator(NULL); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5919 "tools/widl/parser.tab.c" +#line 5915 "tools/widl/parser.tab.c" break; case 430: /* any_direct_declarator: '(' m_args ')' */ @@ -5923,7 +5919,7 @@ { (yyval.declarator) = make_declarator(NULL); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } -#line 5927 "tools/widl/parser.tab.c" +#line 5923 "tools/widl/parser.tab.c" break; case 431: /* any_direct_declarator: any_direct_declarator '(' m_args ')' */ @@ -5931,31 +5927,31 @@ { (yyval.declarator) = (yyvsp[-3].declarator); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } -#line 5935 "tools/widl/parser.tab.c" +#line 5931 "tools/widl/parser.tab.c" break; case 432: /* declarator_list: declarator */ #line 1216 "tools/widl/parser.y" { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } -#line 5941 "tools/widl/parser.tab.c" +#line 5937 "tools/widl/parser.tab.c" break; case 433: /* declarator_list: declarator_list ',' declarator */ #line 1217 "tools/widl/parser.y" { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } -#line 5947 "tools/widl/parser.tab.c" +#line 5943 "tools/widl/parser.tab.c" break; case 434: /* m_bitfield: %empty */ #line 1220 "tools/widl/parser.y" { (yyval.expr) = NULL; } -#line 5953 "tools/widl/parser.tab.c" +#line 5949 "tools/widl/parser.tab.c" break; case 435: /* m_bitfield: ':' expr_const */ #line 1221 "tools/widl/parser.y" { (yyval.expr) = (yyvsp[0].expr); } -#line 5959 "tools/widl/parser.tab.c" +#line 5955 "tools/widl/parser.tab.c" break; case 436: /* struct_declarator: any_declarator m_bitfield */ @@ -5964,163 +5960,163 @@ if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) error_loc("unnamed fields are not allowed\n"); } -#line 5968 "tools/widl/parser.tab.c" +#line 5964 "tools/widl/parser.tab.c" break; case 437: /* struct_declarator_list: struct_declarator */ #line 1231 "tools/widl/parser.y" { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } -#line 5974 "tools/widl/parser.tab.c" +#line 5970 "tools/widl/parser.tab.c" break; case 438: /* struct_declarator_list: struct_declarator_list ',' struct_declarator */ #line 1233 "tools/widl/parser.y" { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } -#line 5980 "tools/widl/parser.tab.c" +#line 5976 "tools/widl/parser.tab.c" break; case 439: /* init_declarator: declarator */ #line 1237 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); } -#line 5986 "tools/widl/parser.tab.c" +#line 5982 "tools/widl/parser.tab.c" break; case 440: /* init_declarator: declarator '=' expr_const */ #line 1238 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-2].declarator); (yyvsp[-2].declarator)->var->eval = (yyvsp[0].expr); } -#line 5992 "tools/widl/parser.tab.c" +#line 5988 "tools/widl/parser.tab.c" break; case 441: /* threading_type: tAPARTMENT */ #line 1242 "tools/widl/parser.y" { (yyval.num) = THREADING_APARTMENT; } -#line 5998 "tools/widl/parser.tab.c" +#line 5994 "tools/widl/parser.tab.c" break; case 442: /* threading_type: tNEUTRAL */ #line 1243 "tools/widl/parser.y" { (yyval.num) = THREADING_NEUTRAL; } -#line 6004 "tools/widl/parser.tab.c" +#line 6000 "tools/widl/parser.tab.c" break; case 443: /* threading_type: tSINGLE */ #line 1244 "tools/widl/parser.y" { (yyval.num) = THREADING_SINGLE; } -#line 6010 "tools/widl/parser.tab.c" +#line 6006 "tools/widl/parser.tab.c" break; case 444: /* threading_type: tFREE */ #line 1245 "tools/widl/parser.y" { (yyval.num) = THREADING_FREE; } -#line 6016 "tools/widl/parser.tab.c" +#line 6012 "tools/widl/parser.tab.c" break; case 445: /* threading_type: tBOTH */ #line 1246 "tools/widl/parser.y" { (yyval.num) = THREADING_BOTH; } -#line 6022 "tools/widl/parser.tab.c" +#line 6018 "tools/widl/parser.tab.c" break; case 446: /* threading_type: tMTA */ #line 1247 "tools/widl/parser.y" { (yyval.num) = THREADING_FREE; } -#line 6028 "tools/widl/parser.tab.c" +#line 6024 "tools/widl/parser.tab.c" break; case 447: /* pointer_type: tREF */ #line 1251 "tools/widl/parser.y" { (yyval.num) = FC_RP; } -#line 6034 "tools/widl/parser.tab.c" +#line 6030 "tools/widl/parser.tab.c" break; case 448: /* pointer_type: tUNIQUE */ #line 1252 "tools/widl/parser.y" { (yyval.num) = FC_UP; } -#line 6040 "tools/widl/parser.tab.c" +#line 6036 "tools/widl/parser.tab.c" break; case 449: /* pointer_type: tPTR */ #line 1253 "tools/widl/parser.y" { (yyval.num) = FC_FP; } -#line 6046 "tools/widl/parser.tab.c" +#line 6042 "tools/widl/parser.tab.c" break; case 450: /* structdef: tSTRUCT m_typename '{' fields '}' */ #line 1256 "tools/widl/parser.y" { (yyval.type) = type_new_struct((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } -#line 6052 "tools/widl/parser.tab.c" +#line 6048 "tools/widl/parser.tab.c" break; case 451: /* unqualified_type: tVOID */ #line 1260 "tools/widl/parser.y" { (yyval.type) = type_new_void(); } -#line 6058 "tools/widl/parser.tab.c" +#line 6054 "tools/widl/parser.tab.c" break; case 452: /* unqualified_type: base_type */ #line 1261 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 6064 "tools/widl/parser.tab.c" +#line 6060 "tools/widl/parser.tab.c" break; case 453: /* unqualified_type: enumdef */ #line 1262 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 6070 "tools/widl/parser.tab.c" +#line 6066 "tools/widl/parser.tab.c" break; case 454: /* unqualified_type: tENUM aIDENTIFIER */ #line 1263 "tools/widl/parser.y" { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 6076 "tools/widl/parser.tab.c" +#line 6072 "tools/widl/parser.tab.c" break; case 455: /* unqualified_type: structdef */ #line 1264 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 6082 "tools/widl/parser.tab.c" +#line 6078 "tools/widl/parser.tab.c" break; case 456: /* unqualified_type: tSTRUCT aIDENTIFIER */ #line 1265 "tools/widl/parser.y" { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 6088 "tools/widl/parser.tab.c" +#line 6084 "tools/widl/parser.tab.c" break; case 457: /* unqualified_type: uniondef */ #line 1266 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 6094 "tools/widl/parser.tab.c" +#line 6090 "tools/widl/parser.tab.c" break; case 458: /* unqualified_type: tUNION aIDENTIFIER */ #line 1267 "tools/widl/parser.y" { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } -#line 6100 "tools/widl/parser.tab.c" +#line 6096 "tools/widl/parser.tab.c" break; case 459: /* unqualified_type: tSAFEARRAY '(' type ')' */ #line 1268 "tools/widl/parser.y" { (yyval.type) = make_safearray((yyvsp[-1].type)); } -#line 6106 "tools/widl/parser.tab.c" +#line 6102 "tools/widl/parser.tab.c" break; case 460: /* unqualified_type: aKNOWNTYPE */ #line 1269 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(current_namespace, (yyvsp[0].str)); } -#line 6112 "tools/widl/parser.tab.c" +#line 6108 "tools/widl/parser.tab.c" break; case 462: /* type: namespace_pfx typename */ #line 1274 "tools/widl/parser.y" { (yyval.type) = find_type_or_error((yyvsp[-1].namespace), (yyvsp[0].str)); } -#line 6118 "tools/widl/parser.tab.c" +#line 6114 "tools/widl/parser.tab.c" break; case 463: /* type: parameterized_type */ #line 1275 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 6124 "tools/widl/parser.tab.c" +#line 6120 "tools/widl/parser.tab.c" break; case 464: /* typedef: m_attributes tTYPEDEF m_attributes decl_spec declarator_list */ @@ -6129,37 +6125,37 @@ reg_typedefs((yyvsp[-1].declspec), (yyvsp[0].declarator_list), check_typedef_attrs((yyvsp[-4].attr_list))); (yyval.statement) = make_statement_typedef((yyvsp[0].declarator_list), !(yyvsp[-1].declspec)->type->defined); } -#line 6133 "tools/widl/parser.tab.c" +#line 6129 "tools/widl/parser.tab.c" break; case 465: /* uniondef: tUNION m_typename '{' ne_union_fields '}' */ #line 1286 "tools/widl/parser.y" { (yyval.type) = type_new_nonencapsulated_union((yyvsp[-3].str), TRUE, (yyvsp[-1].var_list)); } -#line 6139 "tools/widl/parser.tab.c" +#line 6135 "tools/widl/parser.tab.c" break; case 466: /* uniondef: tUNION m_typename tSWITCH '(' s_field ')' m_ident '{' cases '}' */ #line 1289 "tools/widl/parser.y" { (yyval.type) = type_new_encapsulated_union((yyvsp[-8].str), (yyvsp[-5].var), (yyvsp[-3].var), (yyvsp[-1].var_list)); } -#line 6145 "tools/widl/parser.tab.c" +#line 6141 "tools/widl/parser.tab.c" break; case 467: /* version: aNUM */ #line 1293 "tools/widl/parser.y" { (yyval.num) = MAKEVERSION((yyvsp[0].num), 0); } -#line 6151 "tools/widl/parser.tab.c" +#line 6147 "tools/widl/parser.tab.c" break; case 468: /* version: aNUM '.' aNUM */ #line 1294 "tools/widl/parser.y" { (yyval.num) = MAKEVERSION((yyvsp[-2].num), (yyvsp[0].num)); } -#line 6157 "tools/widl/parser.tab.c" +#line 6153 "tools/widl/parser.tab.c" break; case 469: /* version: aHEXNUM */ #line 1295 "tools/widl/parser.y" { (yyval.num) = (yyvsp[0].num); } -#line 6163 "tools/widl/parser.tab.c" +#line 6159 "tools/widl/parser.tab.c" break; case 474: /* acf_int_statement: tTYPEDEF acf_attributes aKNOWNTYPE ';' */ @@ -6167,7 +6163,7 @@ { type_t *type = find_type_or_error(current_namespace, (yyvsp[-1].str)); type->attrs = append_attr_list(type->attrs, (yyvsp[-2].attr_list)); } -#line 6171 "tools/widl/parser.tab.c" +#line 6167 "tools/widl/parser.tab.c" break; case 475: /* acf_interface: acf_attributes tINTERFACE aKNOWNTYPE '{' acf_int_statements '}' */ @@ -6177,95 +6173,95 @@ error_loc("%s is not an interface\n", iface->name); iface->attrs = append_attr_list(iface->attrs, (yyvsp[-5].attr_list)); } -#line 6181 "tools/widl/parser.tab.c" +#line 6177 "tools/widl/parser.tab.c" break; case 476: /* acf_attributes: %empty */ #line 1325 "tools/widl/parser.y" { (yyval.attr_list) = NULL; } -#line 6187 "tools/widl/parser.tab.c" +#line 6183 "tools/widl/parser.tab.c" break; case 477: /* acf_attributes: '[' acf_attribute_list ']' */ #line 1326 "tools/widl/parser.y" { (yyval.attr_list) = (yyvsp[-1].attr_list); } -#line 6193 "tools/widl/parser.tab.c" +#line 6189 "tools/widl/parser.tab.c" break; case 478: /* acf_attribute_list: acf_attribute */ #line 1330 "tools/widl/parser.y" { (yyval.attr_list) = append_attr(NULL, (yyvsp[0].attr)); } -#line 6199 "tools/widl/parser.tab.c" +#line 6195 "tools/widl/parser.tab.c" break; case 479: /* acf_attribute_list: acf_attribute_list ',' acf_attribute */ #line 1331 "tools/widl/parser.y" { (yyval.attr_list) = append_attr((yyvsp[-2].attr_list), (yyvsp[0].attr)); } -#line 6205 "tools/widl/parser.tab.c" +#line 6201 "tools/widl/parser.tab.c" break; case 480: /* acf_attribute: tALLOCATE '(' allocate_option_list ')' */ #line 1336 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_ALLOCATE, (yyvsp[-1].num)); } -#line 6211 "tools/widl/parser.tab.c" +#line 6207 "tools/widl/parser.tab.c" break; case 481: /* acf_attribute: tENCODE */ #line 1337 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ENCODE); } -#line 6217 "tools/widl/parser.tab.c" +#line 6213 "tools/widl/parser.tab.c" break; case 482: /* acf_attribute: tDECODE */ #line 1338 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DECODE); } -#line 6223 "tools/widl/parser.tab.c" +#line 6219 "tools/widl/parser.tab.c" break; case 483: /* acf_attribute: tEXPLICITHANDLE */ #line 1339 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } -#line 6229 "tools/widl/parser.tab.c" +#line 6225 "tools/widl/parser.tab.c" break; case 484: /* allocate_option_list: allocate_option */ #line 1343 "tools/widl/parser.y" { (yyval.num) = (yyvsp[0].num); } -#line 6235 "tools/widl/parser.tab.c" +#line 6231 "tools/widl/parser.tab.c" break; case 485: /* allocate_option_list: allocate_option_list ',' allocate_option */ #line 1345 "tools/widl/parser.y" { (yyval.num) = (yyvsp[-2].num) | (yyvsp[0].num); } -#line 6241 "tools/widl/parser.tab.c" +#line 6237 "tools/widl/parser.tab.c" break; case 486: /* allocate_option: tDONTFREE */ #line 1349 "tools/widl/parser.y" { (yyval.num) = FC_DONT_FREE; } -#line 6247 "tools/widl/parser.tab.c" +#line 6243 "tools/widl/parser.tab.c" break; case 487: /* allocate_option: tFREE */ #line 1350 "tools/widl/parser.y" { (yyval.num) = 0; } -#line 6253 "tools/widl/parser.tab.c" +#line 6249 "tools/widl/parser.tab.c" break; case 488: /* allocate_option: tALLNODES */ #line 1351 "tools/widl/parser.y" { (yyval.num) = FC_ALLOCATE_ALL_NODES; } -#line 6259 "tools/widl/parser.tab.c" +#line 6255 "tools/widl/parser.tab.c" break; case 489: /* allocate_option: tSINGLENODE */ #line 1352 "tools/widl/parser.y" { (yyval.num) = 0; } -#line 6265 "tools/widl/parser.tab.c" +#line 6261 "tools/widl/parser.tab.c" break; -#line 6269 "tools/widl/parser.tab.c" +#line 6265 "tools/widl/parser.tab.c" default: break; } @@ -7401,7 +7397,7 @@ if (! file_id) { - char *dst = dup_basename(input_idl_name, ".idl"); + char *dst = replace_extension( get_basename(input_idl_name), ".idl", "" ); file_id = dst; for (; *dst; ++dst) @@ -7486,7 +7482,7 @@ /* ATTR_HELPSTRING */ { 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, "helpstring" }, /* ATTR_HELPSTRINGCONTEXT */ { 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, "helpstringcontext" }, /* ATTR_HELPSTRINGDLL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, "helpstringdll" }, - /* ATTR_HIDDEN */ { 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, "hidden" }, + /* ATTR_HIDDEN */ { 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, "hidden" }, /* ATTR_ID */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, "id" }, /* ATTR_IDEMPOTENT */ { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "idempotent" }, /* ATTR_IGNORE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, "ignore" }, @@ -7545,7 +7541,7 @@ /* ATTR_UUID */ { 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, "uuid" }, /* ATTR_V1ENUM */ { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "v1_enum" }, /* ATTR_VARARG */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "vararg" }, - /* ATTR_VERSION */ { 1, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 0, 1, 0, 0, 1, 0, 1, "version" }, + /* ATTR_VERSION */ { 1, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 0, 1, 0, 1, 1, 0, 1, "version" }, /* ATTR_VIPROGID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "vi_progid" }, /* ATTR_WIREMARSHAL */ { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "wire_marshal" }, };
diff --git a/mingw-w64-tools/widl/src/parser.tab.h b/mingw-w64-tools/widl/src/parser.tab.h index edca8f6..e2e7cc7 100644 --- a/mingw-w64-tools/widl/src/parser.tab.h +++ b/mingw-w64-tools/widl/src/parser.tab.h
@@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.5. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison interface for Yacc-like parsers in C @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work
diff --git a/mingw-w64-tools/widl/src/parser.y b/mingw-w64-tools/widl/src/parser.y index eb8035c..fa86392 100644 --- a/mingw-w64-tools/widl/src/parser.y +++ b/mingw-w64-tools/widl/src/parser.y
@@ -1082,7 +1082,7 @@ module: tMODULE typename { $$ = type_module_declare($2); } ; -moduledef: attributes module '{' int_statements '}' semicolon_opt +moduledef: m_attributes module '{' int_statements '}' semicolon_opt { $$ = type_module_define($2, $1, $4); } ; @@ -2262,7 +2262,7 @@ if (! file_id) { - char *dst = dup_basename(input_idl_name, ".idl"); + char *dst = replace_extension( get_basename(input_idl_name), ".idl", "" ); file_id = dst; for (; *dst; ++dst) @@ -2347,7 +2347,7 @@ /* ATTR_HELPSTRING */ { 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, "helpstring" }, /* ATTR_HELPSTRINGCONTEXT */ { 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, "helpstringcontext" }, /* ATTR_HELPSTRINGDLL */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, "helpstringdll" }, - /* ATTR_HIDDEN */ { 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, "hidden" }, + /* ATTR_HIDDEN */ { 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, "hidden" }, /* ATTR_ID */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, "id" }, /* ATTR_IDEMPOTENT */ { 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "idempotent" }, /* ATTR_IGNORE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, "ignore" }, @@ -2406,7 +2406,7 @@ /* ATTR_UUID */ { 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, "uuid" }, /* ATTR_V1ENUM */ { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "v1_enum" }, /* ATTR_VARARG */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "vararg" }, - /* ATTR_VERSION */ { 1, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 0, 1, 0, 0, 1, 0, 1, "version" }, + /* ATTR_VERSION */ { 1, 0, 0, 1, 0, 0, 1, 1, 0, 2, 0, 0, 1, 0, 1, 1, 0, 1, "version" }, /* ATTR_VIPROGID */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "vi_progid" }, /* ATTR_WIREMARSHAL */ { 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "wire_marshal" }, };
diff --git a/mingw-w64-tools/widl/src/parser.yy.c b/mingw-w64-tools/widl/src/parser.yy.c index f2dd061..d5602fb 100644 --- a/mingw-w64-tools/widl/src/parser.yy.c +++ b/mingw-w64-tools/widl/src/parser.yy.c
@@ -962,7 +962,6 @@ #line 44 "tools/widl/parser.l" #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> @@ -971,17 +970,12 @@ #include <assert.h> #include <errno.h> #include <limits.h> - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#else #define YY_NO_UNISTD_H -#endif #include "widl.h" #include "utils.h" #include "parser.h" -#include "wine/wpp.h" +#include "wpp_private.h" #include "parser.tab.h" @@ -1041,13 +1035,13 @@ return uuid; } -#line 1044 "tools/widl/parser.yy.c" +#line 1038 "tools/widl/parser.yy.c" /* ************************************************************************** * The flexer starts here ************************************************************************** */ -#line 1050 "tools/widl/parser.yy.c" +#line 1044 "tools/widl/parser.yy.c" #define INITIAL 0 #define QUOTE 1 @@ -1279,9 +1273,9 @@ } { -#line 132 "tools/widl/parser.l" +#line 126 "tools/widl/parser.l" -#line 1284 "tools/widl/parser.yy.c" +#line 1278 "tools/widl/parser.yy.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1337,17 +1331,17 @@ case 1: YY_RULE_SETUP -#line 133 "tools/widl/parser.l" +#line 127 "tools/widl/parser.l" yy_push_state(PP_PRAGMA); YY_BREAK case 2: YY_RULE_SETUP -#line 134 "tools/widl/parser.l" +#line 128 "tools/widl/parser.l" yy_push_state(PP_LINE); YY_BREAK case 3: YY_RULE_SETUP -#line 135 "tools/widl/parser.l" +#line 129 "tools/widl/parser.l" { int lineno; char *cptr, *fname; @@ -1369,12 +1363,12 @@ YY_BREAK case 4: YY_RULE_SETUP -#line 153 "tools/widl/parser.l" +#line 147 "tools/widl/parser.l" yyless(9); yy_pop_state(); return tCPPQUOTE; YY_BREAK case 5: YY_RULE_SETUP -#line 154 "tools/widl/parser.l" +#line 148 "tools/widl/parser.l" { if(import_stack_ptr) { if(!winrt_mode) @@ -1394,22 +1388,22 @@ YY_BREAK case 6: YY_RULE_SETUP -#line 170 "tools/widl/parser.l" +#line 164 "tools/widl/parser.l" parser_lval.str = xstrdup(yytext); yy_pop_state(); return aPRAGMA; YY_BREAK case 7: YY_RULE_SETUP -#line 171 "tools/widl/parser.l" +#line 165 "tools/widl/parser.l" return tPRAGMA_WARNING; YY_BREAK case 8: YY_RULE_SETUP -#line 172 "tools/widl/parser.l" +#line 166 "tools/widl/parser.l" yy_push_state(QUOTE); cbufidx = 0; YY_BREAK case 9: YY_RULE_SETUP -#line 173 "tools/widl/parser.l" +#line 167 "tools/widl/parser.l" { yy_pop_state(); parser_lval.str = get_buffered_cstring(); @@ -1418,12 +1412,12 @@ YY_BREAK case 10: YY_RULE_SETUP -#line 178 "tools/widl/parser.l" +#line 172 "tools/widl/parser.l" yy_push_state(WSTRQUOTE); cbufidx = 0; YY_BREAK case 11: YY_RULE_SETUP -#line 179 "tools/widl/parser.l" +#line 173 "tools/widl/parser.l" { yy_pop_state(); parser_lval.str = get_buffered_cstring(); @@ -1432,12 +1426,12 @@ YY_BREAK case 12: YY_RULE_SETUP -#line 184 "tools/widl/parser.l" +#line 178 "tools/widl/parser.l" yy_push_state(SQUOTE); cbufidx = 0; YY_BREAK case 13: YY_RULE_SETUP -#line 185 "tools/widl/parser.l" +#line 179 "tools/widl/parser.l" { yy_pop_state(); parser_lval.str = get_buffered_cstring(); @@ -1445,45 +1439,45 @@ } YY_BREAK case 14: -#line 191 "tools/widl/parser.l" +#line 185 "tools/widl/parser.l" case 15: YY_RULE_SETUP -#line 191 "tools/widl/parser.l" +#line 185 "tools/widl/parser.l" addcchar(yytext[1]); YY_BREAK case 16: YY_RULE_SETUP -#line 192 "tools/widl/parser.l" +#line 186 "tools/widl/parser.l" addcchar(yytext[1]); YY_BREAK case 17: YY_RULE_SETUP -#line 193 "tools/widl/parser.l" +#line 187 "tools/widl/parser.l" addcchar('\\'); addcchar(yytext[1]); YY_BREAK case 18: YY_RULE_SETUP -#line 194 "tools/widl/parser.l" +#line 188 "tools/widl/parser.l" addcchar(yytext[0]); YY_BREAK case 19: YY_RULE_SETUP -#line 195 "tools/widl/parser.l" +#line 189 "tools/widl/parser.l" yy_push_state(ATTR); return '['; YY_BREAK case 20: YY_RULE_SETUP -#line 196 "tools/widl/parser.l" +#line 190 "tools/widl/parser.l" yy_pop_state(); return ']'; YY_BREAK case 21: YY_RULE_SETUP -#line 197 "tools/widl/parser.l" +#line 191 "tools/widl/parser.l" return attr_token(yytext); YY_BREAK case 22: YY_RULE_SETUP -#line 198 "tools/widl/parser.l" +#line 192 "tools/widl/parser.l" { parser_lval.uuid = parse_uuid(yytext); return aUUID; @@ -1491,7 +1485,7 @@ YY_BREAK case 23: YY_RULE_SETUP -#line 202 "tools/widl/parser.l" +#line 196 "tools/widl/parser.l" { parser_lval.num = xstrtoul(yytext, NULL, 0); return aHEXNUM; @@ -1499,7 +1493,7 @@ YY_BREAK case 24: YY_RULE_SETUP -#line 206 "tools/widl/parser.l" +#line 200 "tools/widl/parser.l" { parser_lval.num = xstrtoul(yytext, NULL, 0); return aNUM; @@ -1507,7 +1501,7 @@ YY_BREAK case 25: YY_RULE_SETUP -#line 210 "tools/widl/parser.l" +#line 204 "tools/widl/parser.l" { parser_lval.dbl = strtod(yytext, NULL); return aDOUBLE; @@ -1518,78 +1512,78 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 214 "tools/widl/parser.l" +#line 208 "tools/widl/parser.l" return tSAFEARRAY; YY_BREAK case 27: YY_RULE_SETUP -#line 215 "tools/widl/parser.l" +#line 209 "tools/widl/parser.l" return kw_token(yytext); YY_BREAK case 28: /* rule 28 can match eol */ YY_RULE_SETUP -#line 216 "tools/widl/parser.l" +#line 210 "tools/widl/parser.l" line_number++; YY_BREAK case 29: YY_RULE_SETUP -#line 217 "tools/widl/parser.l" +#line 211 "tools/widl/parser.l" YY_BREAK case 30: YY_RULE_SETUP -#line 218 "tools/widl/parser.l" +#line 212 "tools/widl/parser.l" return SHL; YY_BREAK case 31: YY_RULE_SETUP -#line 219 "tools/widl/parser.l" +#line 213 "tools/widl/parser.l" return SHR; YY_BREAK case 32: YY_RULE_SETUP -#line 220 "tools/widl/parser.l" +#line 214 "tools/widl/parser.l" return MEMBERPTR; YY_BREAK case 33: YY_RULE_SETUP -#line 221 "tools/widl/parser.l" +#line 215 "tools/widl/parser.l" return EQUALITY; YY_BREAK case 34: YY_RULE_SETUP -#line 222 "tools/widl/parser.l" +#line 216 "tools/widl/parser.l" return INEQUALITY; YY_BREAK case 35: YY_RULE_SETUP -#line 223 "tools/widl/parser.l" +#line 217 "tools/widl/parser.l" return GREATEREQUAL; YY_BREAK case 36: YY_RULE_SETUP -#line 224 "tools/widl/parser.l" +#line 218 "tools/widl/parser.l" return LESSEQUAL; YY_BREAK case 37: YY_RULE_SETUP -#line 225 "tools/widl/parser.l" +#line 219 "tools/widl/parser.l" return LOGICALOR; YY_BREAK case 38: YY_RULE_SETUP -#line 226 "tools/widl/parser.l" +#line 220 "tools/widl/parser.l" return LOGICALAND; YY_BREAK case 39: YY_RULE_SETUP -#line 227 "tools/widl/parser.l" +#line 221 "tools/widl/parser.l" return ELLIPSIS; YY_BREAK case 40: YY_RULE_SETUP -#line 228 "tools/widl/parser.l" +#line 222 "tools/widl/parser.l" return yytext[0]; YY_BREAK case YY_STATE_EOF(INITIAL): @@ -1599,7 +1593,7 @@ case YY_STATE_EOF(PP_LINE): case YY_STATE_EOF(PP_PRAGMA): case YY_STATE_EOF(SQUOTE): -#line 229 "tools/widl/parser.l" +#line 223 "tools/widl/parser.l" { if (import_stack_ptr) return aEOF; @@ -1613,10 +1607,10 @@ YY_BREAK case 41: YY_RULE_SETUP -#line 239 "tools/widl/parser.l" +#line 233 "tools/widl/parser.l" ECHO; YY_BREAK -#line 1619 "tools/widl/parser.yy.c" +#line 1613 "tools/widl/parser.yy.c" case YY_END_OF_BUFFER: { @@ -2627,7 +2621,7 @@ #define YYTABLES_NAME "yytables" -#line 239 "tools/widl/parser.l" +#line 233 "tools/widl/parser.l" #ifndef parser_wrap @@ -2956,10 +2950,7 @@ input_name = path; line_number = 1; - name = xstrdup( "widl.XXXXXX" ); - if((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - + fd = make_temp_file( "widl-pp", NULL, &name ); temp_name = name; if (!(f = fdopen(fd, "wt"))) error("Could not open fd %s for writing\n", name); @@ -2997,10 +2988,7 @@ acf_name = NULL; line_number = 1; - name = xstrdup( "widl.XXXXXX" ); - if((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - + fd = make_temp_file( "widl-acf", NULL, &name ); temp_name = name; if (!(f = fdopen(fd, "wt"))) error("Could not open fd %s for writing\n", name);
diff --git a/mingw-w64-tools/widl/src/wpp/ppl.l b/mingw-w64-tools/widl/src/ppl.l similarity index 87% rename from mingw-w64-tools/widl/src/wpp/ppl.l rename to mingw-w64-tools/widl/src/ppl.l index c1b8307..f27a2b4 100644 --- a/mingw-w64-tools/widl/src/wpp/ppl.l +++ b/mingw-w64-tools/widl/src/ppl.l
@@ -17,16 +17,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * - * History: - * 24-Apr-2000 BS - Started from scratch to restructure everything - * and reintegrate the source into the wine-tree. - * 04-Jan-2000 BS - Added comments about the lexicographical - * grammar to give some insight in the complexity. - * 28-Dec-1999 BS - Eliminated backing-up of the flexer by running - * `flex -b' on the source. This results in some - * weirdo extra rules, but a much faster scanner. - * 23-Dec-1999 BS - Started this file - * *------------------------------------------------------------------------- * The preprocessor's lexographical grammar (approximately): * @@ -123,7 +113,6 @@ %top{ #include "config.h" -#include "wine/port.h" } /* @@ -163,6 +152,7 @@ %{ #include <stdio.h> +#include <stdarg.h> #include <stdlib.h> #include <string.h> #include <ctype.h> @@ -178,11 +168,10 @@ # define ULLONG_MAX ((__int64)0xffffffff << 32 | 0xffffffff) #endif -#ifndef HAVE_UNISTD_H #define YY_NO_UNISTD_H -#endif -#include "wine/wpp.h" +#include "../tools.h" +#include "utils.h" #include "wpp_private.h" #include "ppy.tab.h" @@ -302,58 +291,13 @@ 0 /* seen_junk */ }; -struct list pp_includelogiclist = LIST_INIT( pp_includelogiclist ); +static struct list pp_includelogiclist = LIST_INIT( pp_includelogiclist ); #define YY_INPUT(buf,result,max_size) \ { \ result = fread(buf, 1, max_size, pp_status.file); \ } -#define BUFFERINITIALCAPACITY 256 - -void pp_writestring(const char *format, ...) -{ - va_list valist; - int len; - static char *buffer; - static int buffercapacity; - char *new_buffer; - - if(buffercapacity == 0) - { - buffer = pp_xmalloc(BUFFERINITIALCAPACITY); - buffercapacity = BUFFERINITIALCAPACITY; - } - - va_start(valist, format); - len = vsnprintf(buffer, buffercapacity, - format, valist); - va_end(valist); - /* If the string is longer than buffersize, vsnprintf returns - * the string length with glibc >= 2.1, -1 with glibc < 2.1 */ - while(len > buffercapacity || len < 0) - { - do - { - buffercapacity *= 2; - } while(len > buffercapacity); - - new_buffer = pp_xrealloc(buffer, buffercapacity); - if(new_buffer == NULL) - { - va_end(valist); - return; - } - buffer = new_buffer; - va_start(valist, format); - len = vsnprintf(buffer, buffercapacity, - format, valist); - va_end(valist); - } - - fwrite(buffer, 1, len, ppy_out); -} - %} /* @@ -456,7 +400,7 @@ * Handle #ifdef, #ifndef and #undef * to get only an untranslated/unexpanded identifier */ -<pp_ifd>{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +<pp_ifd>{cident} ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; <pp_ifd>{ws}+ ; <pp_ifd>\n newline(1); yy_pop_state(); return tNL; <pp_ifd>\\\r?\n newline(0); @@ -475,7 +419,7 @@ * This is necessary to get the identifier prior to any * substitutions. */ -<pp_defined>{cident} yy_pop_state(); ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +<pp_defined>{cident} yy_pop_state(); ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; <pp_defined>{ws}+ ; <pp_defined>(\()|(\)) return *ppy_text; <pp_defined>\\\r?\n newline(0); @@ -487,17 +431,17 @@ * will act appropriately. * Comments are stripped from the literal text. */ -<pp_eol>[^/\\\n]+ if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } -<pp_eol>\/[^/\\\n*]* if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } -<pp_eol>(\\\r?)|(\/[^/*]) if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } +<pp_eol>[^/\\\n]+ if(yy_top_state() != pp_ignore) { ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; } +<pp_eol>\/[^/\\\n*]* if(yy_top_state() != pp_ignore) { ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; } +<pp_eol>(\\\r?)|(\/[^/*]) if(yy_top_state() != pp_ignore) { ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; } <pp_eol>\n newline(1); yy_pop_state(); if(yy_current_state() != pp_ignore) { return tNL; } <pp_eol>\\\r?\n newline(0); /* * Handle left side of #define */ -<pp_def>{cident}\( ppy_lval.cptr = pp_xstrdup(ppy_text); ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro); return tMACRO; -<pp_def>{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE; +<pp_def>{cident}\( ppy_lval.cptr = xstrdup(ppy_text); ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro); return tMACRO; +<pp_def>{cident} ppy_lval.cptr = xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE; <pp_def>{ws}+ ; <pp_def>\\\r?\n newline(0); <pp_def>(\\\r?)|(\n)|(.) perror("Identifier expected"); @@ -505,9 +449,9 @@ /* * Scan the substitution of a define */ -<pp_define>[^'"/\\\n]+ ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -<pp_define>(\\\r?)|(\/[^/*]) ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -<pp_define>\\\r?\n{ws}+ newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; +<pp_define>[^'"/\\\n]+ ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; +<pp_define>(\\\r?)|(\/[^/*]) ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; +<pp_define>\\\r?\n{ws}+ newline(0); ppy_lval.cptr = xstrdup(" "); return tLITERAL; <pp_define>\\\r?\n newline(0); <pp_define>\n newline(1); yy_pop_state(); return tNL; <pp_define>\' new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); @@ -518,7 +462,7 @@ */ <pp_macro>\){ws}* yy_pp_state(pp_mbody); return tMACROEND; <pp_macro>{ws}+ ; -<pp_macro>{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +<pp_macro>{cident} ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; <pp_macro>, return ','; <pp_macro>"..." return tELLIPSIS; <pp_macro>(\\\r?)|(\n)|(.)|(\.\.?) ppy_error("Argument identifier expected"); @@ -527,13 +471,13 @@ /* * Scan the substitution of a macro */ -<pp_mbody>[^a-zA-Z0-9'"#/\\\n]+ ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -<pp_mbody>{cident} ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +<pp_mbody>[^a-zA-Z0-9'"#/\\\n]+ ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; +<pp_mbody>{cident} ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; <pp_mbody>\#\# return tCONCAT; <pp_mbody>\# return tSTRINGIZE; -<pp_mbody>[0-9][a-zA-Z0-9]*[^a-zA-Z0-9'"#/\\\n]* ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -<pp_mbody>(\\\r?)|(\/[^/*'"#\\\n]*) ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; -<pp_mbody>\\\r?\n{ws}+ newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; +<pp_mbody>[0-9][a-zA-Z0-9]*[^a-zA-Z0-9'"#/\\\n]* ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; +<pp_mbody>(\\\r?)|(\/[^/*'"#\\\n]*) ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; +<pp_mbody>\\\r?\n{ws}+ newline(0); ppy_lval.cptr = xstrdup(" "); return tLITERAL; <pp_mbody>\\\r?\n newline(0); <pp_mbody>\n newline(1); yy_pop_state(); return tNL; <pp_mbody>\' new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); @@ -700,7 +644,7 @@ else if(yy_current_state() == pp_if) { - ppy_lval.cptr = pp_xstrdup(ppy_text); + ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; } else { @@ -726,7 +670,7 @@ push_macro(ppp); break; default: - pp_internal_error(__FILE__, __LINE__, "Invalid define type %d\n", ppp->type); + assert(0); } } else put_buffer(ppy_text, ppy_leng); @@ -749,8 +693,8 @@ <pp_macexp>(\n)|(.)|(\\\r?(\n|.)) put_buffer(ppy_text, ppy_leng); <RCINCL>[A-Za-z0-9_\.\\/]+ { - ppy_lval.cptr=pp_xstrdup(ppy_text); - yy_pop_state(); + ppy_lval.cptr = xstrdup(ppy_text); + yy_pop_state(); return tRCINCLUDEPATH; } @@ -957,28 +901,19 @@ static void expand_special(pp_entry_t *ppp) { static char *buf = NULL; - char *new_buf; assert(ppp->type == def_special); if(!strcmp(ppp->ident, "__LINE__")) { - new_buf = pp_xrealloc(buf, 32); - if(!new_buf) - return; - buf = new_buf; + buf = xrealloc(buf, 32); sprintf(buf, "%d", pp_status.line_number); } else if(!strcmp(ppp->ident, "__FILE__")) { - new_buf = pp_xrealloc(buf, strlen(pp_status.input) + 3); - if(!new_buf) - return; - buf = new_buf; + buf = xrealloc(buf, strlen(pp_status.input) + 3); sprintf(buf, "\"%s\"", pp_status.input); } - else - pp_internal_error(__FILE__, __LINE__, "Special macro '%s' not found...\n", ppp->ident); if(pp_flex_debug) fprintf(stderr, "expand_special(%d): %s:%d: '%s' -> '%s'\n", @@ -1019,21 +954,12 @@ static void add_text(const char *str, int len) { - int new_alloc; - char *new_text; - if(len == 0) return; if(curdef_idx >= curdef_alloc || curdef_alloc - curdef_idx < len) { - new_alloc = curdef_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_text = pp_xrealloc(curdef_text, new_alloc * sizeof(curdef_text[0])); - if(!new_text) - return; - curdef_text = new_text; - curdef_alloc = new_alloc; - if(curdef_alloc > 65536) - ppy_warning("Reallocating macro-expansion buffer larger than 64kB"); + curdef_alloc += (len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1); + curdef_text = xrealloc(curdef_text, curdef_alloc * sizeof(curdef_text[0])); } memcpy(&curdef_text[curdef_idx], str, len); curdef_idx += len; @@ -1129,9 +1055,6 @@ if(pp_flex_debug) fprintf(stderr, "add_expand_text: exp_subst(%d): '%s'\n", mtp->subst.argidx, exp); break; - - default: - pp_internal_error(__FILE__, __LINE__, "Invalid expansion type (%d) in macro expansion\n", mtp->type); } return mtp; } @@ -1225,21 +1148,12 @@ static void add_string(const char *str, int len) { - int new_alloc; - char *new_buffer; - if(len == 0) return; if(strbuf_idx >= strbuf_alloc || strbuf_alloc - strbuf_idx < len) { - new_alloc = strbuf_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_buffer = pp_xrealloc(strbuffer, new_alloc * sizeof(strbuffer[0])); - if(!new_buffer) - return; - strbuffer = new_buffer; - strbuf_alloc = new_alloc; - if(strbuf_alloc > 65536) - ppy_warning("Reallocating string buffer larger than 64kB"); + strbuf_alloc += (len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1); + strbuffer = xrealloc(strbuffer, strbuf_alloc * sizeof(strbuffer[0])); } memcpy(&strbuffer[strbuf_idx], str, len); strbuf_idx += len; @@ -1247,7 +1161,7 @@ static char *get_string(void) { - char *str = pp_xmalloc(strbuf_idx + 1); + char *str = xmalloc(strbuf_idx + 1); memcpy(str, strbuffer, strbuf_idx); str[strbuf_idx] = '\0'; @@ -1275,7 +1189,7 @@ if(ppy_debug) printf("push_buffer(%d): %p %p %p %d\n", bufferstackidx, ppp, filename, incname, pop); if(bufferstackidx >= MAXBUFFERSTACK) - pp_internal_error(__FILE__, __LINE__, "Buffer stack overflow"); + error("Buffer stack overflow\n"); memset(&bufferstack[bufferstackidx], 0, sizeof(bufferstack[0])); bufferstack[bufferstackidx].bufferstate = YY_CURRENT_BUFFER; @@ -1300,16 +1214,11 @@ pp_status.input = filename; ncontinuations = 0; } - else if(!pop) - pp_internal_error(__FILE__, __LINE__, "Pushing buffer without knowing where to go to"); bufferstackidx++; } static bufferstackentry_t *pop_buffer(void) { - if(bufferstackidx < 0) - pp_internal_error(__FILE__, __LINE__, "Bufferstack underflow?"); - if(bufferstackidx == 0) return NULL; @@ -1324,7 +1233,7 @@ if(!bufferstack[bufferstackidx].should_pop) { fclose(pp_status.file); - pp_writestring("# %d \"%s\" 2\n", bufferstack[bufferstackidx].line_number, bufferstack[bufferstackidx].filename); + fprintf(ppy_out, "# %d \"%s\" 2\n", bufferstack[bufferstackidx].line_number, bufferstack[bufferstackidx].filename); /* We have EOF, check the include logic */ if(pp_incl_state.state == 2 && !pp_incl_state.seen_junk && pp_incl_state.ppp) @@ -1332,7 +1241,7 @@ pp_entry_t *ppp = pplookup(pp_incl_state.ppp); if(ppp) { - iep = pp_xmalloc(sizeof(includelogicentry_t)); + iep = xmalloc(sizeof(includelogicentry_t)); iep->ppp = ppp; ppp->iep = iep; iep->filename = bufferstack[bufferstackidx].include_filename; @@ -1374,10 +1283,8 @@ if(bufferstack[bufferstackidx].should_pop) { - if(yy_current_state() == pp_macexp) - macro_add_expansion(); - else - pp_internal_error(__FILE__, __LINE__, "Pop buffer and state without macro expansion state"); + assert( yy_current_state() == pp_macexp ); + macro_add_expansion(); yy_pop_state(); } @@ -1398,7 +1305,7 @@ return; } - macexpstack[macexpstackidx] = pp_xmalloc(sizeof(macexpstack[0][0])); + macexpstack[macexpstackidx] = xmalloc(sizeof(macexpstack[0][0])); memset( macexpstack[macexpstackidx], 0, sizeof(macexpstack[0][0])); macexpstack[macexpstackidx]->ppp = ppp; macexpstackidx++; @@ -1411,8 +1318,7 @@ static macexpstackentry_t *pop_macro(void) { - if(macexpstackidx <= 0) - pp_internal_error(__FILE__, __LINE__, "Macro expansion stack underflow\n"); + assert(macexpstackidx > 0); return macexpstack[--macexpstackidx]; } @@ -1436,13 +1342,8 @@ if(mep->curargalloc - mep->curargsize <= len+1) /* +1 for '\0' */ { - char *new_curarg; - int new_alloc = mep->curargalloc + ((ALLOCBLOCKSIZE > len+1) ? ALLOCBLOCKSIZE : len+1); - new_curarg = pp_xrealloc(mep->curarg, new_alloc * sizeof(mep->curarg[0])); - if(!new_curarg) - return; - mep->curarg = new_curarg; - mep->curargalloc = new_alloc; + mep->curargalloc += (ALLOCBLOCKSIZE > len+1) ? ALLOCBLOCKSIZE : len+1; + mep->curarg = xrealloc(mep->curarg, mep->curargalloc * sizeof(mep->curarg[0])); } memcpy(mep->curarg + mep->curargsize, text, len); mep->curargsize += len; @@ -1457,11 +1358,11 @@ assert(mep->ppp->expanding == 0); - mep->args = pp_xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); - mep->ppargs = pp_xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); - mep->nnls = pp_xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); + mep->args = xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); + mep->ppargs = xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); + mep->nnls = xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); - mep->args[mep->nargs] = pp_xstrdup(mep->curarg ? mep->curarg : ""); + mep->args[mep->nargs] = xstrdup(mep->curarg ? mep->curarg : ""); cptr = mep->args[mep->nargs]-1; while((cptr = strchr(cptr+1, '\n'))) { @@ -1496,7 +1397,7 @@ assert(mep->ppp->expanding == 0); - mep->ppargs[mep->nargs-1] = pp_xstrdup(mep->curarg ? mep->curarg : ""); + mep->ppargs[mep->nargs-1] = xstrdup(mep->curarg ? mep->curarg : ""); free(mep->curarg); mep->curargalloc = mep->curargsize = 0; mep->curarg = NULL; @@ -1584,7 +1485,7 @@ pp_status.file = fp; ppy__switch_to_buffer(ppy__create_buffer(NULL, YY_BUF_SIZE)); - pp_writestring("# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); + fprintf(ppy_out, "# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); } /*
diff --git a/mingw-w64-tools/widl/src/wpp/ppl.yy.c b/mingw-w64-tools/widl/src/ppl.yy.c similarity index 92% rename from mingw-w64-tools/widl/src/wpp/ppl.yy.c rename to mingw-w64-tools/widl/src/ppl.yy.c index 6fed3bc..1e60090 100644 --- a/mingw-w64-tools/widl/src/wpp/ppl.yy.c +++ b/mingw-w64-tools/widl/src/ppl.yy.c
@@ -1,8 +1,7 @@ -#line 1 "libs/wpp/ppl.yy.c" +#line 1 "tools/wrc/ppl.yy.c" #include "config.h" -#include "wine/port.h" -#line 5 "libs/wpp/ppl.yy.c" +#line 4 "tools/wrc/ppl.yy.c" #define YY_INT_ALIGNED short int @@ -1277,7 +1276,7 @@ #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -#line 1 "libs/wpp/ppl.l" +#line 1 "tools/wrc/ppl.l" /* -*-C-*- * Wrc preprocessor lexical analysis * @@ -1297,16 +1296,6 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * - * History: - * 24-Apr-2000 BS - Started from scratch to restructure everything - * and reintegrate the source into the wine-tree. - * 04-Jan-2000 BS - Added comments about the lexicographical - * grammar to give some insight in the complexity. - * 28-Dec-1999 BS - Eliminated backing-up of the flexer by running - * `flex -b' on the source. This results in some - * weirdo extra rules, but a much faster scanner. - * 23-Dec-1999 BS - Started this file - * *------------------------------------------------------------------------- * The preprocessor's lexographical grammar (approximately): * @@ -1427,8 +1416,9 @@ -#line 165 "libs/wpp/ppl.l" +#line 154 "tools/wrc/ppl.l" #include <stdio.h> +#include <stdarg.h> #include <stdlib.h> #include <string.h> #include <ctype.h> @@ -1444,11 +1434,10 @@ # define ULLONG_MAX ((__int64)0xffffffff << 32 | 0xffffffff) #endif -#ifndef HAVE_UNISTD_H #define YY_NO_UNISTD_H -#endif -#include "wine/wpp.h" +#include "../tools.h" +#include "utils.h" #include "wpp_private.h" #include "ppy.tab.h" @@ -1568,65 +1557,20 @@ 0 /* seen_junk */ }; -struct list pp_includelogiclist = LIST_INIT( pp_includelogiclist ); +static struct list pp_includelogiclist = LIST_INIT( pp_includelogiclist ); #define YY_INPUT(buf,result,max_size) \ { \ result = fread(buf, 1, max_size, pp_status.file); \ } -#define BUFFERINITIALCAPACITY 256 - -void pp_writestring(const char *format, ...) -{ - va_list valist; - int len; - static char *buffer; - static int buffercapacity; - char *new_buffer; - - if(buffercapacity == 0) - { - buffer = pp_xmalloc(BUFFERINITIALCAPACITY); - buffercapacity = BUFFERINITIALCAPACITY; - } - - va_start(valist, format); - len = vsnprintf(buffer, buffercapacity, - format, valist); - va_end(valist); - /* If the string is longer than buffersize, vsnprintf returns - * the string length with glibc >= 2.1, -1 with glibc < 2.1 */ - while(len > buffercapacity || len < 0) - { - do - { - buffercapacity *= 2; - } while(len > buffercapacity); - - new_buffer = pp_xrealloc(buffer, buffercapacity); - if(new_buffer == NULL) - { - va_end(valist); - return; - } - buffer = new_buffer; - va_start(valist, format); - len = vsnprintf(buffer, buffercapacity, - format, valist); - va_end(valist); - } - - fwrite(buffer, 1, len, ppy_out); -} - -#line 1623 "libs/wpp/ppl.yy.c" +#line 1567 "tools/wrc/ppl.yy.c" /* ************************************************************************** * The scanner starts here ************************************************************************** */ -#line 1629 "libs/wpp/ppl.yy.c" +#line 1573 "tools/wrc/ppl.yy.c" #define INITIAL 0 #define pp_pp 1 @@ -1876,9 +1820,9 @@ } { -#line 365 "libs/wpp/ppl.l" +#line 309 "tools/wrc/ppl.l" -#line 367 "libs/wpp/ppl.l" +#line 311 "tools/wrc/ppl.l" /* * Catch line-continuations. * Note: Gcc keeps the line-continuations in, for example, strings @@ -1891,7 +1835,7 @@ /* * Detect the leading # of a preprocessor directive. */ -#line 1894 "libs/wpp/ppl.yy.c" +#line 1838 "tools/wrc/ppl.yy.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1947,7 +1891,7 @@ case 1: YY_RULE_SETUP -#line 379 "libs/wpp/ppl.l" +#line 323 "tools/wrc/ppl.l" pp_incl_state.seen_junk++; yy_push_state(pp_pp); YY_BREAK /* @@ -1955,104 +1899,104 @@ */ case 2: YY_RULE_SETUP -#line 384 "libs/wpp/ppl.l" +#line 328 "tools/wrc/ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_inc); return tINCLUDE;} else {yy_pp_state(pp_eol);} YY_BREAK case 3: YY_RULE_SETUP -#line 385 "libs/wpp/ppl.l" +#line 329 "tools/wrc/ppl.l" yy_pp_state(yy_current_state() != pp_ignore ? pp_def : pp_eol); YY_BREAK case 4: YY_RULE_SETUP -#line 386 "libs/wpp/ppl.l" +#line 330 "tools/wrc/ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tERROR; YY_BREAK case 5: YY_RULE_SETUP -#line 387 "libs/wpp/ppl.l" +#line 331 "tools/wrc/ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tWARNING; YY_BREAK case 6: YY_RULE_SETUP -#line 388 "libs/wpp/ppl.l" +#line 332 "tools/wrc/ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPRAGMA; YY_BREAK case 7: YY_RULE_SETUP -#line 389 "libs/wpp/ppl.l" +#line 333 "tools/wrc/ppl.l" yy_pp_state(pp_eol); if(yy_top_state() != pp_ignore) return tPPIDENT; YY_BREAK case 8: YY_RULE_SETUP -#line 390 "libs/wpp/ppl.l" +#line 334 "tools/wrc/ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_ifd); return tUNDEF;} else {yy_pp_state(pp_eol);} YY_BREAK case 9: YY_RULE_SETUP -#line 391 "libs/wpp/ppl.l" +#line 335 "tools/wrc/ppl.l" yy_pp_state(pp_ifd); return tIFDEF; YY_BREAK case 10: YY_RULE_SETUP -#line 392 "libs/wpp/ppl.l" +#line 336 "tools/wrc/ppl.l" pp_incl_state.seen_junk--; yy_pp_state(pp_ifd); return tIFNDEF; YY_BREAK case 11: YY_RULE_SETUP -#line 393 "libs/wpp/ppl.l" +#line 337 "tools/wrc/ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_if);} else {yy_pp_state(pp_ifignored);} return tIF; YY_BREAK case 12: YY_RULE_SETUP -#line 394 "libs/wpp/ppl.l" +#line 338 "tools/wrc/ppl.l" yy_pp_state(pp_if); return tELIF; YY_BREAK case 13: YY_RULE_SETUP -#line 395 "libs/wpp/ppl.l" +#line 339 "tools/wrc/ppl.l" yy_pp_state(pp_endif); return tELSE; YY_BREAK case 14: YY_RULE_SETUP -#line 396 "libs/wpp/ppl.l" +#line 340 "tools/wrc/ppl.l" yy_pp_state(pp_endif); return tENDIF; YY_BREAK case 15: YY_RULE_SETUP -#line 397 "libs/wpp/ppl.l" +#line 341 "tools/wrc/ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tLINE;} else {yy_pp_state(pp_eol);} YY_BREAK case 16: YY_RULE_SETUP -#line 398 "libs/wpp/ppl.l" +#line 342 "tools/wrc/ppl.l" if(yy_top_state() != pp_ignore) {yy_pp_state(pp_line); return tGCCLINE;} else {yy_pp_state(pp_eol);} YY_BREAK case 17: YY_RULE_SETUP -#line 399 "libs/wpp/ppl.l" +#line 343 "tools/wrc/ppl.l" ppy_error("Invalid preprocessor token '%s'", ppy_text); YY_BREAK case 18: /* rule 18 can match eol */ YY_RULE_SETUP -#line 400 "libs/wpp/ppl.l" +#line 344 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; /* This could be the null-token */ YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP -#line 401 "libs/wpp/ppl.l" +#line 345 "tools/wrc/ppl.l" newline(0); YY_BREAK case 20: YY_RULE_SETUP -#line 402 "libs/wpp/ppl.l" +#line 346 "tools/wrc/ppl.l" ppy_error("Preprocessor junk '%s'", ppy_text); YY_BREAK case 21: YY_RULE_SETUP -#line 403 "libs/wpp/ppl.l" +#line 347 "tools/wrc/ppl.l" return *ppy_text; YY_BREAK /* @@ -2060,39 +2004,39 @@ */ case 22: YY_RULE_SETUP -#line 408 "libs/wpp/ppl.l" +#line 352 "tools/wrc/ppl.l" return make_number(10, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 23: YY_RULE_SETUP -#line 409 "libs/wpp/ppl.l" +#line 353 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_iqs); YY_BREAK case 24: YY_RULE_SETUP -#line 410 "libs/wpp/ppl.l" +#line 354 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK case 25: YY_RULE_SETUP -#line 411 "libs/wpp/ppl.l" +#line 355 "tools/wrc/ppl.l" ; YY_BREAK case 26: /* rule 26 can match eol */ YY_RULE_SETUP -#line 412 "libs/wpp/ppl.l" +#line 356 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 27: /* rule 27 can match eol */ YY_RULE_SETUP -#line 413 "libs/wpp/ppl.l" +#line 357 "tools/wrc/ppl.l" newline(0); YY_BREAK case 28: YY_RULE_SETUP -#line 414 "libs/wpp/ppl.l" +#line 358 "tools/wrc/ppl.l" ppy_error(yy_current_state() == pp_inc ? "Trailing junk in #include" : "Trailing junk in #line"); YY_BREAK /* @@ -2100,24 +2044,24 @@ */ case 29: YY_RULE_SETUP -#line 419 "libs/wpp/ppl.l" +#line 363 "tools/wrc/ppl.l" ; YY_BREAK case 30: /* rule 30 can match eol */ YY_RULE_SETUP -#line 420 "libs/wpp/ppl.l" +#line 364 "tools/wrc/ppl.l" newline(1); YY_BREAK case 31: /* rule 31 can match eol */ YY_RULE_SETUP -#line 421 "libs/wpp/ppl.l" +#line 365 "tools/wrc/ppl.l" newline(0); YY_BREAK case 32: YY_RULE_SETUP -#line 422 "libs/wpp/ppl.l" +#line 366 "tools/wrc/ppl.l" ; YY_BREAK /* @@ -2128,120 +2072,120 @@ */ case 33: YY_RULE_SETUP -#line 431 "libs/wpp/ppl.l" +#line 375 "tools/wrc/ppl.l" return make_number(8, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 34: YY_RULE_SETUP -#line 432 "libs/wpp/ppl.l" +#line 376 "tools/wrc/ppl.l" ppy_error("Invalid octal digit"); YY_BREAK case 35: YY_RULE_SETUP -#line 433 "libs/wpp/ppl.l" +#line 377 "tools/wrc/ppl.l" return make_number(10, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 36: YY_RULE_SETUP -#line 434 "libs/wpp/ppl.l" +#line 378 "tools/wrc/ppl.l" return make_number(16, &ppy_lval, ppy_text, ppy_leng); YY_BREAK case 37: YY_RULE_SETUP -#line 435 "libs/wpp/ppl.l" +#line 379 "tools/wrc/ppl.l" ppy_error("Invalid hex number"); YY_BREAK case 38: YY_RULE_SETUP -#line 436 "libs/wpp/ppl.l" +#line 380 "tools/wrc/ppl.l" yy_push_state(pp_defined); return tDEFINED; YY_BREAK case 39: YY_RULE_SETUP -#line 437 "libs/wpp/ppl.l" +#line 381 "tools/wrc/ppl.l" return tLSHIFT; YY_BREAK case 40: YY_RULE_SETUP -#line 438 "libs/wpp/ppl.l" +#line 382 "tools/wrc/ppl.l" return tRSHIFT; YY_BREAK case 41: YY_RULE_SETUP -#line 439 "libs/wpp/ppl.l" +#line 383 "tools/wrc/ppl.l" return tLOGAND; YY_BREAK case 42: YY_RULE_SETUP -#line 440 "libs/wpp/ppl.l" +#line 384 "tools/wrc/ppl.l" return tLOGOR; YY_BREAK case 43: YY_RULE_SETUP -#line 441 "libs/wpp/ppl.l" +#line 385 "tools/wrc/ppl.l" return tEQ; YY_BREAK case 44: YY_RULE_SETUP -#line 442 "libs/wpp/ppl.l" +#line 386 "tools/wrc/ppl.l" return tNE; YY_BREAK case 45: YY_RULE_SETUP -#line 443 "libs/wpp/ppl.l" +#line 387 "tools/wrc/ppl.l" return tLTE; YY_BREAK case 46: YY_RULE_SETUP -#line 444 "libs/wpp/ppl.l" +#line 388 "tools/wrc/ppl.l" return tGTE; YY_BREAK case 47: /* rule 47 can match eol */ YY_RULE_SETUP -#line 445 "libs/wpp/ppl.l" +#line 389 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 48: /* rule 48 can match eol */ YY_RULE_SETUP -#line 446 "libs/wpp/ppl.l" +#line 390 "tools/wrc/ppl.l" newline(0); YY_BREAK case 49: YY_RULE_SETUP -#line 447 "libs/wpp/ppl.l" +#line 391 "tools/wrc/ppl.l" ppy_error("Junk in conditional expression"); YY_BREAK case 50: YY_RULE_SETUP -#line 448 "libs/wpp/ppl.l" +#line 392 "tools/wrc/ppl.l" ; YY_BREAK case 51: YY_RULE_SETUP -#line 449 "libs/wpp/ppl.l" +#line 393 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 52: YY_RULE_SETUP -#line 450 "libs/wpp/ppl.l" +#line 394 "tools/wrc/ppl.l" ppy_error("String constants not allowed in conditionals"); YY_BREAK case 53: YY_RULE_SETUP -#line 451 "libs/wpp/ppl.l" +#line 395 "tools/wrc/ppl.l" return *ppy_text; YY_BREAK case 54: YY_RULE_SETUP -#line 453 "libs/wpp/ppl.l" +#line 397 "tools/wrc/ppl.l" ppy_lval.sint = 0; return tSINT; YY_BREAK case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 454 "libs/wpp/ppl.l" +#line 398 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK /* @@ -2250,29 +2194,29 @@ */ case 56: YY_RULE_SETUP -#line 460 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +#line 404 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; YY_BREAK case 57: YY_RULE_SETUP -#line 461 "libs/wpp/ppl.l" +#line 405 "tools/wrc/ppl.l" ; YY_BREAK case 58: /* rule 58 can match eol */ YY_RULE_SETUP -#line 462 "libs/wpp/ppl.l" +#line 406 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 59: /* rule 59 can match eol */ YY_RULE_SETUP -#line 463 "libs/wpp/ppl.l" +#line 407 "tools/wrc/ppl.l" newline(0); YY_BREAK case 60: YY_RULE_SETUP -#line 464 "libs/wpp/ppl.l" +#line 408 "tools/wrc/ppl.l" ppy_error("Identifier expected"); YY_BREAK /* @@ -2280,24 +2224,24 @@ */ case 61: YY_RULE_SETUP -#line 469 "libs/wpp/ppl.l" +#line 413 "tools/wrc/ppl.l" ; YY_BREAK case 62: /* rule 62 can match eol */ YY_RULE_SETUP -#line 470 "libs/wpp/ppl.l" +#line 414 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 63: /* rule 63 can match eol */ YY_RULE_SETUP -#line 471 "libs/wpp/ppl.l" +#line 415 "tools/wrc/ppl.l" newline(0); YY_BREAK case 64: YY_RULE_SETUP -#line 472 "libs/wpp/ppl.l" +#line 416 "tools/wrc/ppl.l" ppy_error("Garbage after #else or #endif."); YY_BREAK /* @@ -2307,29 +2251,29 @@ */ case 65: YY_RULE_SETUP -#line 479 "libs/wpp/ppl.l" -yy_pop_state(); ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +#line 423 "tools/wrc/ppl.l" +yy_pop_state(); ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; YY_BREAK case 66: YY_RULE_SETUP -#line 480 "libs/wpp/ppl.l" +#line 424 "tools/wrc/ppl.l" ; YY_BREAK case 67: YY_RULE_SETUP -#line 481 "libs/wpp/ppl.l" +#line 425 "tools/wrc/ppl.l" return *ppy_text; YY_BREAK case 68: /* rule 68 can match eol */ YY_RULE_SETUP -#line 482 "libs/wpp/ppl.l" +#line 426 "tools/wrc/ppl.l" newline(0); YY_BREAK case 69: /* rule 69 can match eol */ YY_RULE_SETUP -#line 483 "libs/wpp/ppl.l" +#line 427 "tools/wrc/ppl.l" ppy_error("Identifier expected"); YY_BREAK /* @@ -2340,30 +2284,30 @@ */ case 70: YY_RULE_SETUP -#line 491 "libs/wpp/ppl.l" -if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } +#line 435 "tools/wrc/ppl.l" +if(yy_top_state() != pp_ignore) { ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; } YY_BREAK case 71: YY_RULE_SETUP -#line 492 "libs/wpp/ppl.l" -if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } +#line 436 "tools/wrc/ppl.l" +if(yy_top_state() != pp_ignore) { ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; } YY_BREAK case 72: /* rule 72 can match eol */ YY_RULE_SETUP -#line 493 "libs/wpp/ppl.l" -if(yy_top_state() != pp_ignore) { ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; } +#line 437 "tools/wrc/ppl.l" +if(yy_top_state() != pp_ignore) { ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; } YY_BREAK case 73: /* rule 73 can match eol */ YY_RULE_SETUP -#line 494 "libs/wpp/ppl.l" +#line 438 "tools/wrc/ppl.l" newline(1); yy_pop_state(); if(yy_current_state() != pp_ignore) { return tNL; } YY_BREAK case 74: /* rule 74 can match eol */ YY_RULE_SETUP -#line 495 "libs/wpp/ppl.l" +#line 439 "tools/wrc/ppl.l" newline(0); YY_BREAK /* @@ -2371,29 +2315,29 @@ */ case 75: YY_RULE_SETUP -#line 500 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro); return tMACRO; +#line 444 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); ppy_lval.cptr[ppy_leng-1] = '\0'; yy_pp_state(pp_macro); return tMACRO; YY_BREAK case 76: YY_RULE_SETUP -#line 501 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE; +#line 445 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); yy_pp_state(pp_define); return tDEFINE; YY_BREAK case 77: YY_RULE_SETUP -#line 502 "libs/wpp/ppl.l" +#line 446 "tools/wrc/ppl.l" ; YY_BREAK case 78: /* rule 78 can match eol */ YY_RULE_SETUP -#line 503 "libs/wpp/ppl.l" +#line 447 "tools/wrc/ppl.l" newline(0); YY_BREAK case 79: /* rule 79 can match eol */ YY_RULE_SETUP -#line 504 "libs/wpp/ppl.l" +#line 448 "tools/wrc/ppl.l" perror("Identifier expected"); YY_BREAK /* @@ -2401,41 +2345,41 @@ */ case 80: YY_RULE_SETUP -#line 509 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; +#line 453 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; YY_BREAK case 81: /* rule 81 can match eol */ YY_RULE_SETUP -#line 510 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; +#line 454 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; YY_BREAK case 82: /* rule 82 can match eol */ YY_RULE_SETUP -#line 511 "libs/wpp/ppl.l" -newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; +#line 455 "tools/wrc/ppl.l" +newline(0); ppy_lval.cptr = xstrdup(" "); return tLITERAL; YY_BREAK case 83: /* rule 83 can match eol */ YY_RULE_SETUP -#line 512 "libs/wpp/ppl.l" +#line 456 "tools/wrc/ppl.l" newline(0); YY_BREAK case 84: /* rule 84 can match eol */ YY_RULE_SETUP -#line 513 "libs/wpp/ppl.l" +#line 457 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 85: YY_RULE_SETUP -#line 514 "libs/wpp/ppl.l" +#line 458 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 86: YY_RULE_SETUP -#line 515 "libs/wpp/ppl.l" +#line 459 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK /* @@ -2443,39 +2387,39 @@ */ case 87: YY_RULE_SETUP -#line 520 "libs/wpp/ppl.l" +#line 464 "tools/wrc/ppl.l" yy_pp_state(pp_mbody); return tMACROEND; YY_BREAK case 88: YY_RULE_SETUP -#line 521 "libs/wpp/ppl.l" +#line 465 "tools/wrc/ppl.l" ; YY_BREAK case 89: YY_RULE_SETUP -#line 522 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +#line 466 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; YY_BREAK case 90: YY_RULE_SETUP -#line 523 "libs/wpp/ppl.l" +#line 467 "tools/wrc/ppl.l" return ','; YY_BREAK case 91: YY_RULE_SETUP -#line 524 "libs/wpp/ppl.l" +#line 468 "tools/wrc/ppl.l" return tELLIPSIS; YY_BREAK case 92: /* rule 92 can match eol */ YY_RULE_SETUP -#line 525 "libs/wpp/ppl.l" +#line 469 "tools/wrc/ppl.l" ppy_error("Argument identifier expected"); YY_BREAK case 93: /* rule 93 can match eol */ YY_RULE_SETUP -#line 526 "libs/wpp/ppl.l" +#line 470 "tools/wrc/ppl.l" newline(0); YY_BREAK /* @@ -2483,60 +2427,60 @@ */ case 94: YY_RULE_SETUP -#line 531 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; +#line 475 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; YY_BREAK case 95: YY_RULE_SETUP -#line 532 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tIDENT; +#line 476 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; YY_BREAK case 96: YY_RULE_SETUP -#line 533 "libs/wpp/ppl.l" +#line 477 "tools/wrc/ppl.l" return tCONCAT; YY_BREAK case 97: YY_RULE_SETUP -#line 534 "libs/wpp/ppl.l" +#line 478 "tools/wrc/ppl.l" return tSTRINGIZE; YY_BREAK case 98: YY_RULE_SETUP -#line 535 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; +#line 479 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; YY_BREAK case 99: YY_RULE_SETUP -#line 536 "libs/wpp/ppl.l" -ppy_lval.cptr = pp_xstrdup(ppy_text); return tLITERAL; +#line 480 "tools/wrc/ppl.l" +ppy_lval.cptr = xstrdup(ppy_text); return tLITERAL; YY_BREAK case 100: /* rule 100 can match eol */ YY_RULE_SETUP -#line 537 "libs/wpp/ppl.l" -newline(0); ppy_lval.cptr = pp_xstrdup(" "); return tLITERAL; +#line 481 "tools/wrc/ppl.l" +newline(0); ppy_lval.cptr = xstrdup(" "); return tLITERAL; YY_BREAK case 101: /* rule 101 can match eol */ YY_RULE_SETUP -#line 538 "libs/wpp/ppl.l" +#line 482 "tools/wrc/ppl.l" newline(0); YY_BREAK case 102: /* rule 102 can match eol */ YY_RULE_SETUP -#line 539 "libs/wpp/ppl.l" +#line 483 "tools/wrc/ppl.l" newline(1); yy_pop_state(); return tNL; YY_BREAK case 103: YY_RULE_SETUP -#line 540 "libs/wpp/ppl.l" +#line 484 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 104: YY_RULE_SETUP -#line 541 "libs/wpp/ppl.l" +#line 485 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK /* @@ -2553,13 +2497,13 @@ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 552 "libs/wpp/ppl.l" +#line 496 "tools/wrc/ppl.l" yy_pp_state(pp_macscan); YY_BREAK case 106: /* rule 106 can match eol */ YY_RULE_SETUP -#line 553 "libs/wpp/ppl.l" +#line 497 "tools/wrc/ppl.l" { if(yy_top_state() != pp_macscan) newline(0); @@ -2568,12 +2512,12 @@ case 107: /* rule 107 can match eol */ YY_RULE_SETUP -#line 557 "libs/wpp/ppl.l" +#line 501 "tools/wrc/ppl.l" newline(0); YY_BREAK case 108: YY_RULE_SETUP -#line 558 "libs/wpp/ppl.l" +#line 502 "tools/wrc/ppl.l" { macexpstackentry_t *mac = pop_macro(); yy_pop_state(); @@ -2588,7 +2532,7 @@ */ case 109: YY_RULE_SETUP -#line 570 "libs/wpp/ppl.l" +#line 514 "tools/wrc/ppl.l" { if(++MACROPARENTHESES() > 1) add_text_to_macro(ppy_text, ppy_leng); @@ -2596,7 +2540,7 @@ YY_BREAK case 110: YY_RULE_SETUP -#line 574 "libs/wpp/ppl.l" +#line 518 "tools/wrc/ppl.l" { if(--MACROPARENTHESES() == 0) { @@ -2609,7 +2553,7 @@ YY_BREAK case 111: YY_RULE_SETUP -#line 583 "libs/wpp/ppl.l" +#line 527 "tools/wrc/ppl.l" { if(MACROPARENTHESES() > 1) add_text_to_macro(ppy_text, ppy_leng); @@ -2619,34 +2563,34 @@ YY_BREAK case 112: YY_RULE_SETUP -#line 589 "libs/wpp/ppl.l" +#line 533 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK case 113: YY_RULE_SETUP -#line 590 "libs/wpp/ppl.l" +#line 534 "tools/wrc/ppl.l" new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 114: YY_RULE_SETUP -#line 591 "libs/wpp/ppl.l" +#line 535 "tools/wrc/ppl.l" yy_push_state(pp_comment); add_text_to_macro(" ", 1); YY_BREAK case 115: /* rule 115 can match eol */ YY_RULE_SETUP -#line 592 "libs/wpp/ppl.l" +#line 536 "tools/wrc/ppl.l" pp_status.line_number++; pp_status.char_number = 1; add_text_to_macro(ppy_text, ppy_leng); YY_BREAK case 116: YY_RULE_SETUP -#line 593 "libs/wpp/ppl.l" +#line 537 "tools/wrc/ppl.l" add_text_to_macro(ppy_text, ppy_leng); YY_BREAK case 117: /* rule 117 can match eol */ YY_RULE_SETUP -#line 594 "libs/wpp/ppl.l" +#line 538 "tools/wrc/ppl.l" newline(0); YY_BREAK /* @@ -2654,23 +2598,23 @@ */ case 118: YY_RULE_SETUP -#line 599 "libs/wpp/ppl.l" +#line 543 "tools/wrc/ppl.l" yy_push_state(pp_comment); YY_BREAK case 119: YY_RULE_SETUP -#line 600 "libs/wpp/ppl.l" +#line 544 "tools/wrc/ppl.l" ; YY_BREAK case 120: /* rule 120 can match eol */ YY_RULE_SETUP -#line 601 "libs/wpp/ppl.l" +#line 545 "tools/wrc/ppl.l" newline(0); YY_BREAK case 121: YY_RULE_SETUP -#line 602 "libs/wpp/ppl.l" +#line 546 "tools/wrc/ppl.l" yy_pop_state(); YY_BREAK /* @@ -2678,7 +2622,7 @@ */ case 122: YY_RULE_SETUP -#line 607 "libs/wpp/ppl.l" +#line 551 "tools/wrc/ppl.l" { if(ppy_text[ppy_leng-1] == '\\') ppy_warning("C++ style comment ends with an escaped newline (escape ignored)"); @@ -2689,22 +2633,22 @@ */ case 123: YY_RULE_SETUP -#line 615 "libs/wpp/ppl.l" +#line 559 "tools/wrc/ppl.l" pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_dqs); YY_BREAK case 124: YY_RULE_SETUP -#line 616 "libs/wpp/ppl.l" +#line 560 "tools/wrc/ppl.l" pp_incl_state.seen_junk++; new_string(); add_string(ppy_text, ppy_leng); yy_push_state(pp_sqs); YY_BREAK case 125: YY_RULE_SETUP -#line 617 "libs/wpp/ppl.l" +#line 561 "tools/wrc/ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 126: YY_RULE_SETUP -#line 618 "libs/wpp/ppl.l" +#line 562 "tools/wrc/ppl.l" { add_string(ppy_text, ppy_leng); yy_pop_state(); @@ -2728,12 +2672,12 @@ YY_BREAK case 127: YY_RULE_SETUP -#line 638 "libs/wpp/ppl.l" +#line 582 "tools/wrc/ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 128: YY_RULE_SETUP -#line 639 "libs/wpp/ppl.l" +#line 583 "tools/wrc/ppl.l" { add_string(ppy_text, ppy_leng); yy_pop_state(); @@ -2751,12 +2695,12 @@ YY_BREAK case 129: YY_RULE_SETUP -#line 653 "libs/wpp/ppl.l" +#line 597 "tools/wrc/ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 130: YY_RULE_SETUP -#line 654 "libs/wpp/ppl.l" +#line 598 "tools/wrc/ppl.l" { add_string(ppy_text, ppy_leng); yy_pop_state(); @@ -2767,7 +2711,7 @@ case 131: /* rule 131 can match eol */ YY_RULE_SETUP -#line 660 "libs/wpp/ppl.l" +#line 604 "tools/wrc/ppl.l" { /* * This is tricky; we need to remove the line-continuation @@ -2795,13 +2739,13 @@ YY_BREAK case 132: YY_RULE_SETUP -#line 684 "libs/wpp/ppl.l" +#line 628 "tools/wrc/ppl.l" add_string(ppy_text, ppy_leng); YY_BREAK case 133: /* rule 133 can match eol */ YY_RULE_SETUP -#line 685 "libs/wpp/ppl.l" +#line 629 "tools/wrc/ppl.l" { newline(1); add_string(ppy_text, ppy_leng); @@ -2813,7 +2757,7 @@ */ case 134: YY_RULE_SETUP -#line 694 "libs/wpp/ppl.l" +#line 638 "tools/wrc/ppl.l" { pp_entry_t *ppp; pp_incl_state.seen_junk++; @@ -2824,7 +2768,7 @@ else if(yy_current_state() == pp_if) { - ppy_lval.cptr = pp_xstrdup(ppy_text); + ppy_lval.cptr = xstrdup(ppy_text); return tIDENT; } else { @@ -2850,7 +2794,7 @@ push_macro(ppp); break; default: - pp_internal_error(__FILE__, __LINE__, "Invalid define type %d\n", ppp->type); + assert(0); } } else put_buffer(ppy_text, ppy_leng); @@ -2862,29 +2806,29 @@ */ case 135: YY_RULE_SETUP -#line 740 "libs/wpp/ppl.l" +#line 684 "tools/wrc/ppl.l" pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); YY_BREAK case 136: YY_RULE_SETUP -#line 741 "libs/wpp/ppl.l" +#line 685 "tools/wrc/ppl.l" put_buffer(ppy_text, ppy_leng); YY_BREAK case 137: /* rule 137 can match eol */ YY_RULE_SETUP -#line 742 "libs/wpp/ppl.l" +#line 686 "tools/wrc/ppl.l" newline(1); YY_BREAK case 138: /* rule 138 can match eol */ YY_RULE_SETUP -#line 743 "libs/wpp/ppl.l" +#line 687 "tools/wrc/ppl.l" newline(0); YY_BREAK case 139: YY_RULE_SETUP -#line 744 "libs/wpp/ppl.l" +#line 688 "tools/wrc/ppl.l" pp_incl_state.seen_junk++; put_buffer(ppy_text, ppy_leng); YY_BREAK /* @@ -2894,26 +2838,26 @@ case 140: /* rule 140 can match eol */ YY_RULE_SETUP -#line 750 "libs/wpp/ppl.l" +#line 694 "tools/wrc/ppl.l" put_buffer(ppy_text, ppy_leng); YY_BREAK case 141: YY_RULE_SETUP -#line 752 "libs/wpp/ppl.l" +#line 696 "tools/wrc/ppl.l" { - ppy_lval.cptr=pp_xstrdup(ppy_text); - yy_pop_state(); + ppy_lval.cptr = xstrdup(ppy_text); + yy_pop_state(); return tRCINCLUDEPATH; } YY_BREAK case 142: YY_RULE_SETUP -#line 758 "libs/wpp/ppl.l" +#line 702 "tools/wrc/ppl.l" ; YY_BREAK case 143: YY_RULE_SETUP -#line 760 "libs/wpp/ppl.l" +#line 704 "tools/wrc/ppl.l" { new_string(); add_string(ppy_text,ppy_leng);yy_push_state(pp_dqs); } @@ -2924,7 +2868,7 @@ */ case 144: YY_RULE_SETUP -#line 768 "libs/wpp/ppl.l" +#line 712 "tools/wrc/ppl.l" pp_incl_state.seen_junk++; ppy_warning("Unmatched text '%c' (0x%02x); please report\n", isprint(*ppy_text & 0xff) ? *ppy_text : ' ', *ppy_text); YY_BREAK case YY_STATE_EOF(INITIAL): @@ -2950,7 +2894,7 @@ case YY_STATE_EOF(pp_defined): case YY_STATE_EOF(pp_ignore): case YY_STATE_EOF(RCINCL): -#line 770 "libs/wpp/ppl.l" +#line 714 "tools/wrc/ppl.l" { YY_BUFFER_STATE b = YY_CURRENT_BUFFER; bufferstackentry_t *bep = pop_buffer(); @@ -2978,10 +2922,10 @@ YY_BREAK case 145: YY_RULE_SETUP -#line 795 "libs/wpp/ppl.l" +#line 739 "tools/wrc/ppl.l" ECHO; YY_BREAK -#line 2984 "libs/wpp/ppl.yy.c" +#line 2928 "tools/wrc/ppl.yy.c" case YY_END_OF_BUFFER: { @@ -3997,7 +3941,7 @@ #define YYTABLES_NAME "yytables" -#line 795 "libs/wpp/ppl.l" +#line 739 "tools/wrc/ppl.l" /* ************************************************************************** @@ -4164,28 +4108,19 @@ static void expand_special(pp_entry_t *ppp) { static char *buf = NULL; - char *new_buf; assert(ppp->type == def_special); if(!strcmp(ppp->ident, "__LINE__")) { - new_buf = pp_xrealloc(buf, 32); - if(!new_buf) - return; - buf = new_buf; + buf = xrealloc(buf, 32); sprintf(buf, "%d", pp_status.line_number); } else if(!strcmp(ppp->ident, "__FILE__")) { - new_buf = pp_xrealloc(buf, strlen(pp_status.input) + 3); - if(!new_buf) - return; - buf = new_buf; + buf = xrealloc(buf, strlen(pp_status.input) + 3); sprintf(buf, "\"%s\"", pp_status.input); } - else - pp_internal_error(__FILE__, __LINE__, "Special macro '%s' not found...\n", ppp->ident); if(pp_flex_debug) fprintf(stderr, "expand_special(%d): %s:%d: '%s' -> '%s'\n", @@ -4226,21 +4161,12 @@ static void add_text(const char *str, int len) { - int new_alloc; - char *new_text; - if(len == 0) return; if(curdef_idx >= curdef_alloc || curdef_alloc - curdef_idx < len) { - new_alloc = curdef_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_text = pp_xrealloc(curdef_text, new_alloc * sizeof(curdef_text[0])); - if(!new_text) - return; - curdef_text = new_text; - curdef_alloc = new_alloc; - if(curdef_alloc > 65536) - ppy_warning("Reallocating macro-expansion buffer larger than 64kB"); + curdef_alloc += (len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1); + curdef_text = xrealloc(curdef_text, curdef_alloc * sizeof(curdef_text[0])); } memcpy(&curdef_text[curdef_idx], str, len); curdef_idx += len; @@ -4336,9 +4262,6 @@ if(pp_flex_debug) fprintf(stderr, "add_expand_text: exp_subst(%d): '%s'\n", mtp->subst.argidx, exp); break; - - default: - pp_internal_error(__FILE__, __LINE__, "Invalid expansion type (%d) in macro expansion\n", mtp->type); } return mtp; } @@ -4432,21 +4355,12 @@ static void add_string(const char *str, int len) { - int new_alloc; - char *new_buffer; - if(len == 0) return; if(strbuf_idx >= strbuf_alloc || strbuf_alloc - strbuf_idx < len) { - new_alloc = strbuf_alloc + ((len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1)); - new_buffer = pp_xrealloc(strbuffer, new_alloc * sizeof(strbuffer[0])); - if(!new_buffer) - return; - strbuffer = new_buffer; - strbuf_alloc = new_alloc; - if(strbuf_alloc > 65536) - ppy_warning("Reallocating string buffer larger than 64kB"); + strbuf_alloc += (len + ALLOCBLOCKSIZE-1) & ~(ALLOCBLOCKSIZE-1); + strbuffer = xrealloc(strbuffer, strbuf_alloc * sizeof(strbuffer[0])); } memcpy(&strbuffer[strbuf_idx], str, len); strbuf_idx += len; @@ -4454,7 +4368,7 @@ static char *get_string(void) { - char *str = pp_xmalloc(strbuf_idx + 1); + char *str = xmalloc(strbuf_idx + 1); memcpy(str, strbuffer, strbuf_idx); str[strbuf_idx] = '\0'; @@ -4482,7 +4396,7 @@ if(ppy_debug) printf("push_buffer(%d): %p %p %p %d\n", bufferstackidx, ppp, filename, incname, pop); if(bufferstackidx >= MAXBUFFERSTACK) - pp_internal_error(__FILE__, __LINE__, "Buffer stack overflow"); + error("Buffer stack overflow\n"); memset(&bufferstack[bufferstackidx], 0, sizeof(bufferstack[0])); bufferstack[bufferstackidx].bufferstate = YY_CURRENT_BUFFER; @@ -4507,16 +4421,11 @@ pp_status.input = filename; ncontinuations = 0; } - else if(!pop) - pp_internal_error(__FILE__, __LINE__, "Pushing buffer without knowing where to go to"); bufferstackidx++; } static bufferstackentry_t *pop_buffer(void) { - if(bufferstackidx < 0) - pp_internal_error(__FILE__, __LINE__, "Bufferstack underflow?"); - if(bufferstackidx == 0) return NULL; @@ -4531,7 +4440,7 @@ if(!bufferstack[bufferstackidx].should_pop) { fclose(pp_status.file); - pp_writestring("# %d \"%s\" 2\n", bufferstack[bufferstackidx].line_number, bufferstack[bufferstackidx].filename); + fprintf(ppy_out, "# %d \"%s\" 2\n", bufferstack[bufferstackidx].line_number, bufferstack[bufferstackidx].filename); /* We have EOF, check the include logic */ if(pp_incl_state.state == 2 && !pp_incl_state.seen_junk && pp_incl_state.ppp) @@ -4539,7 +4448,7 @@ pp_entry_t *ppp = pplookup(pp_incl_state.ppp); if(ppp) { - iep = pp_xmalloc(sizeof(includelogicentry_t)); + iep = xmalloc(sizeof(includelogicentry_t)); iep->ppp = ppp; ppp->iep = iep; iep->filename = bufferstack[bufferstackidx].include_filename; @@ -4581,10 +4490,8 @@ if(bufferstack[bufferstackidx].should_pop) { - if(yy_current_state() == pp_macexp) - macro_add_expansion(); - else - pp_internal_error(__FILE__, __LINE__, "Pop buffer and state without macro expansion state"); + assert( yy_current_state() == pp_macexp ); + macro_add_expansion(); yy_pop_state(); } @@ -4605,7 +4512,7 @@ return; } - macexpstack[macexpstackidx] = pp_xmalloc(sizeof(macexpstack[0][0])); + macexpstack[macexpstackidx] = xmalloc(sizeof(macexpstack[0][0])); memset( macexpstack[macexpstackidx], 0, sizeof(macexpstack[0][0])); macexpstack[macexpstackidx]->ppp = ppp; macexpstackidx++; @@ -4618,8 +4525,7 @@ static macexpstackentry_t *pop_macro(void) { - if(macexpstackidx <= 0) - pp_internal_error(__FILE__, __LINE__, "Macro expansion stack underflow\n"); + assert(macexpstackidx > 0); return macexpstack[--macexpstackidx]; } @@ -4643,13 +4549,8 @@ if(mep->curargalloc - mep->curargsize <= len+1) /* +1 for '\0' */ { - char *new_curarg; - int new_alloc = mep->curargalloc + ((ALLOCBLOCKSIZE > len+1) ? ALLOCBLOCKSIZE : len+1); - new_curarg = pp_xrealloc(mep->curarg, new_alloc * sizeof(mep->curarg[0])); - if(!new_curarg) - return; - mep->curarg = new_curarg; - mep->curargalloc = new_alloc; + mep->curargalloc += (ALLOCBLOCKSIZE > len+1) ? ALLOCBLOCKSIZE : len+1; + mep->curarg = xrealloc(mep->curarg, mep->curargalloc * sizeof(mep->curarg[0])); } memcpy(mep->curarg + mep->curargsize, text, len); mep->curargsize += len; @@ -4664,11 +4565,11 @@ assert(mep->ppp->expanding == 0); - mep->args = pp_xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); - mep->ppargs = pp_xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); - mep->nnls = pp_xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); + mep->args = xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); + mep->ppargs = xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); + mep->nnls = xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); - mep->args[mep->nargs] = pp_xstrdup(mep->curarg ? mep->curarg : ""); + mep->args[mep->nargs] = xstrdup(mep->curarg ? mep->curarg : ""); cptr = mep->args[mep->nargs]-1; while((cptr = strchr(cptr+1, '\n'))) { @@ -4703,7 +4604,7 @@ assert(mep->ppp->expanding == 0); - mep->ppargs[mep->nargs-1] = pp_xstrdup(mep->curarg ? mep->curarg : ""); + mep->ppargs[mep->nargs-1] = xstrdup(mep->curarg ? mep->curarg : ""); free(mep->curarg); mep->curargalloc = mep->curargsize = 0; mep->curarg = NULL; @@ -4791,7 +4692,7 @@ pp_status.file = fp; ppy__switch_to_buffer(ppy__create_buffer(NULL, YY_BUF_SIZE)); - pp_writestring("# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); + fprintf(ppy_out, "# 1 \"%s\" 1%s\n", newpath, type ? "" : " 3"); } /*
diff --git a/mingw-w64-tools/widl/src/wpp/ppy.tab.c b/mingw-w64-tools/widl/src/ppy.tab.c similarity index 82% rename from mingw-w64-tools/widl/src/wpp/ppy.tab.c rename to mingw-w64-tools/widl/src/ppy.tab.c index 6da909e..1e650e3 100644 --- a/mingw-w64-tools/widl/src/wpp/ppy.tab.c +++ b/mingw-w64-tools/widl/src/ppy.tab.c
@@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.5. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison implementation for Yacc-like parsers in C @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -46,10 +46,10 @@ USER NAME SPACE" below. */ /* Identify Bison output, and Bison version. */ -#define YYBISON 30705 +#define YYBISON 30706 /* Bison version string. */ -#define YYBISON_VERSION "3.7.5" +#define YYBISON_VERSION "3.7.6" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -74,10 +74,9 @@ #define yychar ppy_char /* First part of user prologue. */ -#line 30 "libs/wpp/ppy.y" +#line 22 "tools/wrc/ppy.y" #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> @@ -86,6 +85,8 @@ #include <ctype.h> #include <string.h> +#include "../tools.h" +#include "utils.h" #include "wpp_private.h" @@ -141,7 +142,7 @@ case SIZE_INT: BIN_OP_INT(r, v1, v2, OP); break; \ case SIZE_LONG: BIN_OP_LONG(r, v1, v2, OP); break; \ case SIZE_LONGLONG: BIN_OP_LONGLONG(r, v1, v2, OP); break; \ - default: pp_internal_error(__FILE__, __LINE__, "Invalid type indicator (0x%04x)", v1.type); \ + default: assert(0); \ } @@ -169,7 +170,7 @@ static int nmacro_args; -#line 173 "libs/wpp/ppy.tab.c" +#line 174 "tools/wrc/ppy.tab.c" # ifndef YY_CAST # ifdef __cplusplus @@ -261,7 +262,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 125 "libs/wpp/ppy.y" +#line 118 "tools/wrc/ppy.y" int sint; unsigned int uint; @@ -275,7 +276,7 @@ char *marg; mtext_t *mtext; -#line 279 "libs/wpp/ppy.tab.c" +#line 280 "tools/wrc/ppy.tab.c" }; typedef union YYSTYPE YYSTYPE; @@ -689,16 +690,16 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 303 +#define YYLAST 304 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 62 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 13 /* YYNRULES -- Number of rules. */ -#define YYNRULES 84 +#define YYNRULES 85 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 153 +#define YYNSTATES 154 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 300 @@ -752,15 +753,15 @@ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 180, 180, 181, 185, 186, 187, 188, 189, 209, - 233, 259, 276, 277, 278, 281, 282, 283, 285, 287, - 289, 291, 292, 293, 294, 295, 296, 303, 309, 310, - 313, 314, 315, 316, 317, 318, 321, 324, 325, 328, - 329, 332, 333, 337, 338, 344, 345, 348, 349, 350, - 351, 352, 359, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399 + 0, 173, 173, 174, 178, 179, 180, 181, 182, 202, + 224, 248, 265, 266, 267, 270, 271, 272, 274, 276, + 278, 280, 281, 282, 283, 284, 285, 288, 294, 295, + 298, 299, 300, 301, 302, 303, 306, 309, 310, 313, + 314, 315, 318, 319, 323, 324, 330, 331, 334, 335, + 336, 337, 338, 345, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385 }; #endif @@ -826,22 +827,22 @@ STATE-NUM. */ static const yytype_int16 yypact[] = { - -27, 142, -27, -26, -3, -12, -2, 30, -3, 41, - 91, 21, 2, -19, -19, -19, -19, 32, -27, -19, + -27, 124, -27, -26, -3, -12, -2, 30, -3, 41, + 73, 21, 2, -19, -19, -19, -19, 32, -27, -19, -27, -27, -27, -23, -27, -27, -27, -27, -27, -27, - -27, -3, -3, -3, -3, -3, 38, 66, 109, -27, - 85, -27, 113, 133, 115, -27, 124, -27, -27, -27, - 179, -9, 278, 280, 281, 282, 129, 283, -27, 271, - -10, -10, -27, -27, 57, -27, -3, -3, -3, -3, + -27, -3, -3, -3, -3, -3, 38, 94, 115, -27, + 66, -27, 123, 137, 74, -27, 97, -27, -27, -27, + 142, -9, 185, 283, 284, 285, 149, 286, -27, 111, + -10, -10, -27, -27, 114, -27, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -27, -27, -27, -27, -27, 285, + -3, -3, -3, -3, -27, -27, -27, -27, -27, 287, 3, -27, -27, -27, -27, -27, -27, -27, -27, -27, - 277, -27, 239, -27, 238, -27, 132, 167, 182, 196, - 209, 221, 231, 231, 111, 111, 111, 111, 61, 61, - -10, -10, -27, -27, -27, -27, 4, 19, 266, -27, - -3, -27, 6, -27, 276, -27, -27, -27, -27, 290, - 19, -27, -27, -27, 151, -27, 7, -27, -27, -27, - -27, 291, -27 + -27, 129, -27, 240, -27, 239, -27, 138, 173, 188, + 202, 215, 227, 237, 237, 44, 44, 44, 44, 91, + 91, -10, -10, -27, -27, -27, -27, 4, 19, 150, + -27, -3, -27, 6, -27, 277, -27, -27, -27, -27, + 291, 19, -27, -27, -27, 157, -27, 7, -27, -27, + -27, -27, 292, -27 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -851,20 +852,20 @@ { 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 28, 28, 0, 36, 28, - 3, 27, 26, 0, 61, 54, 53, 56, 55, 58, - 57, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 3, 27, 26, 0, 62, 55, 54, 57, 56, 59, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 21, 0, 30, 31, 32, - 0, 29, 0, 0, 0, 0, 37, 0, 59, 0, - 79, 80, 81, 82, 0, 6, 0, 0, 0, 0, + 0, 29, 0, 0, 0, 0, 37, 0, 60, 0, + 80, 81, 82, 83, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 9, 4, 5, 0, - 0, 22, 33, 34, 35, 23, 24, 25, 12, 42, - 0, 38, 39, 13, 0, 83, 0, 62, 63, 74, - 72, 73, 64, 65, 66, 68, 67, 69, 77, 78, - 70, 71, 75, 76, 15, 16, 0, 43, 0, 60, - 0, 17, 0, 50, 0, 52, 47, 48, 49, 0, - 44, 45, 40, 41, 84, 18, 0, 51, 14, 46, - 19, 0, 20 + 0, 22, 33, 34, 35, 23, 24, 25, 12, 41, + 43, 0, 38, 39, 13, 0, 84, 0, 63, 64, + 75, 73, 74, 65, 66, 67, 69, 68, 70, 78, + 79, 71, 72, 76, 77, 15, 16, 0, 44, 0, + 61, 0, 17, 0, 51, 0, 53, 48, 49, 50, + 0, 45, 46, 40, 42, 85, 18, 0, 52, 14, + 47, 19, 0, 20 }; /* YYPGOTO[NTERM-NUM]. */ @@ -877,8 +878,8 @@ /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_uint8 yydefgoto[] = { - 0, 1, 20, 50, 51, 56, 100, 101, 102, 139, - 140, 141, 36 + 0, 1, 20, 50, 51, 56, 101, 102, 103, 140, + 141, 142, 36 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -887,36 +888,36 @@ static const yytype_uint8 yytable[] = { 40, 58, 21, 52, 53, 54, 47, 23, 57, 48, - 49, 22, 37, 45, 125, 131, 92, 145, 150, 93, + 49, 22, 37, 45, 126, 132, 92, 146, 151, 93, 94, 24, 38, 60, 61, 62, 63, 64, 25, 26, - 27, 28, 29, 30, 46, 126, 132, 59, 146, 151, - 133, 39, 134, 135, 136, 82, 83, 137, 138, 65, - 31, 32, 41, 44, 33, 34, 55, 35, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 66, 84, 67, 68, + 27, 28, 29, 30, 46, 127, 133, 59, 147, 152, + 134, 39, 135, 136, 137, 82, 83, 138, 139, 65, + 31, 32, 41, 44, 33, 34, 55, 35, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 66, 86, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 66, 86, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 80, 81, 82, 83, 105, 42, - 85, 43, 144, 66, 87, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 2, 89, 88, 3, 4, 5, 6, 7, - 8, 9, 90, 99, 10, 11, 12, 13, 14, 15, - 16, 17, 78, 79, 80, 81, 82, 83, 18, 19, - 66, 130, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 66, - 91, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 70, + 79, 80, 81, 82, 83, 78, 79, 80, 81, 82, + 83, 42, 89, 43, 66, 84, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 142, 95, - 143, 96, 97, 98, 103, 104, 124, 127, 128, 129, - 147, 148, 152, 149 + 81, 82, 83, 145, 2, 90, 85, 3, 4, 5, + 6, 7, 8, 9, 87, 105, 10, 11, 12, 13, + 14, 15, 16, 17, 80, 81, 82, 83, 88, 128, + 18, 19, 66, 91, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 99, 143, 100, 144, 106, 66, 131, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 66, 95, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 96, 97, 98, 104, 125, 129, + 130, 148, 149, 153, 150 }; static const yytype_uint8 yycheck[] = @@ -930,28 +931,28 @@ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 38, 11, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 51, 52, 53, 54, 55, + 56, 28, 28, 30, 38, 11, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 131, 0, 28, 11, 3, 4, 5, + 6, 7, 8, 9, 11, 24, 12, 13, 14, 15, + 16, 17, 18, 19, 53, 54, 55, 56, 11, 20, + 26, 27, 38, 11, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 22, 22, 24, 24, 61, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 38, 11, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 53, 54, 55, 56, 61, 28, - 11, 30, 130, 38, 11, 40, 41, 42, 43, 44, + 53, 54, 55, 56, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 0, 28, 11, 3, 4, 5, 6, 7, - 8, 9, 28, 24, 12, 13, 14, 15, 16, 17, - 18, 19, 51, 52, 53, 54, 55, 56, 26, 27, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 38, - 11, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 22, 11, - 24, 11, 11, 11, 11, 24, 11, 20, 59, 61, - 24, 11, 11, 140 + 55, 56, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 11, 11, 11, 11, 11, 59, + 61, 24, 11, 11, 141 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -967,13 +968,13 @@ 74, 74, 74, 74, 74, 11, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 11, 11, 11, 11, 11, 28, - 28, 11, 25, 28, 29, 11, 11, 11, 11, 24, - 68, 69, 70, 11, 24, 61, 74, 74, 74, 74, + 28, 11, 25, 28, 29, 11, 11, 11, 11, 22, + 24, 68, 69, 70, 11, 24, 61, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 11, 11, 32, 20, 59, 61, - 39, 11, 32, 21, 23, 24, 25, 28, 29, 71, - 72, 73, 22, 24, 74, 11, 32, 24, 11, 73, - 11, 32, 11 + 74, 74, 74, 74, 74, 11, 11, 32, 20, 59, + 61, 39, 11, 32, 21, 23, 24, 25, 28, 29, + 71, 72, 73, 22, 24, 74, 11, 32, 24, 11, + 73, 11, 32, 11 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -983,11 +984,11 @@ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 66, 66, 66, 66, 66, 66, 67, 68, 68, 69, - 69, 70, 70, 71, 71, 72, 72, 73, 73, 73, - 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, + 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, + 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74 + 74, 74, 74, 74, 74, 74 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -997,11 +998,11 @@ 2, 2, 3, 3, 6, 4, 4, 5, 6, 7, 8, 2, 3, 3, 3, 3, 2, 2, 0, 1, 1, 1, 1, 2, 2, 2, 0, 0, 1, 1, - 3, 3, 1, 0, 1, 1, 2, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, - 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 2, 3, 5 + 3, 1, 3, 1, 0, 1, 1, 2, 1, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 4, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 3, 5 }; @@ -1469,31 +1470,31 @@ switch (yyn) { case 4: /* preprocessor: tINCLUDE tDQSTRING tNL */ -#line 185 "libs/wpp/ppy.y" +#line 178 "tools/wrc/ppy.y" { pp_do_include((yyvsp[-1].cptr), 1); } -#line 1475 "libs/wpp/ppy.tab.c" +#line 1476 "tools/wrc/ppy.tab.c" break; case 5: /* preprocessor: tINCLUDE tIQSTRING tNL */ -#line 186 "libs/wpp/ppy.y" +#line 179 "tools/wrc/ppy.y" { pp_do_include((yyvsp[-1].cptr), 0); } -#line 1481 "libs/wpp/ppy.tab.c" +#line 1482 "tools/wrc/ppy.tab.c" break; case 6: /* preprocessor: tIF pp_expr tNL */ -#line 187 "libs/wpp/ppy.y" +#line 180 "tools/wrc/ppy.y" { pp_next_if_state(boolean(&(yyvsp[-1].cval))); } -#line 1487 "libs/wpp/ppy.tab.c" +#line 1488 "tools/wrc/ppy.tab.c" break; case 7: /* preprocessor: tIFDEF tIDENT tNL */ -#line 188 "libs/wpp/ppy.y" +#line 181 "tools/wrc/ppy.y" { pp_next_if_state(pplookup((yyvsp[-1].cptr)) != NULL); free((yyvsp[-1].cptr)); } -#line 1493 "libs/wpp/ppy.tab.c" +#line 1494 "tools/wrc/ppy.tab.c" break; case 8: /* preprocessor: tIFNDEF tIDENT tNL */ -#line 189 "libs/wpp/ppy.y" +#line 182 "tools/wrc/ppy.y" { int t = pplookup((yyvsp[-1].cptr)) == NULL; if(pp_incl_state.state == 0 && t && !pp_incl_state.seen_junk) @@ -1514,11 +1515,11 @@ fprintf(stderr, "tIFNDEF: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n", pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); } -#line 1518 "libs/wpp/ppy.tab.c" +#line 1519 "tools/wrc/ppy.tab.c" break; case 9: /* preprocessor: tELIF pp_expr tNL */ -#line 209 "libs/wpp/ppy.y" +#line 202 "tools/wrc/ppy.y" { pp_if_state_t s = pp_pop_if(); switch(s) @@ -1539,15 +1540,13 @@ break; case if_error: break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #elif directive", s); } } -#line 1547 "libs/wpp/ppy.tab.c" +#line 1546 "tools/wrc/ppy.tab.c" break; case 10: /* preprocessor: tELSE tNL */ -#line 233 "libs/wpp/ppy.y" +#line 224 "tools/wrc/ppy.y" { pp_if_state_t s = pp_pop_if(); switch(s) @@ -1570,15 +1569,13 @@ break; case if_error: break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #else directive", s); } } -#line 1578 "libs/wpp/ppy.tab.c" +#line 1575 "tools/wrc/ppy.tab.c" break; case 11: /* preprocessor: tENDIF tNL */ -#line 259 "libs/wpp/ppy.y" +#line 248 "tools/wrc/ppy.y" { if(pp_pop_if() != if_error) { @@ -1596,252 +1593,254 @@ pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth); } } -#line 1600 "libs/wpp/ppy.tab.c" +#line 1597 "tools/wrc/ppy.tab.c" break; case 12: /* preprocessor: tUNDEF tIDENT tNL */ -#line 276 "libs/wpp/ppy.y" +#line 265 "tools/wrc/ppy.y" { pp_del_define((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } -#line 1606 "libs/wpp/ppy.tab.c" +#line 1603 "tools/wrc/ppy.tab.c" break; case 13: /* preprocessor: tDEFINE opt_text tNL */ -#line 277 "libs/wpp/ppy.y" +#line 266 "tools/wrc/ppy.y" { pp_add_define((yyvsp[-2].cptr), (yyvsp[-1].cptr)); free((yyvsp[-2].cptr)); free((yyvsp[-1].cptr)); } -#line 1612 "libs/wpp/ppy.tab.c" +#line 1609 "tools/wrc/ppy.tab.c" break; case 14: /* preprocessor: tMACRO res_arg allmargs tMACROEND opt_mtexts tNL */ -#line 278 "libs/wpp/ppy.y" +#line 267 "tools/wrc/ppy.y" { pp_add_macro((yyvsp[-5].cptr), macro_args, nmacro_args, (yyvsp[-1].mtext)); } -#line 1620 "libs/wpp/ppy.tab.c" +#line 1617 "tools/wrc/ppy.tab.c" break; case 15: /* preprocessor: tLINE tSINT tDQSTRING tNL */ -#line 281 "libs/wpp/ppy.y" - { if((yyvsp[-1].cptr)) pp_writestring("# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } -#line 1626 "libs/wpp/ppy.tab.c" +#line 270 "tools/wrc/ppy.y" + { if((yyvsp[-1].cptr)) fprintf(ppy_out, "# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } +#line 1623 "tools/wrc/ppy.tab.c" break; case 16: /* preprocessor: tGCCLINE tSINT tDQSTRING tNL */ -#line 282 "libs/wpp/ppy.y" - { if((yyvsp[-1].cptr)) pp_writestring("# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } -#line 1632 "libs/wpp/ppy.tab.c" +#line 271 "tools/wrc/ppy.y" + { if((yyvsp[-1].cptr)) fprintf(ppy_out, "# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } +#line 1629 "tools/wrc/ppy.tab.c" break; case 17: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tNL */ -#line 284 "libs/wpp/ppy.y" - { if((yyvsp[-2].cptr)) pp_writestring("# %d %s %d\n", (yyvsp[-3].sint), (yyvsp[-2].cptr), (yyvsp[-1].sint)); free((yyvsp[-2].cptr)); } -#line 1638 "libs/wpp/ppy.tab.c" +#line 273 "tools/wrc/ppy.y" + { if((yyvsp[-2].cptr)) fprintf(ppy_out, "# %d %s %d\n", (yyvsp[-3].sint), (yyvsp[-2].cptr), (yyvsp[-1].sint)); free((yyvsp[-2].cptr)); } +#line 1635 "tools/wrc/ppy.tab.c" break; case 18: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tSINT tNL */ -#line 286 "libs/wpp/ppy.y" - { if((yyvsp[-3].cptr)) pp_writestring("# %d %s %d %d\n", (yyvsp[-4].sint) ,(yyvsp[-3].cptr), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-3].cptr)); } -#line 1644 "libs/wpp/ppy.tab.c" +#line 275 "tools/wrc/ppy.y" + { if((yyvsp[-3].cptr)) fprintf(ppy_out, "# %d %s %d %d\n", (yyvsp[-4].sint) ,(yyvsp[-3].cptr), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-3].cptr)); } +#line 1641 "tools/wrc/ppy.tab.c" break; case 19: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tNL */ -#line 288 "libs/wpp/ppy.y" - { if((yyvsp[-4].cptr)) pp_writestring("# %d %s %d %d %d\n", (yyvsp[-5].sint) ,(yyvsp[-4].cptr) ,(yyvsp[-3].sint) ,(yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-4].cptr)); } -#line 1650 "libs/wpp/ppy.tab.c" +#line 277 "tools/wrc/ppy.y" + { if((yyvsp[-4].cptr)) fprintf(ppy_out, "# %d %s %d %d %d\n", (yyvsp[-5].sint) ,(yyvsp[-4].cptr) ,(yyvsp[-3].sint) ,(yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-4].cptr)); } +#line 1647 "tools/wrc/ppy.tab.c" break; case 20: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tSINT tNL */ -#line 290 "libs/wpp/ppy.y" - { if((yyvsp[-5].cptr)) pp_writestring("# %d %s %d %d %d %d\n", (yyvsp[-6].sint) ,(yyvsp[-5].cptr) ,(yyvsp[-4].sint) ,(yyvsp[-3].sint), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-5].cptr)); } -#line 1656 "libs/wpp/ppy.tab.c" +#line 279 "tools/wrc/ppy.y" + { if((yyvsp[-5].cptr)) fprintf(ppy_out, "# %d %s %d %d %d %d\n", (yyvsp[-6].sint) ,(yyvsp[-5].cptr) ,(yyvsp[-4].sint) ,(yyvsp[-3].sint), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-5].cptr)); } +#line 1653 "tools/wrc/ppy.tab.c" break; case 22: /* preprocessor: tERROR opt_text tNL */ -#line 292 "libs/wpp/ppy.y" +#line 281 "tools/wrc/ppy.y" { ppy_error("#error directive: '%s'", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } -#line 1662 "libs/wpp/ppy.tab.c" +#line 1659 "tools/wrc/ppy.tab.c" break; case 23: /* preprocessor: tWARNING opt_text tNL */ -#line 293 "libs/wpp/ppy.y" +#line 282 "tools/wrc/ppy.y" { ppy_warning("#warning directive: '%s'", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } -#line 1668 "libs/wpp/ppy.tab.c" +#line 1665 "tools/wrc/ppy.tab.c" break; case 24: /* preprocessor: tPRAGMA opt_text tNL */ -#line 294 "libs/wpp/ppy.y" - { pp_writestring("#pragma %s\n", (yyvsp[-1].cptr) ? (yyvsp[-1].cptr) : ""); free((yyvsp[-1].cptr)); } -#line 1674 "libs/wpp/ppy.tab.c" +#line 283 "tools/wrc/ppy.y" + { fprintf(ppy_out, "#pragma %s\n", (yyvsp[-1].cptr) ? (yyvsp[-1].cptr) : ""); free((yyvsp[-1].cptr)); } +#line 1671 "tools/wrc/ppy.tab.c" break; case 25: /* preprocessor: tPPIDENT opt_text tNL */ -#line 295 "libs/wpp/ppy.y" - { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } -#line 1680 "libs/wpp/ppy.tab.c" +#line 284 "tools/wrc/ppy.y" + { if(pedantic) ppy_warning("#ident ignored (arg: '%s')", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); } +#line 1677 "tools/wrc/ppy.tab.c" break; case 26: /* preprocessor: tRCINCLUDE tRCINCLUDEPATH */ -#line 296 "libs/wpp/ppy.y" +#line 285 "tools/wrc/ppy.y" { - int nl=strlen((yyvsp[0].cptr)) +3; - char *fn=pp_xmalloc(nl); - sprintf(fn,"\"%s\"",(yyvsp[0].cptr)); - pp_do_include(fn,1); - free((yyvsp[0].cptr)); + pp_do_include(strmake( "\"%s\"", (yyvsp[0].cptr) ),1); } -#line 1692 "libs/wpp/ppy.tab.c" +#line 1685 "tools/wrc/ppy.tab.c" break; case 27: /* preprocessor: tRCINCLUDE tDQSTRING */ -#line 303 "libs/wpp/ppy.y" +#line 288 "tools/wrc/ppy.y" { pp_do_include((yyvsp[0].cptr),1); } -#line 1700 "libs/wpp/ppy.tab.c" +#line 1693 "tools/wrc/ppy.tab.c" break; case 28: /* opt_text: %empty */ -#line 309 "libs/wpp/ppy.y" +#line 294 "tools/wrc/ppy.y" { (yyval.cptr) = NULL; } -#line 1706 "libs/wpp/ppy.tab.c" +#line 1699 "tools/wrc/ppy.tab.c" break; case 29: /* opt_text: text */ -#line 310 "libs/wpp/ppy.y" +#line 295 "tools/wrc/ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); } -#line 1712 "libs/wpp/ppy.tab.c" +#line 1705 "tools/wrc/ppy.tab.c" break; case 30: /* text: tLITERAL */ -#line 313 "libs/wpp/ppy.y" +#line 298 "tools/wrc/ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); } -#line 1718 "libs/wpp/ppy.tab.c" +#line 1711 "tools/wrc/ppy.tab.c" break; case 31: /* text: tDQSTRING */ -#line 314 "libs/wpp/ppy.y" +#line 299 "tools/wrc/ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); } -#line 1724 "libs/wpp/ppy.tab.c" +#line 1717 "tools/wrc/ppy.tab.c" break; case 32: /* text: tSQSTRING */ -#line 315 "libs/wpp/ppy.y" +#line 300 "tools/wrc/ppy.y" { (yyval.cptr) = (yyvsp[0].cptr); } -#line 1730 "libs/wpp/ppy.tab.c" +#line 1723 "tools/wrc/ppy.tab.c" break; case 33: /* text: text tLITERAL */ -#line 316 "libs/wpp/ppy.y" +#line 301 "tools/wrc/ppy.y" { (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); } -#line 1736 "libs/wpp/ppy.tab.c" +#line 1729 "tools/wrc/ppy.tab.c" break; case 34: /* text: text tDQSTRING */ -#line 317 "libs/wpp/ppy.y" +#line 302 "tools/wrc/ppy.y" { (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); } -#line 1742 "libs/wpp/ppy.tab.c" +#line 1735 "tools/wrc/ppy.tab.c" break; case 35: /* text: text tSQSTRING */ -#line 318 "libs/wpp/ppy.y" +#line 303 "tools/wrc/ppy.y" { (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); } -#line 1748 "libs/wpp/ppy.tab.c" +#line 1741 "tools/wrc/ppy.tab.c" break; case 36: /* res_arg: %empty */ -#line 321 "libs/wpp/ppy.y" +#line 306 "tools/wrc/ppy.y" { macro_args = NULL; nmacro_args = 0; } -#line 1754 "libs/wpp/ppy.tab.c" +#line 1747 "tools/wrc/ppy.tab.c" break; case 37: /* allmargs: %empty */ -#line 324 "libs/wpp/ppy.y" +#line 309 "tools/wrc/ppy.y" { (yyval.sint) = 0; macro_args = NULL; nmacro_args = 0; } -#line 1760 "libs/wpp/ppy.tab.c" +#line 1753 "tools/wrc/ppy.tab.c" break; case 38: /* allmargs: emargs */ -#line 325 "libs/wpp/ppy.y" +#line 310 "tools/wrc/ppy.y" { (yyval.sint) = nmacro_args; } -#line 1766 "libs/wpp/ppy.tab.c" +#line 1759 "tools/wrc/ppy.tab.c" break; case 39: /* emargs: margs */ -#line 328 "libs/wpp/ppy.y" +#line 313 "tools/wrc/ppy.y" { (yyval.marg) = (yyvsp[0].marg); } -#line 1772 "libs/wpp/ppy.tab.c" +#line 1765 "tools/wrc/ppy.tab.c" break; case 40: /* emargs: margs ',' tELLIPSIS */ -#line 329 "libs/wpp/ppy.y" +#line 314 "tools/wrc/ppy.y" { nmacro_args *= -1; } -#line 1778 "libs/wpp/ppy.tab.c" +#line 1771 "tools/wrc/ppy.tab.c" break; - case 41: /* margs: margs ',' tIDENT */ -#line 332 "libs/wpp/ppy.y" + case 41: /* emargs: tELLIPSIS */ +#line 315 "tools/wrc/ppy.y" + { macro_args = NULL; nmacro_args = 0; } +#line 1777 "tools/wrc/ppy.tab.c" + break; + + case 42: /* margs: margs ',' tIDENT */ +#line 318 "tools/wrc/ppy.y" { (yyval.marg) = add_new_marg((yyvsp[0].cptr)); } -#line 1784 "libs/wpp/ppy.tab.c" +#line 1783 "tools/wrc/ppy.tab.c" break; - case 42: /* margs: tIDENT */ -#line 333 "libs/wpp/ppy.y" + case 43: /* margs: tIDENT */ +#line 319 "tools/wrc/ppy.y" { (yyval.marg) = add_new_marg((yyvsp[0].cptr)); } -#line 1790 "libs/wpp/ppy.tab.c" +#line 1789 "tools/wrc/ppy.tab.c" break; - case 43: /* opt_mtexts: %empty */ -#line 337 "libs/wpp/ppy.y" + case 44: /* opt_mtexts: %empty */ +#line 323 "tools/wrc/ppy.y" { (yyval.mtext) = NULL; } -#line 1796 "libs/wpp/ppy.tab.c" +#line 1795 "tools/wrc/ppy.tab.c" break; - case 44: /* opt_mtexts: mtexts */ -#line 338 "libs/wpp/ppy.y" + case 45: /* opt_mtexts: mtexts */ +#line 324 "tools/wrc/ppy.y" { for((yyval.mtext) = (yyvsp[0].mtext); (yyval.mtext) && (yyval.mtext)->prev; (yyval.mtext) = (yyval.mtext)->prev) ; } -#line 1805 "libs/wpp/ppy.tab.c" +#line 1804 "tools/wrc/ppy.tab.c" break; - case 45: /* mtexts: mtext */ -#line 344 "libs/wpp/ppy.y" + case 46: /* mtexts: mtext */ +#line 330 "tools/wrc/ppy.y" { (yyval.mtext) = (yyvsp[0].mtext); } -#line 1811 "libs/wpp/ppy.tab.c" +#line 1810 "tools/wrc/ppy.tab.c" break; - case 46: /* mtexts: mtexts mtext */ -#line 345 "libs/wpp/ppy.y" + case 47: /* mtexts: mtexts mtext */ +#line 331 "tools/wrc/ppy.y" { (yyval.mtext) = combine_mtext((yyvsp[-1].mtext), (yyvsp[0].mtext)); } -#line 1817 "libs/wpp/ppy.tab.c" +#line 1816 "tools/wrc/ppy.tab.c" break; - case 47: /* mtext: tLITERAL */ -#line 348 "libs/wpp/ppy.y" + case 48: /* mtext: tLITERAL */ +#line 334 "tools/wrc/ppy.y" { (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); } -#line 1823 "libs/wpp/ppy.tab.c" +#line 1822 "tools/wrc/ppy.tab.c" break; - case 48: /* mtext: tDQSTRING */ -#line 349 "libs/wpp/ppy.y" + case 49: /* mtext: tDQSTRING */ +#line 335 "tools/wrc/ppy.y" { (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); } -#line 1829 "libs/wpp/ppy.tab.c" +#line 1828 "tools/wrc/ppy.tab.c" break; - case 49: /* mtext: tSQSTRING */ -#line 350 "libs/wpp/ppy.y" + case 50: /* mtext: tSQSTRING */ +#line 336 "tools/wrc/ppy.y" { (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); } -#line 1835 "libs/wpp/ppy.tab.c" +#line 1834 "tools/wrc/ppy.tab.c" break; - case 50: /* mtext: tCONCAT */ -#line 351 "libs/wpp/ppy.y" + case 51: /* mtext: tCONCAT */ +#line 337 "tools/wrc/ppy.y" { (yyval.mtext) = new_mtext(NULL, 0, exp_concat); } -#line 1841 "libs/wpp/ppy.tab.c" +#line 1840 "tools/wrc/ppy.tab.c" break; - case 51: /* mtext: tSTRINGIZE tIDENT */ -#line 352 "libs/wpp/ppy.y" + case 52: /* mtext: tSTRINGIZE tIDENT */ +#line 338 "tools/wrc/ppy.y" { int mat = marg_index((yyvsp[0].cptr)); if(mat < 0) @@ -1849,11 +1848,11 @@ else (yyval.mtext) = new_mtext(NULL, mat, exp_stringize); } -#line 1853 "libs/wpp/ppy.tab.c" +#line 1852 "tools/wrc/ppy.tab.c" break; - case 52: /* mtext: tIDENT */ -#line 359 "libs/wpp/ppy.y" + case 53: /* mtext: tIDENT */ +#line 345 "tools/wrc/ppy.y" { int mat = marg_index((yyvsp[0].cptr)); if(mat >= 0) @@ -1861,203 +1860,203 @@ else if((yyvsp[0].cptr)) (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); } -#line 1865 "libs/wpp/ppy.tab.c" +#line 1864 "tools/wrc/ppy.tab.c" break; - case 53: /* pp_expr: tSINT */ -#line 368 "libs/wpp/ppy.y" + case 54: /* pp_expr: tSINT */ +#line 354 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = (yyvsp[0].sint); } -#line 1871 "libs/wpp/ppy.tab.c" +#line 1870 "tools/wrc/ppy.tab.c" break; - case 54: /* pp_expr: tUINT */ -#line 369 "libs/wpp/ppy.y" + case 55: /* pp_expr: tUINT */ +#line 355 "tools/wrc/ppy.y" { (yyval.cval).type = cv_uint; (yyval.cval).val.ui = (yyvsp[0].uint); } -#line 1877 "libs/wpp/ppy.tab.c" +#line 1876 "tools/wrc/ppy.tab.c" break; - case 55: /* pp_expr: tSLONG */ -#line 370 "libs/wpp/ppy.y" + case 56: /* pp_expr: tSLONG */ +#line 356 "tools/wrc/ppy.y" { (yyval.cval).type = cv_slong; (yyval.cval).val.sl = (yyvsp[0].slong); } -#line 1883 "libs/wpp/ppy.tab.c" +#line 1882 "tools/wrc/ppy.tab.c" break; - case 56: /* pp_expr: tULONG */ -#line 371 "libs/wpp/ppy.y" + case 57: /* pp_expr: tULONG */ +#line 357 "tools/wrc/ppy.y" { (yyval.cval).type = cv_ulong; (yyval.cval).val.ul = (yyvsp[0].ulong); } -#line 1889 "libs/wpp/ppy.tab.c" +#line 1888 "tools/wrc/ppy.tab.c" break; - case 57: /* pp_expr: tSLONGLONG */ -#line 372 "libs/wpp/ppy.y" + case 58: /* pp_expr: tSLONGLONG */ +#line 358 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sll; (yyval.cval).val.sll = (yyvsp[0].sll); } -#line 1895 "libs/wpp/ppy.tab.c" +#line 1894 "tools/wrc/ppy.tab.c" break; - case 58: /* pp_expr: tULONGLONG */ -#line 373 "libs/wpp/ppy.y" + case 59: /* pp_expr: tULONGLONG */ +#line 359 "tools/wrc/ppy.y" { (yyval.cval).type = cv_ull; (yyval.cval).val.ull = (yyvsp[0].ull); } -#line 1901 "libs/wpp/ppy.tab.c" +#line 1900 "tools/wrc/ppy.tab.c" break; - case 59: /* pp_expr: tDEFINED tIDENT */ -#line 374 "libs/wpp/ppy.y" + case 60: /* pp_expr: tDEFINED tIDENT */ +#line 360 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[0].cptr)) != NULL; } -#line 1907 "libs/wpp/ppy.tab.c" +#line 1906 "tools/wrc/ppy.tab.c" break; - case 60: /* pp_expr: tDEFINED '(' tIDENT ')' */ -#line 375 "libs/wpp/ppy.y" + case 61: /* pp_expr: tDEFINED '(' tIDENT ')' */ +#line 361 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[-1].cptr)) != NULL; } -#line 1913 "libs/wpp/ppy.tab.c" +#line 1912 "tools/wrc/ppy.tab.c" break; - case 61: /* pp_expr: tIDENT */ -#line 376 "libs/wpp/ppy.y" + case 62: /* pp_expr: tIDENT */ +#line 362 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = 0; } -#line 1919 "libs/wpp/ppy.tab.c" +#line 1918 "tools/wrc/ppy.tab.c" break; - case 62: /* pp_expr: pp_expr tLOGOR pp_expr */ -#line 377 "libs/wpp/ppy.y" + case 63: /* pp_expr: pp_expr tLOGOR pp_expr */ +#line 363 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[-2].cval)) || boolean(&(yyvsp[0].cval)); } -#line 1925 "libs/wpp/ppy.tab.c" +#line 1924 "tools/wrc/ppy.tab.c" break; - case 63: /* pp_expr: pp_expr tLOGAND pp_expr */ -#line 378 "libs/wpp/ppy.y" + case 64: /* pp_expr: pp_expr tLOGAND pp_expr */ +#line 364 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[-2].cval)) && boolean(&(yyvsp[0].cval)); } -#line 1931 "libs/wpp/ppy.tab.c" +#line 1930 "tools/wrc/ppy.tab.c" break; - case 64: /* pp_expr: pp_expr tEQ pp_expr */ -#line 379 "libs/wpp/ppy.y" + case 65: /* pp_expr: pp_expr tEQ pp_expr */ +#line 365 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), ==); } -#line 1937 "libs/wpp/ppy.tab.c" +#line 1936 "tools/wrc/ppy.tab.c" break; - case 65: /* pp_expr: pp_expr tNE pp_expr */ -#line 380 "libs/wpp/ppy.y" + case 66: /* pp_expr: pp_expr tNE pp_expr */ +#line 366 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), !=); } -#line 1943 "libs/wpp/ppy.tab.c" +#line 1942 "tools/wrc/ppy.tab.c" break; - case 66: /* pp_expr: pp_expr '<' pp_expr */ -#line 381 "libs/wpp/ppy.y" + case 67: /* pp_expr: pp_expr '<' pp_expr */ +#line 367 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <); } -#line 1949 "libs/wpp/ppy.tab.c" +#line 1948 "tools/wrc/ppy.tab.c" break; - case 67: /* pp_expr: pp_expr '>' pp_expr */ -#line 382 "libs/wpp/ppy.y" + case 68: /* pp_expr: pp_expr '>' pp_expr */ +#line 368 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >); } -#line 1955 "libs/wpp/ppy.tab.c" +#line 1954 "tools/wrc/ppy.tab.c" break; - case 68: /* pp_expr: pp_expr tLTE pp_expr */ -#line 383 "libs/wpp/ppy.y" + case 69: /* pp_expr: pp_expr tLTE pp_expr */ +#line 369 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <=); } -#line 1961 "libs/wpp/ppy.tab.c" +#line 1960 "tools/wrc/ppy.tab.c" break; - case 69: /* pp_expr: pp_expr tGTE pp_expr */ -#line 384 "libs/wpp/ppy.y" + case 70: /* pp_expr: pp_expr tGTE pp_expr */ +#line 370 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >=); } -#line 1967 "libs/wpp/ppy.tab.c" +#line 1966 "tools/wrc/ppy.tab.c" break; - case 70: /* pp_expr: pp_expr '+' pp_expr */ -#line 385 "libs/wpp/ppy.y" + case 71: /* pp_expr: pp_expr '+' pp_expr */ +#line 371 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), +); } -#line 1973 "libs/wpp/ppy.tab.c" +#line 1972 "tools/wrc/ppy.tab.c" break; - case 71: /* pp_expr: pp_expr '-' pp_expr */ -#line 386 "libs/wpp/ppy.y" + case 72: /* pp_expr: pp_expr '-' pp_expr */ +#line 372 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), -); } -#line 1979 "libs/wpp/ppy.tab.c" +#line 1978 "tools/wrc/ppy.tab.c" break; - case 72: /* pp_expr: pp_expr '^' pp_expr */ -#line 387 "libs/wpp/ppy.y" + case 73: /* pp_expr: pp_expr '^' pp_expr */ +#line 373 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), ^); } -#line 1985 "libs/wpp/ppy.tab.c" +#line 1984 "tools/wrc/ppy.tab.c" break; - case 73: /* pp_expr: pp_expr '&' pp_expr */ -#line 388 "libs/wpp/ppy.y" + case 74: /* pp_expr: pp_expr '&' pp_expr */ +#line 374 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), &); } -#line 1991 "libs/wpp/ppy.tab.c" +#line 1990 "tools/wrc/ppy.tab.c" break; - case 74: /* pp_expr: pp_expr '|' pp_expr */ -#line 389 "libs/wpp/ppy.y" + case 75: /* pp_expr: pp_expr '|' pp_expr */ +#line 375 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), |); } -#line 1997 "libs/wpp/ppy.tab.c" +#line 1996 "tools/wrc/ppy.tab.c" break; - case 75: /* pp_expr: pp_expr '*' pp_expr */ -#line 390 "libs/wpp/ppy.y" + case 76: /* pp_expr: pp_expr '*' pp_expr */ +#line 376 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), *); } -#line 2003 "libs/wpp/ppy.tab.c" +#line 2002 "tools/wrc/ppy.tab.c" break; - case 76: /* pp_expr: pp_expr '/' pp_expr */ -#line 391 "libs/wpp/ppy.y" + case 77: /* pp_expr: pp_expr '/' pp_expr */ +#line 377 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), /); } -#line 2009 "libs/wpp/ppy.tab.c" +#line 2008 "tools/wrc/ppy.tab.c" break; - case 77: /* pp_expr: pp_expr tLSHIFT pp_expr */ -#line 392 "libs/wpp/ppy.y" + case 78: /* pp_expr: pp_expr tLSHIFT pp_expr */ +#line 378 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <<); } -#line 2015 "libs/wpp/ppy.tab.c" +#line 2014 "tools/wrc/ppy.tab.c" break; - case 78: /* pp_expr: pp_expr tRSHIFT pp_expr */ -#line 393 "libs/wpp/ppy.y" + case 79: /* pp_expr: pp_expr tRSHIFT pp_expr */ +#line 379 "tools/wrc/ppy.y" { promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >>); } -#line 2021 "libs/wpp/ppy.tab.c" +#line 2020 "tools/wrc/ppy.tab.c" break; - case 79: /* pp_expr: '+' pp_expr */ -#line 394 "libs/wpp/ppy.y" + case 80: /* pp_expr: '+' pp_expr */ +#line 380 "tools/wrc/ppy.y" { (yyval.cval) = (yyvsp[0].cval); } -#line 2027 "libs/wpp/ppy.tab.c" +#line 2026 "tools/wrc/ppy.tab.c" break; - case 80: /* pp_expr: '-' pp_expr */ -#line 395 "libs/wpp/ppy.y" + case 81: /* pp_expr: '-' pp_expr */ +#line 381 "tools/wrc/ppy.y" { UNARY_OP((yyval.cval), (yyvsp[0].cval), -); } -#line 2033 "libs/wpp/ppy.tab.c" +#line 2032 "tools/wrc/ppy.tab.c" break; - case 81: /* pp_expr: '~' pp_expr */ -#line 396 "libs/wpp/ppy.y" + case 82: /* pp_expr: '~' pp_expr */ +#line 382 "tools/wrc/ppy.y" { UNARY_OP((yyval.cval), (yyvsp[0].cval), ~); } -#line 2039 "libs/wpp/ppy.tab.c" +#line 2038 "tools/wrc/ppy.tab.c" break; - case 82: /* pp_expr: '!' pp_expr */ -#line 397 "libs/wpp/ppy.y" + case 83: /* pp_expr: '!' pp_expr */ +#line 383 "tools/wrc/ppy.y" { (yyval.cval).type = cv_sint; (yyval.cval).val.si = !boolean(&(yyvsp[0].cval)); } -#line 2045 "libs/wpp/ppy.tab.c" +#line 2044 "tools/wrc/ppy.tab.c" break; - case 83: /* pp_expr: '(' pp_expr ')' */ -#line 398 "libs/wpp/ppy.y" + case 84: /* pp_expr: '(' pp_expr ')' */ +#line 384 "tools/wrc/ppy.y" { (yyval.cval) = (yyvsp[-1].cval); } -#line 2051 "libs/wpp/ppy.tab.c" +#line 2050 "tools/wrc/ppy.tab.c" break; - case 84: /* pp_expr: pp_expr '?' pp_expr ':' pp_expr */ -#line 399 "libs/wpp/ppy.y" + case 85: /* pp_expr: pp_expr '?' pp_expr ':' pp_expr */ +#line 385 "tools/wrc/ppy.y" { (yyval.cval) = boolean(&(yyvsp[-4].cval)) ? (yyvsp[-2].cval) : (yyvsp[0].cval); } -#line 2057 "libs/wpp/ppy.tab.c" +#line 2056 "tools/wrc/ppy.tab.c" break; -#line 2061 "libs/wpp/ppy.tab.c" +#line 2060 "tools/wrc/ppy.tab.c" default: break; } @@ -2251,7 +2250,7 @@ return yyresult; } -#line 402 "libs/wpp/ppy.y" +#line 388 "tools/wrc/ppy.y" /* @@ -2398,8 +2397,8 @@ static char *add_new_marg(char *str) { char *ma; - macro_args = pp_xrealloc(macro_args, (nmacro_args+1) * sizeof(macro_args[0])); - macro_args[nmacro_args++] = ma = pp_xstrdup(str); + macro_args = xrealloc(macro_args, (nmacro_args+1) * sizeof(macro_args[0])); + macro_args[nmacro_args++] = ma = xstrdup(str); return ma; } @@ -2418,7 +2417,7 @@ static mtext_t *new_mtext(char *str, int idx, def_exp_t type) { - mtext_t *mt = pp_xmalloc(sizeof(mtext_t)); + mtext_t *mt = xmalloc(sizeof(mtext_t)); if(str == NULL) mt->subst.argidx = idx; @@ -2439,7 +2438,7 @@ if(tail->type == exp_text && mtp->type == exp_text) { - tail->subst.text = pp_xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); + tail->subst.text = xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); strcat(tail->subst.text, mtp->subst.text); free(mtp->subst.text); free(mtp); @@ -2505,7 +2504,7 @@ { int l1 = strlen(s1); int l2 = strlen(s2); - s1 = pp_xrealloc(s1, l1+l2+1); + s1 = xrealloc(s1, l1+l2+1); memcpy(s1+l1, s2, l2+1); free(s2); return s1;
diff --git a/mingw-w64-tools/widl/src/wpp/ppy.tab.h b/mingw-w64-tools/widl/src/ppy.tab.h similarity index 93% rename from mingw-w64-tools/widl/src/wpp/ppy.tab.h rename to mingw-w64-tools/widl/src/ppy.tab.h index 1a63c6f..8cc205c 100644 --- a/mingw-w64-tools/widl/src/wpp/ppy.tab.h +++ b/mingw-w64-tools/widl/src/ppy.tab.h
@@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.5. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison interface for Yacc-like parsers in C @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -35,8 +35,8 @@ especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ -#ifndef YY_PPY_LIBS_WPP_PPY_TAB_H_INCLUDED -# define YY_PPY_LIBS_WPP_PPY_TAB_H_INCLUDED +#ifndef YY_PPY_TOOLS_WRC_PPY_TAB_H_INCLUDED +# define YY_PPY_TOOLS_WRC_PPY_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -105,7 +105,7 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 125 "libs/wpp/ppy.y" +#line 118 "tools/wrc/ppy.y" int sint; unsigned int uint; @@ -119,7 +119,7 @@ char *marg; mtext_t *mtext; -#line 123 "libs/wpp/ppy.tab.h" +#line 123 "tools/wrc/ppy.tab.h" }; typedef union YYSTYPE YYSTYPE; @@ -132,4 +132,4 @@ int ppy_parse (void); -#endif /* !YY_PPY_LIBS_WPP_PPY_TAB_H_INCLUDED */ +#endif /* !YY_PPY_TOOLS_WRC_PPY_TAB_H_INCLUDED */
diff --git a/mingw-w64-tools/widl/src/wpp/ppy.y b/mingw-w64-tools/widl/src/ppy.y similarity index 90% rename from mingw-w64-tools/widl/src/wpp/ppy.y rename to mingw-w64-tools/widl/src/ppy.y index 5b7083b..a4b834d 100644 --- a/mingw-w64-tools/widl/src/wpp/ppy.y +++ b/mingw-w64-tools/widl/src/ppy.y
@@ -3,7 +3,6 @@ * * Copyright 1999-2000 Bertho A. Stultiens (BS) * - * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either @@ -18,18 +17,10 @@ * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * - * History: - * 24-Apr-2000 BS Restructured the lot to fit the new scanner - * and reintegrate into the wine-tree. - * 01-Jan-2000 BS FIXME: win16 preprocessor calculates with - * 16 bit ints and overflows...? - * 26-Dec-1999 BS Started this file - * */ %{ #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> @@ -38,6 +29,8 @@ #include <ctype.h> #include <string.h> +#include "../tools.h" +#include "utils.h" #include "wpp_private.h" @@ -93,7 +86,7 @@ case SIZE_INT: BIN_OP_INT(r, v1, v2, OP); break; \ case SIZE_LONG: BIN_OP_LONG(r, v1, v2, OP); break; \ case SIZE_LONGLONG: BIN_OP_LONGLONG(r, v1, v2, OP); break; \ - default: pp_internal_error(__FILE__, __LINE__, "Invalid type indicator (0x%04x)", v1.type); \ + default: assert(0); \ } @@ -226,8 +219,6 @@ break; case if_error: break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #elif directive", s); } } | tELSE tNL { @@ -252,8 +243,6 @@ break; case if_error: break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #else directive", s); } } | tENDIF tNL { @@ -278,27 +267,23 @@ | tMACRO res_arg allmargs tMACROEND opt_mtexts tNL { pp_add_macro($1, macro_args, nmacro_args, $5); } - | tLINE tSINT tDQSTRING tNL { if($3) pp_writestring("# %d %s\n", $2 , $3); free($3); } - | tGCCLINE tSINT tDQSTRING tNL { if($3) pp_writestring("# %d %s\n", $2 , $3); free($3); } + | tLINE tSINT tDQSTRING tNL { if($3) fprintf(ppy_out, "# %d %s\n", $2 , $3); free($3); } + | tGCCLINE tSINT tDQSTRING tNL { if($3) fprintf(ppy_out, "# %d %s\n", $2 , $3); free($3); } | tGCCLINE tSINT tDQSTRING tSINT tNL - { if($3) pp_writestring("# %d %s %d\n", $2, $3, $4); free($3); } + { if($3) fprintf(ppy_out, "# %d %s %d\n", $2, $3, $4); free($3); } | tGCCLINE tSINT tDQSTRING tSINT tSINT tNL - { if($3) pp_writestring("# %d %s %d %d\n", $2 ,$3, $4, $5); free($3); } + { if($3) fprintf(ppy_out, "# %d %s %d %d\n", $2 ,$3, $4, $5); free($3); } | tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tNL - { if($3) pp_writestring("# %d %s %d %d %d\n", $2 ,$3 ,$4 ,$5, $6); free($3); } + { if($3) fprintf(ppy_out, "# %d %s %d %d %d\n", $2 ,$3 ,$4 ,$5, $6); free($3); } | tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tSINT tNL - { if($3) pp_writestring("# %d %s %d %d %d %d\n", $2 ,$3 ,$4 ,$5, $6, $7); free($3); } + { if($3) fprintf(ppy_out, "# %d %s %d %d %d %d\n", $2 ,$3 ,$4 ,$5, $6, $7); free($3); } | tGCCLINE tNL /* The null-token */ | tERROR opt_text tNL { ppy_error("#error directive: '%s'", $2); free($2); } | tWARNING opt_text tNL { ppy_warning("#warning directive: '%s'", $2); free($2); } - | tPRAGMA opt_text tNL { pp_writestring("#pragma %s\n", $2 ? $2 : ""); free($2); } - | tPPIDENT opt_text tNL { if(pp_status.pedantic) ppy_warning("#ident ignored (arg: '%s')", $2); free($2); } + | tPRAGMA opt_text tNL { fprintf(ppy_out, "#pragma %s\n", $2 ? $2 : ""); free($2); } + | tPPIDENT opt_text tNL { if(pedantic) ppy_warning("#ident ignored (arg: '%s')", $2); free($2); } | tRCINCLUDE tRCINCLUDEPATH { - int nl=strlen($2) +3; - char *fn=pp_xmalloc(nl); - sprintf(fn,"\"%s\"",$2); - pp_do_include(fn,1); - free($2); + pp_do_include(strmake( "\"%s\"", $2 ),1); } | tRCINCLUDE tDQSTRING { pp_do_include($2,1); @@ -327,6 +312,7 @@ emargs : margs { $$ = $1; } | margs ',' tELLIPSIS { nmacro_args *= -1; } + | tELLIPSIS { macro_args = NULL; nmacro_args = 0; } ; margs : margs ',' tIDENT { $$ = add_new_marg($3); } @@ -545,8 +531,8 @@ static char *add_new_marg(char *str) { char *ma; - macro_args = pp_xrealloc(macro_args, (nmacro_args+1) * sizeof(macro_args[0])); - macro_args[nmacro_args++] = ma = pp_xstrdup(str); + macro_args = xrealloc(macro_args, (nmacro_args+1) * sizeof(macro_args[0])); + macro_args[nmacro_args++] = ma = xstrdup(str); return ma; } @@ -565,7 +551,7 @@ static mtext_t *new_mtext(char *str, int idx, def_exp_t type) { - mtext_t *mt = pp_xmalloc(sizeof(mtext_t)); + mtext_t *mt = xmalloc(sizeof(mtext_t)); if(str == NULL) mt->subst.argidx = idx; @@ -586,7 +572,7 @@ if(tail->type == exp_text && mtp->type == exp_text) { - tail->subst.text = pp_xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); + tail->subst.text = xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); strcat(tail->subst.text, mtp->subst.text); free(mtp->subst.text); free(mtp); @@ -652,7 +638,7 @@ { int l1 = strlen(s1); int l2 = strlen(s2); - s1 = pp_xrealloc(s1, l1+l2+1); + s1 = xrealloc(s1, l1+l2+1); memcpy(s1+l1, s2, l2+1); free(s2); return s1;
diff --git a/mingw-w64-tools/widl/src/proxy.c b/mingw-w64-tools/widl/src/proxy.c index 457f29a..382f39d 100644 --- a/mingw-w64-tools/widl/src/proxy.c +++ b/mingw-w64-tools/widl/src/proxy.c
@@ -20,13 +20,9 @@ */ #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <ctype.h>
diff --git a/mingw-w64-tools/widl/src/register.c b/mingw-w64-tools/widl/src/register.c index e13d845..634ddfb 100644 --- a/mingw-w64-tools/widl/src/register.c +++ b/mingw-w64-tools/widl/src/register.c
@@ -19,13 +19,9 @@ */ #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <ctype.h>
diff --git a/mingw-w64-tools/widl/src/server.c b/mingw-w64-tools/widl/src/server.c index cce880b..58abc0d 100644 --- a/mingw-w64-tools/widl/src/server.c +++ b/mingw-w64-tools/widl/src/server.c
@@ -19,13 +19,9 @@ */ #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <ctype.h>
diff --git a/mingw-w64-tools/widl/src/typegen.c b/mingw-w64-tools/widl/src/typegen.c index 2c1017b..f1c7db9 100644 --- a/mingw-w64-tools/widl/src/typegen.c +++ b/mingw-w64-tools/widl/src/typegen.c
@@ -20,13 +20,9 @@ */ #include "config.h" -#include "wine/port.h" #include <stdio.h> #include <stdlib.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <assert.h> #include <ctype.h>
diff --git a/mingw-w64-tools/widl/src/typelib.c b/mingw-w64-tools/widl/src/typelib.c index 8b2a240..d47e937 100644 --- a/mingw-w64-tools/widl/src/typelib.c +++ b/mingw-w64-tools/widl/src/typelib.c
@@ -20,23 +20,18 @@ */ #include "config.h" -#include "wine/port.h" -#include "wine/wpp.h" #include <stdio.h> #include <stdlib.h> #include <stdarg.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <ctype.h> +#include "widl.h" #include "windef.h" #include "winbase.h" - -#include "widl.h" #include "utils.h" +#include "wpp_private.h" #include "parser.h" #include "header.h" #include "typelib.h" @@ -244,128 +239,144 @@ return 0; } -static void tlb_read(int fd, void *buf, int count) +static void msft_read_guid(void *data, MSFT_SegDir *segdir, int offset, GUID *guid) { - if(read(fd, buf, count) < count) - error("error while reading importlib.\n"); + memcpy( guid, (char *)data + segdir->pGuidTab.offset + offset, sizeof(*guid) ); } -static void tlb_lseek(int fd, off_t offset) +static void read_msft_importlib(importlib_t *importlib, void *data, unsigned int size) { - if(lseek(fd, offset, SEEK_SET) == -1) - error("lseek failed\n"); -} - -static void msft_read_guid(int fd, MSFT_SegDir *segdir, int offset, GUID *guid) -{ - tlb_lseek(fd, segdir->pGuidTab.offset+offset); - tlb_read(fd, guid, sizeof(GUID)); -} - -static void read_msft_importlib(importlib_t *importlib, int fd) -{ - MSFT_Header header; - MSFT_SegDir segdir; + MSFT_Header *header = data; + MSFT_SegDir *segdir; int *typeinfo_offs; int i; importlib->allocated = 0; + importlib->version = header->version; - tlb_lseek(fd, 0); - tlb_read(fd, &header, sizeof(header)); + typeinfo_offs = (int *)(header + 1); + segdir = (MSFT_SegDir *)(typeinfo_offs + header->nrtypeinfos); - importlib->version = header.version; + msft_read_guid(data, segdir, header->posguid, &importlib->guid); - typeinfo_offs = xmalloc(header.nrtypeinfos*sizeof(INT)); - tlb_read(fd, typeinfo_offs, header.nrtypeinfos*sizeof(INT)); - tlb_read(fd, &segdir, sizeof(segdir)); - - msft_read_guid(fd, &segdir, header.posguid, &importlib->guid); - - importlib->ntypeinfos = header.nrtypeinfos; + importlib->ntypeinfos = header->nrtypeinfos; importlib->importinfos = xmalloc(importlib->ntypeinfos*sizeof(importinfo_t)); for(i=0; i < importlib->ntypeinfos; i++) { - MSFT_TypeInfoBase base; - MSFT_NameIntro nameintro; + MSFT_TypeInfoBase *base = (MSFT_TypeInfoBase *)((char *)(segdir + 1) + typeinfo_offs[i]); + MSFT_NameIntro *nameintro; int len; - tlb_lseek(fd, sizeof(MSFT_Header) + header.nrtypeinfos*sizeof(INT) + sizeof(MSFT_SegDir) - + typeinfo_offs[i]); - tlb_read(fd, &base, sizeof(base)); - importlib->importinfos[i].importlib = importlib; - importlib->importinfos[i].flags = (base.typekind&0xf)<<24; + importlib->importinfos[i].flags = (base->typekind & 0xf)<<24; importlib->importinfos[i].offset = -1; importlib->importinfos[i].id = i; - if(base.posguid != -1) { + if(base->posguid != -1) { importlib->importinfos[i].flags |= MSFT_IMPINFO_OFFSET_IS_GUID; - msft_read_guid(fd, &segdir, base.posguid, &importlib->importinfos[i].guid); + msft_read_guid(data, segdir, base->posguid, &importlib->importinfos[i].guid); } else memset( &importlib->importinfos[i].guid, 0, sizeof(importlib->importinfos[i].guid)); - tlb_lseek(fd, segdir.pNametab.offset + base.NameOffset); - tlb_read(fd, &nameintro, sizeof(nameintro)); + nameintro = (MSFT_NameIntro *)((char *)data + segdir->pNametab.offset + base->NameOffset); - len = nameintro.namelen & 0xff; - + len = nameintro->namelen & 0xff; importlib->importinfos[i].name = xmalloc(len+1); - tlb_read(fd, importlib->importinfos[i].name, len); + memcpy( importlib->importinfos[i].name, nameintro + 1, len ); importlib->importinfos[i].name[len] = 0; } - - free(typeinfo_offs); } -static int open_typelib(const char *name) +static unsigned int rva_to_va( const IMAGE_NT_HEADERS32 *nt, unsigned int rva ) { - char *file_name; - int fd; + IMAGE_SECTION_HEADER *sec = (IMAGE_SECTION_HEADER *)((char *)&nt->OptionalHeader + nt->FileHeader.SizeOfOptionalHeader); + unsigned int i; - file_name = wpp_find_include(name, NULL); - if(!file_name) - return open(name, O_RDONLY | O_BINARY ); + for (i = 0; i < nt->FileHeader.NumberOfSections; i++, sec++) + if (sec->VirtualAddress <= rva && sec->VirtualAddress + sec->Misc.VirtualSize > rva) + return sec->PointerToRawData + (rva - sec->VirtualAddress); + error( "no PE section found for addr %x\n", rva ); +} - fd = open(file_name, O_RDONLY | O_BINARY ); - free(file_name); - return fd; +static void read_pe_importlib(importlib_t *importlib, void *data, unsigned int size) +{ + IMAGE_DOS_HEADER *dos = data; + IMAGE_NT_HEADERS32 *nt; + IMAGE_DATA_DIRECTORY *dir; + IMAGE_RESOURCE_DIRECTORY *root, *resdir; + IMAGE_RESOURCE_DIRECTORY_ENTRY *entry; + IMAGE_RESOURCE_DATA_ENTRY *resdata; + void *ptr; + unsigned int i, va; + + if (dos->e_lfanew < sizeof(*dos) || dos->e_lfanew >= size) error( "not a PE file\n" ); + nt = (IMAGE_NT_HEADERS32 *)((char *)data + dos->e_lfanew); + if (nt->Signature != IMAGE_NT_SIGNATURE) error( "not a PE file\n" ); + if ((char *)&nt->OptionalHeader + nt->FileHeader.SizeOfOptionalHeader > (char *)data + size) + error( "invalid PE file\n" ); + switch (nt->OptionalHeader.Magic) + { + case IMAGE_NT_OPTIONAL_HDR32_MAGIC: + dir = &nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE]; + break; + case IMAGE_NT_OPTIONAL_HDR64_MAGIC: + dir = &((IMAGE_NT_HEADERS64 *)nt)->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_RESOURCE]; + break; + default: + error( "invalid PE file\n" ); + } + if (!dir->VirtualAddress || !dir->Size) error( "resource not found in PE file\n" ); + va = rva_to_va( nt, dir->VirtualAddress ); + if (va + dir->Size > size) error( "invalid resource data in PE file\n" ); + root = resdir = (IMAGE_RESOURCE_DIRECTORY *)((char *)data + va ); + entry = (IMAGE_RESOURCE_DIRECTORY_ENTRY *)(resdir + 1); + for (i = 0; i < resdir->NumberOfNamedEntries; i++, entry++) + { + static const WCHAR typelibW[] = {'T','Y','P','E','L','I','B'}; + WCHAR *name = (WCHAR *)((char *)root + entry->NameOffset); + if (name[0] != ARRAY_SIZE(typelibW)) continue; + if (!memcmp( name + 1, typelibW, sizeof(typelibW) )) break; + } + if (i == resdir->NumberOfNamedEntries) error( "typelib resource not found in PE file\n" ); + while (entry->DataIsDirectory) + { + resdir = (IMAGE_RESOURCE_DIRECTORY *)((char *)root + entry->OffsetToDirectory); + entry = (IMAGE_RESOURCE_DIRECTORY_ENTRY *)(resdir + 1); + } + resdata = (IMAGE_RESOURCE_DATA_ENTRY *)((char *)root + entry->OffsetToData); + ptr = (char *)data + rva_to_va( nt, resdata->OffsetToData ); + if (memcmp( ptr, "MSFT", 4 )) error( "invalid typelib found in PE file\n" ); + read_msft_importlib( importlib, ptr, resdata->Size ); } static void read_importlib(importlib_t *importlib) { - int fd; - INT magic; + int fd, size; + void *data; fd = open_typelib(importlib->name); /* widl extension: if importlib name has no .tlb extension, try using .tlb */ - if(fd < 0) { - const char *p = strrchr(importlib->name, '.'); - size_t len = p ? p - importlib->name : strlen(importlib->name); - if(strcmp(importlib->name + len, ".tlb")) { - char *tlb_name = xmalloc(len + 5); - memcpy(tlb_name, importlib->name, len); - strcpy(tlb_name + len, ".tlb"); - fd = open_typelib(tlb_name); - free(tlb_name); - } - } + if (fd < 0 && !strendswith( importlib->name, ".tlb" )) + fd = open_typelib( strmake( "%s.tlb", importlib->name )); if(fd < 0) error("Could not find importlib %s.\n", importlib->name); - tlb_read(fd, &magic, sizeof(magic)); + size = lseek( fd, 0, SEEK_END ); + data = xmalloc( size ); + lseek( fd, 0, SEEK_SET ); + if (read( fd, data, size) < size) error("error while reading importlib.\n"); + close( fd ); - switch(magic) { - case MSFT_MAGIC: - read_msft_importlib(importlib, fd); - break; - default: - error("Wrong or unsupported typelib magic %x\n", magic); - }; + if (!memcmp( data, "MSFT", 4 )) + read_msft_importlib(importlib, data, size); + else if (!memcmp( data, "MZ", 2 )) + read_pe_importlib(importlib, data, size); + else + error("Wrong or unsupported typelib\n"); - close(fd); + free( data ); } void add_importlib(const char *name, typelib_t *typelib)
diff --git a/mingw-w64-tools/widl/src/typelib_struct.h b/mingw-w64-tools/widl/src/typelib_struct.h index 58dd95e..2a1fb74 100644 --- a/mingw-w64-tools/widl/src/typelib_struct.h +++ b/mingw-w64-tools/widl/src/typelib_struct.h
@@ -138,13 +138,8 @@ /*040*/ INT helpstringcontext; /* */ INT helpcontext; /* */ INT oCustData; /* offset in customer data table */ -#ifdef WORDS_BIGENDIAN - INT16 cbSizeVft; /* virtual table size, including inherits */ - INT16 cImplTypes; /* nr of implemented interfaces */ -#else INT16 cImplTypes; /* nr of implemented interfaces */ INT16 cbSizeVft; /* virtual table size, including inherits */ -#endif /*050*/ INT size; /* size in bytes, at least for structures */ /* FIXME: name of this field */ INT datatype1; /* position in type description table */ @@ -174,13 +169,8 @@ /* INT recsize; record size including some extra stuff */ INT DataType; /* data type of the member, eg return of function */ INT Flags; /* something to do with attribute flags (LOWORD) */ -#ifdef WORDS_BIGENDIAN - INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */ - INT16 VtableOffset; /* offset in vtable */ -#else INT16 VtableOffset; /* offset in vtable */ INT16 funcdescsize; /* size of reconstituted FUNCDESC and related structs */ -#endif INT FKCCIC; /* bit string with the following */ /* meaning (bit 0 is the lsb): */ /* bits 0 - 2: FUNCKIND */ @@ -191,13 +181,8 @@ /* bit 13: oEntry is numeric */ /* bit 14: has retval param */ /* bits 16 - 31: index of next function with same id */ -#ifdef WORDS_BIGENDIAN - INT16 nroargs; /* nr of optional arguments */ - INT16 nrargs; /* number of arguments (including optional ????) */ -#else INT16 nrargs; /* number of arguments (including optional ????) */ INT16 nroargs; /* nr of optional arguments */ -#endif /* optional attribute fields, the number of them is variable */ INT OptAttr[1]; /* @@ -230,13 +215,8 @@ /* INT recsize; // record size including some extra stuff */ INT DataType; /* data type of the variable */ INT Flags; /* VarFlags (LOWORD) */ -#ifdef WORDS_BIGENDIAN - INT16 vardescsize; /* size of reconstituted VARDESC and related structs */ - INT16 VarKind; /* VarKind */ -#else INT16 VarKind; /* VarKind */ INT16 vardescsize; /* size of reconstituted VARDESC and related structs */ -#endif INT OffsValue; /* value of the variable or the offset */ /* in the data structure */ /* optional attribute fields, the number of them is variable */
diff --git a/mingw-w64-tools/widl/src/utils.c b/mingw-w64-tools/widl/src/utils.c index 634bd12..feb5900 100644 --- a/mingw-w64-tools/widl/src/utils.c +++ b/mingw-w64-tools/widl/src/utils.c
@@ -20,7 +20,6 @@ */ #include "config.h" -#include "wine/port.h" #include <assert.h> #include <stdio.h> @@ -140,35 +139,6 @@ } } -char *dup_basename(const char *name, const char *ext) -{ - int namelen; - int extlen = strlen(ext); - char *base; - char *slash; - - if(!name) - name = "widl.tab"; - - slash = strrchr(name, '/'); - if (!slash) - slash = strrchr(name, '\\'); - - if (slash) - name = slash + 1; - - namelen = strlen(name); - - /* +6 for later extension (strlen("_r.rgs")) and +1 for '\0' */ - base = xmalloc(namelen +6 +1); - strcpy(base, name); - if(!strcasecmp(name + namelen-extlen, ext)) - { - base[namelen - extlen] = '\0'; - } - return base; -} - size_t widl_getline(char **linep, size_t *lenp, FILE *fp) { char *line = *linep; @@ -198,53 +168,6 @@ return n; } -void *xmalloc(size_t size) -{ - void *res; - - assert(size > 0); - res = malloc(size); - if(res == NULL) - { - error("Virtual memory exhausted.\n"); - } - memset(res, 0x55, size); - return res; -} - - -void *xrealloc(void *p, size_t size) -{ - void *res; - - assert(size > 0); - res = realloc(p, size); - if(res == NULL) - { - error("Virtual memory exhausted.\n"); - } - return res; -} - -char *strmake( const char* fmt, ... ) -{ - int n; - size_t size = 100; - va_list ap; - - for (;;) - { - char *p = xmalloc( size ); - va_start( ap, fmt ); - n = vsnprintf( p, size, fmt, ap ); - va_end( ap ); - if (n == -1) size *= 2; - else if ((size_t)n >= size) size = n + 1; - else return p; - free( p ); - } -} - size_t strappend(char **buf, size_t *len, size_t pos, const char* fmt, ...) { size_t size; @@ -282,29 +205,12 @@ return n; } -char *xstrdup(const char *str) -{ - char *s; - - assert(str != NULL); - s = xmalloc(strlen(str)+1); - return strcpy(s, str); -} - -int strendswith(const char* str, const char* end) -{ - int l = strlen(str); - int m = strlen(end); - return l >= m && strcmp(str + l - m, end) == 0; -} - /******************************************************************* * buffer management * * Function for writing to a memory buffer. */ -int byte_swapped = 0; unsigned char *output_buffer; size_t output_buffer_pos; size_t output_buffer_size; @@ -316,32 +222,6 @@ } resources[16]; static unsigned int nb_resources; -static void check_output_buffer_space( size_t size ) -{ - if (output_buffer_pos + size >= output_buffer_size) - { - output_buffer_size = max( output_buffer_size * 2, output_buffer_pos + size ); - output_buffer = xrealloc( output_buffer, output_buffer_size ); - } -} - -void init_output_buffer(void) -{ - output_buffer_size = 1024; - output_buffer_pos = 0; - output_buffer = xmalloc( output_buffer_size ); -} - -void flush_output_buffer( const char *name ) -{ - int fd = open( name, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666 ); - if (fd == -1) error( "Error creating %s\n", name ); - if (write( fd, output_buffer, output_buffer_pos ) != output_buffer_pos) - error( "Error writing to %s\n", name ); - close( fd ); - free( output_buffer ); -} - static inline void put_resource_id( const char *str ) { if (str[0] != '#') @@ -429,46 +309,6 @@ free( output_buffer ); } -void put_data( const void *data, size_t size ) -{ - check_output_buffer_space( size ); - memcpy( output_buffer + output_buffer_pos, data, size ); - output_buffer_pos += size; -} - -void put_byte( unsigned char val ) -{ - check_output_buffer_space( 1 ); - output_buffer[output_buffer_pos++] = val; -} - -void put_word( unsigned short val ) -{ - if (byte_swapped) val = (val << 8) | (val >> 8); - put_data( &val, sizeof(val) ); -} - -void put_dword( unsigned int val ) -{ - if (byte_swapped) - val = ((val << 24) | ((val << 8) & 0x00ff0000) | ((val >> 8) & 0x0000ff00) | (val >> 24)); - put_data( &val, sizeof(val) ); -} - -void put_qword( unsigned int val ) -{ - if (byte_swapped) - { - put_dword( 0 ); - put_dword( val ); - } - else - { - put_dword( val ); - put_dword( 0 ); - } -} - /* pointer-sized word */ void put_pword( unsigned int val ) { @@ -501,13 +341,3 @@ check_output_buffer_space( size ); } } - -void align_output( unsigned int align ) -{ - size_t size = align - (output_buffer_pos % align); - - if (size == align) return; - check_output_buffer_space( size ); - memset( output_buffer + output_buffer_pos, 0, size ); - output_buffer_pos += size; -}
diff --git a/mingw-w64-tools/widl/src/utils.h b/mingw-w64-tools/widl/src/utils.h index 82e0a6a..401433e 100644 --- a/mingw-w64-tools/widl/src/utils.h +++ b/mingw-w64-tools/widl/src/utils.h
@@ -23,19 +23,6 @@ #include "widltypes.h" -#include <stddef.h> /* size_t */ - -void *xmalloc(size_t); -void *xrealloc(void *, size_t); -char *xstrdup(const char *str); -int strendswith(const char* str, const char* end); - -#ifndef __GNUC__ -#define __attribute__(X) -#endif - -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) - void parser_error(const char *s) __attribute__((noreturn)); int parser_warning(const char *s, ...) __attribute__((format (printf, 1, 2))); void error_loc(const char *s, ...) __attribute__((format (printf, 1, 2))) __attribute__((noreturn)); @@ -44,10 +31,8 @@ void warning(const char *s, ...) __attribute__((format (printf, 1, 2))); void warning_loc_info(const loc_info_t *, const char *s, ...) __attribute__((format (printf, 2, 3))); void chat(const char *s, ...) __attribute__((format (printf, 1, 2))); -char *strmake(const char* fmt, ...) __attribute__((__format__ (__printf__, 1, 2 ))); size_t strappend(char **buf, size_t *len, size_t pos, const char* fmt, ...) __attribute__((__format__ (__printf__, 4, 5 ))); -char *dup_basename(const char *name, const char *ext); size_t widl_getline(char **linep, size_t *lenp, FILE *fp); UUID *parse_uuid(const char *u); @@ -55,23 +40,10 @@ /* buffer management */ -extern int byte_swapped; -extern unsigned char *output_buffer; -extern size_t output_buffer_pos; -extern size_t output_buffer_size; - -extern void init_output_buffer(void); -extern void flush_output_buffer( const char *name ); extern void add_output_to_resources( const char *type, const char *name ); extern void flush_output_resources( const char *name ); -extern void put_data( const void *data, size_t size ); -extern void put_byte( unsigned char val ); -extern void put_word( unsigned short val ); -extern void put_dword( unsigned int val ); -extern void put_qword( unsigned int val ); extern void put_pword( unsigned int val ); extern void put_str( int indent, const char *format, ... ) __attribute__((format (printf, 2, 3))); -extern void align_output( unsigned int align ); /* typelibs expect the minor version to be stored in the higher bits and * major to be stored in the lower bits */ @@ -79,11 +51,4 @@ #define MAJORVERSION(version) ((version) & 0xffff) #define MINORVERSION(version) (((version) >> 16) & 0xffff) -#ifndef max -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif -#ifndef min -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif - #endif
diff --git a/mingw-w64-tools/widl/src/widl.c b/mingw-w64-tools/widl/src/widl.c index 3f1c127..5cec4dc 100644 --- a/mingw-w64-tools/widl/src/widl.c +++ b/mingw-w64-tools/widl/src/widl.c
@@ -20,27 +20,25 @@ */ #include "config.h" -#include "wine/port.h" #include <errno.h> #include <limits.h> #include <stdio.h> #include <stdlib.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif #include <string.h> #include <assert.h> #include <ctype.h> #include <signal.h> -#ifdef HAVE_GETOPT_H -# include <getopt.h> +#include <limits.h> +#include <sys/types.h> +#ifdef HAVE_SYS_SYSCTL_H +# include <sys/sysctl.h> #endif #include "widl.h" #include "utils.h" #include "parser.h" -#include "wine/wpp.h" +#include "wpp_private.h" #include "header.h" #include "pathtools.h" @@ -57,7 +55,8 @@ " --help Display this help and exit\n" " -h Generate headers\n" " -H file Name of header file (default is infile.h)\n" -" -I path Set include search dir to path (multiple -I allowed)\n" +" -I directory Add directory to the include search path (multiple -I allowed)\n" +" -L directory Add directory to the library search path (multiple -L allowed)\n" " --local-stubs=file Write empty stubs for call_as/local methods to file\n" " -m32, -m64 Set the target architecture (Win32 or Win64)\n" " -N Do not preprocess input\n" @@ -94,21 +93,7 @@ static const char version_string[] = "Wine IDL Compiler version " PACKAGE_VERSION "\n" "Copyright 2002 Ove Kaaven\n"; -#ifdef __i386__ -enum target_cpu target_cpu = CPU_x86; -#elif defined(__x86_64__) -enum target_cpu target_cpu = CPU_x86_64; -#elif defined(__powerpc64__) -enum target_cpu target_cpu = CPU_POWERPC64; -#elif defined(__powerpc__) -enum target_cpu target_cpu = CPU_POWERPC; -#elif defined(__arm__) -enum target_cpu target_cpu = CPU_ARM; -#elif defined(__aarch64__) -enum target_cpu target_cpu = CPU_ARM64; -#else -#error Unsupported CPU -#endif +static struct target target; int debuglevel = DEBUGLEVEL_NONE; int parser_debug, yy_flex_debug; @@ -154,6 +139,10 @@ const char *prefix_client = ""; const char *prefix_server = ""; static const char *includedir; +static const char *dlldir; +static struct strarray dlldirs; +static char *output_name; +static const char *sysroot = ""; int line_number = 1; @@ -186,55 +175,30 @@ }; static const char short_options[] = - "b:cC:d:D:EhH:I:m:No:O:pP:rsS:tT:uU:VW"; -static const struct option long_options[] = { - { "acf", 1, NULL, ACF_OPTION }, - { "app_config", 0, NULL, APP_CONFIG_OPTION }, - { "dlldata", 1, NULL, DLLDATA_OPTION }, - { "dlldata-only", 0, NULL, DLLDATA_ONLY_OPTION }, - { "help", 0, NULL, PRINT_HELP }, - { "local-stubs", 1, NULL, LOCAL_STUBS_OPTION }, - { "nostdinc", 0, NULL, NOSTDINC_OPTION }, - { "ns_prefix", 0, NULL, RT_NS_PREFIX }, - { "oldnames", 0, NULL, OLDNAMES_OPTION }, - { "output", 0, NULL, 'o' }, - { "prefix-all", 1, NULL, PREFIX_ALL_OPTION }, - { "prefix-client", 1, NULL, PREFIX_CLIENT_OPTION }, - { "prefix-server", 1, NULL, PREFIX_SERVER_OPTION }, - { "robust", 0, NULL, ROBUST_OPTION }, - { "sysroot", 1, NULL, SYSROOT_OPTION }, - { "target", 0, NULL, 'b' }, - { "winrt", 0, NULL, RT_OPTION }, - { "win32", 0, NULL, WIN32_OPTION }, - { "win64", 0, NULL, WIN64_OPTION }, - { "win32-align", 1, NULL, WIN32_ALIGN_OPTION }, - { "win64-align", 1, NULL, WIN64_ALIGN_OPTION }, - { NULL, 0, NULL, 0 } -}; - -static const struct -{ - const char *name; - enum target_cpu cpu; -} cpu_names[] = -{ - { "i386", CPU_x86 }, - { "i486", CPU_x86 }, - { "i586", CPU_x86 }, - { "i686", CPU_x86 }, - { "i786", CPU_x86 }, - { "amd64", CPU_x86_64 }, - { "x86_64", CPU_x86_64 }, - { "powerpc", CPU_POWERPC }, - { "powerpc64", CPU_POWERPC64 }, - { "powerpc64le", CPU_POWERPC64 }, - { "arm", CPU_ARM }, - { "armv5", CPU_ARM }, - { "armv6", CPU_ARM }, - { "armv7", CPU_ARM }, - { "armv7a", CPU_ARM }, - { "arm64", CPU_ARM64 }, - { "aarch64", CPU_ARM64 }, + "b:cC:d:D:EhH:I:L:m:No:O:pP:rsS:tT:uU:VW"; +static const struct long_option long_options[] = { + { "acf", 1, ACF_OPTION }, + { "app_config", 0, APP_CONFIG_OPTION }, + { "dlldata", 1, DLLDATA_OPTION }, + { "dlldata-only", 0, DLLDATA_ONLY_OPTION }, + { "help", 0, PRINT_HELP }, + { "local-stubs", 1, LOCAL_STUBS_OPTION }, + { "nostdinc", 0, NOSTDINC_OPTION }, + { "ns_prefix", 0, RT_NS_PREFIX }, + { "oldnames", 0, OLDNAMES_OPTION }, + { "output", 0, 'o' }, + { "prefix-all", 1, PREFIX_ALL_OPTION }, + { "prefix-client", 1, PREFIX_CLIENT_OPTION }, + { "prefix-server", 1, PREFIX_SERVER_OPTION }, + { "robust", 0, ROBUST_OPTION }, + { "sysroot", 1, SYSROOT_OPTION }, + { "target", 0, 'b' }, + { "winrt", 0, RT_OPTION }, + { "win32", 0, WIN32_OPTION }, + { "win64", 0, WIN64_OPTION }, + { "win32-align", 1, WIN32_ALIGN_OPTION }, + { "win64-align", 1, WIN64_ALIGN_OPTION }, + { NULL } }; static void rm_tempfile(void); @@ -249,16 +213,9 @@ static char *make_token(const char *name) { char *token; - char *slash; int i; - slash = strrchr(name, '/'); - if(!slash) - slash = strrchr(name, '\\'); - - if (slash) name = slash + 1; - - token = xstrdup(name); + token = get_basename( name ); for (i=0; token[i]; i++) { if (!isalnum(token[i])) token[i] = '_'; else token[i] = tolower(token[i]); @@ -269,7 +226,7 @@ /* duplicate a basename into a valid C token */ static char *dup_basename_token(const char *name, const char *ext) { - char *p, *ret = dup_basename( name, ext ); + char *p, *ret = replace_extension( get_basename(name), ext, "" ); /* map invalid characters to '_' */ for (p = ret; *p; p++) if (!isalnum(*p)) *p = '_'; return ret; @@ -296,60 +253,10 @@ if (p) version += atoi(p + 1); - snprintf(version_str, sizeof(version_str), "__WIDL__=0x%x", version); + sprintf(version_str, "__WIDL__=0x%x", version); wpp_add_cmdline_define(version_str); } -static void set_cpu( const char *cpu, int error_out ) -{ - unsigned int i; - for (i = 0; i < ARRAY_SIZE( cpu_names ); i++) - { - if (!strcmp( cpu_names[i].name, cpu )) - { - target_cpu = cpu_names[i].cpu; - return; - } - } - if (error_out) - error( "Unrecognized CPU '%s'\n", cpu ); -} - -/* Set the target platform based on a potential prefix of the executable name. - * If not found, or not matching a known CPU name, just proceed silently. */ -static void init_argv0_target( const char *argv0 ) -{ - char *p, *name; - - if ((p = strrchr(argv0, '/')) != NULL) - argv0 = p + 1; - if ((p = strrchr(argv0, '\\')) != NULL) - argv0 = p + 1; - - name = xstrdup( argv0 ); - if (!(p = strchr(name, '-'))) - { - free( name ); - return; - } - *p = 0; - set_cpu( name, 0 ); - free( name ); -} - -/* set the target platform */ -static void set_target( const char *target ) -{ - char *p, *spec = xstrdup( target ); - - /* target specification is in the form CPU-MANUFACTURER-OS or CPU-MANUFACTURER-KERNEL-OS */ - - if (!(p = strchr( spec, '-' ))) error( "Invalid target specification '%s'\n", target ); - *p++ = 0; - set_cpu( spec, 1 ); - free( spec ); -} - /* clean things up when aborting on a signal */ static void exit_on_signal( int sig ) { @@ -382,33 +289,10 @@ fprintf(fp, "#endif\n\n"); } -typedef struct -{ - char *filename; - struct list link; -} filename_node_t; - -static void add_filename_node(struct list *list, const char *name) -{ - filename_node_t *node = xmalloc(sizeof *node); - node->filename = dup_basename( name, ".idl" ); - list_add_tail(list, &node->link); -} - -static void free_filename_nodes(struct list *list) -{ - filename_node_t *node, *next; - LIST_FOR_EACH_ENTRY_SAFE(node, next, list, filename_node_t, link) { - list_remove(&node->link); - free(node->filename); - free(node); - } -} - -static void write_dlldata_list(struct list *filenames, int define_proxy_delegation) +static void write_dlldata_list( struct strarray filenames, int define_proxy_delegation) { FILE *dlldata; - filename_node_t *node; + unsigned int i; dlldata = fopen(dlldata_name, "w"); if (!dlldata) @@ -422,13 +306,13 @@ fprintf(dlldata, "#include <rpcproxy.h>\n\n"); start_cplusplus_guard(dlldata); - LIST_FOR_EACH_ENTRY(node, filenames, filename_node_t, link) - fprintf(dlldata, "EXTERN_PROXY_FILE(%s)\n", node->filename); + for (i = 0; i < filenames.count; i++) + fprintf(dlldata, "EXTERN_PROXY_FILE(%s)\n", filenames.str[i]); fprintf(dlldata, "\nPROXYFILE_LIST_START\n"); fprintf(dlldata, "/* Start of list */\n"); - LIST_FOR_EACH_ENTRY(node, filenames, filename_node_t, link) - fprintf(dlldata, " REFERENCE_PROXY_FILE(%s),\n", node->filename); + for (i = 0; i < filenames.count; i++) + fprintf(dlldata, " REFERENCE_PROXY_FILE(%s),\n", filenames.str[i]); fprintf(dlldata, "/* End of list */\n"); fprintf(dlldata, "PROXYFILE_LIST_END\n\n"); @@ -446,9 +330,8 @@ void write_dlldata(const statement_list_t *stmts) { - struct list filenames = LIST_INIT(filenames); + struct strarray filenames = empty_strarray; int define_proxy_delegation = 0; - filename_node_t *node; FILE *dlldata; if (!do_dlldata || !need_proxy_file(stmts)) @@ -479,7 +362,7 @@ --end; *end = '\0'; if (start < end) - add_filename_node(&filenames, start); + strarray_add(&filenames, replace_extension( get_basename( start ), ".idl", "" )); }else if (!define_proxy_delegation && strncmp(start, delegation_define, sizeof(delegation_define)-1)) { define_proxy_delegation = 1; } @@ -492,16 +375,12 @@ fclose(dlldata); } - LIST_FOR_EACH_ENTRY(node, &filenames, filename_node_t, link) - if (strcmp(proxy_token, node->filename) == 0) { + if (strarray_exists( &filenames, proxy_token )) /* We're already in the list, no need to regenerate this file. */ - free_filename_nodes(&filenames); return; - } - add_filename_node(&filenames, proxy_token); - write_dlldata_list(&filenames, define_proxy_delegation); - free_filename_nodes(&filenames); + strarray_add(&filenames, proxy_token); + write_dlldata_list(filenames, define_proxy_delegation); } static void write_id_guid(FILE *f, const char *type, const char *guid_prefix, const char *name, const UUID *uuid) @@ -604,44 +483,30 @@ static void init_argv0_dir( const char *argv0 ) { #ifndef _WIN32 - char *p, *dir; + char *dir; #if defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) dir = realpath( "/proc/self/exe", NULL ); #elif defined (__FreeBSD__) || defined(__DragonFly__) - dir = realpath( "/proc/curproc/file", NULL ); + static int pathname[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; + size_t path_size = PATH_MAX; + char *path = malloc( path_size ); + if (path && !sysctl( pathname, sizeof(pathname)/sizeof(pathname[0]), path, &path_size, NULL, 0 )) + dir = realpath( path, NULL ); + free( path ); #else dir = realpath( argv0, NULL ); #endif if (!dir) return; - if (!(p = strrchr( dir, '/' ))) return; - if (p == dir) p++; - *p = 0; - includedir = strmake( "%s/%s", dir, BIN_TO_INCLUDEDIR ); - free( dir ); + includedir = strmake( "%s/%s", get_dirname( dir ), BIN_TO_INCLUDEDIR ); + dlldir = strmake( "%s/%s", get_dirname( dir ), BIN_TO_DLLDIR ); #endif } -int main(int argc,char *argv[]) +static void option_callback( int optc, char *optarg ) { - int optc; - int ret = 0; - int opti = 0; - char *output_name = NULL; - const char *sysroot = ""; - - signal( SIGTERM, exit_on_signal ); - signal( SIGINT, exit_on_signal ); -#ifdef SIGHUP - signal( SIGHUP, exit_on_signal ); -#endif - init_argv0_dir( argv[0] ); - init_argv0_target( argv[0] ); - - now = time(NULL); - - while((optc = getopt_long_only(argc, argv, short_options, long_options, &opti)) != EOF) { - switch(optc) { + switch (optc) + { case DLLDATA_OPTION: dlldata_name = xstrdup(optarg); break; @@ -671,7 +536,7 @@ break; case PRINT_HELP: fprintf(stderr, "%s", usage); - return 0; + exit(0); case RT_OPTION: winrt_mode = 1; break; @@ -708,7 +573,8 @@ /* FIXME: Support robust option */ break; case 'b': - set_target( optarg ); + if (!parse_target( optarg, &target )) + error( "Invalid target specification '%s'\n", optarg ); break; case 'c': do_everything = 0; @@ -737,6 +603,9 @@ case 'I': wpp_add_include_path(optarg); break; + case 'L': + strarray_add( &dlldirs, optarg ); + break; case 'm': if (!strcmp( optarg, "32" )) pointer_size = 4; else if (!strcmp( optarg, "64" )) pointer_size = 8; @@ -789,15 +658,75 @@ break; case 'V': printf("%s", version_string); - return 0; + exit(0); case 'W': pedantic = 1; break; - default: - fprintf(stderr, "%s", usage); - return 1; + case '?': + fprintf(stderr, "widl: %s\n\n%s", optarg, usage); + exit(1); } - } +} + +int open_typelib( const char *name ) +{ + static const char *default_dirs[] = { DLLDIR, "/usr/lib/wine", "/usr/local/lib/wine" }; + struct target win_target = { target.cpu, PLATFORM_WINDOWS }; + const char *pe_dir = get_arch_dir( win_target ); + int fd; + unsigned int i; + +#define TRYOPEN(str) do { \ + char *file = str; \ + if ((fd = open( file, O_RDONLY | O_BINARY )) != -1) return fd; \ + free( file ); } while(0) + + for (i = 0; i < dlldirs.count; i++) + { + if (strendswith( dlldirs.str[i], "/*" )) /* special case for wine build tree */ + { + int namelen = strlen( name ); + if (strendswith( name, ".dll" )) namelen -= 4; + TRYOPEN( strmake( "%.*s/%.*s/%s", (int)strlen(dlldirs.str[i]) - 2, dlldirs.str[i], + namelen, name, name )); + } + else + { + TRYOPEN( strmake( "%s%s/%s", dlldirs.str[i], pe_dir, name )); + TRYOPEN( strmake( "%s/%s", dlldirs.str[i], name )); + } + } + + if (stdinc) + { + if (dlldir) TRYOPEN( strmake( "%s%s/%s", dlldir, pe_dir, name )); + for (i = 0; i < ARRAY_SIZE(default_dirs); i++) + { + if (i && !strcmp( default_dirs[i], default_dirs[0] )) continue; + TRYOPEN( strmake( "%s%s/%s", default_dirs[i], pe_dir, name )); + } + } + error( "cannot find %s\n", name ); +#undef TRYOPEN +} + +int main(int argc,char *argv[]) +{ + int i; + int ret = 0; + struct strarray files; + + signal( SIGTERM, exit_on_signal ); + signal( SIGINT, exit_on_signal ); +#ifdef SIGHUP + signal( SIGHUP, exit_on_signal ); +#endif + init_argv0_dir( argv[0] ); + target = init_argv0_target( argv[0] ); + + now = time(NULL); + + files = parse_options( argc, argv, short_options, long_options, 1, option_callback ); if (stdinc) { @@ -809,33 +738,10 @@ wpp_add_include_path(strmake("%s%s/%s", sysroot, exe_path, BIN_TO_INCLUDEDIR)); } - switch (target_cpu) - { - case CPU_x86: - if (pointer_size == 8) target_cpu = CPU_x86_64; - else pointer_size = 4; - break; - case CPU_x86_64: - if (pointer_size == 4) target_cpu = CPU_x86; - else pointer_size = 8; - break; - case CPU_ARM: - if (pointer_size == 8) target_cpu = CPU_ARM64; - else pointer_size = 4; - break; - case CPU_ARM64: - if (pointer_size == 4) target_cpu = CPU_ARM; - pointer_size = 8; - break; - case CPU_POWERPC64: - if (pointer_size == 4) error( "Cannot build 32-bit code for this CPU\n" ); - pointer_size = 8; - break; - default: - if (pointer_size == 8) error( "Cannot build 64-bit code for this CPU\n" ); - pointer_size = 4; - break; - } + if (pointer_size) + set_target_ptr_size( &target, pointer_size ); + else + pointer_size = get_target_ptr_size( target ); /* if nothing specified, try to guess output type from the output file name */ if (output_name && do_everything && !do_header && !do_typelib && !do_proxies && @@ -850,6 +756,7 @@ else if (strendswith( output_name, "_i.c" )) do_idfile = 1; else if (strendswith( output_name, "_r.res" )) do_regscript = 1; else if (strendswith( output_name, "_t.res" )) do_typelib = 1; + else if (strendswith( output_name, "_l.res" )) do_typelib = 1; else if (strendswith( output_name, "dlldata.c" )) do_dlldata = 1; else do_everything = 1; } @@ -874,22 +781,21 @@ if (!dlldata_name && do_dlldata) dlldata_name = xstrdup("dlldata.c"); - if(optind < argc) { + if (files.count) { if (do_dlldata && !do_everything) { - struct list filenames = LIST_INIT(filenames); - for ( ; optind < argc; ++optind) - add_filename_node(&filenames, argv[optind]); + struct strarray filenames = empty_strarray; + for (i = 0; i < files.count; i++) + strarray_add(&filenames, replace_extension( get_basename( files.str[i] ), ".idl", "" )); - write_dlldata_list(&filenames, 0 /* FIXME */ ); - free_filename_nodes(&filenames); + write_dlldata_list(filenames, 0 /* FIXME */ ); return 0; } - else if (optind != argc - 1) { + else if (files.count > 1) { fprintf(stderr, "%s", usage); return 1; } else - input_idl_name = input_name = xstrdup(argv[optind]); + input_idl_name = input_name = xstrdup(files.str[0]); } else { fprintf(stderr, "%s", usage); @@ -909,40 +815,26 @@ (debuglevel & DEBUGLEVEL_PPTRACE) != 0, (debuglevel & DEBUGLEVEL_PPMSG) != 0 ); - if (!header_name) { - header_name = dup_basename(input_name, ".idl"); - strcat(header_name, ".h"); - } + if (!header_name) + header_name = replace_extension( get_basename(input_name), ".idl", ".h" ); - if (!typelib_name && do_typelib) { - typelib_name = dup_basename(input_name, ".idl"); - strcat(typelib_name, ".tlb"); - } + if (!typelib_name && do_typelib) + typelib_name = replace_extension( get_basename(input_name), ".idl", ".tlb" ); - if (!proxy_name && do_proxies) { - proxy_name = dup_basename(input_name, ".idl"); - strcat(proxy_name, "_p.c"); - } + if (!proxy_name && do_proxies) + proxy_name = replace_extension( get_basename(input_name), ".idl", "_p.c" ); - if (!client_name && do_client) { - client_name = dup_basename(input_name, ".idl"); - strcat(client_name, "_c.c"); - } + if (!client_name && do_client) + client_name = replace_extension( get_basename(input_name), ".idl", "_c.c" ); - if (!server_name && do_server) { - server_name = dup_basename(input_name, ".idl"); - strcat(server_name, "_s.c"); - } + if (!server_name && do_server) + server_name = replace_extension( get_basename(input_name), ".idl", "_s.c" ); - if (!regscript_name && do_regscript) { - regscript_name = dup_basename(input_name, ".idl"); - strcat(regscript_name, "_r.rgs"); - } + if (!regscript_name && do_regscript) + regscript_name = replace_extension( get_basename(input_name), ".idl", "_r.rgs" ); - if (!idfile_name && do_idfile) { - idfile_name = dup_basename(input_name, ".idl"); - strcat(idfile_name, "_i.c"); - } + if (!idfile_name && do_idfile) + idfile_name = replace_extension( get_basename(input_name), ".idl", "_i.c" ); if (do_proxies) proxy_token = dup_basename_token(proxy_name,"_p.c"); if (do_client) client_token = dup_basename_token(client_name,"_c.c"); @@ -961,14 +853,9 @@ { FILE *output; int fd; - char *name = xmalloc( strlen(header_name) + 8 ); + char *name; - strcpy( name, header_name ); - strcat( name, ".XXXXXX" ); - - if ((fd = mkstemps( name, 0 )) == -1) - error("Could not generate a temp name from %s\n", name); - + fd = make_temp_file( header_name, NULL, &name ); temp_name = name; if (!(output = fdopen(fd, "wt"))) error("Could not open fd %s for writing\n", name);
diff --git a/mingw-w64-tools/widl/src/widl.h b/mingw-w64-tools/widl/src/widl.h index bc6226c..c638821 100644 --- a/mingw-w64-tools/widl/src/widl.h +++ b/mingw-w64-tools/widl/src/widl.h
@@ -21,6 +21,7 @@ #ifndef __WIDL_WIDL_H #define __WIDL_WIDL_H +#include "../tools.h" #include "widltypes.h" #include <time.h> @@ -74,13 +75,6 @@ extern int line_number; extern int char_number; -enum target_cpu -{ - CPU_x86, CPU_x86_64, CPU_POWERPC, CPU_ARM, CPU_ARM64, CPU_POWERPC64, CPU_LAST = CPU_POWERPC64 -}; - -extern enum target_cpu target_cpu; - enum stub_mode { MODE_Os, /* inline stubs */ @@ -88,6 +82,7 @@ MODE_Oif /* new-style fully interpreted stubs */ }; extern enum stub_mode get_stub_mode(void); +extern int open_typelib( const char *name ); extern void write_header(const statement_list_t *stmts); extern void write_id_data(const statement_list_t *stmts);
diff --git a/mingw-w64-tools/widl/src/wpp/wpp.c b/mingw-w64-tools/widl/src/wpp.c similarity index 77% rename from mingw-w64-tools/widl/src/wpp/wpp.c rename to mingw-w64-tools/widl/src/wpp.c index 0e26121..d8d5052 100644 --- a/mingw-w64-tools/widl/src/wpp/wpp.c +++ b/mingw-w64-tools/widl/src/wpp.c
@@ -20,7 +20,6 @@ */ #include "config.h" -#include "wine/port.h" #include <assert.h> #include <ctype.h> @@ -30,12 +29,10 @@ #include <string.h> #include <stdarg.h> #include <time.h> -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif +#include "../tools.h" +#include "utils.h" #include "wpp_private.h" -#include "wine/wpp.h" struct pp_status pp_status; @@ -57,43 +54,9 @@ }; static struct list cmdline_defines = LIST_INIT( cmdline_defines ); +static struct strarray includes; -void *pp_xmalloc(size_t size) -{ - void *res; - - assert(size > 0); - res = malloc(size); - if(res == NULL) - { - fprintf( stderr, "Virtual memory exhausted\n" ); - exit(1); - } - return res; -} - -void *pp_xrealloc(void *p, size_t size) -{ - void *res; - - assert(size > 0); - res = realloc(p, size); - if(res == NULL) - { - fprintf( stderr, "Virtual memory exhausted\n" ); - exit(1); - } - return res; -} - -char *pp_xstrdup(const char *str) -{ - int len = strlen(str)+1; - return memcpy(pp_xmalloc(len), str, len); -} - -char *wpp_lookup(const char *name, int type, const char *parent_name, - char **include_path, int include_path_count) +static char *wpp_lookup(const char *name, int type, const char *parent_name) { char *cpy; char *cptr; @@ -101,7 +64,7 @@ const char *ccptr; int i, fd; - cpy = pp_xmalloc(strlen(name)+1); + cpy = xmalloc(strlen(name)+1); cptr = cpy; for(ccptr = name; *ccptr; ccptr++) @@ -122,13 +85,7 @@ if(type && parent_name) { /* Search directory of parent include and then -I path */ - const char *p; - - if ((p = strrchr( parent_name, '/' ))) p++; - else p = parent_name; - path = pp_xmalloc( (p - parent_name) + strlen(cpy) + 1 ); - memcpy( path, parent_name, p - parent_name ); - strcpy( path + (p - parent_name), cpy ); + path = strmake( "%s/%s", get_dirname(parent_name), cpy ); fd = open( path, O_RDONLY ); if (fd != -1) { @@ -139,12 +96,9 @@ free( path ); } /* Search -I path */ - for(i = 0; i < include_path_count; i++) + for(i = 0; i < includes.count; i++) { - path = pp_xmalloc(strlen(include_path[i]) + strlen(cpy) + 2); - strcpy(path, include_path[i]); - strcat(path, "/"); - strcat(path, cpy); + path = strmake("%s/%s", includes.str[i], cpy); fd = open( path, O_RDONLY ); if (fd != -1) { @@ -196,7 +150,7 @@ } /* initialize the define state */ -void pp_init_define_state(void) +static void pp_init_define_state(void) { int i; @@ -204,7 +158,7 @@ } /* free the current define state */ -void pp_free_define_state(void) +static void pp_free_define_state(void) { int i; pp_entry_t *ppp, *ppp2; @@ -228,7 +182,7 @@ if((ppp = pplookup(name)) == NULL) { - if(pp_status.pedantic) + if(pedantic) ppy_warning("%s was not defined", name); return; } @@ -252,16 +206,17 @@ idx = pphash(def); if((ppp = pplookup(def)) != NULL) { - if(pp_status.pedantic) - ppy_warning("Redefinition of %s\n\tPrevious definition: %s:%d", def, ppp->filename, ppp->linenumber); + if(pedantic) + ppy_warning("Redefinition of %s\n%s:%d: note: previous definition was here", + def, ppp->filename, ppp->linenumber); pp_del_define(def); } - ppp = pp_xmalloc(sizeof(pp_entry_t)); + ppp = xmalloc(sizeof(pp_entry_t)); memset( ppp, 0, sizeof(*ppp) ); - ppp->ident = pp_xstrdup(def); + ppp->ident = xstrdup(def); ppp->type = def_define; - ppp->subst.text = text ? pp_xstrdup(text) : NULL; - ppp->filename = pp_xstrdup(pp_status.input ? pp_status.input : "<internal or cmdline>"); + ppp->subst.text = text ? xstrdup(text) : NULL; + ppp->filename = xstrdup(pp_status.input ? pp_status.input : "<internal or cmdline>"); ppp->linenumber = pp_status.input ? pp_status.line_number : 0; list_add_head( &pp_defines[idx], &ppp->entry ); if(ppp->subst.text) @@ -292,18 +247,19 @@ idx = pphash(id); if((ppp = pplookup(id)) != NULL) { - if(pp_status.pedantic) - ppy_warning("Redefinition of %s\n\tPrevious definition: %s:%d", id, ppp->filename, ppp->linenumber); + if(pedantic) + ppy_warning("Redefinition of %s\n%s:%d: note: previous definition was here", + id, ppp->filename, ppp->linenumber); pp_del_define(id); } - ppp = pp_xmalloc(sizeof(pp_entry_t)); + ppp = xmalloc(sizeof(pp_entry_t)); memset( ppp, 0, sizeof(*ppp) ); ppp->ident = id; ppp->type = def_macro; ppp->margs = args; ppp->nargs = nargs; ppp->subst.mtext= exp; - ppp->filename = pp_xstrdup(pp_status.input ? pp_status.input : "<internal or cmdline>"); + ppp->filename = xstrdup(pp_status.input ? pp_status.input : "<internal or cmdline>"); ppp->linenumber = pp_status.input ? pp_status.line_number : 0; list_add_head( &pp_defines[idx], &ppp->entry ); if(pp_status.debug) @@ -338,51 +294,26 @@ * Include management *------------------------------------------------------------------------- */ -#if defined(_WIN32) || defined(__MSDOS__) -#define INCLUDESEPARATOR ";" -#else -#define INCLUDESEPARATOR ":" -#endif - -static char **includepath; -static int nincludepath = 0; - void wpp_add_include_path(const char *path) { - char *tok; - char *cpy = pp_xstrdup(path); + char *dir = xstrdup(path); + char *cptr; - tok = strtok(cpy, INCLUDESEPARATOR); - while(tok) + for(cptr = dir; *cptr; cptr++) { - if(*tok) { - char *dir; - char *cptr; - - dir = pp_xstrdup(tok); - for(cptr = dir; *cptr; cptr++) - { - /* Convert to forward slash */ - if(*cptr == '\\') - *cptr = '/'; - } - /* Kill eventual trailing '/' */ - if(*(cptr = dir + strlen(dir)-1) == '/') - *cptr = '\0'; - - /* Add to list */ - includepath = pp_xrealloc(includepath, (nincludepath+1) * sizeof(*includepath)); - includepath[nincludepath] = dir; - nincludepath++; - } - tok = strtok(NULL, INCLUDESEPARATOR); + /* Convert to forward slash */ + if(*cptr == '\\') + *cptr = '/'; } - free(cpy); + /* Kill eventual trailing '/' */ + if(*(cptr = dir + strlen(dir)-1) == '/') *cptr = '\0'; + + strarray_add( &includes, dir ); } char *wpp_find_include(const char *name, const char *parent_name) { - return wpp_lookup(name, !!parent_name, parent_name, includepath, nincludepath); + return wpp_lookup(name, !!parent_name, parent_name); } void *pp_open_include(const char *name, int type, const char *parent_name, char **newpath) @@ -390,7 +321,7 @@ char *path; void *fp; - if (!(path = wpp_lookup(name, type, parent_name, includepath, nincludepath))) return NULL; + if (!(path = wpp_lookup(name, type, parent_name))) return NULL; fp = fopen(path, "rt"); if (fp) @@ -465,7 +396,7 @@ void pp_push_if(pp_if_state_t s) { if(if_stack_idx >= MAXIFSTACK) - pp_internal_error(__FILE__, __LINE__, "#if-stack overflow; #{if,ifdef,ifndef} nested too deeply (> %d)", MAXIFSTACK); + error("#if-stack overflow; #{if,ifdef,ifndef} nested too deeply (> %d)\n", MAXIFSTACK); if(pp_flex_debug) fprintf(stderr, "Push if %s:%d: %s(%d) -> %s(%d)\n", pp_status.input, pp_status.line_number, pp_if_state_str[pp_if_state()], if_stack_idx, pp_if_state_str[s], if_stack_idx+1); @@ -483,8 +414,8 @@ case if_ignore: pp_push_ignore_state(); break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d)", (int)pp_if_state()); + case if_error: + assert(0); } } @@ -507,8 +438,8 @@ case if_ignore: pp_pop_ignore_state(); break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d)", (int)pp_if_state()); + case if_error: + assert(0); } if(pp_flex_debug) @@ -546,8 +477,8 @@ case if_ignore: pp_push_if(if_ignore); break; - default: - pp_internal_error(__FILE__, __LINE__, "Invalid pp_if_state (%d) in #{if,ifdef,ifndef} directive", (int)pp_if_state()); + case if_error: + assert(0); } } @@ -582,17 +513,6 @@ return 0; } -void pp_internal_error(const char *file, int line, const char *s, ...) -{ - va_list ap; - va_start(ap, s); - fprintf(stderr, "Internal error (please report) %s %d: ", file, line); - vfprintf(stderr, s, ap); - fprintf(stderr, "\n"); - va_end(ap); - exit(3); -} - static void add_cmdline_defines(void) { struct define *def; @@ -634,14 +554,14 @@ if (!strcmp( def->name, name )) { free( def->value ); - def->value = pp_xstrdup(value); + def->value = xstrdup(value); return; } } - def = pp_xmalloc( sizeof(*def) ); - def->name = pp_xstrdup(name); - def->value = pp_xstrdup(value); + def = xmalloc( sizeof(*def) ); + def->name = xstrdup(name); + def->value = xstrdup(value); list_add_head( &cmdline_defines, &def->entry ); } @@ -667,7 +587,7 @@ void wpp_add_cmdline_define( const char *value ) { char *p; - char *str = pp_xstrdup(value); + char *str = xstrdup(value); p = strchr( str, '=' ); if (p) *p++ = 0; @@ -685,13 +605,6 @@ } -/* set the pedantic mode */ -void wpp_set_pedantic( int on ) -{ - pp_status.pedantic = on; -} - - /* the main preprocessor parsing loop */ int wpp_parse( const char *input, FILE *output ) { @@ -709,10 +622,10 @@ else if (!(pp_status.file = fopen(input, "rt"))) ppy_error("Could not open %s\n", input); - pp_status.input = input ? pp_xstrdup(input) : NULL; + pp_status.input = input ? xstrdup(input) : NULL; ppy_out = output; - pp_writestring("# 1 \"%s\" 1\n", input ? input : ""); + fprintf(ppy_out, "# 1 \"%s\" 1\n", input ? input : ""); ret = ppy_parse();
diff --git a/mingw-w64-tools/widl/src/wpp/wpp_private.h b/mingw-w64-tools/widl/src/wpp_private.h similarity index 88% rename from mingw-w64-tools/widl/src/wpp/wpp_private.h rename to mingw-w64-tools/widl/src/wpp_private.h index fbcd3c0..435dbcc 100644 --- a/mingw-w64-tools/widl/src/wpp/wpp_private.h +++ b/mingw-w64-tools/widl/src/wpp_private.h
@@ -24,6 +24,14 @@ #include <string.h> #include "wine/list.h" +extern void wpp_del_define( const char *name ); +extern void wpp_add_cmdline_define( const char *value ); +extern void wpp_set_debug( int lex_debug, int parser_debug, int msg_debug ); +extern void wpp_add_include_path( const char *path ); +extern char *wpp_find_include( const char *name, const char *parent_name ); +/* Return value == 0 means successful execution */ +extern int wpp_parse( const char *input, FILE *output ); + struct pp_entry; /* forward */ /* * Include logic @@ -146,12 +154,7 @@ -void *pp_xmalloc(size_t); -void *pp_xrealloc(void *, size_t); -char *pp_xstrdup(const char *str); pp_entry_t *pplookup(const char *ident); -void pp_init_define_state(void); -void pp_free_define_state(void); pp_entry_t *pp_add_define(const char *def, const char *text); pp_entry_t *pp_add_macro(char *ident, char *args[], int nargs, mtext_t *exp); void pp_del_define(const char *name); @@ -161,16 +164,9 @@ pp_if_state_t pp_pop_if(void); pp_if_state_t pp_if_state(void); int pp_get_if_depth(void); -char *wpp_lookup(const char *name, int type, const char *parent_name, - char **include_path, int include_path_count); - -#ifndef __GNUC__ -#define __attribute__(x) /*nothing*/ -#endif int ppy_error(const char *s, ...) __attribute__((format (printf, 1, 2))); int ppy_warning(const char *s, ...) __attribute__((format (printf, 1, 2))); -void pp_internal_error(const char *file, int line, const char *s, ...) __attribute__((format (printf, 3, 4))); /* current preprocessor state */ /* everything is in this structure to avoid polluting the global symbol space */ @@ -180,13 +176,12 @@ FILE *file; /* current input file descriptor */ int line_number; /* current line number */ int char_number; /* current char number in line */ - int pedantic; /* pedantic option */ int debug; /* debug messages flag */ }; extern struct pp_status pp_status; extern include_state_t pp_incl_state; -extern struct list pp_includelogiclist; +extern int pedantic; /* * From ppl.l @@ -201,8 +196,6 @@ void pp_push_ignore_state(void); void pp_pop_ignore_state(void); -void pp_writestring(const char *format, ...) __attribute__((format (printf, 1, 2))); - /* * From ppy.y */
diff --git a/mingw-w64-tools/widl/src/write_msft.c b/mingw-w64-tools/widl/src/write_msft.c index c39f382..2df1b31 100644 --- a/mingw-w64-tools/widl/src/write_msft.c +++ b/mingw-w64-tools/widl/src/write_msft.c
@@ -28,7 +28,6 @@ */ #include "config.h" -#include "wine/port.h" #include <stdlib.h> #include <string.h> @@ -39,12 +38,11 @@ #define NONAMELESSUNION +#include "widl.h" #include "winerror.h" #include "windef.h" #include "winbase.h" #include "winnls.h" - -#include "widl.h" #include "typelib.h" #include "typelib_struct.h" #include "utils.h" @@ -304,17 +302,10 @@ value = lhash_val_of_name_sys(typelib->typelib_header.varflags & 0x0f, typelib->typelib_header.lcid, converted_name + 4); -#ifdef WORDS_BIGENDIAN - converted_name[3] = length & 0xff; - converted_name[2] = length >> 8; - converted_name[1] = value; - converted_name[0] = value >> 8; -#else converted_name[0] = length & 0xff; converted_name[1] = length >> 8; converted_name[2] = value; converted_name[3] = value >> 8; -#endif for (offset = (4 - length) & 3; offset; offset--) converted_name[length + offset + 3] = 0x57; @@ -351,14 +342,8 @@ if (length < 3) size += 4; converted_string = xmalloc(size); memcpy(converted_string + 2, string, length); - -#ifdef WORDS_BIGENDIAN - converted_string[1] = length & 0xff; - converted_string[0] = (length >> 8) & 0xff; -#else converted_string[0] = length & 0xff; converted_string[1] = (length >> 8) & 0xff; -#endif if(length < 3) { /* strings of this length are padded with up to 8 bytes incl the 2 byte length */ for(offset = 0; offset < 4; offset++) @@ -1221,7 +1206,8 @@ int vt; if (expr->type == EXPR_STRLIT || expr->type == EXPR_WSTRLIT) { - if (get_type_vt(type) != VT_BSTR) + vt = get_type_vt(type); + if (vt != VT_BSTR && vt != VT_VARIANT) error("string default value applied to non-string type\n"); chat("default value '%s'\n", expr->u.sval); write_string_value(typelib, out, expr->u.sval); @@ -1251,6 +1237,20 @@ case VT_UINT: case VT_HRESULT: break; + case VT_VARIANT: { + switch (expr->type) { + case EXPR_DOUBLE: + vt = VT_R4; + break; + case EXPR_NUM: + vt = VT_I4; + break; + default: + warning("can't write default VT_VARIANT value for expression type %d.\n", expr->type); + return; + } + break; + } default: warning("can't write value of type %d yet\n", vt); return; @@ -2725,7 +2725,6 @@ ctl2_finalize_typeinfos(typelib, filepos); - byte_swapped = 0; init_output_buffer(); put_data(&typelib->typelib_header, sizeof(typelib->typelib_header)); @@ -2758,7 +2757,8 @@ if (expr) sprintf( typelib_id, "#%d", expr->cval ); add_output_to_resources( "TYPELIB", typelib_id ); - output_typelib_regscript( typelib->typelib ); + if (strendswith( typelib_name, "_t.res" )) /* add typelib registration */ + output_typelib_regscript( typelib->typelib ); } else flush_output_buffer( typelib_name ); }
diff --git a/mingw-w64-tools/widl/tools.h b/mingw-w64-tools/widl/tools.h new file mode 100644 index 0000000..1065d25 --- /dev/null +++ b/mingw-w64-tools/widl/tools.h
@@ -0,0 +1,753 @@ +/* + * Helper functions for the Wine tools + * + * Copyright 2021 Alexandre Julliard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_TOOLS_H +#define __WINE_TOOLS_H + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <time.h> +#include <errno.h> + +#ifdef _WIN32 +# include <direct.h> +# include <io.h> +# include <process.h> +# define mkdir(path,mode) mkdir(path) +# ifndef S_ISREG +# define S_ISREG(mod) (((mod) & _S_IFMT) == _S_IFREG) +# endif +# ifdef _MSC_VER +# define popen _popen +# define pclose _pclose +# define strtoll _strtoi64 +# define strtoull _strtoui64 +# define strncasecmp _strnicmp +# define strcasecmp _stricmp +# endif +#else +# include <sys/wait.h> +# include <unistd.h> +# ifndef O_BINARY +# define O_BINARY 0 +# endif +# ifndef __int64 +# if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__) +# define __int64 long +# else +# define __int64 long long +# endif +# endif +#endif + +#if !defined(__GNUC__) && !defined(__attribute__) +#define __attribute__(x) +#endif + +#ifndef max +#define max(a,b) (((a) > (b)) ? (a) : (b)) +#endif +#ifndef min +#define min(a,b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#endif + +struct target +{ + enum { CPU_i386, CPU_x86_64, CPU_ARM, CPU_ARM64 } cpu; + + enum + { + PLATFORM_UNSPECIFIED, + PLATFORM_APPLE, + PLATFORM_ANDROID, + PLATFORM_LINUX, + PLATFORM_FREEBSD, + PLATFORM_SOLARIS, + PLATFORM_WINDOWS, + PLATFORM_MINGW, + PLATFORM_CYGWIN + } platform; +}; + +static inline void *xmalloc( size_t size ) +{ + void *res = malloc( size ? size : 1 ); + + if (res == NULL) + { + fprintf( stderr, "Virtual memory exhausted.\n" ); + exit(1); + } + return res; +} + +static inline void *xrealloc (void *ptr, size_t size) +{ + void *res = realloc( ptr, size ); + + if (size && res == NULL) + { + fprintf( stderr, "Virtual memory exhausted.\n" ); + exit(1); + } + return res; +} + +static inline char *xstrdup( const char *str ) +{ + return strcpy( xmalloc( strlen(str)+1 ), str ); +} + +static inline int strendswith( const char *str, const char *end ) +{ + int l = strlen( str ); + int m = strlen( end ); + return l >= m && !strcmp( str + l - m, end ); +} + +static char *strmake( const char* fmt, ... ) __attribute__ ((__format__ (__printf__, 1, 2))); +static inline char *strmake( const char* fmt, ... ) +{ + int n; + size_t size = 100; + va_list ap; + + for (;;) + { + char *p = xmalloc( size ); + va_start( ap, fmt ); + n = vsnprintf( p, size, fmt, ap ); + va_end( ap ); + if (n == -1) size *= 2; + else if ((size_t)n >= size) size = n + 1; + else return p; + free( p ); + } +} + +/* string array functions */ + +struct strarray +{ + unsigned int count; /* strings in use */ + unsigned int size; /* total allocated size */ + const char **str; +}; + +static const struct strarray empty_strarray; + +static inline void strarray_add( struct strarray *array, const char *str ) +{ + if (array->count == array->size) + { + if (array->size) array->size *= 2; + else array->size = 16; + array->str = xrealloc( array->str, sizeof(array->str[0]) * array->size ); + } + array->str[array->count++] = str; +} + +static inline void strarray_addall( struct strarray *array, struct strarray added ) +{ + unsigned int i; + + for (i = 0; i < added.count; i++) strarray_add( array, added.str[i] ); +} + +static inline int strarray_exists( const struct strarray *array, const char *str ) +{ + unsigned int i; + + for (i = 0; i < array->count; i++) if (!strcmp( array->str[i], str )) return 1; + return 0; +} + +static inline void strarray_add_uniq( struct strarray *array, const char *str ) +{ + if (!strarray_exists( array, str )) strarray_add( array, str ); +} + +static inline void strarray_addall_uniq( struct strarray *array, struct strarray added ) +{ + unsigned int i; + + for (i = 0; i < added.count; i++) strarray_add_uniq( array, added.str[i] ); +} + +static inline struct strarray strarray_fromstring( const char *str, const char *delim ) +{ + struct strarray array = empty_strarray; + char *buf = xstrdup( str ); + const char *tok; + + for (tok = strtok( buf, delim ); tok; tok = strtok( NULL, delim )) + strarray_add( &array, xstrdup( tok )); + free( buf ); + return array; +} + +static inline struct strarray strarray_frompath( const char *path ) +{ + if (!path) return empty_strarray; +#ifdef _WIN32 + return strarray_fromstring( path, ";" ); +#else + return strarray_fromstring( path, ":" ); +#endif +} + +static inline char *strarray_tostring( struct strarray array, const char *sep ) +{ + char *str; + unsigned int i, len = 1 + (array.count - 1) * strlen(sep); + + if (!array.count) return xstrdup(""); + for (i = 0; i < array.count; i++) len += strlen( array.str[i] ); + str = xmalloc( len ); + strcpy( str, array.str[0] ); + for (i = 1; i < array.count; i++) + { + strcat( str, sep ); + strcat( str, array.str[i] ); + } + return str; +} + +static inline void strarray_qsort( struct strarray *array, int (*func)(const char **, const char **) ) +{ + if (array->count) qsort( array->str, array->count, sizeof(*array->str), (void *)func ); +} + +static inline const char *strarray_bsearch( const struct strarray *array, const char *str, + int (*func)(const char **, const char **) ) +{ + char **res = NULL; + + if (array->count) res = bsearch( &str, array->str, array->count, sizeof(*array->str), (void *)func ); + return res ? *res : NULL; +} + +static inline void strarray_trace( struct strarray args ) +{ + unsigned int i; + + for (i = 0; i < args.count; i++) + { + if (strpbrk( args.str[i], " \t\n\r")) printf( "\"%s\"", args.str[i] ); + else printf( "%s", args.str[i] ); + putchar( i < args.count - 1 ? ' ' : '\n' ); + } +} + +static inline int strarray_spawn( struct strarray args ) +{ +#ifdef _WIN32 + strarray_add( &args, NULL ); + return _spawnvp( _P_WAIT, args.str[0], args.str ); +#else + pid_t pid, wret; + int status; + + if (!(pid = fork())) + { + strarray_add( &args, NULL ); + execvp( args.str[0], (char **)args.str ); + _exit(1); + } + if (pid == -1) return -1; + + while (pid != (wret = waitpid( pid, &status, 0 ))) + if (wret == -1 && errno != EINTR) break; + + if (pid == wret && WIFEXITED(status)) return WEXITSTATUS(status); + return 255; /* abnormal exit with an abort or an interrupt */ +#endif +} + +static inline char *get_basename( const char *file ) +{ + const char *ret = strrchr( file, '/' ); + return xstrdup( ret ? ret + 1 : file ); +} + +static inline char *get_basename_noext( const char *file ) +{ + char *ext, *ret = get_basename( file ); + if ((ext = strrchr( ret, '.' ))) *ext = 0; + return ret; +} + +static inline char *get_dirname( const char *file ) +{ + const char *end = strrchr( file, '/' ); + if (!end) return xstrdup( "." ); + if (end == file) end++; + return strmake( "%.*s", (int)(end - file), file ); +} + +static inline char *replace_extension( const char *name, const char *old_ext, const char *new_ext ) +{ + int name_len = strlen( name ); + + if (strendswith( name, old_ext )) name_len -= strlen( old_ext ); + return strmake( "%.*s%s", name_len, name, new_ext ); +} + + +static inline int make_temp_file( const char *prefix, const char *suffix, char **name ) +{ + static unsigned int value; + int fd, count; + const char *tmpdir = NULL; + + if (!prefix) prefix = "tmp"; + if (!suffix) suffix = ""; + value += time(NULL) + getpid(); + + for (count = 0; count < 0x8000; count++) + { + if (tmpdir) + *name = strmake( "%s/%s-%08x%s", tmpdir, prefix, value, suffix ); + else + *name = strmake( "%s-%08x%s", prefix, value, suffix ); + fd = open( *name, O_RDWR | O_CREAT | O_EXCL, 0600 ); + if (fd >= 0) return fd; + value += 7777; + if (errno == EACCES && !tmpdir && !strchr( prefix, '/' )) + { + if (!(tmpdir = getenv("TMPDIR"))) tmpdir = "/tmp"; + } + free( *name ); + } + fprintf( stderr, "failed to create temp file for %s%s\n", prefix, suffix ); + exit(1); +} + + +static inline struct target get_default_target(void) +{ + struct target target; +#ifdef __i386__ + target.cpu = CPU_i386; +#elif defined(__x86_64__) + target.cpu = CPU_x86_64; +#elif defined(__arm__) + target.cpu = CPU_ARM; +#elif defined(__aarch64__) + target.cpu = CPU_ARM64; +#else +#error Unsupported CPU +#endif + +#ifdef __APPLE__ + target.platform = PLATFORM_APPLE; +#elif defined(__ANDROID__) + target.platform = PLATFORM_ANDROID; +#elif defined(__linux__) + target.platform = PLATFORM_LINUX; +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + target.platform = PLATFORM_FREEBSD; +#elif defined(__sun) + target.platform = PLATFORM_SOLARIS; +#elif defined(__CYGWIN__) + target.platform = PLATFORM_CYGWIN; +#elif defined(_WIN32) + target.platform = PLATFORM_MINGW; +#else + target.platform = PLATFORM_UNSPECIFIED; +#endif + + return target; +} + + +static inline unsigned int get_target_ptr_size( struct target target ) +{ + static const unsigned int sizes[] = + { + [CPU_i386] = 4, + [CPU_x86_64] = 8, + [CPU_ARM] = 4, + [CPU_ARM64] = 8, + }; + return sizes[target.cpu]; +} + + +static inline void set_target_ptr_size( struct target *target, unsigned int size ) +{ + switch (target->cpu) + { + case CPU_i386: + if (size == 8) target->cpu = CPU_x86_64; + break; + case CPU_x86_64: + if (size == 4) target->cpu = CPU_i386; + break; + case CPU_ARM: + if (size == 8) target->cpu = CPU_ARM64; + break; + case CPU_ARM64: + if (size == 4) target->cpu = CPU_ARM; + break; + } +} + + +static inline int get_cpu_from_name( const char *name ) +{ + static const struct + { + const char *name; + int cpu; + } cpu_names[] = + { + { "i386", CPU_i386 }, + { "i486", CPU_i386 }, + { "i586", CPU_i386 }, + { "i686", CPU_i386 }, + { "i786", CPU_i386 }, + { "x86_64", CPU_x86_64 }, + { "amd64", CPU_x86_64 }, + { "aarch64", CPU_ARM64 }, + { "arm64", CPU_ARM64 }, + { "arm", CPU_ARM }, + }; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(cpu_names); i++) + if (!strncmp( cpu_names[i].name, name, strlen(cpu_names[i].name) )) return cpu_names[i].cpu; + return -1; +} + + +static inline int get_platform_from_name( const char *name ) +{ + static const struct + { + const char *name; + int platform; + } platform_names[] = + { + { "macos", PLATFORM_APPLE }, + { "darwin", PLATFORM_APPLE }, + { "android", PLATFORM_ANDROID }, + { "linux", PLATFORM_LINUX }, + { "freebsd", PLATFORM_FREEBSD }, + { "solaris", PLATFORM_SOLARIS }, + { "mingw32", PLATFORM_MINGW }, + { "windows-gnu", PLATFORM_MINGW }, + { "winnt", PLATFORM_MINGW }, + { "windows", PLATFORM_WINDOWS }, + { "cygwin", PLATFORM_CYGWIN }, + }; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(platform_names); i++) + if (!strncmp( platform_names[i].name, name, strlen(platform_names[i].name) )) + return platform_names[i].platform; + return -1; +}; + + +static inline const char *get_arch_dir( struct target target ) +{ + static const char *cpu_names[] = + { + [CPU_i386] = "i386", + [CPU_x86_64] = "x86_64", + [CPU_ARM] = "arm", + [CPU_ARM64] = "aarch64" + }; + + if (!cpu_names[target.cpu]) return ""; + + switch (target.platform) + { + case PLATFORM_WINDOWS: + case PLATFORM_CYGWIN: + case PLATFORM_MINGW: + return strmake( "/%s-windows", cpu_names[target.cpu] ); + default: + return strmake( "/%s-unix", cpu_names[target.cpu] ); + } +} + +static inline int parse_target( const char *name, struct target *target ) +{ + int res; + char *p, *spec = xstrdup( name ); + + /* target specification is in the form CPU-MANUFACTURER-OS or CPU-MANUFACTURER-KERNEL-OS */ + + /* get the CPU part */ + + if ((p = strchr( spec, '-' ))) + { + *p++ = 0; + if ((res = get_cpu_from_name( spec )) == -1) + { + free( spec ); + return 0; + } + target->cpu = res; + } + else if (!strcmp( spec, "mingw32" )) + { + target->cpu = CPU_i386; + p = spec; + } + else + { + free( spec ); + return 0; + } + + /* get the OS part */ + + target->platform = PLATFORM_UNSPECIFIED; /* default value */ + for (;;) + { + if ((res = get_platform_from_name( p )) != -1) + { + target->platform = res; + break; + } + if (!(p = strchr( p, '-' ))) break; + p++; + } + + free( spec ); + return 1; +} + + +static inline struct target init_argv0_target( const char *argv0 ) +{ + char *name = get_basename( argv0 ); + struct target target; + + if (!strchr( name, '-' ) || !parse_target( name, &target )) + target = get_default_target(); + + free( name ); + return target; +} + + +/* output buffer management */ + +extern unsigned char *output_buffer; +extern size_t output_buffer_pos; +extern size_t output_buffer_size; + +static inline void check_output_buffer_space( size_t size ) +{ + if (output_buffer_pos + size >= output_buffer_size) + { + output_buffer_size = max( output_buffer_size * 2, output_buffer_pos + size ); + output_buffer = xrealloc( output_buffer, output_buffer_size ); + } +} + +static inline void init_output_buffer(void) +{ + output_buffer_size = 1024; + output_buffer_pos = 0; + output_buffer = xmalloc( output_buffer_size ); +} + +static inline void put_data( const void *data, size_t size ) +{ + check_output_buffer_space( size ); + memcpy( output_buffer + output_buffer_pos, data, size ); + output_buffer_pos += size; +} + +static inline void put_byte( unsigned char val ) +{ + check_output_buffer_space( 1 ); + output_buffer[output_buffer_pos++] = val; +} + +static inline void put_word( unsigned short val ) +{ + check_output_buffer_space( 2 ); + output_buffer[output_buffer_pos++] = val; + output_buffer[output_buffer_pos++] = val >> 8; +} + +static inline void put_dword( unsigned int val ) +{ + check_output_buffer_space( 4 ); + output_buffer[output_buffer_pos++] = val; + output_buffer[output_buffer_pos++] = val >> 8; + output_buffer[output_buffer_pos++] = val >> 16; + output_buffer[output_buffer_pos++] = val >> 24; +} + +static inline void put_qword( unsigned int val ) +{ + put_dword( val ); + put_dword( 0 ); +} + +static inline void align_output( unsigned int align ) +{ + size_t size = align - (output_buffer_pos % align); + + if (size == align) return; + check_output_buffer_space( size ); + memset( output_buffer + output_buffer_pos, 0, size ); + output_buffer_pos += size; +} + +static inline void flush_output_buffer( const char *name ) +{ + int fd = open( name, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0666 ); + + if (fd == -1 || write( fd, output_buffer, output_buffer_pos ) != output_buffer_pos) + { + perror( name ); + exit(1); + } + close( fd ); + free( output_buffer ); +} + +/* command-line option parsing */ +/* partly based on the Glibc getopt() implementation */ + +struct long_option +{ + const char *name; + int has_arg; + int val; +}; + +static inline struct strarray parse_options( int argc, char **argv, const char *short_opts, + const struct long_option *long_opts, int long_only, + void (*callback)( int, char* ) ) +{ + struct strarray ret = empty_strarray; + const char *flag; + char *start, *end; + int i; + +#define OPT_ERR(fmt) { callback( '?', strmake( fmt, argv[1] )); continue; } + + for (i = 1; i < argc; i++) + { + if (argv[i][0] != '-' || !argv[i][1]) /* not an option */ + { + strarray_add( &ret, argv[i] ); + continue; + } + if (!strcmp( argv[i], "--" )) + { + /* add remaining args */ + while (++i < argc) strarray_add( &ret, argv[i] ); + break; + } + start = argv[i] + 1 + (argv[i][1] == '-'); + + if (argv[i][1] == '-' || (long_only && (argv[i][2] || !strchr( short_opts, argv[i][1] )))) + { + /* handle long option */ + const struct long_option *opt, *found = NULL; + int count = 0; + + if (!(end = strchr( start, '=' ))) end = start + strlen(start); + for (opt = long_opts; opt && opt->name; opt++) + { + if (strncmp( opt->name, start, end - start )) continue; + if (!opt->name[end - start]) /* exact match */ + { + found = opt; + count = 1; + break; + } + if (!found) + { + found = opt; + count++; + } + else if (long_only || found->has_arg != opt->has_arg || found->val != opt->val) + { + count++; + } + } + + if (count > 1) OPT_ERR( "option '%s' is ambiguous" ); + + if (found) + { + if (*end) + { + if (!found->has_arg) OPT_ERR( "argument not allowed in '%s'" ); + end++; /* skip '=' */ + } + else if (found->has_arg == 1) + { + if (i == argc - 1) OPT_ERR( "option '%s' requires an argument" ); + end = argv[++i]; + } + else end = NULL; + + callback( found->val, end ); + continue; + } + if (argv[i][1] == '-' || !long_only || !strchr( short_opts, argv[i][1] )) + OPT_ERR( "unrecognized option '%s'" ); + } + + /* handle short option */ + for ( ; *start; start++) + { + if (!(flag = strchr( short_opts, *start ))) OPT_ERR( "invalid option '%s'" ); + if (flag[1] == ':') + { + end = start + 1; + if (!*end) end = NULL; + if (flag[2] != ':' && !end) + { + if (i == argc - 1) OPT_ERR( "option '%s' requires an argument" ); + end = argv[++i]; + } + callback( *start, end ); + break; + } + callback( *start, NULL ); + } + } + return ret; +#undef OPT_ERR +} + +#endif /* __WINE_TOOLS_H */
diff --git a/mingw-w64-tools/widl/wine-import.sh b/mingw-w64-tools/widl/wine-import.sh index 49d8854..1c3f0e0 100755 --- a/mingw-w64-tools/widl/wine-import.sh +++ b/mingw-w64-tools/widl/wine-import.sh
@@ -23,29 +23,34 @@ for f in ppl.l ppl.yy.c ppy.tab.c ppy.tab.h ppy.y wpp.c wpp_private.h do - if [ ! -f $WINE_DIR/libs/wpp/$f ] && [ -f $WINE_BUILD_DIR/libs/wpp/$f ]; then - cp $WINE_BUILD_DIR/libs/wpp/$f src/wpp + if [ ! -f $WINE_DIR/tools/wrc/$f ] && [ -f $WINE_BUILD_DIR/tools/wrc/$f ]; then + cp $WINE_BUILD_DIR/tools/wrc/$f src else - cp $WINE_DIR/libs/wpp/$f src/wpp + cp $WINE_DIR/tools/wrc/$f src fi done -for f in basetsd.h guiddef.h excpt.h ndrtypes.h poppack.h pshpack1.h pshpack2.h pshpack4.h pshpack8.h threadpoolapiset.h \ +for f in tools.h +do + if [ ! -f $WINE_DIR/tools/$f ] && [ -f $WINE_BUILD_DIR/tools/$f ]; then + cp $WINE_BUILD_DIR/tools/$f . + else + cp $WINE_DIR/tools/$f . + fi +done + +for f in basetsd.h concurrencysal.h driverspecs.h guiddef.h excpt.h namespaceapi.h ndrtypes.h poppack.h pshpack1.h \ + processthreadsapi.h pshpack2.h pshpack4.h pshpack8.h sal.h specstrings.h threadpoolapiset.h \ timezoneapi.h winbase.h windef.h winerror.h winnls.h winnt.h winnt.rh synchapi.h winapifamily.h do cp $WINE_DIR/include/$f include done -for f in list.h wpp.h +for f in list.h do cp $WINE_DIR/include/wine/$f include/wine done -for f in getopt.c -do - cp $WINE_DIR/libs/port/$f src/port/ -done - sed s/Wine/WIDL/ < $WINE_DIR/VERSION >VERSION for f in patches/* do