[SCM] image display tool for astronomy branch, master, updated. d47981fee0f826dee34b7ecd5fde7c81ba8f5bfd
Ole Streicher
debian at liska.ath.cx
Mon Jan 9 20:16:08 UTC 2012
The following commit has been merged in the master branch:
commit d47981fee0f826dee34b7ecd5fde7c81ba8f5bfd
Author: Ole Streicher <debian at liska.ath.cx>
Date: Mon Jan 9 21:15:45 2012 +0100
Split the patches by subpackage
diff --git a/debian/patches/ast.patch b/debian/patches/ast.patch
new file mode 100644
index 0000000..ec81330
--- /dev/null
+++ b/debian/patches/ast.patch
@@ -0,0 +1,121 @@
+--- saods9-4.0b7.orig/ast-3.5/sphmap.c
++++ saods9-4.0b7/ast-3.5/sphmap.c
+@@ -92,6 +92,7 @@
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <math.h>
+
+ /* Module Variables. */
+ /* ================= */
+--- saods9-4.0b7.orig/ast-3.5/slalib.h
++++ saods9-4.0b7/ast-3.5/slalib.h
+@@ -0,0 +1,60 @@
++// This is a generated file; see ./debian/README.sla for information.
++void slaAddet ( double rm, double dm, double eq, double *rc, double *dc ) ;
++void slaAmpqk ( double ra, double da, double amprms[21],
++ double *rm, double *dm ) ;
++void slaCaldj ( int iy, int im, int id, double *djm, int *j ) ;
++void slaDaf2r ( int ideg, int iamin, double asec, double *rad, int *j ) ;
++void slaDav2m ( double axvec[3], double rmat[3][3] ) ;
++double slaDbear ( double a1, double b1, double a2, double b2 ) ;
++void slaDcc2s ( double v[3], double *a, double *b ) ;
++void slaDcs2c ( double a, double b, double v[3] ) ;
++void slaDd2tf ( int ndp, double days, char *sign, int ihmsf[4] ) ;
++void slaDimxv ( double dm[3][3], double va[3], double vb[3] ) ;
++void slaDjcal ( int ndp, double djm, int iymdf[ 4 ], int *j ) ;
++void slaDjcl ( double djm, int *iy, int *im, int *id, double *fd, int *j ) ;
++void slaDmat ( int n, double *a, double *y, double *d, int *jf, int *iw ) ;
++void slaDmxm ( double a[3][3], double b[3][3], double c[3][3] ) ;
++void slaDmxv ( double dm[3][3], double va[3], double vb[3] ) ;
++double slaDrange ( double angle ) ;
++double slaDranrm ( double angle ) ;
++double slaDsep ( double a1, double b1, double a2, double b2 ) ;
++void slaDtf2d ( int ihour, int imin, double sec, double *days, int *j ) ;
++void slaDtf2r ( int ihour, int imin, double sec, double *rad, int *j ) ;
++double slaDvdv( double va[3], double vb[3] ) ;
++void slaDvn ( double v[3], double uv[3], double *vm ) ;
++void slaDvxv ( double va[3], double vb[3], double vc[3] ) ;
++void slaEcmat ( double date, double rmat[3][3] ) ;
++double slaEpb ( double date ) ;
++double slaEpb2d ( double epb ) ;
++double slaEpj ( double date ) ;
++double slaEpj2d ( double epj ) ;
++double slaEqeqx ( double date ) ;
++void slaEqgal ( double dr, double dd, double *dl, double *db ) ;
++void slaEvp ( double date, double deqx, double dvb[3], double dpb[3],
++ double dvh[3], double dph[3] ) ;
++void slaFk45z ( double r1950, double d1950, double bepoch,
++ double *r2000, double *d2000 ) ;
++void slaFk54z ( double r2000, double d2000, double bepoch,
++ double *r1950, double *d1950,
++ double *dr1950, double *dd1950 ) ;
++void slaFk5hz ( double r5, double d5, double jepoch,
++ double *rh, double *dh ) ;
++void slaGaleq ( double dl, double db, double *dr, double *dd ) ;
++void slaGalsup ( double dl, double db, double *dsl, double *dsb ) ;
++void slaGeoc ( double p, double h, double *r, double *z ) ;
++double slaGmst ( double ut1 ) ;
++void slaHfk5z ( double rh, double dh, double jepoch,
++ double *r5, double *d5,
++ double *dr5, double *dd5 ) ;
++void slaMappa ( double eq, double date, double amprms[21] ) ;
++void slaMapqkz ( double rm, double dm, double amprms[21],
++ double *ra, double *da ) ;
++void slaPrebn ( double bep0, double bep1, double rmatp[3][3] ) ;
++void slaPrec ( double ep0, double ep1, double rmatp[3][3] ) ;
++float slaRverot ( float phi, float ra, float dec, float st ) ;
++float slaRvgalc ( float ra, float dec ) ;
++float slaRvlg ( float ra, float dec ) ;
++float slaRvlsrd ( float ra, float dec ) ;
++float slaRvlsrk ( float ra, float dec ) ;
++void slaSubet ( double rc, double dc, double eq, double *rm, double *dm ) ;
++void slaSupgal ( double dsl, double dsb, double *dl, double *db ) ;
+--- saods9-4.0b7.orig/ast-3.5/Makefile
++++ saods9-4.0b7/ast-3.5/Makefile
+@@ -42,6 +42,7 @@
+ skyaxis.c \
+ skyframe.c \
+ slamap.c \
++ sla.c \
+ specframe.c \
+ specmap.c \
+ sphmap.c \
+--- saods9-4.0b7.orig/ast-3.5/slamap.c
++++ saods9-4.0b7/ast-3.5/slamap.c
+@@ -153,6 +153,7 @@
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <math.h>
+
+ /* Module Variables. */
+ /* ================= */
+--- saods9-4.0b7.orig/ast-3.5/plot.c
++++ saods9-4.0b7/ast-3.5/plot.c
+@@ -12526,6 +12526,7 @@
+ return ret;
+ }
+
++#if 0
+ static void GFlush( AstPlot *this, const char *method,
+ const char *class ) {
+ /*
+@@ -12592,6 +12593,7 @@
+ }
+
+ }
++#endif
+
+ static void GLine( AstPlot *this, int n, const float *x,
+ const float *y, const char *method,
+--- saods9-4.0b7.orig/ast-3.5/fitschan.c
++++ saods9-4.0b7/ast-3.5/fitschan.c
+@@ -801,6 +801,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <math.h>
+
+ /* Type Definitions */
+ /* ================ */
diff --git a/debian/patches/checkdns.patch b/debian/patches/checkdns.patch
new file mode 100644
index 0000000..d046093
--- /dev/null
+++ b/debian/patches/checkdns.patch
@@ -0,0 +1,19 @@
+--- saods9-4.0b7.orig/checkdns/checkdns.c
++++ saods9-4.0b7/checkdns/checkdns.c
+@@ -9,6 +9,8 @@
+ #include <signal.h>
+ #include <netdb.h>
+ #include <tcl.h>
++#include <string.h>
++#include <stdlib.h>
+
+ #ifndef SZ_LINE
+ #define SZ_LINE 2048
+@@ -30,7 +32,6 @@
+ {
+ int flag=0;
+ char host[SZ_LINE];
+- struct hostent *hostent;
+ struct sigaction act1, oact1;
+
+ /* start the alarm, if necessary */
diff --git a/debian/patches/ds9.patch b/debian/patches/ds9.patch
new file mode 100644
index 0000000..fde1f4f
--- /dev/null
+++ b/debian/patches/ds9.patch
@@ -0,0 +1,348 @@
+--- saods9-4.0b7.orig/ds9/ds9.tcl
++++ saods9-4.0b7/ds9/ds9.tcl
+@@ -46,10 +46,10 @@
+
+ # other tcl packages
+ if {$tcl_platform(platform) != "windows"} {
+- source ../lib/tcl8.4/http2.5/http.tcl
+- source ../lib/tcllib1.6/base64/base64.tcl
+- source ../lib/tcllib1.6/log/log.tcl
+- source ../lib/tcllib1.6/ftp/ftp.tcl
++ source /usr/share/tcltk/tcl8.4/http2.5/http.tcl
++ #source /usr/lib/tcllib1.8/base64/base64.tcl
++ #source /usr/lib/tcllib1.8/log/log.tcl
++ #source /usr/lib/tcllib1.8/ftp/ftp.tcl
+ } else {
+ source C:/cygwin/home/joye/saods9/lib/tcl8.4/http2.5/http.tcl
+ source C:/cygwin/home/joye/saods9/lib/tcllib1.6/base64/base64.tcl
+@@ -84,7 +84,7 @@
+ # we need this after BLT is loaded
+ # neede for BLT_ZoomStack
+ if {$tcl_platform(platform) != "windows"} {
+- source ../lib/blt2.4/graph.tcl
++ source /usr/lib/blt2.4/graph.tcl
+ } else {
+ source C:/cygwin/home/joye/saods9/lib/blt2.4/graph.tcl
+ }
+--- saods9-4.0b7.orig/ds9/ds9.mta
++++ saods9-4.0b7/ds9/ds9.mta
+@@ -9,9 +9,9 @@
+ ## CFile:ds9.C 1
+ ## CmdLine None
+ ## ConfigFile ds9.mta
+-## Data:../lib/blt2.4/bltGraph.pro 1
+-## Data:../lib/tcl8.4/encoding/iso8859-1.enc 1
+-## Data:../lib/tcl8.4/encoding/symbol.enc 1
++## Data:/usr/lib/blt2.4/bltGraph.pro 1
++## Data:/usr/share/tcltk/tcl8.4/encoding/iso8859-1.enc 1
++## Data:/usr/share/tcltk/tcl8.4/encoding/symbol.enc 1
+ ## Data:doc/acknowledgment.html 1
+ ## Data:doc/faq.html 1
+ ## Data:doc/helpdesk.html 1
+@@ -79,11 +79,11 @@
+ ## MainScript ds9.tcl
+ ## Mode Tcl/Tk
+ ## NoSource No
+-## OtherLib:../lib/blt2.4 1
+-## OtherLib:../lib/tcl8.4/http2.5 1
+-## OtherLib:../lib/tcllib1.6/base64 1
+-## OtherLib:../lib/tcllib1.6/ftp 1
+-## OtherLib:../lib/tcllib1.6/log 1
++## OtherLib:/usr/lib/blt2.4 1
++## OtherLib:/usr/share/tcltk/tcl8.4/http2.5 1
++# OtherLib:/usr/lib/tcllib1.8/base64 1
++# OtherLib:/usr/lib/tcllib1.8/ftp 1
++# OtherLib:/usr/lib/tcllib1.8/log 1
+ ## OutputFile ds9tk.c
+ ## Shroud No
+ ## Standalone Yes
+@@ -177,76 +177,76 @@
+ ## TclFile:vo.tcl 1
+ ## TclFile:wcs.tcl 1
+ ## TclFile:xpa.tcl 1
+-## TclLib ../lib/tcl8.4
+-## TkLib ../lib/tk8.4
++## TclLib /usr/share/tcltk/tcl8.4
++## TkLib /usr/share/tcltk/tk8.4
+ #
+ -main-script "ds9.tcl"
+--tcl-library "../lib/tcl8.4"
+--tk-library "../lib/tk8.4"
+--strip-tcl "../lib/blt2.4/dnd.tcl"
+--strip-tcl "../lib/blt2.4/dragdrop.tcl"
+--strip-tcl "../lib/blt2.4/graph.tcl"
+--strip-tcl "../lib/blt2.4/hierbox.tcl"
+--strip-tcl "../lib/blt2.4/pkgIndex.tcl"
+--strip-tcl "../lib/blt2.4/tabnotebook.tcl"
+--strip-tcl "../lib/blt2.4/tabset.tcl"
+--strip-tcl "../lib/blt2.4/tclIndex"
+--strip-tcl "../lib/blt2.4/treeview.tcl"
+--strip-tcl "../lib/tcl8.4/auto.tcl"
+--strip-tcl "../lib/tcl8.4/history.tcl"
+--strip-tcl "../lib/tcl8.4/http2.5/http.tcl"
+--strip-tcl "../lib/tcl8.4/http2.5/pkgIndex.tcl"
+--strip-tcl "../lib/tcl8.4/init.tcl"
+--strip-tcl "../lib/tcl8.4/ldAout.tcl"
+--strip-tcl "../lib/tcl8.4/package.tcl"
+--strip-tcl "../lib/tcl8.4/parray.tcl"
+--strip-tcl "../lib/tcl8.4/safe.tcl"
+--strip-tcl "../lib/tcl8.4/tclIndex"
+--strip-tcl "../lib/tcl8.4/word.tcl"
+--strip-tcl "../lib/tcllib1.6/base64/base64.tcl"
+--strip-tcl "../lib/tcllib1.6/base64/base64c.tcl"
+--strip-tcl "../lib/tcllib1.6/base64/pkgIndex.tcl"
+--strip-tcl "../lib/tcllib1.6/base64/uuencode.tcl"
+--strip-tcl "../lib/tcllib1.6/base64/yencode.tcl"
+--strip-tcl "../lib/tcllib1.6/ftp/ftp.tcl"
+--strip-tcl "../lib/tcllib1.6/ftp/ftp_geturl.tcl"
+--strip-tcl "../lib/tcllib1.6/ftp/pkgIndex.tcl"
+--strip-tcl "../lib/tcllib1.6/log/log.tcl"
+--strip-tcl "../lib/tcllib1.6/log/logger.tcl"
+--strip-tcl "../lib/tcllib1.6/log/pkgIndex.tcl"
+--strip-tcl "../lib/tk8.4/bgerror.tcl"
+--strip-tcl "../lib/tk8.4/button.tcl"
+--strip-tcl "../lib/tk8.4/choosedir.tcl"
+--strip-tcl "../lib/tk8.4/clrpick.tcl"
+--strip-tcl "../lib/tk8.4/comdlg.tcl"
+--strip-tcl "../lib/tk8.4/console.tcl"
+--strip-tcl "../lib/tk8.4/dialog.tcl"
+--strip-tcl "../lib/tk8.4/entry.tcl"
+--strip-tcl "../lib/tk8.4/focus.tcl"
+--strip-tcl "../lib/tk8.4/listbox.tcl"
+--strip-tcl "../lib/tk8.4/menu.tcl"
+--strip-tcl "../lib/tk8.4/mkpsenc.tcl"
+--strip-tcl "../lib/tk8.4/msgbox.tcl"
+--strip-tcl "../lib/tk8.4/obsolete.tcl"
+--strip-tcl "../lib/tk8.4/optMenu.tcl"
+--strip-tcl "../lib/tk8.4/palette.tcl"
+--strip-tcl "../lib/tk8.4/panedwindow.tcl"
+--strip-tcl "../lib/tk8.4/pkgIndex.tcl"
+--strip-tcl "../lib/tk8.4/safetk.tcl"
+--strip-tcl "../lib/tk8.4/scale.tcl"
+--strip-tcl "../lib/tk8.4/scrlbar.tcl"
+--strip-tcl "../lib/tk8.4/spinbox.tcl"
+--strip-tcl "../lib/tk8.4/tclIndex"
+--strip-tcl "../lib/tk8.4/tearoff.tcl"
+--strip-tcl "../lib/tk8.4/text.tcl"
+--strip-tcl "../lib/tk8.4/tk.tcl"
+--strip-tcl "../lib/tk8.4/tkfbox.tcl"
+--strip-tcl "../lib/tk8.4/unsupported.tcl"
+--strip-tcl "../lib/tk8.4/xmfbox.tcl"
++-tcl-library "/usr/share/tcltk/tcl8.4"
++-tk-library "/usr/share/tcltk/tk8.4"
++-strip-tcl "/usr/lib/blt2.4/dnd.tcl"
++-strip-tcl "/usr/lib/blt2.4/dragdrop.tcl"
++-strip-tcl "/usr/lib/blt2.4/graph.tcl"
++-strip-tcl "/usr/lib/blt2.4/hierbox.tcl"
++-strip-tcl "/usr/lib/blt2.4/pkgIndex.tcl"
++-strip-tcl "/usr/lib/blt2.4/tabnotebook.tcl"
++-strip-tcl "/usr/lib/blt2.4/tabset.tcl"
++-strip-tcl "/usr/lib/blt2.4/tclIndex"
++-strip-tcl "/usr/lib/blt2.4/treeview.tcl"
++-strip-tcl "auto.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/history.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/http2.5/http.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/http2.5/pkgIndex.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/init.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/ldAout.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/package.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/parray.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/safe.tcl"
++-strip-tcl "/usr/share/tcltk/tcl8.4/tclIndex"
++-strip-tcl "/usr/share/tcltk/tcl8.4/word.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/base64/base64.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/base64/base64c.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/base64/pkgIndex.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/base64/uuencode.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/base64/yencode.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/ftp/ftp.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/ftp/ftp_geturl.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/ftp/pkgIndex.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/log/log.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/log/logger.tcl"
++#-strip-tcl "/usr/lib/tcllib1.8/log/pkgIndex.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/bgerror.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/button.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/choosedir.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/clrpick.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/comdlg.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/console.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/dialog.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/entry.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/focus.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/listbox.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/menu.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/mkpsenc.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/msgbox.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/obsolete.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/optMenu.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/palette.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/panedwindow.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/pkgIndex.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/safetk.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/scale.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/scrlbar.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/spinbox.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/tclIndex"
++-strip-tcl "/usr/share/tcltk/tk8.4/tearoff.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/text.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/tk.tcl"
++-strip-tcl "tkfbox.tcl"
++-strip-tcl "/usr/share/tcltk/tk8.4/unsupported.tcl"
++-strip-tcl "xmfbox.tcl"
+ "ds9.C"
+--i "../lib/blt2.4/bltGraph.pro"
+--i "../lib/tcl8.4/encoding/iso8859-1.enc"
+--i "../lib/tcl8.4/encoding/symbol.enc"
++-i "/usr/lib/blt2.4/bltGraph.pro"
++-i "/usr/share/tcltk/tcl8.4/encoding/iso8859-1.enc"
++-i "/usr/share/tcltk/tcl8.4/encoding/symbol.enc"
+ -i "doc/acknowledgment.html"
+ -i "doc/faq.html"
+ -i "doc/helpdesk.html"
+--- saods9-4.0b7.orig/ds9/Makefile
++++ saods9-4.0b7/ds9/Makefile
+@@ -175,20 +175,12 @@
+
+ INDEX = pkgIndex.tcl
+
+-LIBS = -L../lib -lsaotk -ltkhtml -ltkmpeg -L../lib/Img1.3 \
+- -ltkimgwindow1.3 \
+- -ltkimgjpeg1.3 -ljpegtcl1.0 \
+- -ltkimgtiff1.3 -ltifftcl1.0 \
+- -ltkimgpng1.3 -lpngtcl1.0 \
+- -ltkimgppm1.3 \
+- -ltkimggif1.3 \
+- -ltkimgbmp1.3 \
+- -ltkimgxbm1.3 \
+- -lzlibtcl1.0 -ltkimg1.3 \
+- -L../lib/Tktable2.9 -lTktable2.9 \
+- -L../lib -lz -lxpa -liis -lcheckdns \
+- -lBLT24 \
+- -ltk8.4 -ltcl8.4
++LIBS = \
++ /usr/lib/Tktable2.9/libTktable2.9.so \
++ -lz -lBLT -ltk8.4 -ltcl8.4 \
++ -L../lib -lsaotk -ltkhtml -ltkmpeg -lsla\
++ -liis -lcheckdns -lxpa -lcheckdns \
++ -lgfortran
+
+ LIBS.a = ../lib/libsaotk.a \
+ ../lib/libtkhtml.a \
+@@ -254,17 +246,7 @@
+ #
+ ifeq ($(ARCH),linux)
+ ds9 : ds9.o ds9tk.o FORCE
+- $(RM) $@
+- rm -f libstdc++.a
+- ln -s `$(CXX) -print-file-name=libstdc++.a` .
+- $(CXX) -static-libgcc $(OPTS) \
+- -Wl,--export-dynamic \
+- -o $@ ds9.o ds9tk.o \
+- -Wl,-Bstatic $(LIBS) \
+- -L. -lstdc++ \
+- -Wl,-Bdynamic -L$(X11LIB) -lX11 \
+- -ldl -lpthread
+- rm -f libstdc++.a
++ $(CXX) $(OPTS) -o $@ ds9.o ds9tk.o $(LIBS)
+ endif
+
+ #--------------------------linux64
+--- saods9-4.0b7.orig/ds9/ds9.C
++++ saods9-4.0b7/ds9/ds9.C
+@@ -6,6 +6,7 @@
+ using namespace std;
+
+ #include "ds9tk.h"
++#include <tcl.h>
+
+ extern "C" {
+ int Blt_Init(Tcl_Interp*);
+@@ -15,20 +16,6 @@
+ int Tkhtml_Init(Tcl_Interp*);
+ int Tkmpeg_Init(Tcl_Interp*);
+
+- int Tkimg_Init(Tcl_Interp*);
+- int Zlibtcl_Init(Tcl_Interp*);
+- int Jpegtcl_Init(Tcl_Interp*);
+- int Tkimgjpeg_Init(Tcl_Interp*);
+- int Tifftcl_Init(Tcl_Interp*);
+- int Tkimgtiff_Init(Tcl_Interp*);
+- int Pngtcl_Init(Tcl_Interp*);
+- int Tkimgpng_Init(Tcl_Interp*);
+- int Tkimggif_Init(Tcl_Interp*);
+- int Tkimgppm_Init(Tcl_Interp*);
+- int Tkimgbmp_Init(Tcl_Interp*);
+- int Tkimgxbm_Init(Tcl_Interp*);
+- int Tkimgwindow_Init(Tcl_Interp*);
+-
+ int Tclxpa_Init(Tcl_Interp*);
+ int Iis_Init(Tcl_Interp*);
+ }
+@@ -74,57 +61,8 @@
+
+ // Tkimg _inits
+
+- if (Tkimg_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "img", Tkimg_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Zlibtcl_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "zlibtcl", Zlibtcl_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Jpegtcl_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "jpegtcl", Jpegtcl_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimgjpeg_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "jpeg", Tkimgjpeg_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tifftcl_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "tifftcl", Tifftcl_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimgtiff_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "tiff", Tkimgtiff_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Pngtcl_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "pngtcl", Pngtcl_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimgpng_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "png", Tkimgpng_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimggif_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "gif", Tkimggif_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimgppm_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "ppm", Tkimgppm_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimgbmp_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "bmp", Tkimgbmp_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimgxbm_Init(interp) == TCL_ERROR)
+- return TCL_ERROR;
+- Tcl_StaticPackage (interp, "xbm", Tkimgxbm_Init,(Tcl_PackageInitProc*)NULL);
+-
+- if (Tkimgwindow_Init(interp) == TCL_ERROR)
++ if (Tcl_PkgRequire (interp, "Img", NULL, 0) == NULL)
+ return TCL_ERROR;
+- Tcl_StaticPackage (interp, "window", Tkimgwindow_Init,(Tcl_PackageInitProc*)NULL);
+
+ return TCL_OK;
+ }
+--- saods9-4.0b7.orig/ds9/sample.tcl
++++ saods9-4.0b7/ds9/sample.tcl
+@@ -1,4 +1,4 @@
+-# Copyright (C) 1999-200
++# Copyright (C) 1999-2005
+ # Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+ # For conditions of distribution and use, see copyright notice in "copyright"
+
diff --git a/debian/patches/funtools.patch b/debian/patches/funtools.patch
new file mode 100644
index 0000000..ae94e66
--- /dev/null
+++ b/debian/patches/funtools.patch
@@ -0,0 +1,31 @@
+--- saods9-4.0b7.orig/funtools-1.3.0b9/Makefile.in
++++ saods9-4.0b7/funtools-1.3.0b9/Makefile.in
+@@ -60,7 +60,7 @@
+ # FITSY_LIBS = -L./fitsy -lfitsy
+
+ # wcs files are in the wcs subdirectory
+-WCS_INC = -I./wcs
++WCS_INC = -I../wcssubs-3.5.6/
+ # WCS_LIBS = -L./wcs -lwcs
+
+ # filter files are in the filter subdirectory
+@@ -187,7 +187,7 @@
+
+ # Subdirectories to run make in for the primary targets.
+
+-SUBLIBS = util fitsy wcs filter
++SUBLIBS = util fitsy filter
+
+ SUBDIRS = $(SUBLIBS) gnu funtest
+
+--- saods9-4.0b7.orig/funtools-1.3.0b9/filter/Makefile.in
++++ saods9-4.0b7/funtools-1.3.0b9/filter/Makefile.in
+@@ -55,7 +55,7 @@
+ #FITSY_LIBS = -L../fitsy
+
+ # wcs files are in the wcs subdirectory
+-WCS_INC = -I../wcs
++WCS_INC = -I../../wcssubs-3.5.6
+ #WCS_LIBS = -L../wcs -lwcs
+
+ # extra includes for compiling
diff --git a/debian/patches/htmlwidget.patch b/debian/patches/htmlwidget.patch
new file mode 100644
index 0000000..5fc2d7e
--- /dev/null
+++ b/debian/patches/htmlwidget.patch
@@ -0,0 +1,41 @@
+--- saods9-4.0b7.orig/htmlwidget/src/htmlindex.c
++++ saods9-4.0b7/htmlwidget/src/htmlindex.c
+@@ -24,6 +24,7 @@
+ ** http://www.hwaci.com/drh/
+ */
+ #include <ctype.h>
++#include <string.h>
+ #include <tk.h>
+ #include "htmlindex.h"
+
+--- saods9-4.0b7.orig/htmlwidget/src/htmldraw.c
++++ saods9-4.0b7/htmlwidget/src/htmldraw.c
+@@ -404,14 +404,12 @@
+ }else{
+ /* We are dealing with a single HtmlElement which contains something
+ ** other than plain text. */
+- int top, btm, cntr;
+ int cnt, w;
+ char zBuf[30];
+ switch( src->base.type ){
+ case Html_LI:
+ x = src->li.x;
+ y = src->li.y;
+- cntr = (top+btm)/2;
+ switch( src->li.type ){
+ case LI_TYPE_Enum_1:
+ sprintf(zBuf,"%d.",src->li.cnt);
+--- saods9-4.0b7.orig/htmlwidget/src/htmlcmd.c
++++ saods9-4.0b7/htmlwidget/src/htmlcmd.c
+@@ -25,6 +25,7 @@
+ */
+ #include <tk.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include "htmlcmd.h"
+
+ /*
+--- saods9-4.0b7.orig/htmlwidget/confdefs.h
++++ saods9-4.0b7/htmlwidget/confdefs.h
+@@ -0,0 +1 @@
++
diff --git a/debian/patches/iis.patch b/debian/patches/iis.patch
new file mode 100644
index 0000000..0c7bfa9
--- /dev/null
+++ b/debian/patches/iis.patch
@@ -0,0 +1,167 @@
+--- saods9-4.0b7.orig/iis/util.c
++++ saods9-4.0b7/iis/util.c
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+
+ #include "iis.h"
+ #include "xim.h"
+--- saods9-4.0b7.orig/iis/xim.C
++++ saods9-4.0b7/iis/xim.C
+@@ -24,7 +24,7 @@
+
+ void iisIO(void* data, int mask)
+ {
+- int fd = (int)data;
++ int fd = *(int*)data;
+
+ if (IISDebug)
+ cerr << "iisIO() " << fd << ' ' << mask << endl;
+@@ -48,7 +48,7 @@
+ iis->chan[fd] = chan;
+ #ifndef __WIN32__
+ Tcl_CreateFileHandler(fd, TCL_READABLE, (void (*)(void*,int))iisIO,
+- (void*)fd);
++ &fd);
+ #else
+ Tcl_CreateEventSource(setupProc, checkProc, (void*)fd);
+ #endif
+--- saods9-4.0b7.orig/iis/iistcl.C
++++ saods9-4.0b7/iis/iistcl.C
+@@ -6,10 +6,12 @@
+ #include <string.h>
+
+ #if __GNUC__ >= 3
++#include <cstdlib>
+ #include <iostream>
+ #include <sstream>
+ using namespace std;
+ #else
++#include <stdlib.h>
+ #include <iostream.h>
+ #include <strstream.h>
+ #endif
+@@ -46,6 +48,7 @@
+ return copy;
+ }
+
++#if 0
+ static char* toLower(char* str)
+ {
+ char* ptr = str;
+@@ -55,6 +58,7 @@
+ }
+ return str;
+ }
++#endif
+
+ int Iis_Init(Tcl_Interp* interp) {
+
+@@ -154,7 +158,7 @@
+ xim.chan[i].dataout = 0; // output channel
+ xim.chan[i].keepalive = 0; // used to keep input fifo ready
+ xim.chan[i].path[0] = '\0'; // for unix sockets
+- xim.chan[i].reference_frame;// reference (cmd i/o) frame
++ xim.chan[i].reference_frame=0;// reference (cmd i/o) frame
+ xim.chan[i].rf_p = NULL; // reference frame descriptor
+ }
+ }
+--- saods9-4.0b7.orig/iis/iis.c
++++ saods9-4.0b7/iis/iis.c
+@@ -4,10 +4,14 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
++#include <string.h>
+ #ifdef HAVE_SYS_UN_H
+ #include <sys/un.h>
+ #endif
+ #include <fcntl.h>
++#include <unistd.h>
++#include <ctype.h>
++#include <time.h>
+
+ #include "iis.h"
+ #include "xim.h"
+@@ -110,7 +114,7 @@
+ * UNIX domain socket connection. All three types of server ports are
+ * simultaneously ready to receive client connections.
+ */
+-xim_iisOpen (xim)
++int xim_iisOpen (xim)
+ register XimDataPtr xim;
+ {
+ int nopen = 0;
+@@ -292,7 +296,7 @@
+ goto err;
+
+ /* Allocate and fill in i/o channel descriptor. */
+- if (chan = get_iochan(xim)) {
++ if ((chan = get_iochan(xim))) {
+ chan->xim = (XtPointer) xim;
+ chan->type = IO_INET;
+ chan->datain = s;
+@@ -360,7 +364,7 @@
+ goto err;
+
+ /* Allocate and fill in i/o channel descriptor. */
+- if (chan = get_iochan(xim)) {
++ if ((chan = get_iochan(xim))) {
+ chan->xim = (XtPointer) xim;
+ chan->type = IO_UNIX;
+ chan->datain = s;
+@@ -414,7 +418,7 @@
+ } */
+
+ /* Allocate and fill in i/o channel descriptor. */
+- if (chan = get_iochan(xim)) {
++ if ((chan = get_iochan(xim))) {
+ chan->xim = (XtPointer) xim;
+ chan->type = chan_port->type;
+ chan->datain = s;
+@@ -457,7 +461,6 @@
+ get_iochan (xim)
+ register XimDataPtr xim;
+ {
+- register IoChanPtr chan;
+ register int i;
+
+ for (i=0; i < XtNumber(xim->chan); i++)
+@@ -744,7 +747,7 @@
+ */
+ char emsg[SZ_WCSBUF];
+ char *text;
+- int frame, wcsnum;
++ int frame;
+
+ memset ((char *)emsg, 0, SZ_WCSBUF);
+
+@@ -1031,7 +1034,7 @@
+
+ /* DECODE_FRAMENO -- Decode encoded IIS register frame number.
+ */
+-static
++static int
+ decode_frameno (z)
+ register int z;
+ {
+@@ -1385,6 +1388,8 @@
+ * elsewhere if needed, our only purpose here is to extract the frame WCS.
+ */
+
++print_mappings (FrameBufPtr fr);
++
+ static void
+ add_mapping (xim, ctran, wcsbuf, fr)
+ register XimDataPtr xim;
+@@ -1476,8 +1481,7 @@
+
+ /* PRINT_MAPPINGS -- Debug routine to print all mappings on a frame.
+ */
+-print_mappings (fr)
+-FrameBufPtr fr;
++print_mappings (FrameBufPtr fr)
+ {
+ MappingPtr mp;
+ register int i;
diff --git a/debian/patches/makefiles.patch b/debian/patches/makefiles.patch
new file mode 100644
index 0000000..c264a60
--- /dev/null
+++ b/debian/patches/makefiles.patch
@@ -0,0 +1,120 @@
+--- saods9-4.0b7.orig/make.linux
++++ saods9-4.0b7/make.linux
+@@ -1,21 +1,21 @@
+ ARCH = linux
+-BUILD_SHARED = yes
+-OPTS = -O2
++OPTS = $(FLAGS) -DHAVE_SYS_UN_H -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/tcl8.4
++DEPENDS = no
+ #OPTS = -gstabs+ -fno-inline
+ #OPTS = -gstabs+ -fno-inline -pg
+
+-X11INCLUDE=/usr/X11R6/include
++X11INCLUDE=/usr/include/X11
+ X11LIB = /usr/X11R6/lib
+
+ CXX = g++
+-CXXOPT = ${OPTS} -fPIC -DHAVE_SYS_UN_H -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
++CXXOPT = ${OPTS}
+ CC = gcc
+ CCc = gcc
+ #CCc = 'gcc -g'
+-CCOPT = ${OPTS} -fPIC -DHAVE_SYS_UN_H -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
++CCOPT = $(OPTS)
+
+ LIBCMD = $(AR) -cq
+-RANLIB = echo
++RANLIB = ranlib
+ SHCMD = $(CXX) -shared -o
+ SHEXT = so
+-ETAGS = etags
++ETAGS = true
+--- saods9-4.0b7.orig/Makefile
++++ saods9-4.0b7/Makefile
+@@ -26,7 +26,7 @@
+ TCLXDIR = $(TCLXDIR)/win
+
+ TCLLIBFLAGS = --prefix ..
+- PREHTMLFLAGS = config_BUILD_TCLSH=tclsh84s config_TARGET_TCL_SCRIPT_DIR=$(root)/lib/tcl8.4
++ PREHTMLFLAGS = config_BUILD_TCLSH=tclsh84s config_TARGET_TCL_SCRIPT_DIR=$(root)/share/tcltk/tcl8.4
+ else
+ EXE =
+ WISH = wish8.4
+@@ -37,6 +37,7 @@
+
+ XFLAGS = --x-includes=$(X11INCLUDE) --x-libraries="$(X11LIB) $(HTMLEXTLIB)"
+ TCLLIBFLAGS = --prefix $(root)
++ PREHTMLFLAGS= config_TARGET_TCL_SCRIPT_DIR=/usr/share/tcltk/tcl8.4 config_TARGET_TK_SCRIPT_DIR=/usr/share/tcltk/tk8.4
+ endif
+
+ TCLFLAGS = --enable-gcc --prefix $(root) $(XFLAGS)
+@@ -46,12 +47,12 @@
+ --with-tcl=$(root)/$(TCLDIR) --with-tk=$(root)/$(TKDIR) $(XFLAGS)
+ TKIMGFLAGS = --enable-gcc --prefix $(root) --with-tcl=$(root)/$(TCLDIRDIR) \
+ --with-tk=$(root)/$(TKDIRDIR) $(XFLAGS)
+-XPAFLAGS = --enable-gcc --prefix $(root) --with-tcl=$(root)/$(TCLDIRDIR) \
++XPAFLAGS = --enable-gcc --prefix $(root) --with-tcl=/usr/share/tcltk/tcl8.4 \
+ $(XFLAGS)
+-HTMLFLAGS = --enable-gcc --prefix $(root) --with-tcl=$(root)/$(TCLDIR) \
+- --with-tk=$(root)/$(TKDIR) $(XFLAGS)
++HTMLFLAGS = --enable-gcc --prefix $(root) --with-tcl=/usr/share/tcltk/tcl8.4/ --with-tk=/usr/share/tcltk/tk8.4/
++
++FUNTOOLSFLAGS = --prefix $(root) --enable-gcc --with-zlib=-lz --with-wcslib=../lib/libwcs.a --enable-mainlib
+
+-FUNTOOLSFLAGS = --prefix $(root) --enable-gcc --with-zlib=../lib/libz.a --with-wcslib=../lib/libwcs.a --enable-mainlib
+ ZLIBFLAGS = --prefix $(root)
+
+ SAOINDEX= lib/pkgIndex.tcl
+@@ -185,7 +186,7 @@
+
+ tkindex : FORCE
+ @echo "Installing Tk mkIndex..."
+- cd lib/tk8.4; echo "pkg_mkIndex . *.tcl" | ../../bin/tclsh8.4
++ cd share/tcltk/tk8.4; echo "pkg_mkIndex . *.tcl" | ../../../bin/tclsh8.4
+
+ blt : FORCE
+ @echo "Installing BLT..."
+@@ -194,7 +195,7 @@
+
+ mktclapp: FORCE
+ @echo "Installing MKTCLAPP..."
+- cd $(MKTCLAPPDIR); CC=$(CCc) $(MAKE) mktclapp -e
++ cd $(MKTCLAPPDIR); CC=$(CCc) CFLAGS="$(CCOPT)" $(MAKE) mktclapp -e
+ cp $(MKTCLAPPDIR)/mktclapp$(EXE) bin/.
+
+ zlib : FORCE
+@@ -219,13 +220,13 @@
+
+ tkmpeg : FORCE
+ @echo "Installing TKMPEG..."
+- cd $(TKMPEGDIR); $(MAKE)
++ cd $(TKMPEGDIR); $(MAKE) CXXOPT="$(CXXOPT)"
+ cd $(TKMPEGDIR); $(MAKE) install
+
+ html : FORCE
+ @echo "Installing HTMLWIDGET noshared..."
+- cd $(HTMLDIR); CC=$(CCc) $(PREHTMLFLAGS) $(root)/htmlwidget/configure $(HTMLFLAGS) --enable-shared=no
+- cd $(HTMLDIR); $(MAKE)
++ cd $(HTMLDIR); CFLAGS="$(CXXOPT)" CC=$(CCc) $(PREHTMLFLAGS) $(root)/htmlwidget/configure $(HTMLFLAGS) --enable-shared=no
++ cd $(HTMLDIR); $(MAKE) headers libtkhtml.a
+ cp $(HTMLDIR)/libtkhtml.a lib/.
+
+ htmlsh : FORCE
+@@ -242,7 +243,7 @@
+
+ xpa : FORCE
+ @echo "Installing XPA..."
+- cd $(XPADIR); CC=$(CCc) ./configure $(XPAFLAGS) --disable-shared
++ cd $(XPADIR); CC=$(CCc) CFLAGS="$(CCOPT)" ./configure $(XPAFLAGS) --disable-shared
+ cd $(XPADIR); $(MAKE); $(MAKE) install
+
+ iis : FORCE
+@@ -272,7 +273,7 @@
+
+ saotk : FORCE
+ @echo "Installing SAOTK..."
+- cd $(SAOTKDIR); $(MAKE) install
++ cd $(SAOTKDIR); $(MAKE) CXX="$(CXX)" install
+
+ win : FORCE
+ @echo "Installing WIN..."
diff --git a/debian/patches/saotk.patch b/debian/patches/saotk.patch
new file mode 100644
index 0000000..9bd90d5
--- /dev/null
+++ b/debian/patches/saotk.patch
@@ -0,0 +1,20642 @@
+--- saods9-4.0b7.orig/saotk/fitsy++/strm.C
++++ saods9-4.0b7/saotk/fitsy++/strm.C
+@@ -346,7 +346,7 @@
+ if (!(this->pExt_ || (this->pIndex_>0))) {
+
+ // we are only looking for a primary image
+- if (this->head_ = this->headRead()) {
++ if ((this->head_ = this->headRead())) {
+ this->found();
+ return;
+ }
+@@ -402,7 +402,7 @@
+ this->head_ = NULL;
+ }
+
+- if (this->head_ = this->headRead()) {
++ if ((this->head_ = this->headRead())) {
+ this->ext_++;
+ this->found();
+ return;
+--- saods9-4.0b7.orig/saotk/fitsy++/outchannel.C
++++ saods9-4.0b7/saotk/fitsy++/outchannel.C
+@@ -7,7 +7,7 @@
+ OutFitsChannel::OutFitsChannel(Tcl_Interp* interp, const char* ch)
+ {
+ int tclMode;
+- if (ch_ = Tcl_GetChannel(interp, (char*)ch, &tclMode))
++ if ((ch_ = Tcl_GetChannel(interp, (char*)ch, &tclMode)))
+ valid_ = 1;
+ }
+
+--- saods9-4.0b7.orig/saotk/fitsy++/outfile.C
++++ saods9-4.0b7/saotk/fitsy++/outfile.C
+@@ -6,7 +6,7 @@
+
+ OutFitsFile::OutFitsFile(const char* fn)
+ {
+- if (fd_ = fopen(fn, "wb"))
++ if ((fd_ = fopen(fn, "wb")))
+ valid_ = 1;
+ }
+
+@@ -23,7 +23,7 @@
+
+ OutFitsFileGZ::OutFitsFileGZ(const char* fn)
+ {
+- if (fd_ = gzopen(fn, "wb"))
++ if ((fd_ = gzopen(fn, "wb")))
+ valid_ = 1;
+ }
+
+--- saods9-4.0b7.orig/saotk/tkpostscript.h
++++ saods9-4.0b7/saotk/tkpostscript.h
+@@ -4,7 +4,7 @@
+
+ // this is copied from tkCanvPs.c
+
+-#include "../../tk8.4.9/generic/tkCanvas.h"
++#include <tk-private/generic/tkCanvas.h>
+
+ typedef struct TkPostscriptInfo {
+ int x, y, width, height; /* Area to print, in canvas pixel
+--- saods9-4.0b7.orig/saotk/Makefile
++++ saods9-4.0b7/saotk/Makefile
+@@ -34,7 +34,6 @@
+ ../$(WCSSUBSDIR)/*.o \
+ ../$(SLADIR)/*.o \
+ ../$(ASTDIR)/*.o \
+- ../$(ZLIBDIR)/*.o \
+ ../$(FUNTOOLSDIR)/filter/*.o \
+ ../$(FUNTOOLSDIR)/fitsy/*.o \
+ ../$(FUNTOOLSDIR)/util/*.o
+--- saods9-4.0b7.orig/saotk/frame/parser.H
++++ saods9-4.0b7/saotk/frame/parser.H
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton interface for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,13 +17,21 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+ /* Tokens. */
+ #ifndef YYTOKENTYPE
+@@ -332,6 +342,7 @@
+ ZOOM_ = 558
+ };
+ #endif
++/* Tokens. */
+ #define REAL 258
+ #define INT 259
+ #define STRING 260
+@@ -637,18 +648,20 @@
+
+
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 54 "parser.Y"
+-typedef union YYSTYPE {
++{
+ char chr;
+ char str[2048];
+ void* ptr;
+ int integer;
+ double real;
+ double vector[3];
+-} YYSTYPE;
+-/* Line 1275 of yacc.c. */
+-#line 652 "parser.H"
++}
++/* Line 1529 of yacc.c. */
++#line 664 "parser.H"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -656,5 +669,3 @@
+
+ extern YYSTYPE frlval;
+
+-
+-
+--- saods9-4.0b7.orig/saotk/frame/prosparser.C
++++ saods9-4.0b7/saotk/frame/prosparser.C
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -45,8 +58,7 @@
+ /* Using locations. */
+ #define YYLSP_NEEDED 0
+
+-/* If NAME_PREFIX is specified substitute the variables and functions
+- names. */
++/* Substitute the variable and function names. */
+ #define yyparse prosparse
+ #define yylex proslex
+ #define yyerror proserror
+@@ -95,6 +107,7 @@
+ VERSION_ = 288
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -142,8 +155,8 @@
+ #define DISCARD_(x) {yyclearin; prosDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+@@ -205,16 +218,23 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 65 "prosparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 218 "prosparser.C"
++}
++/* Line 193 of yacc.c. */
++#line 237 "prosparser.C"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -225,56 +245,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 230 "prosparser.C"
++/* Line 216 of yacc.c. */
++#line 250 "prosparser.C"
++
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
++
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
++# endif
++#endif
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifndef YY_
++# if YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -284,24 +419,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -319,39 +454,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
+-
+-#endif
++ while (YYID (0))
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+ #endif
+
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 3
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 229
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 45
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 41
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 90
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 195
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 288
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned char yytranslate[] =
++static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 34, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -387,7 +516,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned short yyprhs[] =
++static const yytype_uint16 yyprhs[] =
+ {
+ 0, 0, 3, 7, 11, 14, 15, 18, 20, 21,
+ 25, 26, 30, 34, 36, 38, 40, 42, 44, 46,
+@@ -401,8 +530,8 @@
+ 313
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const yysigned_char yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int8 yyrhs[] =
+ {
+ 46, 0, -1, 69, 47, 79, -1, 47, 48, 51,
+ -1, 48, 51, -1, -1, 19, 53, -1, 33, -1,
+@@ -439,7 +568,7 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned short yyrline[] =
++static const yytype_uint16 yyrline[] =
+ {
+ 0, 123, 123, 126, 127, 130, 131, 132, 133, 133,
+ 134, 134, 135, 136, 139, 140, 141, 144, 145, 148,
+@@ -454,9 +583,9 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "INT", "REAL", "STRING", "HOUR",
+@@ -478,7 +607,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+@@ -489,7 +618,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned char yyr1[] =
++static const yytype_uint8 yyr1[] =
+ {
+ 0, 45, 46, 47, 47, 48, 48, 48, 49, 48,
+ 50, 48, 48, 48, 51, 51, 51, 52, 52, 53,
+@@ -504,7 +633,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 3, 3, 2, 0, 2, 1, 0, 3,
+ 0, 3, 3, 1, 1, 1, 1, 1, 1, 1,
+@@ -521,7 +650,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned char yydefact[] =
++static const yytype_uint8 yydefact[] =
+ {
+ 58, 0, 59, 1, 52, 0, 55, 0, 54, 53,
+ 49, 50, 7, 86, 59, 0, 8, 10, 60, 13,
+@@ -545,8 +674,8 @@
+ 27, 25, 25, 72, 69
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const short yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int16 yydefgoto[] =
+ {
+ -1, 1, 14, 15, 33, 34, 32, 66, 22, 78,
+ 53, 86, 139, 140, 168, 106, 156, 67, 87, 116,
+@@ -558,7 +687,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -110
+-static const short yypact[] =
++static const yytype_int16 yypact[] =
+ {
+ -110, 20, 185, -110, -110, 4, -110, 18, -110, -110,
+ -110, -110, -110, -110, 162, 14, -110, -110, -5, -110,
+@@ -583,7 +712,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const short yypgoto[] =
++static const yytype_int16 yypgoto[] =
+ {
+ -110, -110, -110, 136, -110, -110, 125, -17, -110, -45,
+ -44, -12, -109, -110, -77, -57, -110, 75, -46, -110,
+@@ -597,7 +726,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -83
+-static const short yytable[] =
++static const yytype_int16 yytable[] =
+ {
+ 54, 55, 56, 57, 101, 59, 107, 68, 69, 70,
+ 71, 72, 28, 74, 73, 142, 159, -25, 109, 144,
+@@ -624,7 +753,7 @@
+ -5, 0, 0, 0, 0, 0, 0, 0, 0, 13
+ };
+
+-static const short yycheck[] =
++static const yytype_int16 yycheck[] =
+ {
+ 44, 45, 46, 47, 81, 49, 83, 53, 54, 55,
+ 56, 57, 14, 59, 58, 124, 42, 14, 44, 128,
+@@ -653,7 +782,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned char yystos[] =
++static const yytype_uint8 yystos[] =
+ {
+ 0, 46, 69, 0, 16, 19, 20, 22, 23, 24,
+ 25, 29, 33, 44, 47, 48, 66, 67, 70, 82,
+@@ -677,22 +806,6 @@
+ 54, 57, 57, 56, 56
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -718,30 +831,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror ("syntax error: cannot back up");\
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -762,42 +908,96 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -806,45 +1006,52 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
+ int yyrule;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -859,13 +1066,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -875,45 +1078,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -923,70 +1128,192 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
++
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
+
+-
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ if (! yyres)
++ return yystrlen (yystr);
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
++
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
+
+- switch (yytype)
+- {
+- default:
+- break;
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -994,13 +1321,13 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void);
+ #else
+ int yyparse ();
+@@ -1009,10 +1336,10 @@
+
+
+
+-/* The lookahead symbol. */
++/* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+@@ -1025,14 +1352,18 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+ #else
+@@ -1043,13 +1374,19 @@
+ #endif
+ {
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -1060,18 +1397,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -1080,9 +1417,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -1106,8 +1443,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -1120,18 +1456,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -1142,21 +1478,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -1187,19 +1523,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -1214,7 +1548,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -1234,22 +1568,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -1291,12 +1624,12 @@
+
+ case 8:
+ #line 133 "prosparser.Y"
+- {globalSystem = (CoordSystem)yyvsp[0].integer;;}
++ {globalSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 10:
+ #line 134 "prosparser.Y"
+- {globalSystem = WCS; globalSky = (SkyFrame)yyvsp[0].integer;;}
++ {globalSystem = WCS; globalSky = (SkyFrame)(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 16:
+@@ -1306,12 +1639,12 @@
+
+ case 17:
+ #line 144 "prosparser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 18:
+ #line 145 "prosparser.Y"
+- {yyval.real=yyvsp[0].integer;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 19:
+@@ -1326,97 +1659,97 @@
+
+ case 27:
+ #line 164 "prosparser.Y"
+- {yyval.real = 0;;}
++ {(yyval.real) = 0;;}
+ break;
+
+ case 28:
+ #line 165 "prosparser.Y"
+- {yyval.real = yyvsp[0].real;;}
++ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 29:
+ #line 168 "prosparser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 30:
+ #line 169 "prosparser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 31:
+ #line 170 "prosparser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 32:
+ #line 173 "prosparser.Y"
+- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, IMAGE);;}
++ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
+ break;
+
+ case 33:
+ #line 174 "prosparser.Y"
+- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), DEGREES);;}
++ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), DEGREES);;}
+ break;
+
+ case 34:
+ #line 175 "prosparser.Y"
+- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCMIN);;}
++ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCMIN);;}
+ break;
+
+ case 35:
+ #line 176 "prosparser.Y"
+- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCSEC);;}
++ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCSEC);;}
+ break;
+
+ case 36:
+ #line 180 "prosparser.Y"
+ {
+- Vector r = FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 37:
+ #line 187 "prosparser.Y"
+ {
+- Vector r=FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),DEGREES);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r=FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),DEGREES);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 38:
+ #line 194 "prosparser.Y"
+ {
+- Vector r=FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCMIN);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r=FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCMIN);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 39:
+ #line 201 "prosparser.Y"
+ {
+- Vector r=FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCSEC);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r=FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCSEC);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 40:
+ #line 209 "prosparser.Y"
+- {yyval.integer = yyvsp[0].integer;;}
++ {(yyval.integer) = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 41:
+ #line 212 "prosparser.Y"
+- {yyval.real = parseDMS(yyvsp[0].str);;}
++ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 42:
+@@ -1426,13 +1759,13 @@
+ CoordSystem sys = checkWCSSystem();
+ SkyFrame sky = checkWCSSky();
+ if (sky == GALACTIC || sky == ECLIPTIC)
+- r = FITPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), sys, sky);
++ r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
+ else
+- r = FITPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real), sys, sky);
++ r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1445,12 +1778,12 @@
+ #line 230 "prosparser.Y"
+ {
+ Vector r = FITPTR->mapToRef(
+- Vector(hmsToDegree(prossign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),
+- dmsToDegree(prossign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(hmsToDegree(prossign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),
++ dmsToDegree(prossign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ checkWCSSystem(), checkWCSSky());
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1463,79 +1796,79 @@
+ #line 241 "prosparser.Y"
+ {
+ Vector r = FITPTR->mapToRef(
+- Vector(dmsToDegree(prossign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),
+- dmsToDegree(prossign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(dmsToDegree(prossign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),
++ dmsToDegree(prossign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ checkWCSSystem(), checkWCSSky());
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 47:
+ #line 251 "prosparser.Y"
+ {
+- Vector r = FITPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, localSky);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 48:
+ #line 258 "prosparser.Y"
+ {
+- Vector r = FITPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),
++ Vector r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
+ checkWCSSystem(), checkWCSSky());
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 49:
+ #line 267 "prosparser.Y"
+- {yyval.integer = IMAGE;;}
++ {(yyval.integer) = IMAGE;;}
+ break;
+
+ case 50:
+ #line 268 "prosparser.Y"
+- {yyval.integer = PHYSICAL;;}
++ {(yyval.integer) = PHYSICAL;;}
+ break;
+
+ case 51:
+ #line 271 "prosparser.Y"
+- {yyval.integer = yyvsp[0].integer;;}
++ {(yyval.integer) = (yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 52:
+ #line 272 "prosparser.Y"
+- {yyval.integer = FK4;;}
++ {(yyval.integer) = FK4;;}
+ break;
+
+ case 53:
+ #line 273 "prosparser.Y"
+- {yyval.integer = FK5;;}
++ {(yyval.integer) = FK5;;}
+ break;
+
+ case 54:
+ #line 274 "prosparser.Y"
+- {yyval.integer = GALACTIC;;}
++ {(yyval.integer) = GALACTIC;;}
+ break;
+
+ case 55:
+ #line 275 "prosparser.Y"
+- {yyval.integer = ECLIPTIC;;}
++ {(yyval.integer) = ECLIPTIC;;}
+ break;
+
+ case 56:
+ #line 278 "prosparser.Y"
+- {yyval.integer = FK4;;}
++ {(yyval.integer) = FK4;;}
+ break;
+
+ case 57:
+ #line 279 "prosparser.Y"
+- {yyval.integer = FK5;;}
++ {(yyval.integer) = FK5;;}
+ break;
+
+ case 58:
+@@ -1579,15 +1912,15 @@
+
+ case 63:
+ #line 309 "prosparser.Y"
+- {FR->createCircleCmd(Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ {FR->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)),
++ (yyvsp[(5) - (7)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 64:
+ #line 313 "prosparser.Y"
+- {FR->createAnnulusCmd(Vector(yyvsp[-6].vector),
+- yyvsp[-4].real,yyvsp[-2].real,1,
++ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (9)].vector)),
++ (yyvsp[(5) - (9)].real),(yyvsp[(7) - (9)].real),1,
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1599,9 +1932,9 @@
+ case 66:
+ #line 318 "prosparser.Y"
+ {
+- aAnnuli[0] = yyvsp[-7].real;
+- aAnnuli[1] = yyvsp[-5].real;
+- FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
++ aAnnuli[0] = (yyvsp[(5) - (12)].real);
++ aAnnuli[1] = (yyvsp[(7) - (12)].real);
++ FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
+ aNum,aAnnuli,
+ color,1,font,text,localProps,localComment,taglist,cblist);
+ ;}
+@@ -1609,8 +1942,8 @@
+
+ case 67:
+ #line 326 "prosparser.Y"
+- {FR->createAnnulusCmd(Vector(yyvsp[-8].vector),
+- yyvsp[-6].real,yyvsp[-4].real,yyvsp[-2].integer,
++ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (11)].vector)),
++ (yyvsp[(5) - (11)].real),(yyvsp[(7) - (11)].real),(yyvsp[(9) - (11)].integer),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1619,16 +1952,16 @@
+ {
+ // for ellipse annulus
+ aStatus = 1;
+- aCenter = Vector(yyvsp[-6].vector);
+- aAngle = yyvsp[-2].real;
+- aVector[0] = Vector(yyvsp[-4].vector);
++ aCenter = Vector((yyvsp[(3) - (9)].vector));
++ aAngle = (yyvsp[(7) - (9)].real);
++ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
+ aNum = 1;
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+- FR->createEllipseCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ FR->createEllipseCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+@@ -1637,7 +1970,7 @@
+ #line 348 "prosparser.Y"
+ {
+ aStatus = 2;
+- aVector[aNum++] = Vector(yyvsp[-13].vector);
++ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
+ ;}
+ break;
+
+@@ -1646,25 +1979,25 @@
+ {
+ // for box annulus
+ aStatus = 3;
+- aCenter = Vector(yyvsp[-6].vector);
+- aAngle = yyvsp[-2].real;
+- aVector[0] = Vector(yyvsp[-4].vector);
++ aCenter = Vector((yyvsp[(3) - (9)].vector));
++ aAngle = (yyvsp[(7) - (9)].real);
++ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
+ aNum = 1;
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+- FR->createBoxCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 71:
+ #line 370 "prosparser.Y"
+- {FR->createBoxCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ {FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1672,13 +2005,13 @@
+ #line 376 "prosparser.Y"
+ {
+ aStatus = 4;
+- aVector[aNum++] = Vector(yyvsp[-13].vector);
++ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
+ ;}
+ break;
+
+ case 73:
+ #line 382 "prosparser.Y"
+- {FR->createBoxCirclePointCmd(Vector(yyvsp[-2].vector),
++ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1695,12 +2028,12 @@
+
+ case 78:
+ #line 394 "prosparser.Y"
+- {polylist.append(new Vertex(yyvsp[0].vector));;}
++ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
+ break;
+
+ case 81:
+ #line 401 "prosparser.Y"
+- {aAnnuli[aNum++] = yyvsp[0].real;;}
++ {aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 82:
+@@ -1749,19 +2082,18 @@
+
+ case 90:
+ #line 441 "prosparser.Y"
+- {strncpy(localComment,yyvsp[-1].str,80);;}
++ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);;}
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 2091 "prosparser.C"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 1760 "prosparser.C"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -1790,99 +2122,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror ("syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror ("syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (yymsg);
++ }
++ else
++ {
++ yyerror (YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -1892,15 +2190,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -1929,9 +2229,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -1939,11 +2240,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -1963,21 +2265,39 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror ("parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+--- saods9-4.0b7.orig/saotk/frame/fitsdata.C
++++ saods9-4.0b7/saotk/frame/fitsdata.C
+@@ -5,7 +5,7 @@
+ #include <stdlib.h>
+ #include <limits.h>
+ #include <float.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <math.h>
+
+ #include "fitsdata.h"
+--- saods9-4.0b7.orig/saotk/frame/tnglex.C
++++ saods9-4.0b7/saotk/frame/tnglex.C
+@@ -4,7 +4,7 @@
+ /* A lexical scanner generated by flex */
+
+ /* Scanner skeleton version:
+- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/tnglex.C,v 1.76 2005/08/11 21:32:52 joye Exp $
++ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+ #define FLEX_SCANNER
+@@ -12,7 +12,6 @@
+ #define YY_FLEX_MINOR_VERSION 5
+
+
+-
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+ #ifndef __cplusplus
+@@ -24,8 +23,12 @@
+ #ifdef __cplusplus
+
+ #include <stdlib.h>
+-#include <iostream>
+-using namespace std;
++#include <fstream>
++using std::istream;
++using std::ostream;
++#ifndef _WIN32
++#include <unistd.h>
++#endif
+
+ /* Use prototypes in function declarations. */
+ #define YY_USE_PROTOS
+@@ -65,6 +68,7 @@
+ #define YY_PROTO(proto) ()
+ #endif
+
++
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+@@ -570,7 +574,7 @@
+ #define DISCARD 1
+
+ /* rules */
+-#line 574 "tnglex.C"
++#line 578 "tnglex.C"
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -694,13 +698,13 @@
+ YY_DECL
+ {
+ register yy_state_type yy_current_state;
+- register char *yy_cp = NULL, *yy_bp = NULL;
++ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ #line 30 "tnglex.L"
+
+
+-#line 704 "tnglex.C"
++#line 708 "tnglex.C"
+
+ if ( yy_init )
+ {
+@@ -1081,7 +1085,7 @@
+ #line 145 "tnglex.L"
+ ECHO;
+ YY_BREAK
+-#line 1085 "tnglex.C"
++#line 1089 "tnglex.C"
+
+ case YY_END_OF_BUFFER:
+ {
+@@ -1597,6 +1601,7 @@
+ return c;
+ }
+
++
+ void yyFlexLexer::yyrestart( istream* input_file )
+ {
+ if ( ! yy_current_buffer )
+--- saods9-4.0b7.orig/saotk/frame/saoparser.Y
++++ saods9-4.0b7/saotk/frame/saoparser.Y
+@@ -12,8 +12,8 @@
+ #define DISCARD_(x) {yyclearin; saoDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+--- saods9-4.0b7.orig/saotk/frame/parser.C
++++ saods9-4.0b7/saotk/frame/parser.C
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -45,8 +58,7 @@
+ /* Using locations. */
+ #define YYLSP_NEEDED 0
+
+-/* If NAME_PREFIX is specified substitute the variables and functions
+- names. */
++/* Substitute the variable and function names. */
+ #define yyparse frparse
+ #define yylex frlex
+ #define yyerror frerror
+@@ -365,6 +377,7 @@
+ ZOOM_ = 558
+ };
+ #endif
++/* Tokens. */
+ #define REAL 258
+ #define INT 259
+ #define STRING 260
+@@ -682,8 +695,8 @@
+ #define FITSPTR (FRB->findFits(1))
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "frame.h"
+@@ -734,18 +747,25 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 54 "parser.Y"
+-typedef union YYSTYPE {
++{
+ char chr;
+ char str[2048];
+ void* ptr;
+ int integer;
+ double real;
+ double vector[3];
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 749 "parser.C"
++}
++/* Line 193 of yacc.c. */
++#line 768 "parser.C"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -756,56 +776,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 761 "parser.C"
++/* Line 216 of yacc.c. */
++#line 781 "parser.C"
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++#endif
++
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
++
++#ifndef YY_
++# if YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
++# endif
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -815,24 +950,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -850,39 +985,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
++ while (YYID (0))
+
+ #endif
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+-#endif
+-
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 290
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 4160
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 308
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 143
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 926
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 2089
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 558
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned short yytranslate[] =
++static const yytype_uint16 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -945,7 +1074,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned short yyprhs[] =
++static const yytype_uint16 yyprhs[] =
+ {
+ 0, 0, 3, 6, 9, 13, 15, 17, 20, 23,
+ 26, 29, 32, 35, 38, 41, 44, 47, 50, 52,
+@@ -1042,8 +1171,8 @@
+ 3426, 3433, 3436, 3438, 3441, 3444, 3451
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const short yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int16 yyrhs[] =
+ {
+ 309, 0, -1, 82, 311, -1, 39, 330, -1, 38,
+ 60, 5, -1, 52, -1, 56, -1, 58, 334, -1,
+@@ -1394,7 +1523,7 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned short yyrline[] =
++static const yytype_uint16 yyrline[] =
+ {
+ 0, 399, 399, 401, 402, 403, 404, 405, 406, 407,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
+@@ -1492,9 +1621,9 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "REAL", "INT", "STRING", "POINTER",
+@@ -1577,7 +1706,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+@@ -1614,7 +1743,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned short yyr1[] =
++static const yytype_uint16 yyr1[] =
+ {
+ 0, 308, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+@@ -1712,7 +1841,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 2, 2, 3, 1, 1, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
+@@ -1812,7 +1941,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned short yydefact[] =
++static const yytype_uint16 yydefact[] =
+ {
+ 0, 0, 0, 5, 6, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
+@@ -2025,8 +2154,8 @@
+ 830, 826, 165, 547, 582, 778, 778, 683, 680
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const short yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int16 yydefgoto[] =
+ {
+ -1, 42, 1059, 141, 127, 444, 955, 1724, 1725, 634,
+ 635, 1537, 1536, 403, 129, 404, 354, 948, 72, 1022,
+@@ -2048,7 +2177,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -1930
+-static const short yypact[] =
++static const yytype_int16 yypact[] =
+ {
+ 3663, 44, 98, -1930, -1930, 534, 468, 630, 444, 151,
+ 40, 103, 529, -67, 3827, 317, 927, -1930, 40, 727,
+@@ -2262,7 +2391,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const short yypgoto[] =
++static const yytype_int16 yypgoto[] =
+ {
+ -1930, -1930, 1448, -1930, -10, -177, -1930, -1385, -729, 964,
+ -348, -1930, -1930, -7, -238, 14, -237, -371, 349, -704,
+@@ -2286,7 +2415,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -829
+-static const short yytable[] =
++static const yytype_int16 yytable[] =
+ {
+ 132, 142, 128, 844, 1060, 540, 638, 455, 205, 543,
+ 1034, 223, 848, 1037, 819, 822, 1139, 248, 423, 242,
+@@ -2707,7 +2836,7 @@
+ 1043
+ };
+
+-static const short yycheck[] =
++static const yytype_int16 yycheck[] =
+ {
+ 10, 11, 9, 517, 733, 242, 354, 184, 18, 247,
+ 714, 21, 5, 717, 512, 513, 5, 27, 6, 26,
+@@ -3130,7 +3259,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned short yystos[] =
++static const yytype_uint16 yystos[] =
+ {
+ 0, 38, 39, 52, 56, 58, 59, 61, 67, 74,
+ 81, 82, 98, 107, 117, 121, 124, 127, 129, 136,
+@@ -3343,22 +3472,6 @@
+ 423, 312, 5, 324, 324, 315, 315, 414, 414
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -3384,30 +3497,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror ("syntax error: cannot back up");\
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -3428,42 +3574,96 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -3472,45 +3672,52 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
+ int yyrule;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -3525,13 +3732,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -3541,45 +3744,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -3589,70 +3794,192 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
+
+-
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
++
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ if (! yyres)
++ return yystrlen (yystr);
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
++
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
++
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
+
+- switch (yytype)
+- {
+- default:
+- break;
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -3660,13 +3987,13 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void);
+ #else
+ int yyparse ();
+@@ -3675,10 +4002,10 @@
+
+
+
+-/* The lookahead symbol. */
++/* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+@@ -3691,14 +4018,18 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+ #else
+@@ -3709,13 +4040,19 @@
+ #endif
+ {
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -3726,18 +4063,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -3746,9 +4083,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -3772,8 +4109,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -3786,18 +4122,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -3808,21 +4144,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -3853,19 +4189,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -3880,7 +4214,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -3900,22 +4234,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -3952,7 +4285,7 @@
+ {
+ case 4:
+ #line 402 "parser.Y"
+- {FRB->bgColorCmd(yyvsp[0].str);;}
++ {FRB->bgColorCmd((yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 5:
+@@ -3967,12 +4300,12 @@
+
+ case 9:
+ #line 408 "parser.Y"
+- {FRB->colorScaleCmd((FrScale::ColorScaleType)yyvsp[0].integer);;}
++ {FRB->colorScaleCmd((FrScale::ColorScaleType)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 12:
+ #line 411 "parser.Y"
+- {FRB->DATASECCmd(yyvsp[0].integer);;}
++ {FRB->DATASECCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 18:
+@@ -3982,17 +4315,17 @@
+
+ case 19:
+ #line 418 "parser.Y"
+- {FRB->highliteCmd(yyvsp[0].integer);;}
++ {FRB->highliteCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 24:
+ #line 423 "parser.Y"
+- {FRB->mosaicFastCmd(yyvsp[0].integer);;}
++ {FRB->mosaicFastCmd((yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 25:
+ #line 424 "parser.Y"
+- {FRB->nanColorCmd(yyvsp[0].str);;}
++ {FRB->nanColorCmd((yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 30:
+@@ -4017,182 +4350,182 @@
+
+ case 43:
+ #line 444 "parser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 44:
+ #line 445 "parser.Y"
+- {yyval.real=yyvsp[0].integer;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 45:
+ #line 448 "parser.Y"
+- {yydebug=yyvsp[0].integer;;}
++ {yydebug=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 46:
+ #line 449 "parser.Y"
+- {DebugAST=yyvsp[0].integer;;}
++ {DebugAST=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 47:
+ #line 450 "parser.Y"
+- {DebugMosaic=yyvsp[0].integer;;}
++ {DebugMosaic=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 48:
+ #line 451 "parser.Y"
+- {yydebug=yyvsp[0].integer;;}
++ {yydebug=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 49:
+ #line 452 "parser.Y"
+- {DebugPerf=yyvsp[0].integer;;}
++ {DebugPerf=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 50:
+ #line 453 "parser.Y"
+- {DebugWCS=yyvsp[0].integer;;}
++ {DebugWCS=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 51:
+ #line 454 "parser.Y"
+- {DebugBin=yyvsp[0].integer;;}
++ {DebugBin=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 52:
+ #line 455 "parser.Y"
+- {DebugGZ=yyvsp[0].integer;;}
++ {DebugGZ=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 53:
+ #line 456 "parser.Y"
+- {DebugRGB=yyvsp[0].integer;;}
++ {DebugRGB=(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 54:
+ #line 459 "parser.Y"
+- {yyval.integer=(yyvsp[0].integer ? 1 : 0);;}
++ {(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;}
+ break;
+
+ case 55:
+ #line 461 "parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 56:
+ #line 462 "parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 57:
+ #line 463 "parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 58:
+ #line 464 "parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 59:
+ #line 466 "parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 60:
+ #line 467 "parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 61:
+ #line 468 "parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 62:
+ #line 469 "parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 63:
+ #line 472 "parser.Y"
+- {yyval.integer = FrameBase::DEFAULT;;}
++ {(yyval.integer) = FrameBase::DEFAULT;;}
+ break;
+
+ case 64:
+ #line 473 "parser.Y"
+- {yyval.integer = FrameBase::DEFAULT;;}
++ {(yyval.integer) = FrameBase::DEFAULT;;}
+ break;
+
+ case 65:
+ #line 474 "parser.Y"
+- {yyval.integer = FrameBase::FIXED;;}
++ {(yyval.integer) = FrameBase::FIXED;;}
+ break;
+
+ case 66:
+ #line 475 "parser.Y"
+- {yyval.integer = FrameBase::SCIENTIFIC;;}
++ {(yyval.integer) = FrameBase::SCIENTIFIC;;}
+ break;
+
+ case 67:
+ #line 476 "parser.Y"
+- {yyval.integer = FrameBase::INTEGER;;}
++ {(yyval.integer) = FrameBase::INTEGER;;}
+ break;
+
+ case 68:
+ #line 479 "parser.Y"
+- {yyval.integer = FrameBase::ROOTBASE;;}
++ {(yyval.integer) = FrameBase::ROOTBASE;;}
+ break;
+
+ case 69:
+ #line 480 "parser.Y"
+- {yyval.integer = FrameBase::ROOTBASE;;}
++ {(yyval.integer) = FrameBase::ROOTBASE;;}
+ break;
+
+ case 70:
+ #line 481 "parser.Y"
+- {yyval.integer = FrameBase::FULLBASE;;}
++ {(yyval.integer) = FrameBase::FULLBASE;;}
+ break;
+
+ case 71:
+ #line 482 "parser.Y"
+- {yyval.integer = FrameBase::ROOT;;}
++ {(yyval.integer) = FrameBase::ROOT;;}
+ break;
+
+ case 72:
+ #line 483 "parser.Y"
+- {yyval.integer = FrameBase::FULL;;}
++ {(yyval.integer) = FrameBase::FULL;;}
+ break;
+
+ case 73:
+ #line 486 "parser.Y"
+- {yyval.real = 0;;}
++ {(yyval.real) = 0;;}
+ break;
+
+ case 74:
+ #line 487 "parser.Y"
+- {yyval.real = yyvsp[0].real;;}
++ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 75:
+ #line 490 "parser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 76:
+ #line 491 "parser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 77:
+ #line 492 "parser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 78:
+ #line 495 "parser.Y"
+- {yyval.real = parseDMS(yyvsp[0].str);;}
++ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 79:
+@@ -4200,13 +4533,13 @@
+ {
+ Vector r;
+ if (currentSky == GALACTIC || currentSky == ECLIPTIC)
+- r = Vector(yyvsp[-1].real,yyvsp[0].real);
++ r = Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));
+ else
+- r = Vector(yyvsp[-1].real*360./24.,yyvsp[0].real);
++ r = Vector((yyvsp[(1) - (2)].real)*360./24.,(yyvsp[(2) - (2)].real));
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -4218,12 +4551,12 @@
+ case 81:
+ #line 511 "parser.Y"
+ {
+- Vector r = Vector(hmsToDegree(frsign2,yyvsp[-6].integer,yyvsp[-5].integer,yyvsp[-4].real),
+- dmsToDegree(frsign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real));
++ Vector r = Vector(hmsToDegree(frsign2,(yyvsp[(1) - (7)].integer),(yyvsp[(2) - (7)].integer),(yyvsp[(3) - (7)].real)),
++ dmsToDegree(frsign,(yyvsp[(5) - (7)].integer),(yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -4235,377 +4568,377 @@
+ case 83:
+ #line 520 "parser.Y"
+ {
+- Vector r = Vector(dmsToDegree(frsign2,yyvsp[-6].integer,yyvsp[-5].real,yyvsp[-4].real),
+- dmsToDegree(frsign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real));
++ Vector r = Vector(dmsToDegree(frsign2,(yyvsp[(1) - (7)].integer),(yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),
++ dmsToDegree(frsign,(yyvsp[(5) - (7)].integer),(yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 84:
+ #line 529 "parser.Y"
+ {
+- yyval.vector[0] = yyvsp[-1].real;
+- yyval.vector[1] = yyvsp[0].real;
+- yyval.vector[2] = 1;
++ (yyval.vector)[0] = (yyvsp[(1) - (2)].real);
++ (yyval.vector)[1] = (yyvsp[(2) - (2)].real);
++ (yyval.vector)[2] = 1;
+ ;}
+ break;
+
+ case 85:
+ #line 536 "parser.Y"
+- {yyval.integer = currentCoord = IMAGE;;}
++ {(yyval.integer) = currentCoord = IMAGE;;}
+ break;
+
+ case 86:
+ #line 537 "parser.Y"
+- {yyval.integer = currentCoord = PHYSICAL;;}
++ {(yyval.integer) = currentCoord = PHYSICAL;;}
+ break;
+
+ case 87:
+ #line 538 "parser.Y"
+- {yyval.integer = currentCoord = DETECTOR;;}
++ {(yyval.integer) = currentCoord = DETECTOR;;}
+ break;
+
+ case 88:
+ #line 539 "parser.Y"
+- {yyval.integer = currentCoord = AMPLIFIER;;}
++ {(yyval.integer) = currentCoord = AMPLIFIER;;}
+ break;
+
+ case 89:
+ #line 540 "parser.Y"
+- {yyval.integer = (CoordSystem)yyvsp[0].integer;;}
++ {(yyval.integer) = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 90:
+ #line 543 "parser.Y"
+- {yyval.integer = currentCoord = WCS;;}
++ {(yyval.integer) = currentCoord = WCS;;}
+ break;
+
+ case 91:
+ #line 544 "parser.Y"
+- {yyval.integer = currentCoord = WCSA;;}
++ {(yyval.integer) = currentCoord = WCSA;;}
+ break;
+
+ case 92:
+ #line 545 "parser.Y"
+- {yyval.integer = currentCoord = WCSB;;}
++ {(yyval.integer) = currentCoord = WCSB;;}
+ break;
+
+ case 93:
+ #line 546 "parser.Y"
+- {yyval.integer = currentCoord = WCSC;;}
++ {(yyval.integer) = currentCoord = WCSC;;}
+ break;
+
+ case 94:
+ #line 547 "parser.Y"
+- {yyval.integer = currentCoord = WCSD;;}
++ {(yyval.integer) = currentCoord = WCSD;;}
+ break;
+
+ case 95:
+ #line 548 "parser.Y"
+- {yyval.integer = currentCoord = WCSE;;}
++ {(yyval.integer) = currentCoord = WCSE;;}
+ break;
+
+ case 96:
+ #line 549 "parser.Y"
+- {yyval.integer = currentCoord = WCSF;;}
++ {(yyval.integer) = currentCoord = WCSF;;}
+ break;
+
+ case 97:
+ #line 550 "parser.Y"
+- {yyval.integer = currentCoord = WCSG;;}
++ {(yyval.integer) = currentCoord = WCSG;;}
+ break;
+
+ case 98:
+ #line 551 "parser.Y"
+- {yyval.integer = currentCoord = WCSH;;}
++ {(yyval.integer) = currentCoord = WCSH;;}
+ break;
+
+ case 99:
+ #line 552 "parser.Y"
+- {yyval.integer = currentCoord = WCSI;;}
++ {(yyval.integer) = currentCoord = WCSI;;}
+ break;
+
+ case 100:
+ #line 553 "parser.Y"
+- {yyval.integer = currentCoord = WCSJ;;}
++ {(yyval.integer) = currentCoord = WCSJ;;}
+ break;
+
+ case 101:
+ #line 554 "parser.Y"
+- {yyval.integer = currentCoord = WCSK;;}
++ {(yyval.integer) = currentCoord = WCSK;;}
+ break;
+
+ case 102:
+ #line 555 "parser.Y"
+- {yyval.integer = currentCoord = WCSL;;}
++ {(yyval.integer) = currentCoord = WCSL;;}
+ break;
+
+ case 103:
+ #line 556 "parser.Y"
+- {yyval.integer = currentCoord = WCSM;;}
++ {(yyval.integer) = currentCoord = WCSM;;}
+ break;
+
+ case 104:
+ #line 557 "parser.Y"
+- {yyval.integer = currentCoord = WCSN;;}
++ {(yyval.integer) = currentCoord = WCSN;;}
+ break;
+
+ case 105:
+ #line 558 "parser.Y"
+- {yyval.integer = currentCoord = WCSO;;}
++ {(yyval.integer) = currentCoord = WCSO;;}
+ break;
+
+ case 106:
+ #line 559 "parser.Y"
+- {yyval.integer = currentCoord = WCSP;;}
++ {(yyval.integer) = currentCoord = WCSP;;}
+ break;
+
+ case 107:
+ #line 560 "parser.Y"
+- {yyval.integer = currentCoord = WCSQ;;}
++ {(yyval.integer) = currentCoord = WCSQ;;}
+ break;
+
+ case 108:
+ #line 561 "parser.Y"
+- {yyval.integer = currentCoord = WCSR;;}
++ {(yyval.integer) = currentCoord = WCSR;;}
+ break;
+
+ case 109:
+ #line 562 "parser.Y"
+- {yyval.integer = currentCoord = WCSS;;}
++ {(yyval.integer) = currentCoord = WCSS;;}
+ break;
+
+ case 110:
+ #line 563 "parser.Y"
+- {yyval.integer = currentCoord = WCST;;}
++ {(yyval.integer) = currentCoord = WCST;;}
+ break;
+
+ case 111:
+ #line 564 "parser.Y"
+- {yyval.integer = currentCoord = WCSU;;}
++ {(yyval.integer) = currentCoord = WCSU;;}
+ break;
+
+ case 112:
+ #line 565 "parser.Y"
+- {yyval.integer = currentCoord = WCSV;;}
++ {(yyval.integer) = currentCoord = WCSV;;}
+ break;
+
+ case 113:
+ #line 566 "parser.Y"
+- {yyval.integer = currentCoord = WCSW;;}
++ {(yyval.integer) = currentCoord = WCSW;;}
+ break;
+
+ case 114:
+ #line 567 "parser.Y"
+- {yyval.integer = currentCoord = WCSX;;}
++ {(yyval.integer) = currentCoord = WCSX;;}
+ break;
+
+ case 115:
+ #line 568 "parser.Y"
+- {yyval.integer = currentCoord = WCSY;;}
++ {(yyval.integer) = currentCoord = WCSY;;}
+ break;
+
+ case 116:
+ #line 569 "parser.Y"
+- {yyval.integer = currentCoord = WCSZ;;}
++ {(yyval.integer) = currentCoord = WCSZ;;}
+ break;
+
+ case 117:
+ #line 572 "parser.Y"
+- {yyval.integer = CANVAS;;}
++ {(yyval.integer) = CANVAS;;}
+ break;
+
+ case 118:
+ #line 573 "parser.Y"
+- {yyval.integer = PANNER;;}
++ {(yyval.integer) = PANNER;;}
+ break;
+
+ case 119:
+ #line 576 "parser.Y"
+- {yyval.integer = currentSky = FK5;;}
++ {(yyval.integer) = currentSky = FK5;;}
+ break;
+
+ case 120:
+ #line 577 "parser.Y"
+- {yyval.integer = currentSky = FK4;;}
++ {(yyval.integer) = currentSky = FK4;;}
+ break;
+
+ case 121:
+ #line 578 "parser.Y"
+- {yyval.integer = currentSky = FK4;;}
++ {(yyval.integer) = currentSky = FK4;;}
+ break;
+
+ case 122:
+ #line 579 "parser.Y"
+- {yyval.integer = currentSky = FK5;;}
++ {(yyval.integer) = currentSky = FK5;;}
+ break;
+
+ case 123:
+ #line 580 "parser.Y"
+- {yyval.integer = currentSky = FK5;;}
++ {(yyval.integer) = currentSky = FK5;;}
+ break;
+
+ case 124:
+ #line 581 "parser.Y"
+- {yyval.integer = currentSky = ICRS;;}
++ {(yyval.integer) = currentSky = ICRS;;}
+ break;
+
+ case 125:
+ #line 582 "parser.Y"
+- {yyval.integer = currentSky = GALACTIC;;}
++ {(yyval.integer) = currentSky = GALACTIC;;}
+ break;
+
+ case 126:
+ #line 583 "parser.Y"
+- {yyval.integer = currentSky = ECLIPTIC;;}
++ {(yyval.integer) = currentSky = ECLIPTIC;;}
+ break;
+
+ case 127:
+ #line 586 "parser.Y"
+- {yyval.integer=DEGREES;;}
++ {(yyval.integer)=DEGREES;;}
+ break;
+
+ case 128:
+ #line 587 "parser.Y"
+- {yyval.integer=DEGREES;;}
++ {(yyval.integer)=DEGREES;;}
+ break;
+
+ case 129:
+ #line 588 "parser.Y"
+- {yyval.integer=SEXAGESIMAL;;}
++ {(yyval.integer)=SEXAGESIMAL;;}
+ break;
+
+ case 130:
+ #line 589 "parser.Y"
+- {yyval.integer=HMS;;}
++ {(yyval.integer)=HMS;;}
+ break;
+
+ case 131:
+ #line 590 "parser.Y"
+- {yyval.integer=ARCMIN;;}
++ {(yyval.integer)=ARCMIN;;}
+ break;
+
+ case 132:
+ #line 591 "parser.Y"
+- {yyval.integer=ARCSEC;;}
++ {(yyval.integer)=ARCSEC;;}
+ break;
+
+ case 133:
+ #line 594 "parser.Y"
+- {yyval.integer = FrScale::LINEARSCALE;;}
++ {(yyval.integer) = FrScale::LINEARSCALE;;}
+ break;
+
+ case 134:
+ #line 595 "parser.Y"
+- {yyval.integer = FrScale::LOGSCALE;;}
++ {(yyval.integer) = FrScale::LOGSCALE;;}
+ break;
+
+ case 135:
+ #line 596 "parser.Y"
+- {yyval.integer = FrScale::SQUAREDSCALE;;}
++ {(yyval.integer) = FrScale::SQUAREDSCALE;;}
+ break;
+
+ case 136:
+ #line 597 "parser.Y"
+- {yyval.integer = FrScale::SQRTSCALE;;}
++ {(yyval.integer) = FrScale::SQRTSCALE;;}
+ break;
+
+ case 137:
+ #line 598 "parser.Y"
+- {yyval.integer = FrScale::HISTEQUSCALE;;}
++ {(yyval.integer) = FrScale::HISTEQUSCALE;;}
+ break;
+
+ case 138:
+ #line 601 "parser.Y"
+- {yyval.integer = FrameBase::SHMID;;}
++ {(yyval.integer) = FrameBase::SHMID;;}
+ break;
+
+ case 139:
+ #line 602 "parser.Y"
+- {yyval.integer = FrameBase::SHMID;;}
++ {(yyval.integer) = FrameBase::SHMID;;}
+ break;
+
+ case 140:
+ #line 603 "parser.Y"
+- {yyval.integer = FrameBase::KEY;;}
++ {(yyval.integer) = FrameBase::KEY;;}
+ break;
+
+ case 141:
+ #line 606 "parser.Y"
+- {yyval.integer = FrameBase::LOADALL;;}
++ {(yyval.integer) = FrameBase::LOADALL;;}
+ break;
+
+ case 142:
+ #line 607 "parser.Y"
+- {yyval.integer = FrameBase::LOADALL;;}
++ {(yyval.integer) = FrameBase::LOADALL;;}
+ break;
+
+ case 143:
+ #line 608 "parser.Y"
+- {yyval.integer = FrameBase::INCR;;}
++ {(yyval.integer) = FrameBase::INCR;;}
+ break;
+
+ case 144:
+ #line 611 "parser.Y"
+- {yyval.integer = FrameBase::NOCOMPRESS;;}
++ {(yyval.integer) = FrameBase::NOCOMPRESS;;}
+ break;
+
+ case 145:
+ #line 612 "parser.Y"
+- {yyval.integer = FrameBase::NOCOMPRESS;;}
++ {(yyval.integer) = FrameBase::NOCOMPRESS;;}
+ break;
+
+ case 146:
+ #line 613 "parser.Y"
+- {yyval.integer = FrameBase::GZ;;}
++ {(yyval.integer) = FrameBase::GZ;;}
+ break;
+
+ case 147:
+ #line 616 "parser.Y"
+- {FRB->binAboutCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->binAboutCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 148:
+ #line 617 "parser.Y"
+- {FRB->binColsCmd(yyvsp[-2].str,yyvsp[-1].str,yyvsp[0].str);;}
++ {FRB->binColsCmd((yyvsp[(2) - (4)].str),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
+ break;
+
+ case 149:
+ #line 618 "parser.Y"
+- {FRB->binDepthCmd(yyvsp[0].integer);;}
++ {FRB->binDepthCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 152:
+ #line 621 "parser.Y"
+- {FRB->binBufferSizeCmd(yyvsp[0].integer);;}
++ {FRB->binBufferSizeCmd((yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 154:
+ #line 623 "parser.Y"
+- {FRB->binFilterCmd(yyvsp[0].str);;}
++ {FRB->binFilterCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 155:
+ #line 626 "parser.Y"
+- {FRB->binFactorCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->binFactorCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 156:
+ #line 628 "parser.Y"
+- {FRB->binFactorAboutCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->binFactorAboutCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)), Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
+ break;
+
+ case 157:
+ #line 629 "parser.Y"
+- {FRB->binFactorToCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->binFactorToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 158:
+ #line 631 "parser.Y"
+- {FRB->binFactorToAboutCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->binFactorToAboutCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 159:
+@@ -4625,48 +4958,48 @@
+
+ case 162:
+ #line 640 "parser.Y"
+- {FRB->binCmd(Vector(yyvsp[-6].real,yyvsp[-5].real), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
++ {FRB->binCmd(Vector((yyvsp[(1) - (7)].real),(yyvsp[(2) - (7)].real)), (yyvsp[(5) - (7)].str), (yyvsp[(6) - (7)].str), (yyvsp[(7) - (7)].str));;}
+ break;
+
+ case 163:
+ #line 643 "parser.Y"
+- {FRB->binCmd(Vector(yyvsp[-10].real,yyvsp[-9].real), yyvsp[-8].integer, Vector(yyvsp[-7].real,yyvsp[-6].real), yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
++ {FRB->binCmd(Vector((yyvsp[(1) - (11)].real),(yyvsp[(2) - (11)].real)), (yyvsp[(3) - (11)].integer), Vector((yyvsp[(4) - (11)].real),(yyvsp[(5) - (11)].real)), (yyvsp[(8) - (11)].str), (yyvsp[(9) - (11)].str), (yyvsp[(10) - (11)].str), (yyvsp[(11) - (11)].str));;}
+ break;
+
+ case 164:
+ #line 645 "parser.Y"
+- {FRB->binCmd(Vector(yyvsp[-7].real,yyvsp[-6].real), Vector(yyvsp[-4].real,yyvsp[-3].real), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
++ {FRB->binCmd(Vector((yyvsp[(1) - (8)].real),(yyvsp[(2) - (8)].real)), Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real)), (yyvsp[(6) - (8)].str), (yyvsp[(7) - (8)].str), (yyvsp[(8) - (8)].str));;}
+ break;
+
+ case 165:
+ #line 648 "parser.Y"
+- {FRB->binCmd(Vector(yyvsp[-11].real,yyvsp[-10].real), yyvsp[-9].integer, Vector(yyvsp[-8].real,yyvsp[-7].real), Vector(yyvsp[-5].real,yyvsp[-4].real),
+- yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
++ {FRB->binCmd(Vector((yyvsp[(1) - (12)].real),(yyvsp[(2) - (12)].real)), (yyvsp[(3) - (12)].integer), Vector((yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real)), Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
++ (yyvsp[(9) - (12)].str), (yyvsp[(10) - (12)].str), (yyvsp[(11) - (12)].str), (yyvsp[(12) - (12)].str));;}
+ break;
+
+ case 170:
+ #line 656 "parser.Y"
+- {FRB->clipZScaleParamCmd(yyvsp[-2].real,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->clipZScaleParamCmd((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 171:
+ #line 657 "parser.Y"
+- {FRB->clipPreserveCmd(yyvsp[0].integer);;}
++ {FRB->clipPreserveCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 172:
+ #line 660 "parser.Y"
+- {FRB->clipUserCmd(yyvsp[-1].real,yyvsp[0].real);;}
++ {FRB->clipUserCmd((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));;}
+ break;
+
+ case 173:
+ #line 661 "parser.Y"
+- {FRB->clipUserLowCmd(yyvsp[0].real);;}
++ {FRB->clipUserLowCmd((yyvsp[(2) - (2)].real));;}
+ break;
+
+ case 174:
+ #line 662 "parser.Y"
+- {FRB->clipUserHighCmd(yyvsp[0].real);;}
++ {FRB->clipUserHighCmd((yyvsp[(2) - (2)].real));;}
+ break;
+
+ case 175:
+@@ -4681,7 +5014,7 @@
+
+ case 177:
+ #line 669 "parser.Y"
+- {FRB->clipModeCmd(yyvsp[0].real);;}
++ {FRB->clipModeCmd((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 178:
+@@ -4706,7 +5039,7 @@
+
+ case 183:
+ #line 677 "parser.Y"
+- {FRB->clipMinMaxParamCmd(yyvsp[0].integer);;}
++ {FRB->clipMinMaxParamCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 184:
+@@ -4736,40 +5069,40 @@
+
+ case 189:
+ #line 688 "parser.Y"
+- {FR->colormapCmd(yyvsp[-6].integer, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].integer, (unsigned short*)yyvsp[-2].ptr,
+- (unsigned char*)yyvsp[-1].ptr, yyvsp[0].integer);;}
++ {FR->colormapCmd((yyvsp[(1) - (7)].integer), (yyvsp[(2) - (7)].real), (yyvsp[(3) - (7)].real), (yyvsp[(4) - (7)].integer), (unsigned short*)(yyvsp[(5) - (7)].ptr),
++ (unsigned char*)(yyvsp[(6) - (7)].ptr), (yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 190:
+ #line 691 "parser.Y"
+- {FRRGB->colormapCmd(yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real,yyvsp[-2].real,(unsigned char*)yyvsp[-1].ptr,yyvsp[0].integer);;}
++ {FRRGB->colormapCmd((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real),(yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real),(yyvsp[(6) - (9)].real),(yyvsp[(7) - (9)].real),(unsigned char*)(yyvsp[(8) - (9)].ptr),(yyvsp[(9) - (9)].integer));;}
+ break;
+
+ case 191:
+ #line 693 "parser.Y"
+- {FRB->colormapAreaCmd(yyvsp[-1].integer,(FrameBase::ColormapMode)yyvsp[0].integer);;}
++ {FRB->colormapAreaCmd((yyvsp[(2) - (3)].integer),(FrameBase::ColormapMode)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 193:
+ #line 696 "parser.Y"
+- {FR->colormapMotionCmd(yyvsp[-6].integer, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].integer, (unsigned short*)yyvsp[-2].ptr,
+- (unsigned char*)yyvsp[-1].ptr, yyvsp[0].integer);;}
++ {FR->colormapMotionCmd((yyvsp[(2) - (8)].integer), (yyvsp[(3) - (8)].real), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].integer), (unsigned short*)(yyvsp[(6) - (8)].ptr),
++ (unsigned char*)(yyvsp[(7) - (8)].ptr), (yyvsp[(8) - (8)].integer));;}
+ break;
+
+ case 194:
+ #line 700 "parser.Y"
+- {FRRGB->colormapMotionCmd(yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real,yyvsp[-2].real,(unsigned char*)yyvsp[-1].ptr,yyvsp[0].integer);;}
++ {FRRGB->colormapMotionCmd((yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(unsigned char*)(yyvsp[(9) - (10)].ptr),(yyvsp[(10) - (10)].integer));;}
+ break;
+
+ case 195:
+ #line 702 "parser.Y"
+- {FR->colormapEndCmd(yyvsp[-6].integer, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].integer, (unsigned short*)yyvsp[-2].ptr,
+- (unsigned char*)yyvsp[-1].ptr, yyvsp[0].integer);;}
++ {FR->colormapEndCmd((yyvsp[(2) - (8)].integer), (yyvsp[(3) - (8)].real), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].integer), (unsigned short*)(yyvsp[(6) - (8)].ptr),
++ (unsigned char*)(yyvsp[(7) - (8)].ptr), (yyvsp[(8) - (8)].integer));;}
+ break;
+
+ case 196:
+ #line 705 "parser.Y"
+- {FRRGB->colormapEndCmd(yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real,yyvsp[-2].real,(unsigned char*)yyvsp[-1].ptr,yyvsp[0].integer);;}
++ {FRRGB->colormapEndCmd((yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(unsigned char*)(yyvsp[(9) - (10)].ptr),(yyvsp[(10) - (10)].integer));;}
+ break;
+
+ case 197:
+@@ -4779,27 +5112,27 @@
+
+ case 198:
+ #line 709 "parser.Y"
+- {FRB->colormapBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->colormapBeginCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 199:
+ #line 712 "parser.Y"
+- {yyval.integer = FrameBase::CENTER;;}
++ {(yyval.integer) = FrameBase::CENTER;;}
+ break;
+
+ case 200:
+ #line 713 "parser.Y"
+- {yyval.integer = FrameBase::CLICK;;}
++ {(yyval.integer) = FrameBase::CLICK;;}
+ break;
+
+ case 201:
+ #line 716 "parser.Y"
+- {FRB->contourSetColorCmd(yyvsp[0].str);;}
++ {FRB->contourSetColorCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 202:
+ #line 718 "parser.Y"
+- {FRB->contourCopyCmd((CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->contourCopyCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (SkyFrame)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 204:
+@@ -4814,32 +5147,32 @@
+
+ case 206:
+ #line 723 "parser.Y"
+- {FRB->contourLoadCmd(yyvsp[-4].str, yyvsp[-3].integer, yyvsp[-2].str, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->contourLoadCmd((yyvsp[(2) - (6)].str), (yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].str), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFrame)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 207:
+ #line 725 "parser.Y"
+- {FRB->contourPasteCmd(yyvsp[-4].str, yyvsp[-3].integer, yyvsp[-2].ptr, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->contourPasteCmd((yyvsp[(2) - (6)].str), (yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].ptr), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFrame)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 208:
+ #line 727 "parser.Y"
+- {FRB->contourSaveCmd(yyvsp[-2].str, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->contourSaveCmd((yyvsp[(2) - (4)].str), (CoordSystem)(yyvsp[(3) - (4)].integer), (SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 209:
+ #line 728 "parser.Y"
+- {FRB->contourSetLineWidthCmd(yyvsp[0].integer);;}
++ {FRB->contourSetLineWidthCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 210:
+ #line 732 "parser.Y"
+- {FRB->contourCreateCmd(yyvsp[-4].str,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].integer);;}
++ {FRB->contourCreateCmd((yyvsp[(1) - (5)].str),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 211:
+ #line 734 "parser.Y"
+- {FRB->contourCreateCmd(yyvsp[-4].str,yyvsp[-3].integer,yyvsp[-2].real,yyvsp[-1].integer,yyvsp[0].str);;}
++ {FRB->contourCreateCmd((yyvsp[(1) - (5)].str),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].str));;}
+ break;
+
+ case 212:
+@@ -4850,62 +5183,62 @@
+
+ case 213:
+ #line 740 "parser.Y"
+- {yyval.integer = FVContour::SMOOTH;;}
++ {(yyval.integer) = FVContour::SMOOTH;;}
+ break;
+
+ case 214:
+ #line 741 "parser.Y"
+- {yyval.integer = FVContour::BLOCK;;}
++ {(yyval.integer) = FVContour::BLOCK;;}
+ break;
+
+ case 215:
+ #line 745 "parser.Y"
+- {FRB->crosshairBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
++ {FRB->crosshairBeginCmd(Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)), (InternalSystem)(yyvsp[(3) - (5)].integer));;}
+ break;
+
+ case 216:
+ #line 747 "parser.Y"
+- {FRB->crosshairMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
++ {FRB->crosshairMotionCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (InternalSystem)(yyvsp[(2) - (4)].integer));;}
+ break;
+
+ case 217:
+ #line 749 "parser.Y"
+- {FRB->crosshairCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
++ {FRB->crosshairCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (InternalSystem)(yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 218:
+ #line 751 "parser.Y"
+- {FRB->crosshairBeginCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-1].integer);;}
++ {FRB->crosshairBeginCmd(Vector((yyvsp[(4) - (4)].vector)), (CoordSystem)(yyvsp[(3) - (4)].integer));;}
+ break;
+
+ case 219:
+ #line 753 "parser.Y"
+- {FRB->crosshairMotionCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-1].integer);;}
++ {FRB->crosshairMotionCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(2) - (3)].integer));;}
+ break;
+
+ case 220:
+ #line 755 "parser.Y"
+- {FRB->crosshairCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
++ {FRB->crosshairCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
+ break;
+
+ case 221:
+ #line 756 "parser.Y"
+- {FRB->crosshairCmd(yyvsp[0].integer);;}
++ {FRB->crosshairCmd((yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 222:
+ #line 757 "parser.Y"
+- {FRB->crosshairWarpCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->crosshairWarpCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 224:
+ #line 761 "parser.Y"
+- {FRB->exportJPEGCmd(yyvsp[-1].str,yyvsp[0].real);;}
++ {FRB->exportJPEGCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].real));;}
+ break;
+
+ case 228:
+ #line 767 "parser.Y"
+- {FRB->fitsyHasExtCmd(yyvsp[0].str);;}
++ {FRB->fitsyHasExtCmd((yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 229:
+@@ -4940,12 +5273,12 @@
+
+ case 244:
+ #line 785 "parser.Y"
+- {FRB->getHistogramCmd(yyvsp[-1].str,yyvsp[0].str);;}
++ {FRB->getHistogramCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 245:
+ #line 787 "parser.Y"
+- {FRB->getHorzCutCmd(yyvsp[-4].str,yyvsp[-3].str,Vector(yyvsp[-2].real,yyvsp[-1].real),(InternalSystem)yyvsp[0].integer);;}
++ {FRB->getHorzCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(InternalSystem)(yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 248:
+@@ -4965,7 +5298,7 @@
+
+ case 253:
+ #line 796 "parser.Y"
+- {FRB->getPixelTableCmd(Vector(yyvsp[-3].real,yyvsp[-2].real), (InternalSystem)yyvsp[-4].integer, yyvsp[-1].integer, yyvsp[0].str);;}
++ {FRB->getPixelTableCmd(Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)), (InternalSystem)(yyvsp[(3) - (7)].integer), (yyvsp[(6) - (7)].integer), (yyvsp[(7) - (7)].str));;}
+ break;
+
+ case 257:
+@@ -4975,12 +5308,12 @@
+
+ case 258:
+ #line 802 "parser.Y"
+- {FRB->getValueCmd(Vector(yyvsp[-1].real,yyvsp[0].real),(InternalSystem)yyvsp[-2].integer);;}
++ {FRB->getValueCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(InternalSystem)(yyvsp[(2) - (4)].integer));;}
+ break;
+
+ case 259:
+ #line 804 "parser.Y"
+- {FRB->getVertCutCmd(yyvsp[-4].str,yyvsp[-3].str,Vector(yyvsp[-2].real,yyvsp[-1].real),(InternalSystem)yyvsp[0].integer);;}
++ {FRB->getVertCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(InternalSystem)(yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 261:
+@@ -5025,7 +5358,7 @@
+
+ case 270:
+ #line 817 "parser.Y"
+- {FRB->getBinColsMinMaxCmd(yyvsp[0].str);;}
++ {FRB->getBinColsMinMaxCmd((yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 271:
+@@ -5065,7 +5398,7 @@
+
+ case 280:
+ #line 831 "parser.Y"
+- {FRB->getClipCmd(yyvsp[0].real);;}
++ {FRB->getClipCmd((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 281:
+@@ -5100,7 +5433,7 @@
+
+ case 287:
+ #line 843 "parser.Y"
+- {FRB->getContourCmd((CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
++ {FRB->getContourCmd((CoordSystem)(yyvsp[(1) - (2)].integer),(SkyFrame)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 288:
+@@ -5125,24 +5458,24 @@
+
+ case 293:
+ #line 852 "parser.Y"
+- {FRB->getContourLevelCmd(yyvsp[-3].integer,yyvsp[-2].real,yyvsp[-1].real,(FrScale::ColorScaleType)yyvsp[0].integer);;}
++ {FRB->getContourLevelCmd((yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real),(FrScale::ColorScaleType)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 294:
+ #line 856 "parser.Y"
+- {FRB->getCoordCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), (InternalSystem)yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
+- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getCoordCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), (InternalSystem)(yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
++ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 295:
+ #line 860 "parser.Y"
+- {FRB->getCrosshairCmd((InternalSystem)yyvsp[0].integer);;}
++ {FRB->getCrosshairCmd((InternalSystem)(yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 296:
+ #line 862 "parser.Y"
+- {FRB->getCrosshairCmd((CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer, (SkyFormat)yyvsp[-1].integer,
+- (FrameBase::Precision)yyvsp[0].integer);}
++ {FRB->getCrosshairCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (SkyFrame)(yyvsp[(2) - (4)].integer), (SkyFormat)(yyvsp[(3) - (4)].integer),
++ (FrameBase::Precision)(yyvsp[(4) - (4)].integer));}
+ break;
+
+ case 297:
+@@ -5152,13 +5485,13 @@
+
+ case 298:
+ #line 867 "parser.Y"
+- {FRB->getCursorCmd((InternalSystem)yyvsp[0].integer);;}
++ {FRB->getCursorCmd((InternalSystem)(yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 299:
+ #line 869 "parser.Y"
+- {FRB->getCursorCmd((CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer, (SkyFormat)yyvsp[-1].integer,
+- (FrameBase::Precision)yyvsp[0].integer);;}
++ {FRB->getCursorCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (SkyFrame)(yyvsp[(2) - (4)].integer), (SkyFormat)(yyvsp[(3) - (4)].integer),
++ (FrameBase::Precision)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 300:
+@@ -5168,36 +5501,36 @@
+
+ case 301:
+ #line 875 "parser.Y"
+- {FRB->getDataValuesCmd(1, Vector(yyvsp[-3].vector),
+- (CoordSystem)yyvsp[-5].integer, (SkyFrame)yyvsp[-4].integer, Vector(yyvsp[-2].real,yyvsp[-1].real), yyvsp[0].str);;}
++ {FRB->getDataValuesCmd(1, Vector((yyvsp[(3) - (6)].vector)),
++ (CoordSystem)(yyvsp[(1) - (6)].integer), (SkyFrame)(yyvsp[(2) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), (yyvsp[(6) - (6)].str));;}
+ break;
+
+ case 302:
+ #line 878 "parser.Y"
+- {FRB->getDataValuesCmd(yyvsp[-6].integer, Vector(yyvsp[-3].vector),
+- (CoordSystem)yyvsp[-5].integer, (SkyFrame)yyvsp[-4].integer, Vector(yyvsp[-2].real,yyvsp[-1].real), yyvsp[0].str);;}
++ {FRB->getDataValuesCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].vector)),
++ (CoordSystem)(yyvsp[(2) - (7)].integer), (SkyFrame)(yyvsp[(3) - (7)].integer), Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)), (yyvsp[(7) - (7)].str));;}
+ break;
+
+ case 303:
+ #line 881 "parser.Y"
+- {FRB->getDataValuesCmd(Vector(yyvsp[-3].real,yyvsp[-2].real),(InternalSystem)yyvsp[-4].integer,
+- Vector(yyvsp[-1].integer,yyvsp[0].integer));;}
++ {FRB->getDataValuesCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),(InternalSystem)(yyvsp[(1) - (5)].integer),
++ Vector((yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer)));;}
+ break;
+
+ case 304:
+ #line 885 "parser.Y"
+- {FRB->getInfoCmd(yyvsp[0].str);;}
++ {FRB->getInfoCmd((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 305:
+ #line 887 "parser.Y"
+- {FRB->getInfoCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), (InternalSystem)yyvsp[-5].integer,
+- (SkyFrame)yyvsp[-2].integer, (SkyFormat)yyvsp[-1].integer, yyvsp[0].str);;}
++ {FRB->getInfoCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), (InternalSystem)(yyvsp[(1) - (6)].integer),
++ (SkyFrame)(yyvsp[(4) - (6)].integer), (SkyFormat)(yyvsp[(5) - (6)].integer), (yyvsp[(6) - (6)].str));;}
+ break;
+
+ case 306:
+ #line 891 "parser.Y"
+- {FR->iisGetCmd((char*)yyvsp[-4].ptr,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FR->iisGetCmd((char*)(yyvsp[(1) - (5)].ptr),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 307:
+@@ -5222,12 +5555,12 @@
+
+ case 312:
+ #line 899 "parser.Y"
+- {FRB->iisGetFileNameCmd(yyvsp[0].integer);;}
++ {FRB->iisGetFileNameCmd((yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 313:
+ #line 900 "parser.Y"
+- {FRB->iisGetFileNameCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->iisGetFileNameCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 314:
+@@ -5237,12 +5570,12 @@
+
+ case 316:
+ #line 905 "parser.Y"
+- {FRB->getFitsHeaderCmd(yyvsp[0].integer);;}
++ {FRB->getFitsHeaderCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 317:
+ #line 906 "parser.Y"
+- {FRB->getFitsHeaderKeywordCmd(yyvsp[-2].integer,yyvsp[0].str);;}
++ {FRB->getFitsHeaderKeywordCmd((yyvsp[(2) - (4)].integer),(yyvsp[(4) - (4)].str));;}
+ break;
+
+ case 319:
+@@ -5257,7 +5590,7 @@
+
+ case 321:
+ #line 911 "parser.Y"
+- {FRB->getFitsSizeCmd((CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getFitsSizeCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (SkyFormat)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 322:
+@@ -5272,18 +5605,18 @@
+
+ case 324:
+ #line 917 "parser.Y"
+- {FRB->getFitsFileNameCmd((FrameBase::FileNameType)yyvsp[0].integer);;}
++ {FRB->getFitsFileNameCmd((FrameBase::FileNameType)(yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 325:
+ #line 919 "parser.Y"
+- {FRB->getFitsFileNameCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer,
+- (FrameBase::FileNameType)yyvsp[-3].integer);;}
++ {FRB->getFitsFileNameCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (InternalSystem)(yyvsp[(2) - (4)].integer),
++ (FrameBase::FileNameType)(yyvsp[(1) - (4)].integer));;}
+ break;
+
+ case 326:
+ #line 922 "parser.Y"
+- {FRB->getFitsFileNameCmd(yyvsp[0].integer, (FrameBase::FileNameType)yyvsp[-2].integer);;}
++ {FRB->getFitsFileNameCmd((yyvsp[(3) - (3)].integer), (FrameBase::FileNameType)(yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 327:
+@@ -5293,7 +5626,7 @@
+
+ case 328:
+ #line 926 "parser.Y"
+- {FRB->getFitsObjectNameCmd(yyvsp[0].integer);;}
++ {FRB->getFitsObjectNameCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 329:
+@@ -5323,7 +5656,7 @@
+
+ case 334:
+ #line 938 "parser.Y"
+- {FRB->getRotateCmd((FrameBase::Precision)yyvsp[0].integer);;}
++ {FRB->getRotateCmd((FrameBase::Precision)(yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 335:
+@@ -5343,23 +5676,23 @@
+
+ case 338:
+ #line 947 "parser.Y"
+- {FRB->getWCSZoomCmd((CoordSystem)yyvsp[-1].integer, (FrameBase::Precision)yyvsp[0].integer);;}
++ {FRB->getWCSZoomCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (FrameBase::Precision)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 339:
+ #line 948 "parser.Y"
+- {FRB->getWCSNameCmd((CoordSystem)yyvsp[0].integer);;}
++ {FRB->getWCSNameCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 340:
+ #line 951 "parser.Y"
+- {FRB->getZoomCmd((FrameBase::Precision)yyvsp[0].integer);;}
++ {FRB->getZoomCmd((FrameBase::Precision)(yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 341:
+ #line 955 "parser.Y"
+- {FRB->gridCmd((CoordSystem)yyvsp[-4].integer, (SkyFrame)yyvsp[-3].integer, (SkyFormat)yyvsp[-2].integer,
+- (Grid::GridType)yyvsp[-1].integer, yyvsp[0].str);;}
++ {FRB->gridCmd((CoordSystem)(yyvsp[(2) - (6)].integer), (SkyFrame)(yyvsp[(3) - (6)].integer), (SkyFormat)(yyvsp[(4) - (6)].integer),
++ (Grid::GridType)(yyvsp[(5) - (6)].integer), (yyvsp[(6) - (6)].str));;}
+ break;
+
+ case 342:
+@@ -5369,12 +5702,12 @@
+
+ case 343:
+ #line 960 "parser.Y"
+- {yyval.integer=Grid::ANALYSIS;;}
++ {(yyval.integer)=Grid::ANALYSIS;;}
+ break;
+
+ case 344:
+ #line 961 "parser.Y"
+- {yyval.integer=Grid::PUBLICATION;;}
++ {(yyval.integer)=Grid::PUBLICATION;;}
+ break;
+
+ case 345:
+@@ -5434,7 +5767,7 @@
+
+ case 358:
+ #line 977 "parser.Y"
+- {FRB->hasSystemCmd((CoordSystem)yyvsp[0].integer);;}
++ {FRB->hasSystemCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 360:
+@@ -5449,7 +5782,7 @@
+
+ case 362:
+ #line 983 "parser.Y"
+- {FRB->hasFitsExtCmd(yyvsp[0].integer);;}
++ {FRB->hasFitsExtCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 363:
+@@ -5489,22 +5822,22 @@
+
+ case 370:
+ #line 995 "parser.Y"
+- {FRB->hasWCSCmd((CoordSystem)yyvsp[0].integer);;}
++ {FRB->hasWCSCmd((CoordSystem)(yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 371:
+ #line 996 "parser.Y"
+- {FRB->hasWCSEquCmd((CoordSystem)yyvsp[0].integer);;}
++ {FRB->hasWCSEquCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 372:
+ #line 997 "parser.Y"
+- {FRB->hasWCSLinearCmd((CoordSystem)yyvsp[0].integer);;}
++ {FRB->hasWCSLinearCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 373:
+ #line 1000 "parser.Y"
+- {FR->iisCmd(yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FR->iisCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 374:
+@@ -5514,12 +5847,12 @@
+
+ case 375:
+ #line 1002 "parser.Y"
+- {FR->iisMessageCmd(yyvsp[0].str);;}
++ {FR->iisMessageCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 378:
+ #line 1006 "parser.Y"
+- {FR->iisSetCmd((const char*)yyvsp[-4].ptr,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FR->iisSetCmd((const char*)(yyvsp[(2) - (6)].ptr),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 379:
+@@ -5529,656 +5862,656 @@
+
+ case 380:
+ #line 1010 "parser.Y"
+- {FR->iisWCSCmd(Matrix(yyvsp[-8].real,yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real),Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
++ {FR->iisWCSCmd(Matrix((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real)),Vector((yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].real)),(yyvsp[(10) - (10)].integer));;}
+ break;
+
+ case 381:
+ #line 1013 "parser.Y"
+- {FRB->iisSetFileNameCmd(yyvsp[0].str);;}
++ {FRB->iisSetFileNameCmd((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 382:
+ #line 1014 "parser.Y"
+- {FRB->iisSetFileNameCmd(yyvsp[-1].str,yyvsp[0].integer);;}
++ {FRB->iisSetFileNameCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 383:
+ #line 1018 "parser.Y"
+- {FR->iisSetCursorCmd(Vector(yyvsp[-2].integer,yyvsp[-1].integer),CANVAS);;}
++ {FR->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),CANVAS);;}
+ break;
+
+ case 384:
+ #line 1020 "parser.Y"
+- {FR->iisSetCursorCmd(Vector(yyvsp[-2].integer,yyvsp[-1].integer),(CoordSystem)yyvsp[0].integer);;}
++ {FR->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),(CoordSystem)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 385:
+ #line 1021 "parser.Y"
+- {FR->iisCursorModeCmd(yyvsp[0].integer);;}
++ {FR->iisCursorModeCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 389:
+ #line 1029 "parser.Y"
+- {FRB->loadArrAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadArrAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 390:
+ #line 1030 "parser.Y"
+- {FRB->loadArrAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadArrAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 391:
+ #line 1031 "parser.Y"
+- {FRB->loadArrChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
++ {FRB->loadArrChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 392:
+ #line 1032 "parser.Y"
+- {FRB->loadArrMMapCmd(yyvsp[-1].str);;}
++ {FRB->loadArrMMapCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 393:
+ #line 1033 "parser.Y"
+- {FRB->loadArrMMapIncrCmd(yyvsp[-1].str);;}
++ {FRB->loadArrMMapIncrCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 394:
+ #line 1035 "parser.Y"
+- {FRB->loadArrShareCmd((FrameBase::ShmType)yyvsp[-1].integer, yyvsp[0].integer, yyvsp[-3].str);;}
++ {FRB->loadArrShareCmd((FrameBase::ShmType)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(1) - (4)].str));;}
+ break;
+
+ case 395:
+ #line 1036 "parser.Y"
+- {FRB->loadArrSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadArrSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 396:
+ #line 1037 "parser.Y"
+- {FRB->loadArrSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadArrSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 397:
+ #line 1038 "parser.Y"
+- {FRB->loadArrVarCmd(yyvsp[0].str, yyvsp[-2].str);;}
++ {FRB->loadArrVarCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 399:
+ #line 1042 "parser.Y"
+- {FRB->loadArrRGBCubeAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadArrRGBCubeAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 400:
+ #line 1043 "parser.Y"
+- {FRB->loadArrRGBCubeAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadArrRGBCubeAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 401:
+ #line 1044 "parser.Y"
+- {FRB->loadArrRGBCubeChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
++ {FRB->loadArrRGBCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 402:
+ #line 1045 "parser.Y"
+- {FRB->loadArrRGBCubeMMapCmd(yyvsp[-1].str);;}
++ {FRB->loadArrRGBCubeMMapCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 403:
+ #line 1046 "parser.Y"
+- {FRB->loadArrRGBCubeMMapIncrCmd(yyvsp[-1].str);;}
++ {FRB->loadArrRGBCubeMMapIncrCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 404:
+ #line 1048 "parser.Y"
+- {FRB->loadArrRGBCubeShareCmd((FrameBase::ShmType)yyvsp[-1].integer, yyvsp[0].integer, yyvsp[-3].str);;}
++ {FRB->loadArrRGBCubeShareCmd((FrameBase::ShmType)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(1) - (4)].str));;}
+ break;
+
+ case 405:
+ #line 1049 "parser.Y"
+- {FRB->loadArrRGBCubeSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadArrRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 406:
+ #line 1050 "parser.Y"
+- {FRB->loadArrRGBCubeSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadArrRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 407:
+ #line 1051 "parser.Y"
+- {FRB->loadArrRGBCubeVarCmd(yyvsp[0].str, yyvsp[-2].str);;}
++ {FRB->loadArrRGBCubeVarCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 408:
+ #line 1054 "parser.Y"
+- {FRB->loadFitsAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadFitsAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 409:
+ #line 1055 "parser.Y"
+- {FRB->loadFitsAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadFitsAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 410:
+ #line 1056 "parser.Y"
+- {FRB->loadFitsChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
++ {FRB->loadFitsChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 411:
+ #line 1058 "parser.Y"
+- {FRB->loadFitsMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadFitsMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 412:
+ #line 1060 "parser.Y"
+- {FRB->loadFitsSMMapCmd(yyvsp[-3].str,yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadFitsSMMapCmd((yyvsp[(1) - (4)].str),(yyvsp[(2) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 413:
+ #line 1062 "parser.Y"
+- {FRB->loadFitsMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadFitsMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 414:
+ #line 1064 "parser.Y"
+- {FRB->loadFitsShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadFitsShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 415:
+ #line 1067 "parser.Y"
+- {FRB->loadFitsSShareCmd((FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-5].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadFitsSShareCmd((FrameBase::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str),
++ (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 416:
+ #line 1069 "parser.Y"
+- {FRB->loadFitsSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadFitsSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 417:
+ #line 1070 "parser.Y"
+- {FRB->loadFitsSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadFitsSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 418:
+ #line 1072 "parser.Y"
+- {FRB->loadFitsVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadFitsVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 422:
+ #line 1076 "parser.Y"
+- {FRB->loadFitsSlaveCmd(yyvsp[-1].str,(FitsFile*)yyvsp[0].ptr);;}
++ {FRB->loadFitsSlaveCmd((yyvsp[(2) - (3)].str),(FitsFile*)(yyvsp[(3) - (3)].ptr));;}
+ break;
+
+ case 423:
+ #line 1079 "parser.Y"
+- {FRB->loadDataCubeAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadDataCubeAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 424:
+ #line 1080 "parser.Y"
+- {FRB->loadDataCubeAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadDataCubeAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 425:
+ #line 1081 "parser.Y"
+- {FRB->loadDataCubeChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
++ {FRB->loadDataCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 426:
+ #line 1083 "parser.Y"
+- {FRB->loadDataCubeMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadDataCubeMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 427:
+ #line 1085 "parser.Y"
+- {FRB->loadDataCubeMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadDataCubeMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 428:
+ #line 1087 "parser.Y"
+- {FRB->loadDataCubeShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadDataCubeShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 429:
+ #line 1089 "parser.Y"
+- {FRB->loadDataCubeSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadDataCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 430:
+ #line 1090 "parser.Y"
+- {FRB->loadDataCubeSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadDataCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 431:
+ #line 1092 "parser.Y"
+- {FRB->loadDataCubeVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadDataCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 438:
+ #line 1103 "parser.Y"
+- {FRB->loadMosaicImageIRAFAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadMosaicImageIRAFAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 439:
+ #line 1104 "parser.Y"
+- {FRB->loadMosaicImageIRAFAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadMosaicImageIRAFAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 440:
+ #line 1105 "parser.Y"
+- {FRB->loadMosaicImageIRAFChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
++ {FRB->loadMosaicImageIRAFChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 441:
+ #line 1107 "parser.Y"
+- {FRB->loadMosaicImageIRAFMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageIRAFMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 442:
+ #line 1109 "parser.Y"
+- {FRB->loadMosaicImageIRAFMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageIRAFMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 443:
+ #line 1111 "parser.Y"
+- {FRB->loadMosaicImageIRAFShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer,
+- yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageIRAFShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer),
++ (yyvsp[(1) - (5)].str), (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 444:
+ #line 1113 "parser.Y"
+- {FRB->loadMosaicImageIRAFSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageIRAFSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 445:
+ #line 1114 "parser.Y"
+- {FRB->loadMosaicImageIRAFSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageIRAFSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 446:
+ #line 1116 "parser.Y"
+- {FRB->loadMosaicImageIRAFVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageIRAFVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 447:
+ #line 1119 "parser.Y"
+- {FRB->loadMosaicIRAFAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadMosaicIRAFAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 448:
+ #line 1120 "parser.Y"
+- {FRB->loadMosaicIRAFAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadMosaicIRAFAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 449:
+ #line 1121 "parser.Y"
+- {FRB->loadMosaicIRAFChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
++ {FRB->loadMosaicIRAFChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 450:
+ #line 1123 "parser.Y"
+- {FRB->loadMosaicIRAFMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicIRAFMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 451:
+ #line 1125 "parser.Y"
+- {FRB->loadMosaicIRAFSMMapCmd(yyvsp[-3].str,yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicIRAFSMMapCmd((yyvsp[(1) - (4)].str),(yyvsp[(2) - (4)].str),(FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 452:
+ #line 1127 "parser.Y"
+- {FRB->loadMosaicIRAFMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicIRAFMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 453:
+ #line 1129 "parser.Y"
+- {FRB->loadMosaicIRAFShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer,
+- yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicIRAFShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer),
++ (yyvsp[(1) - (5)].str), (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 454:
+ #line 1132 "parser.Y"
+- {FRB->loadMosaicIRAFSShareCmd((FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer,
+- yyvsp[-5].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicIRAFSShareCmd((FrameBase::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer),
++ (yyvsp[(1) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 455:
+ #line 1134 "parser.Y"
+- {FRB->loadMosaicIRAFSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicIRAFSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 456:
+ #line 1135 "parser.Y"
+- {FRB->loadMosaicIRAFSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicIRAFSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 457:
+ #line 1137 "parser.Y"
+- {FRB->loadMosaicIRAFVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicIRAFVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 458:
+ #line 1141 "parser.Y"
+- {FRB->loadMosaicImageWCSAllocCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
++ {FRB->loadMosaicImageWCSAllocCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
+ break;
+
+ case 459:
+ #line 1143 "parser.Y"
+- {FRB->loadMosaicImageWCSAllocGZCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
++ {FRB->loadMosaicImageWCSAllocGZCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
+ break;
+
+ case 460:
+ #line 1145 "parser.Y"
+- {FRB->loadMosaicImageWCSChannelCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].str, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageWCSChannelCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str), (yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 461:
+ #line 1147 "parser.Y"
+- {FRB->loadMosaicImageWCSMMapCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWCSMMapCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
++ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 462:
+ #line 1150 "parser.Y"
+- {FRB->loadMosaicImageWCSMMapIncrCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWCSMMapIncrCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
++ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 463:
+ #line 1153 "parser.Y"
+- {FRB->loadMosaicImageWCSShareCmd((CoordSystem)yyvsp[-5].integer,
+- (FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWCSShareCmd((CoordSystem)(yyvsp[(1) - (6)].integer),
++ (FrameBase::ShmType)(yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(2) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 464:
+ #line 1156 "parser.Y"
+- {FRB->loadMosaicImageWCSSocketCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageWCSSocketCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 465:
+ #line 1158 "parser.Y"
+- {FRB->loadMosaicImageWCSSocketGZCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageWCSSocketGZCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 466:
+ #line 1160 "parser.Y"
+- {FRB->loadMosaicImageWCSVarCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-1].str, yyvsp[-3].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWCSVarCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 467:
+ #line 1165 "parser.Y"
+- {FRB->loadMosaicImageNextWCSAllocCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
++ {FRB->loadMosaicImageNextWCSAllocCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
+ break;
+
+ case 468:
+ #line 1167 "parser.Y"
+- {FRB->loadMosaicImageNextWCSAllocGZCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
++ {FRB->loadMosaicImageNextWCSAllocGZCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
+ break;
+
+ case 469:
+ #line 1169 "parser.Y"
+- {FRB->loadMosaicImageNextWCSChannelCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].str,yyvsp[-2].str);;}
++ {FRB->loadMosaicImageNextWCSChannelCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str),(yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 470:
+ #line 1171 "parser.Y"
+- {FRB->loadMosaicImageNextWCSMMapCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageNextWCSMMapCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
++ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 471:
+ #line 1174 "parser.Y"
+- {FRB->loadMosaicImageNextWCSMMapIncrCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageNextWCSMMapIncrCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
++ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 472:
+ #line 1177 "parser.Y"
+- {FRB->loadMosaicImageNextWCSShareCmd((CoordSystem)yyvsp[-5].integer,
+- (FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageNextWCSShareCmd((CoordSystem)(yyvsp[(1) - (6)].integer),
++ (FrameBase::ShmType)(yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(2) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 473:
+ #line 1180 "parser.Y"
+- {FRB->loadMosaicImageNextWCSSocketCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageNextWCSSocketCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 474:
+ #line 1182 "parser.Y"
+- {FRB->loadMosaicImageNextWCSSocketGZCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageNextWCSSocketGZCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 475:
+ #line 1184 "parser.Y"
+- {FRB->loadMosaicImageNextWCSVarCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-1].str, yyvsp[-3].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageNextWCSVarCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 476:
+ #line 1189 "parser.Y"
+- {FRB->loadMosaicWCSAllocCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
++ {FRB->loadMosaicWCSAllocCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
+ break;
+
+ case 477:
+ #line 1191 "parser.Y"
+- {FRB->loadMosaicWCSAllocGZCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
++ {FRB->loadMosaicWCSAllocGZCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
+ break;
+
+ case 478:
+ #line 1193 "parser.Y"
+- {FRB->loadMosaicWCSChannelCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].str,yyvsp[-2].str);;}
++ {FRB->loadMosaicWCSChannelCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str),(yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 479:
+ #line 1195 "parser.Y"
+- {FRB->loadMosaicWCSMMapCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicWCSMMapCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
++ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 480:
+ #line 1198 "parser.Y"
+- {FRB->loadMosaicWCSSMMapCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-3].str, yyvsp[-2].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicWCSSMMapCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].str), (yyvsp[(3) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 481:
+ #line 1201 "parser.Y"
+- {FRB->loadMosaicWCSMMapIncrCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicWCSMMapIncrCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
++ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 482:
+ #line 1204 "parser.Y"
+- {FRB->loadMosaicWCSShareCmd((CoordSystem)yyvsp[-5].integer,
+- (FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicWCSShareCmd((CoordSystem)(yyvsp[(1) - (6)].integer),
++ (FrameBase::ShmType)(yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(2) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 483:
+ #line 1207 "parser.Y"
+- {FRB->loadMosaicWCSSShareCmd((CoordSystem)yyvsp[-6].integer,
+- (FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-5].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicWCSSShareCmd((CoordSystem)(yyvsp[(1) - (7)].integer),
++ (FrameBase::ShmType)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(6) - (7)].integer), (yyvsp[(2) - (7)].str), (FrameBase::LoadMethod)(yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 484:
+ #line 1210 "parser.Y"
+- {FRB->loadMosaicWCSSocketCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicWCSSocketCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 485:
+ #line 1212 "parser.Y"
+- {FRB->loadMosaicWCSSocketGZCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicWCSSocketGZCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
+ break;
+
+ case 486:
+ #line 1214 "parser.Y"
+- {FRB->loadMosaicWCSVarCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-1].str, yyvsp[-3].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicWCSVarCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 487:
+ #line 1219 "parser.Y"
+- {FRB->loadMosaicImageWFPC2AllocCmd(yyvsp[-1].str);;}
++ {FRB->loadMosaicImageWFPC2AllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 488:
+ #line 1220 "parser.Y"
+- {FRB->loadMosaicImageWFPC2AllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadMosaicImageWFPC2AllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 489:
+ #line 1221 "parser.Y"
+- {FRB->loadMosaicImageWFPC2ChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
++ {FRB->loadMosaicImageWFPC2ChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 490:
+ #line 1223 "parser.Y"
+- {FRB->loadMosaicImageWFPC2MMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWFPC2MMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 491:
+ #line 1225 "parser.Y"
+- {FRB->loadMosaicImageWFPC2MMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWFPC2MMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 492:
+ #line 1227 "parser.Y"
+- {FRB->loadMosaicImageWFPC2ShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer,
+- yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWFPC2ShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer),
++ (yyvsp[(1) - (5)].str), (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 493:
+ #line 1229 "parser.Y"
+- {FRB->loadMosaicImageWFPC2SocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadMosaicImageWFPC2SocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 494:
+ #line 1230 "parser.Y"
+- {FRB->loadMosaicImageWFPC2SocketGZCmd(yyvsp[0].integer,yyvsp[-2].str);;}
++ {FRB->loadMosaicImageWFPC2SocketGZCmd((yyvsp[(3) - (3)].integer),(yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 495:
+ #line 1232 "parser.Y"
+- {FRB->loadMosaicImageWFPC2VarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadMosaicImageWFPC2VarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 498:
+ #line 1238 "parser.Y"
+- {FRB->loadRGBCubeAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadRGBCubeAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 499:
+ #line 1239 "parser.Y"
+- {FRB->loadRGBCubeAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadRGBCubeAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 500:
+ #line 1240 "parser.Y"
+- {FRB->loadRGBCubeChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
++ {FRB->loadRGBCubeChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 501:
+ #line 1242 "parser.Y"
+- {FRB->loadRGBCubeMMapCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBCubeMMapCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 502:
+ #line 1244 "parser.Y"
+- {FRB->loadRGBCubeSMMapCmd(yyvsp[-3].str, yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBCubeSMMapCmd((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 503:
+ #line 1246 "parser.Y"
+- {FRB->loadRGBCubeMMapIncrCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBCubeMMapIncrCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 504:
+ #line 1248 "parser.Y"
+- {FRB->loadRGBCubeShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBCubeShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 505:
+ #line 1251 "parser.Y"
+- {FRB->loadRGBCubeSShareCmd((FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-5].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBCubeSShareCmd((FrameBase::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str),
++ (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 506:
+ #line 1253 "parser.Y"
+- {FRB->loadRGBCubeSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 507:
+ #line 1254 "parser.Y"
+- {FRB->loadRGBCubeSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 508:
+ #line 1256 "parser.Y"
+- {FRB->loadRGBCubeVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 509:
+ #line 1258 "parser.Y"
+- {FRB->loadRGBCubeSlaveCmd(yyvsp[-1].str,(FitsFile*)yyvsp[0].ptr);;}
++ {FRB->loadRGBCubeSlaveCmd((yyvsp[(2) - (3)].str),(FitsFile*)(yyvsp[(3) - (3)].ptr));;}
+ break;
+
+ case 510:
+ #line 1261 "parser.Y"
+- {FRB->loadRGBImageAllocCmd(yyvsp[-1].str);;}
++ {FRB->loadRGBImageAllocCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 511:
+ #line 1262 "parser.Y"
+- {FRB->loadRGBImageAllocGZCmd(yyvsp[-1].str);;}
++ {FRB->loadRGBImageAllocGZCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 512:
+ #line 1263 "parser.Y"
+- {FRB->loadRGBImageChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
++ {FRB->loadRGBImageChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 513:
+ #line 1265 "parser.Y"
+- {FRB->loadRGBImageMMapCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBImageMMapCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 514:
+ #line 1267 "parser.Y"
+- {FRB->loadRGBImageMMapIncrCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBImageMMapIncrCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 515:
+ #line 1269 "parser.Y"
+- {FRB->loadRGBImageShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
+- (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBImageShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
++ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 516:
+ #line 1271 "parser.Y"
+- {FRB->loadRGBImageSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadRGBImageSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 517:
+ #line 1272 "parser.Y"
+- {FRB->loadRGBImageSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
++ {FRB->loadRGBImageSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 518:
+ #line 1274 "parser.Y"
+- {FRB->loadRGBImageVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
++ {FRB->loadRGBImageVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 519:
+ #line 1277 "parser.Y"
+- {FRB->loadIncrDataCmd(yyvsp[-4].integer,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->loadIncrDataCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 520:
+ #line 1278 "parser.Y"
+- {FRB->loadIncrMinMaxCmd(yyvsp[-4].integer,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->loadIncrMinMaxCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 521:
+@@ -6188,22 +6521,22 @@
+
+ case 522:
+ #line 1282 "parser.Y"
+- {FRB->magnifierCmd(yyvsp[0].integer);;}
++ {FRB->magnifierCmd((yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 523:
+ #line 1283 "parser.Y"
+- {FRB->magnifierGraphicsCmd(yyvsp[0].integer);;}
++ {FRB->magnifierGraphicsCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 524:
+ #line 1284 "parser.Y"
+- {FRB->magnifierCursorCmd(yyvsp[0].integer);;}
++ {FRB->magnifierCursorCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 525:
+ #line 1285 "parser.Y"
+- {FRB->magnifierCmd(yyvsp[-2].str, yyvsp[-1].integer, yyvsp[0].integer);;}
++ {FRB->magnifierCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 526:
+@@ -6213,17 +6546,17 @@
+
+ case 527:
+ #line 1287 "parser.Y"
+- {FRB->updateMagnifierCmd(Vector(yyvsp[-1].real, yyvsp[0].real));;}
++ {FRB->updateMagnifierCmd(Vector((yyvsp[(2) - (3)].real), (yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 528:
+ #line 1288 "parser.Y"
+- {FRB->magnifierZoomCmd(yyvsp[0].real);;}
++ {FRB->magnifierZoomCmd((yyvsp[(2) - (2)].real));;}
+ break;
+
+ case 529:
+ #line 1291 "parser.Y"
+- {FRB->markerColorCmd(yyvsp[0].str);;}
++ {FRB->markerColorCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 530:
+@@ -6233,12 +6566,12 @@
+
+ case 531:
+ #line 1294 "parser.Y"
+- {FRB->markerCommandCmd((FrameBase::MarkerFormat)yyvsp[-1].integer,yyvsp[0].str);;}
++ {FRB->markerCommandCmd((FrameBase::MarkerFormat)(yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 532:
+ #line 1296 "parser.Y"
+- {FRB->markerCommandVarCmd((FrameBase::MarkerFormat)yyvsp[-2].integer,yyvsp[0].str);;}
++ {FRB->markerCommandVarCmd((FrameBase::MarkerFormat)(yyvsp[(2) - (4)].integer),(yyvsp[(4) - (4)].str));;}
+ break;
+
+ case 533:
+@@ -6263,405 +6596,405 @@
+
+ case 539:
+ #line 1303 "parser.Y"
+- {FRB->markerFontCmd(yyvsp[0].str);;}
++ {FRB->markerFontCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 540:
+ #line 1305 "parser.Y"
+- {FRB->markerAngleCmd(yyvsp[-2].integer,yyvsp[0].real);;}
++ {FRB->markerAngleCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].real));;}
+ break;
+
+ case 541:
+ #line 1307 "parser.Y"
+- {FRB->markerAngleCmd(yyvsp[-4].integer,yyvsp[-2].real,(CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerAngleCmd((yyvsp[(1) - (5)].integer),(yyvsp[(3) - (5)].real),(CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 542:
+ #line 1311 "parser.Y"
+- {FRB->markerAnnulusRadiusCmd(yyvsp[-7].integer,
+- yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerAnnulusRadiusCmd((yyvsp[(1) - (8)].integer),
++ (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].real), (yyvsp[(6) - (8)].integer),
++ (CoordSystem)(yyvsp[(7) - (8)].integer), (SkyFormat)(yyvsp[(8) - (8)].integer));;}
+ break;
+
+ case 543:
+ #line 1316 "parser.Y"
+- {FRB->markerAnnulusRadiusCmd(yyvsp[-5].integer,
+- yyvsp[-2].str,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),
++ (yyvsp[(4) - (6)].str),(CoordSystem)(yyvsp[(5) - (6)].integer),(SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 544:
+ #line 1321 "parser.Y"
+- {FRB->markerBoxAnnulusRadiusCmd(yyvsp[-8].integer,
+- Vector(yyvsp[-5].real, yyvsp[-4].real), Vector(yyvsp[-3].real, yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (9)].integer),
++ Vector((yyvsp[(4) - (9)].real), (yyvsp[(5) - (9)].real)), Vector((yyvsp[(6) - (9)].real), (yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer),
++ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
+ break;
+
+ case 545:
+ #line 1326 "parser.Y"
+- {FRB->markerBoxAnnulusRadiusCmd(yyvsp[-5].integer,
+- yyvsp[-2].str,(CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),
++ (yyvsp[(4) - (6)].str),(CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 546:
+ #line 1331 "parser.Y"
+- {FRB->markerBoxRadiusCmd(yyvsp[-6].integer,
+- Vector(yyvsp[-3].real,yyvsp[-2].real),
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerBoxRadiusCmd((yyvsp[(1) - (7)].integer),
++ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
++ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 547:
+ #line 1338 "parser.Y"
+- {FRB->markerBpandaEditCmd(yyvsp[-11].integer,
+- yyvsp[-8].real, yyvsp[-7].real, yyvsp[-6].integer,
+- Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerBpandaEditCmd((yyvsp[(1) - (12)].integer),
++ (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer),
++ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer),
++ (CoordSystem)(yyvsp[(11) - (12)].integer), (SkyFrame)(yyvsp[(12) - (12)].integer));;}
+ break;
+
+ case 548:
+ #line 1346 "parser.Y"
+- {FRB->markerBpandaEditCmd(yyvsp[-8].integer,
+- yyvsp[-5].str, yyvsp[-4].str,
+- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerBpandaEditCmd((yyvsp[(1) - (9)].integer),
++ (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
++ (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
++ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
+ break;
+
+ case 549:
+ #line 1351 "parser.Y"
+- {FRB->markerCallBackCmd(yyvsp[-4].integer,(CallBack::Type)yyvsp[-2].integer,yyvsp[-1].str,yyvsp[0].str);;}
++ {FRB->markerCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
+ break;
+
+ case 550:
+ #line 1353 "parser.Y"
+- {FRB->markerCircleRadiusCmd(yyvsp[-5].integer, yyvsp[-2].real, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerCircleRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 551:
+ #line 1354 "parser.Y"
+- {FRB->markerColorCmd(yyvsp[-2].integer,yyvsp[0].str);;}
++ {FRB->markerColorCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 552:
+ #line 1356 "parser.Y"
+- {FRB->markerCompassArrowCmd(yyvsp[-4].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->markerCompassArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 553:
+ #line 1358 "parser.Y"
+- {FRB->markerCompassLabelCmd(yyvsp[-4].integer,yyvsp[-1].str,yyvsp[0].str);;}
++ {FRB->markerCompassLabelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
+ break;
+
+ case 554:
+ #line 1360 "parser.Y"
+- {FRB->markerCompassRadiusCmd(yyvsp[-5].integer,yyvsp[-2].real,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerCompassRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].real),(CoordSystem)(yyvsp[(5) - (6)].integer),(SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 555:
+ #line 1362 "parser.Y"
+- {FRB->markerCompassSystemCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerCompassSystemCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 556:
+ #line 1364 "parser.Y"
+- {FRB->markerAnnulusCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 557:
+ #line 1366 "parser.Y"
+- {FRB->markerBoxAnnulusCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerBoxAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 558:
+ #line 1368 "parser.Y"
+- {FRB->markerBpandaCreateAnglesCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerBpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 559:
+ #line 1370 "parser.Y"
+- {FRB->markerBpandaCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerBpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 560:
+ #line 1372 "parser.Y"
+- {FRB->markerEllipseAnnulusCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerEllipseAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 561:
+ #line 1374 "parser.Y"
+- {FRB->markerEpandaCreateAnglesCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerEpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 562:
+ #line 1376 "parser.Y"
+- {FRB->markerEpandaCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerEpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 563:
+ #line 1378 "parser.Y"
+- {FRB->markerCpandaCreateAnglesCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerCpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 564:
+ #line 1380 "parser.Y"
+- {FRB->markerCpandaCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerCpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
+ break;
+
+ case 565:
+ #line 1382 "parser.Y"
+- {FRB->markerPolygonCreateVertexCmd(yyvsp[-6].integer,yyvsp[-2].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerPolygonCreateVertexCmd((yyvsp[(1) - (7)].integer),(yyvsp[(5) - (7)].integer),Vector((yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));;}
+ break;
+
+ case 566:
+ #line 1383 "parser.Y"
+- {FRB->markerDeleteCmd(yyvsp[-1].integer);;}
++ {FRB->markerDeleteCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 567:
+ #line 1385 "parser.Y"
+- {FRB->markerAnnulusDeleteRadiusCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 568:
+ #line 1387 "parser.Y"
+- {FRB->markerBoxAnnulusDeleteRadiusCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerBoxAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 569:
+ #line 1388 "parser.Y"
+- {FRB->markerBpandaDeleteCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerBpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 570:
+ #line 1390 "parser.Y"
+- {FRB->markerEllipseAnnulusDeleteRadiusCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerEllipseAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 571:
+ #line 1392 "parser.Y"
+- {FRB->markerDeleteCallBackCmd(yyvsp[-4].integer,(CallBack::Type)yyvsp[-1].integer,yyvsp[0].str);;}
++ {FRB->markerDeleteCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].str));;}
+ break;
+
+ case 572:
+ #line 1393 "parser.Y"
+- {FRB->markerEpandaDeleteCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerEpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 573:
+ #line 1394 "parser.Y"
+- {FRB->markerCpandaDeleteCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerCpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 574:
+ #line 1396 "parser.Y"
+- {FRB->markerPolygonDeleteVertexCmd(yyvsp[-4].integer,yyvsp[0].integer);;}
++ {FRB->markerPolygonDeleteVertexCmd((yyvsp[(1) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 575:
+ #line 1397 "parser.Y"
+- {FRB->markerDeleteTagCmd(yyvsp[-2].integer);;}
++ {FRB->markerDeleteTagCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 576:
+ #line 1398 "parser.Y"
+- {FRB->markerDeleteTagCmd(yyvsp[-3].integer,yyvsp[0].str);;}
++ {FRB->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].str));;}
+ break;
+
+ case 577:
+ #line 1399 "parser.Y"
+- {FRB->markerDeleteTagCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 578:
+ #line 1400 "parser.Y"
+- {FRB->markerEditBeginCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerEditBeginCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 579:
+ #line 1404 "parser.Y"
+- {FRB->markerEllipseRadiusCmd(yyvsp[-6].integer,
+- Vector(yyvsp[-3].real, yyvsp[-2].real),
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerEllipseRadiusCmd((yyvsp[(1) - (7)].integer),
++ Vector((yyvsp[(4) - (7)].real), (yyvsp[(5) - (7)].real)),
++ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 580:
+ #line 1410 "parser.Y"
+- {FRB->markerEllipseAnnulusRadiusCmd(yyvsp[-8].integer,
+- Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (9)].integer),
++ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)), Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer),
++ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
+ break;
+
+ case 581:
+ #line 1415 "parser.Y"
+- {FRB->markerEllipseAnnulusRadiusCmd(yyvsp[-5].integer,
+- yyvsp[-2].str, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),
++ (yyvsp[(4) - (6)].str), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 582:
+ #line 1421 "parser.Y"
+- {FRB->markerEpandaEditCmd(yyvsp[-11].integer,
+- yyvsp[-8].real, yyvsp[-7].real, yyvsp[-6].integer,
+- Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerEpandaEditCmd((yyvsp[(1) - (12)].integer),
++ (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer),
++ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer),
++ (CoordSystem)(yyvsp[(11) - (12)].integer), (SkyFrame)(yyvsp[(12) - (12)].integer));;}
+ break;
+
+ case 583:
+ #line 1429 "parser.Y"
+- {FRB->markerEpandaEditCmd(yyvsp[-8].integer,
+- yyvsp[-5].str, yyvsp[-4].str,
+- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerEpandaEditCmd((yyvsp[(1) - (9)].integer),
++ (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
++ (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
++ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
+ break;
+
+ case 584:
+ #line 1433 "parser.Y"
+- {FRB->markerFontCmd(yyvsp[-2].integer,yyvsp[0].str);;}
++ {FRB->markerFontCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 585:
+ #line 1434 "parser.Y"
+- {FRB->markerHighliteCmd(yyvsp[-1].integer);;}
++ {FRB->markerHighliteCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 586:
+ #line 1435 "parser.Y"
+- {FRB->markerHighliteOnlyCmd(yyvsp[-2].integer);;}
++ {FRB->markerHighliteOnlyCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 587:
+ #line 1436 "parser.Y"
+- {FRB->markerLineArrowCmd(yyvsp[-4].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->markerLineArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 588:
+ #line 1438 "parser.Y"
+- {FRB->markerLineCmd(yyvsp[-6].integer, Vector(yyvsp[-1].vector), Vector(yyvsp[0].vector),
+- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer);;}
++ {FRB->markerLineCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)),
++ (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer));;}
+ break;
+
+ case 589:
+ #line 1441 "parser.Y"
+- {FRB->markerMoveCmd(yyvsp[-3].integer, Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerMoveCmd((yyvsp[(1) - (4)].integer), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 590:
+ #line 1442 "parser.Y"
+- {FRB->markerFrontCmd(yyvsp[-2].integer);;}
++ {FRB->markerFrontCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 591:
+ #line 1443 "parser.Y"
+- {FRB->markerBackCmd(yyvsp[-2].integer);;}
++ {FRB->markerBackCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 592:
+ #line 1445 "parser.Y"
+- {FRB->markerMoveToCmd(yyvsp[-5].integer, Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
++ {FRB->markerMoveToCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)), (InternalSystem)(yyvsp[(4) - (6)].integer));;}
+ break;
+
+ case 593:
+ #line 1447 "parser.Y"
+- {FRB->markerMoveToCmd(yyvsp[-5].integer,Vector(yyvsp[0].vector),(CoordSystem)yyvsp[-2].integer,(SkyFrame)yyvsp[-1].integer);;}
++ {FRB->markerMoveToCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(6) - (6)].vector)),(CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
+ break;
+
+ case 594:
+ #line 1452 "parser.Y"
+- {FRB->markerCpandaEditCmd(yyvsp[-10].integer,
+- yyvsp[-7].real, yyvsp[-6].real, yyvsp[-5].integer,
+- yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerCpandaEditCmd((yyvsp[(1) - (11)].integer),
++ (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer),
++ (yyvsp[(7) - (11)].real), (yyvsp[(8) - (11)].real), (yyvsp[(9) - (11)].integer),
++ (CoordSystem)(yyvsp[(10) - (11)].integer), (SkyFrame)(yyvsp[(11) - (11)].integer));;}
+ break;
+
+ case 595:
+ #line 1460 "parser.Y"
+- {FRB->markerCpandaEditCmd(yyvsp[-8].integer,
+- yyvsp[-5].str, yyvsp[-4].str,
+- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerCpandaEditCmd((yyvsp[(1) - (9)].integer),
++ (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
++ (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
++ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
+ break;
+
+ case 596:
+ #line 1465 "parser.Y"
+- {FRB->markerPolygonResetCmd(yyvsp[-6].integer, Vector(yyvsp[-3].real,yyvsp[-2].real),
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerPolygonResetCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
++ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 597:
+ #line 1469 "parser.Y"
+- {FRB->markerProjectionCmd(yyvsp[-9].integer, Vector(yyvsp[-5].vector), Vector(yyvsp[-4].vector),
+- (CoordSystem)yyvsp[-7].integer, (SkyFrame)yyvsp[-6].integer, yyvsp[-3].real, yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerProjectionCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(5) - (10)].vector)), Vector((yyvsp[(6) - (10)].vector)),
++ (CoordSystem)(yyvsp[(3) - (10)].integer), (SkyFrame)(yyvsp[(4) - (10)].integer), (yyvsp[(7) - (10)].real), (yyvsp[(8) - (10)].integer),
++ (CoordSystem)(yyvsp[(9) - (10)].integer), (SkyFormat)(yyvsp[(10) - (10)].integer));;}
+ break;
+
+ case 598:
+ #line 1473 "parser.Y"
+- {FRB->markerProjectionSystemCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerProjectionSystemCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 599:
+ #line 1475 "parser.Y"
+- {FRB->markerPropertyCmd(yyvsp[-3].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->markerPropertyCmd((yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 600:
+ #line 1476 "parser.Y"
+- {FRB->markerRotateBeginCmd(yyvsp[-2].integer);;}
++ {FRB->markerRotateBeginCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 601:
+ #line 1478 "parser.Y"
+- {FRB->markerRulerPointCmd(yyvsp[-6].integer, Vector(yyvsp[-1].vector), Vector(yyvsp[0].vector),
+- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer);;}
++ {FRB->markerRulerPointCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)),
++ (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer));;}
+ break;
+
+ case 602:
+ #line 1481 "parser.Y"
+- {FRB->markerRulerSystemCmd(yyvsp[-6].integer, (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->markerRulerSystemCmd((yyvsp[(1) - (7)].integer), (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer),
++ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
+ break;
+
+ case 603:
+ #line 1483 "parser.Y"
+- {FRB->markerSelectCmd(yyvsp[-1].integer);;}
++ {FRB->markerSelectCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 604:
+ #line 1484 "parser.Y"
+- {FRB->markerSelectOnlyCmd(yyvsp[-2].integer);;}
++ {FRB->markerSelectOnlyCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 605:
+ #line 1485 "parser.Y"
+- {FRB->markerTagCmd(yyvsp[-2].integer,yyvsp[0].str);;}
++ {FRB->markerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 606:
+ #line 1486 "parser.Y"
+- {FRB->markerTextCmd(yyvsp[-2].integer,yyvsp[0].str);;}
++ {FRB->markerTextCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 607:
+ #line 1487 "parser.Y"
+- {FRB->markerUnhighliteCmd(yyvsp[-1].integer);;}
++ {FRB->markerUnhighliteCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 608:
+ #line 1488 "parser.Y"
+- {FRB->markerUnselectCmd(yyvsp[-1].integer);;}
++ {FRB->markerUnselectCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 609:
+ #line 1489 "parser.Y"
+- {FRB->markerVectorArrowCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
++ {FRB->markerVectorArrowCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 610:
+ #line 1492 "parser.Y"
+- {FRB->markerVectorCmd(yyvsp[-9].integer, Vector(yyvsp[-4].vector), (CoordSystem)yyvsp[-6].integer, (SkyFrame)yyvsp[-5].integer,
+- yyvsp[-1].real, (CoordSystem)yyvsp[-3].integer, (SkyFormat)yyvsp[-2].integer, yyvsp[0].real);;}
++ {FRB->markerVectorCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(6) - (10)].vector)), (CoordSystem)(yyvsp[(4) - (10)].integer), (SkyFrame)(yyvsp[(5) - (10)].integer),
++ (yyvsp[(9) - (10)].real), (CoordSystem)(yyvsp[(7) - (10)].integer), (SkyFormat)(yyvsp[(8) - (10)].integer), (yyvsp[(10) - (10)].real));;}
+ break;
+
+ case 611:
+ #line 1494 "parser.Y"
+- {FRB->markerLineWidthCmd(yyvsp[-2].integer,yyvsp[0].integer);;}
++ {FRB->markerLineWidthCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 612:
+@@ -6671,37 +7004,37 @@
+
+ case 613:
+ #line 1498 "parser.Y"
+- {FRB->markerHighliteOnlyCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerHighliteOnlyCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 614:
+ #line 1500 "parser.Y"
+- {FRB->markerHighliteToggleCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerHighliteToggleCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 618:
+ #line 1505 "parser.Y"
+- {FRB->markerPreserveCmd(yyvsp[0].integer);;}
++ {FRB->markerPreserveCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 619:
+ #line 1506 "parser.Y"
+- {FRB->markerPropertyCmd(yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->markerPropertyCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 620:
+ #line 1508 "parser.Y"
+- {FRB->markerPropertyCmd(yyvsp[-3].integer,yyvsp[-2].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerPropertyCmd((yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
+ break;
+
+ case 621:
+ #line 1510 "parser.Y"
+- {FRB->markerRotateBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerRotateBeginCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 622:
+ #line 1512 "parser.Y"
+- {FRB->markerRotateMotionCmd(Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
++ {FRB->markerRotateMotionCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real)),(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 623:
+@@ -6711,108 +7044,108 @@
+
+ case 624:
+ #line 1515 "parser.Y"
+- {FRB->markerSaveCmd(yyvsp[-6].str, (FrameBase::MarkerFormat)yyvsp[-5].integer,
+- (CoordSystem)yyvsp[-4].integer, (SkyFrame)yyvsp[-3].integer, (SkyFormat)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[0].integer);;}
++ {FRB->markerSaveCmd((yyvsp[(2) - (8)].str), (FrameBase::MarkerFormat)(yyvsp[(3) - (8)].integer),
++ (CoordSystem)(yyvsp[(4) - (8)].integer), (SkyFrame)(yyvsp[(5) - (8)].integer), (SkyFormat)(yyvsp[(6) - (8)].integer), (yyvsp[(7) - (8)].integer), (yyvsp[(8) - (8)].integer));;}
+ break;
+
+ case 625:
+ #line 1517 "parser.Y"
+- {FRB->markerSaveTemplateCmd(yyvsp[0].str);;}
++ {FRB->markerSaveTemplateCmd((yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 627:
+ #line 1520 "parser.Y"
+- {FRB->markerShowCmd(yyvsp[0].integer);;}
++ {FRB->markerShowCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 628:
+ #line 1522 "parser.Y"
+- {FRB->markerColorCmd(yyvsp[-2].str,yyvsp[0].str);;}
++ {FRB->markerColorCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 629:
+ #line 1523 "parser.Y"
+- {FRB->markerCopyCmd(yyvsp[-1].str);;}
++ {FRB->markerCopyCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 630:
+ #line 1524 "parser.Y"
+- {FRB->markerDeleteCmd(yyvsp[-1].str);;}
++ {FRB->markerDeleteCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 631:
+ #line 1525 "parser.Y"
+- {FRB->markerCutCmd(yyvsp[-1].str);;}
++ {FRB->markerCutCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 632:
+ #line 1526 "parser.Y"
+- {FRB->markerFontCmd(yyvsp[-2].str,yyvsp[0].str);;}
++ {FRB->markerFontCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 633:
+ #line 1527 "parser.Y"
+- {FRB->markerHighliteCmd(yyvsp[-1].str);;}
++ {FRB->markerHighliteCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 634:
+ #line 1528 "parser.Y"
+- {FRB->markerHighliteOnlyCmd(yyvsp[-2].str);;}
++ {FRB->markerHighliteOnlyCmd((yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 635:
+ #line 1529 "parser.Y"
+- {FRB->markerMoveCmd(yyvsp[-3].str,Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerMoveCmd((yyvsp[(1) - (4)].str),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 636:
+ #line 1530 "parser.Y"
+- {FRB->markerFrontCmd(yyvsp[-2].str);;}
++ {FRB->markerFrontCmd((yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 637:
+ #line 1531 "parser.Y"
+- {FRB->markerBackCmd(yyvsp[-2].str);;}
++ {FRB->markerBackCmd((yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 638:
+ #line 1533 "parser.Y"
+- {FRB->markerMoveToCmd(yyvsp[-5].str,Vector(yyvsp[0].vector),(CoordSystem)yyvsp[-2].integer,(SkyFrame)yyvsp[-1].integer);;}
++ {FRB->markerMoveToCmd((yyvsp[(1) - (6)].str),Vector((yyvsp[(6) - (6)].vector)),(CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
+ break;
+
+ case 639:
+ #line 1535 "parser.Y"
+- {FRB->markerPropertyCmd(yyvsp[-3].str,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->markerPropertyCmd((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 640:
+ #line 1536 "parser.Y"
+- {FRB->markerSelectCmd(yyvsp[-1].str);;}
++ {FRB->markerSelectCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 641:
+ #line 1537 "parser.Y"
+- {FRB->markerSelectOnlyCmd(yyvsp[-2].str);;}
++ {FRB->markerSelectOnlyCmd((yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 642:
+ #line 1538 "parser.Y"
+- {FRB->markerUnhighliteCmd(yyvsp[-1].str);;}
++ {FRB->markerUnhighliteCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 643:
+ #line 1539 "parser.Y"
+- {FRB->markerUnselectCmd(yyvsp[-1].str);;}
++ {FRB->markerUnselectCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 644:
+ #line 1541 "parser.Y"
+- {FRB->markerTagEditCmd(yyvsp[-1].str,yyvsp[0].str);;}
++ {FRB->markerTagEditCmd((yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
+ break;
+
+ case 645:
+ #line 1542 "parser.Y"
+- {FRB->markerTagDeleteCmd(yyvsp[0].str);;}
++ {FRB->markerTagDeleteCmd((yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 646:
+@@ -6822,12 +7155,12 @@
+
+ case 647:
+ #line 1544 "parser.Y"
+- {FRB->markerTagCmd(yyvsp[0].str);;}
++ {FRB->markerTagCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 648:
+ #line 1545 "parser.Y"
+- {FRB->markerTagUpdateCmd(yyvsp[0].str);;}
++ {FRB->markerTagUpdateCmd((yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 649:
+@@ -6837,7 +7170,7 @@
+
+ case 650:
+ #line 1549 "parser.Y"
+- {FRB->markerPasteCmd((CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerPasteCmd((CoordSystem)(yyvsp[(2) - (3)].integer),(SkyFrame)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 651:
+@@ -6857,197 +7190,197 @@
+
+ case 654:
+ #line 1553 "parser.Y"
+- {FRB->markerLineWidthCmd(yyvsp[0].integer);;}
++ {FRB->markerLineWidthCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 655:
+ #line 1556 "parser.Y"
+- {yyval.integer = CallBack::SELECTCB;;}
++ {(yyval.integer) = CallBack::SELECTCB;;}
+ break;
+
+ case 656:
+ #line 1557 "parser.Y"
+- {yyval.integer = CallBack::UNSELECTCB;;}
++ {(yyval.integer) = CallBack::UNSELECTCB;;}
+ break;
+
+ case 657:
+ #line 1558 "parser.Y"
+- {yyval.integer = CallBack::HIGHLITECB;;}
++ {(yyval.integer) = CallBack::HIGHLITECB;;}
+ break;
+
+ case 658:
+ #line 1559 "parser.Y"
+- {yyval.integer = CallBack::UNHIGHLITECB;;}
++ {(yyval.integer) = CallBack::UNHIGHLITECB;;}
+ break;
+
+ case 659:
+ #line 1560 "parser.Y"
+- {yyval.integer = CallBack::MOVEBEGINCB;;}
++ {(yyval.integer) = CallBack::MOVEBEGINCB;;}
+ break;
+
+ case 660:
+ #line 1561 "parser.Y"
+- {yyval.integer = CallBack::MOVECB;;}
++ {(yyval.integer) = CallBack::MOVECB;;}
+ break;
+
+ case 661:
+ #line 1562 "parser.Y"
+- {yyval.integer = CallBack::MOVEENDCB;;}
++ {(yyval.integer) = CallBack::MOVEENDCB;;}
+ break;
+
+ case 662:
+ #line 1563 "parser.Y"
+- {yyval.integer = CallBack::EDITBEGINCB;;}
++ {(yyval.integer) = CallBack::EDITBEGINCB;;}
+ break;
+
+ case 663:
+ #line 1564 "parser.Y"
+- {yyval.integer = CallBack::EDITCB;;}
++ {(yyval.integer) = CallBack::EDITCB;;}
+ break;
+
+ case 664:
+ #line 1565 "parser.Y"
+- {yyval.integer = CallBack::EDITENDCB;;}
++ {(yyval.integer) = CallBack::EDITENDCB;;}
+ break;
+
+ case 665:
+ #line 1566 "parser.Y"
+- {yyval.integer = CallBack::ROTATEBEGINCB;;}
++ {(yyval.integer) = CallBack::ROTATEBEGINCB;;}
+ break;
+
+ case 666:
+ #line 1567 "parser.Y"
+- {yyval.integer = CallBack::ROTATECB;;}
++ {(yyval.integer) = CallBack::ROTATECB;;}
+ break;
+
+ case 667:
+ #line 1568 "parser.Y"
+- {yyval.integer = CallBack::ROTATEENDCB;;}
++ {(yyval.integer) = CallBack::ROTATEENDCB;;}
+ break;
+
+ case 668:
+ #line 1569 "parser.Y"
+- {yyval.integer = CallBack::DELETECB;;}
++ {(yyval.integer) = CallBack::DELETECB;;}
+ break;
+
+ case 669:
+ #line 1570 "parser.Y"
+- {yyval.integer = CallBack::TEXTCB;;}
++ {(yyval.integer) = CallBack::TEXTCB;;}
+ break;
+
+ case 670:
+ #line 1571 "parser.Y"
+- {yyval.integer = CallBack::COLORCB;;}
++ {(yyval.integer) = CallBack::COLORCB;;}
+ break;
+
+ case 671:
+ #line 1572 "parser.Y"
+- {yyval.integer = CallBack::LINEWIDTHCB;;}
++ {(yyval.integer) = CallBack::LINEWIDTHCB;;}
+ break;
+
+ case 672:
+ #line 1573 "parser.Y"
+- {yyval.integer = CallBack::PROPERTYCB;;}
++ {(yyval.integer) = CallBack::PROPERTYCB;;}
+ break;
+
+ case 673:
+ #line 1574 "parser.Y"
+- {yyval.integer = CallBack::FONTCB;;}
++ {(yyval.integer) = CallBack::FONTCB;;}
+ break;
+
+ case 674:
+ #line 1575 "parser.Y"
+- {yyval.integer = CallBack::UPDATECB;;}
++ {(yyval.integer) = CallBack::UPDATECB;;}
+ break;
+
+ case 675:
+ #line 1582 "parser.Y"
+- {FRB->createCircleCmd(Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(),
+- yyvsp[-1].real,
++ {FRB->createCircleCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(4) - (5)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 676:
+ #line 1589 "parser.Y"
+- {FRB->createAnnulusCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
+- yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].integer,
++ {FRB->createAnnulusCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].integer),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 677:
+ #line 1597 "parser.Y"
+- {FRB->createCpandaCmd(Vector(yyvsp[-8].real,yyvsp[-7].real)*FRB->getCanvasToRef(),
+- yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].integer,
+- yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].integer,
++ {FRB->createCpandaCmd(Vector((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].integer),
++ (yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].integer),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 678:
+ #line 1607 "parser.Y"
+- {FRB->createEllipseCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-3].real,yyvsp[-2].real),
+- yyvsp[-1].real,
++ {FRB->createEllipseCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
++ (yyvsp[(6) - (7)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 679:
+ #line 1616 "parser.Y"
+- {FRB->createEllipseAnnulusCmd(Vector(yyvsp[-7].real,yyvsp[-6].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-5].real,yyvsp[-4].real),
+- Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
+- yyvsp[-1].real,
++ {FRB->createEllipseAnnulusCmd(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),
++ Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
++ (yyvsp[(8) - (9)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 680:
+ #line 1627 "parser.Y"
+- {FRB->createEpandaCmd(Vector(yyvsp[-10].real,yyvsp[-9].real)*FRB->getCanvasToRef(),
+- yyvsp[-8].real,yyvsp[-7].real,yyvsp[-6].integer,
+- Vector(yyvsp[-5].real,yyvsp[-4].real),
+- Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
+- yyvsp[-1].real,
++ {FRB->createEpandaCmd(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
++ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
++ Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
++ (yyvsp[(11) - (12)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 681:
+ #line 1639 "parser.Y"
+- {FRB->createBoxCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-3].real,yyvsp[-2].real),
+- yyvsp[-1].real,
++ {FRB->createBoxCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
++ (yyvsp[(6) - (7)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 682:
+ #line 1648 "parser.Y"
+- {FRB->createBoxAnnulusCmd(Vector(yyvsp[-7].real,yyvsp[-6].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
+- yyvsp[-1].real,
++ {FRB->createBoxAnnulusCmd(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
++ (yyvsp[(8) - (9)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 683:
+ #line 1658 "parser.Y"
+- {FRB->createBpandaCmd(Vector(yyvsp[-10].real,yyvsp[-9].real)*FRB->getCanvasToRef(),
+- yyvsp[-8].real,yyvsp[-7].real,yyvsp[-6].integer,
+- Vector(yyvsp[-5].real,yyvsp[-4].real),
+- Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
+- yyvsp[-1].real,
++ {FRB->createBpandaCmd(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
++ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
++ Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
++ (yyvsp[(11) - (12)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 684:
+ #line 1669 "parser.Y"
+- {FRB->createLineCmd(Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createLineCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real))*FRB->getCanvasToRef(),
+ 0, 0,
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+@@ -7055,8 +7388,8 @@
+
+ case 685:
+ #line 1677 "parser.Y"
+- {FRB->createVectCmd(Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createVectCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real))*FRB->getCanvasToRef(),
+ 1,
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+@@ -7064,9 +7397,9 @@
+
+ case 686:
+ #line 1686 "parser.Y"
+- {FRB->createProjectionCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(),
+- yyvsp[-1].real,
++ {FRB->createProjectionCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(6) - (7)].real),
+ NULL,NULL,
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+@@ -7074,94 +7407,94 @@
+
+ case 687:
+ #line 1697 "parser.Y"
+- {FRB->createProjectionCmd(Vector(yyvsp[-7].real,yyvsp[-6].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
+- yyvsp[-3].real,
+- yyvsp[-2].str,yyvsp[-1].str,
++ {FRB->createProjectionCmd(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(6) - (9)].real),
++ (yyvsp[(7) - (9)].str),(yyvsp[(8) - (9)].str),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 688:
+ #line 1707 "parser.Y"
+- {FRB->createRulerCmd(Vector(yyvsp[-6].real,yyvsp[-5].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
+- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer, PHYSICAL, DEGREES,
++ {FRB->createRulerCmd(Vector((yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real))*FRB->getCanvasToRef(),
++ (CoordSystem)(yyvsp[(6) - (8)].integer), (SkyFrame)(yyvsp[(7) - (8)].integer), PHYSICAL, DEGREES,
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 689:
+ #line 1715 "parser.Y"
+- {FRB->createCirclePointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createCirclePointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 690:
+ #line 1720 "parser.Y"
+- {FRB->createBoxPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createBoxPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 691:
+ #line 1725 "parser.Y"
+- {FRB->createDiamondPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createDiamondPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 692:
+ #line 1730 "parser.Y"
+- {FRB->createCrossPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createCrossPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 693:
+ #line 1735 "parser.Y"
+- {FRB->createExPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createExPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 694:
+ #line 1740 "parser.Y"
+- {FRB->createArrowPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createArrowPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 695:
+ #line 1745 "parser.Y"
+- {FRB->createBoxCirclePointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
++ {FRB->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 696:
+ #line 1752 "parser.Y"
+- {FRB->createTextCmd(Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(),
+- yyvsp[-1].real,
++ {FRB->createTextCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(4) - (5)].real),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 697:
+ #line 1760 "parser.Y"
+- {FRB->createPolygonCmd(Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
+- Vector(yyvsp[-2].real,yyvsp[-1].real),
++ {FRB->createPolygonCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real))*FRB->getCanvasToRef(),
++ Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 698:
+ #line 1769 "parser.Y"
+- {FRB->createCompassCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
+- yyvsp[-3].real,
++ {FRB->createCompassCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
++ (yyvsp[(4) - (7)].real),
+ "N", "E", 1, 1,
+- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer,
++ (CoordSystem)(yyvsp[(5) - (7)].integer), (SkyFrame)(yyvsp[(6) - (7)].integer),
+ currentColor,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+@@ -7175,22 +7508,22 @@
+
+ case 700:
+ #line 1782 "parser.Y"
+- {FRB->createTemplateCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(), yyvsp[0].str);;}
++ {FRB->createTemplateCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real))*FRB->getCanvasToRef(), (yyvsp[(4) - (4)].str));;}
+ break;
+
+ case 701:
+ #line 1785 "parser.Y"
+- {FRB->createTemplateVarCmd(Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(), yyvsp[0].str);;}
++ {FRB->createTemplateVarCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real))*FRB->getCanvasToRef(), (yyvsp[(5) - (5)].str));;}
+ break;
+
+ case 702:
+ #line 1789 "parser.Y"
+- {FRB->markerEditBeginCmd(Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
++ {FRB->markerEditBeginCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 703:
+ #line 1791 "parser.Y"
+- {FRB->markerEditMotionCmd(Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
++ {FRB->markerEditMotionCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 704:
+@@ -7200,32 +7533,32 @@
+
+ case 705:
+ #line 1795 "parser.Y"
+- {yyval.integer = FrameBase::DS9;;}
++ {(yyval.integer) = FrameBase::DS9;;}
+ break;
+
+ case 706:
+ #line 1796 "parser.Y"
+- {yyval.integer = FrameBase::CIAO;;}
++ {(yyval.integer) = FrameBase::CIAO;;}
+ break;
+
+ case 707:
+ #line 1797 "parser.Y"
+- {yyval.integer = FrameBase::SAOTNG;;}
++ {(yyval.integer) = FrameBase::SAOTNG;;}
+ break;
+
+ case 708:
+ #line 1798 "parser.Y"
+- {yyval.integer = FrameBase::SAOIMAGE;;}
++ {(yyval.integer) = FrameBase::SAOIMAGE;;}
+ break;
+
+ case 709:
+ #line 1799 "parser.Y"
+- {yyval.integer = FrameBase::PROS;;}
++ {(yyval.integer) = FrameBase::PROS;;}
+ break;
+
+ case 710:
+ #line 1800 "parser.Y"
+- {yyval.integer = FrameBase::RAWXY;;}
++ {(yyval.integer) = FrameBase::RAWXY;;}
+ break;
+
+ case 711:
+@@ -7240,12 +7573,12 @@
+
+ case 713:
+ #line 1805 "parser.Y"
+- {FRB->getMarkerHandleCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->getMarkerHandleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 714:
+ #line 1806 "parser.Y"
+- {FRB->getMarkerIdCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->getMarkerIdCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 715:
+@@ -7255,220 +7588,220 @@
+
+ case 716:
+ #line 1809 "parser.Y"
+- {FRB->getMarkerAngleCmd(yyvsp[-3].integer,(CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->getMarkerAngleCmd((yyvsp[(1) - (4)].integer),(CoordSystem)(yyvsp[(3) - (4)].integer), (SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 717:
+ #line 1811 "parser.Y"
+- {FRB->getMarkerAnnulusRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 718:
+ #line 1813 "parser.Y"
+- {FRB->getMarkerBoxAnnulusRadiusCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 719:
+ #line 1815 "parser.Y"
+- {FRB->getMarkerBoxRadiusCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerBoxRadiusCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 720:
+ #line 1817 "parser.Y"
+- {FRB->getMarkerBpandaAnglesCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->getMarkerBpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 721:
+ #line 1819 "parser.Y"
+- {FRB->getMarkerBpandaRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerBpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 722:
+ #line 1821 "parser.Y"
+- {FRB->getMarkerCenterCmd(yyvsp[-4].integer,
+- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerCenterCmd((yyvsp[(1) - (5)].integer),
++ (CoordSystem)(yyvsp[(3) - (5)].integer), (SkyFrame)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 723:
+ #line 1824 "parser.Y"
+- {FRB->getMarkerCircleRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 724:
+ #line 1825 "parser.Y"
+- {FRB->getMarkerColorCmd(yyvsp[-1].integer);;}
++ {FRB->getMarkerColorCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 725:
+ #line 1826 "parser.Y"
+- {FRB->getMarkerCompassArrowCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerCompassArrowCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 726:
+ #line 1827 "parser.Y"
+- {FRB->getMarkerCompassLabelCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerCompassLabelCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 727:
+ #line 1828 "parser.Y"
+- {FRB->getMarkerCompassSystemCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerCompassSystemCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 728:
+ #line 1830 "parser.Y"
+- {FRB->getMarkerEllipseRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerEllipseRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 729:
+ #line 1832 "parser.Y"
+- {FRB->getMarkerEllipseAnnulusRadiusCmd(yyvsp[-4].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),
++ (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 730:
+ #line 1835 "parser.Y"
+- {FRB->getMarkerEpandaAnglesCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->getMarkerEpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 731:
+ #line 1837 "parser.Y"
+- {FRB->getMarkerEpandaRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerEpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 732:
+ #line 1838 "parser.Y"
+- {FRB->getMarkerFontCmd(yyvsp[-1].integer);;}
++ {FRB->getMarkerFontCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 733:
+ #line 1839 "parser.Y"
+- {FRB->getMarkerLineArrowCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerLineArrowCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 734:
+ #line 1841 "parser.Y"
+- {FRB->getMarkerLineLengthCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerLineLengthCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 735:
+ #line 1843 "parser.Y"
+- {FRB->getMarkerLineCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
+- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerLineCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
++ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 736:
+ #line 1846 "parser.Y"
+- {FRB->getMarkerMapLenFromRefCmd(yyvsp[-5].integer, yyvsp[-2].real,
+- (CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerMapLenFromRefCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real),
++ (CoordSystem)(yyvsp[(5) - (6)].integer),(SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 737:
+ #line 1849 "parser.Y"
+- {FRB->getMarkerCpandaAnglesCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
++ {FRB->getMarkerCpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 738:
+ #line 1851 "parser.Y"
+- {FRB->getMarkerCpandaRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerCpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 739:
+ #line 1853 "parser.Y"
+- {FRB->getMarkerProjectionCmd(yyvsp[-5].integer,yyvsp[-3].str,yyvsp[-2].str,yyvsp[-1].str,yyvsp[0].str);;}
++ {FRB->getMarkerProjectionCmd((yyvsp[(1) - (6)].integer),(yyvsp[(3) - (6)].str),(yyvsp[(4) - (6)].str),(yyvsp[(5) - (6)].str),(yyvsp[(6) - (6)].str));;}
+ break;
+
+ case 740:
+ #line 1855 "parser.Y"
+- {FRB->getMarkerProjectionPointsCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
+- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerProjectionPointsCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
++ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 741:
+ #line 1858 "parser.Y"
+- {FRB->getMarkerProjectionLengthCmd(yyvsp[-4].integer,
+- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerProjectionLengthCmd((yyvsp[(1) - (5)].integer),
++ (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 742:
+ #line 1860 "parser.Y"
+- {FRB->getMarkerProjectionMethodCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerProjectionMethodCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 743:
+ #line 1862 "parser.Y"
+- {FRB->getMarkerProjectionWidthCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerProjectionWidthCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 744:
+ #line 1863 "parser.Y"
+- {FRB->getMarkerProjectionSystemCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerProjectionSystemCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 745:
+ #line 1864 "parser.Y"
+- {FRB->getMarkerPropertyCmd(yyvsp[-1].integer);;}
++ {FRB->getMarkerPropertyCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 746:
+ #line 1865 "parser.Y"
+- {FRB->getMarkerPropertyCmd(yyvsp[-2].integer,yyvsp[0].integer);;}
++ {FRB->getMarkerPropertyCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 747:
+ #line 1867 "parser.Y"
+- {FRB->getMarkerRulerLengthCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerRulerLengthCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 748:
+ #line 1869 "parser.Y"
+- {FRB->getMarkerRulerPointCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
+- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerRulerPointCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
++ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 749:
+ #line 1871 "parser.Y"
+- {FRB->getMarkerRulerSystemCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerRulerSystemCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 750:
+ #line 1872 "parser.Y"
+- {FRB->getMarkerTagCmd(yyvsp[-1].integer);;}
++ {FRB->getMarkerTagCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 751:
+ #line 1873 "parser.Y"
+- {FRB->getMarkerTagCmd(yyvsp[-2].integer,yyvsp[0].integer);;}
++ {FRB->getMarkerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 752:
+ #line 1874 "parser.Y"
+- {FRB->getMarkerTextCmd(yyvsp[-1].integer);;}
++ {FRB->getMarkerTextCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 753:
+ #line 1875 "parser.Y"
+- {FRB->getMarkerTypeCmd(yyvsp[-1].integer);;}
++ {FRB->getMarkerTypeCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 754:
+ #line 1876 "parser.Y"
+- {FRB->getMarkerVectorArrowCmd(yyvsp[-2].integer);;}
++ {FRB->getMarkerVectorArrowCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 755:
+ #line 1878 "parser.Y"
+- {FRB->getMarkerVectorLengthCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerVectorLengthCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 756:
+ #line 1880 "parser.Y"
+- {FRB->getMarkerVectorCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
+- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
++ {FRB->getMarkerVectorCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
++ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ break;
+
+ case 757:
+ #line 1882 "parser.Y"
+- {FRB->getMarkerLineWidthCmd(yyvsp[-1].integer);;}
++ {FRB->getMarkerLineWidthCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 759:
+@@ -7478,7 +7811,7 @@
+
+ case 760:
+ #line 1886 "parser.Y"
+- {FRB->getMarkerPolygonSegmentCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->getMarkerPolygonSegmentCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 761:
+@@ -7488,7 +7821,7 @@
+
+ case 762:
+ #line 1888 "parser.Y"
+- {FRB->getMarkerPropertyCmd(yyvsp[0].integer);;}
++ {FRB->getMarkerPropertyCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 764:
+@@ -7503,27 +7836,27 @@
+
+ case 766:
+ #line 1894 "parser.Y"
+- {FRB->getMarkerColorCmd(yyvsp[-1].str);;}
++ {FRB->getMarkerColorCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 767:
+ #line 1895 "parser.Y"
+- {FRB->getMarkerFontCmd(yyvsp[-1].str);;}
++ {FRB->getMarkerFontCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 768:
+ #line 1896 "parser.Y"
+- {FRB->getMarkerPropertyCmd(yyvsp[-2].str,yyvsp[0].integer);;}
++ {FRB->getMarkerPropertyCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 769:
+ #line 1897 "parser.Y"
+- {FRB->getMarkerTagCmd(yyvsp[-1].str);;}
++ {FRB->getMarkerTagCmd((yyvsp[(1) - (2)].str));;}
+ break;
+
+ case 770:
+ #line 1898 "parser.Y"
+- {FRB->getMarkerTagNumberCmd(yyvsp[-2].str);;}
++ {FRB->getMarkerTagNumberCmd((yyvsp[(1) - (3)].str));;}
+ break;
+
+ case 771:
+@@ -7548,7 +7881,7 @@
+
+ case 775:
+ #line 1907 "parser.Y"
+- {FRB->getMarkerSelectedCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->getMarkerSelectedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 776:
+@@ -7558,7 +7891,7 @@
+
+ case 777:
+ #line 1911 "parser.Y"
+- {FRB->getMarkerHighlitedCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->getMarkerHighlitedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 778:
+@@ -7591,48 +7924,48 @@
+
+ case 782:
+ #line 1932 "parser.Y"
+- {FRB->markerListCmd((FrameBase::MarkerFormat)yyvsp[-7].integer,
+- (CoordSystem)yyvsp[-6].integer, (SkyFrame)yyvsp[-5].integer, (SkyFormat)yyvsp[-4].integer, yyvsp[-3].integer, yyvsp[-2].integer,
++ {FRB->markerListCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (8)].integer),
++ (CoordSystem)(yyvsp[(2) - (8)].integer), (SkyFrame)(yyvsp[(3) - (8)].integer), (SkyFormat)(yyvsp[(4) - (8)].integer), (yyvsp[(5) - (8)].integer), (yyvsp[(6) - (8)].integer),
+ 0, propQMask, propQValue, taglist);;}
+ break;
+
+ case 783:
+ #line 1937 "parser.Y"
+- {FRB->markerListCmd((FrameBase::MarkerFormat)yyvsp[-7].integer,
+- (CoordSystem)yyvsp[-6].integer, (SkyFrame)yyvsp[-5].integer, (SkyFormat)yyvsp[-4].integer, yyvsp[-3].integer, yyvsp[-2].integer,
++ {FRB->markerListCmd((FrameBase::MarkerFormat)(yyvsp[(2) - (9)].integer),
++ (CoordSystem)(yyvsp[(3) - (9)].integer), (SkyFrame)(yyvsp[(4) - (9)].integer), (SkyFormat)(yyvsp[(5) - (9)].integer), (yyvsp[(6) - (9)].integer), (yyvsp[(7) - (9)].integer),
+ 1, propQMask, propQValue, taglist);;}
+ break;
+
+ case 784:
+ #line 1943 "parser.Y"
+- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-1].integer,yyvsp[0].str);;}
++ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 785:
+ #line 1945 "parser.Y"
+- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-3].integer,yyvsp[-2].str,
+- (CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].str),
++ (CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 786:
+ #line 1948 "parser.Y"
+- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 787:
+ #line 1950 "parser.Y"
+- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-3].integer,yyvsp[-2].integer,
+- (CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
++ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].integer),
++ (CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 788:
+ #line 1953 "parser.Y"
+- {FRB->markerLoadFitsCmd(yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].integer, yyvsp[0].str);;}
++ {FRB->markerLoadFitsCmd((yyvsp[(2) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(4) - (5)].integer), (yyvsp[(5) - (5)].str));;}
+ break;
+
+ case 789:
+ #line 1956 "parser.Y"
+- {FRB->markerMoveCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerMoveCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 790:
+@@ -7647,12 +7980,12 @@
+
+ case 792:
+ #line 1959 "parser.Y"
+- {FRB->markerMoveBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerMoveBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 793:
+ #line 1960 "parser.Y"
+- {FRB->markerMoveMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerMoveMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 794:
+@@ -7662,82 +7995,82 @@
+
+ case 795:
+ #line 1963 "parser.Y"
+- {FRB->markerMoveToCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
++ {FRB->markerMoveToCmd(Vector((yyvsp[(4) - (4)].vector)), (CoordSystem)(yyvsp[(2) - (4)].integer), (SkyFrame)(yyvsp[(3) - (4)].integer));;}
+ break;
+
+ case 798:
+ #line 1970 "parser.Y"
+- {setProps(¤tProps,yyvsp[-2].integer,yyvsp[0].integer);;}
++ {setProps(¤tProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 799:
+ #line 1971 "parser.Y"
+- {strncpy(currentColor,yyvsp[0].str,16);;}
++ {strncpy(currentColor,(yyvsp[(3) - (3)].str),16);;}
+ break;
+
+ case 800:
+ #line 1972 "parser.Y"
+- {currentWidth = yyvsp[0].integer;;}
++ {currentWidth = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 801:
+ #line 1973 "parser.Y"
+- {strncpy(currentFont,yyvsp[0].str,32);;}
++ {strncpy(currentFont,(yyvsp[(3) - (3)].str),32);;}
+ break;
+
+ case 802:
+ #line 1974 "parser.Y"
+- {strncpy(currentText,yyvsp[0].str,80);;}
++ {strncpy(currentText,(yyvsp[(3) - (3)].str),80);;}
+ break;
+
+ case 805:
+ #line 1979 "parser.Y"
+- {yyval.integer = Marker::NONE;;}
++ {(yyval.integer) = Marker::NONE;;}
+ break;
+
+ case 806:
+ #line 1980 "parser.Y"
+- {yyval.integer = Marker::SELECT;;}
++ {(yyval.integer) = Marker::SELECT;;}
+ break;
+
+ case 807:
+ #line 1981 "parser.Y"
+- {yyval.integer = Marker::HIGHLITE;;}
++ {(yyval.integer) = Marker::HIGHLITE;;}
+ break;
+
+ case 808:
+ #line 1982 "parser.Y"
+- {yyval.integer = Marker::EDIT;;}
++ {(yyval.integer) = Marker::EDIT;;}
+ break;
+
+ case 809:
+ #line 1983 "parser.Y"
+- {yyval.integer = Marker::MOVE;;}
++ {(yyval.integer) = Marker::MOVE;;}
+ break;
+
+ case 810:
+ #line 1984 "parser.Y"
+- {yyval.integer = Marker::ROTATE;;}
++ {(yyval.integer) = Marker::ROTATE;;}
+ break;
+
+ case 811:
+ #line 1985 "parser.Y"
+- {yyval.integer = Marker::DELETE;;}
++ {(yyval.integer) = Marker::DELETE;;}
+ break;
+
+ case 812:
+ #line 1986 "parser.Y"
+- {yyval.integer = Marker::INCLUDE;;}
++ {(yyval.integer) = Marker::INCLUDE;;}
+ break;
+
+ case 813:
+ #line 1987 "parser.Y"
+- {yyval.integer = Marker::SOURCE;;}
++ {(yyval.integer) = Marker::SOURCE;;}
+ break;
+
+ case 814:
+ #line 1988 "parser.Y"
+- {yyval.integer = Marker::FIXED;;}
++ {(yyval.integer) = Marker::FIXED;;}
+ break;
+
+ case 817:
+@@ -7757,7 +8090,7 @@
+
+ case 821:
+ #line 2000 "parser.Y"
+- {FRB->markerSelectOnlyCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerSelectOnlyCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 822:
+@@ -7767,12 +8100,12 @@
+
+ case 823:
+ #line 2002 "parser.Y"
+- {FRB->markerSelectToggleCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->markerSelectToggleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 826:
+ #line 2010 "parser.Y"
+- {propQMask |= yyvsp[-2].integer; setProps(&propQValue,yyvsp[-2].integer,yyvsp[0].integer);;}
++ {propQMask |= (yyvsp[(1) - (3)].integer); setProps(&propQValue,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 827:
+@@ -7787,13 +8120,13 @@
+
+ case 832:
+ #line 2021 "parser.Y"
+- {taglist.append(new Tag(yyvsp[0].str));;}
++ {taglist.append(new Tag((yyvsp[(3) - (3)].str)));;}
+ break;
+
+ case 833:
+ #line 2024 "parser.Y"
+ {cblist.append(
+- new CallBack(FRB->getInterp(),(CallBack::Type)yyvsp[-2].integer,yyvsp[-1].str,yyvsp[0].str));;}
++ new CallBack(FRB->getInterp(),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str)));;}
+ break;
+
+ case 834:
+@@ -7818,67 +8151,67 @@
+
+ case 838:
+ #line 2035 "parser.Y"
+- {FRB->panCmd(Vector(yyvsp[-3].real,yyvsp[-2].real),Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->panCmd(Vector((yyvsp[(1) - (4)].real),(yyvsp[(2) - (4)].real)),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 839:
+ #line 2037 "parser.Y"
+- {FRB->panCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
++ {FRB->panCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (InternalSystem)(yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 840:
+ #line 2039 "parser.Y"
+- {FRB->panCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
++ {FRB->panCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
+ break;
+
+ case 842:
+ #line 2041 "parser.Y"
+- {FRB->panBBoxCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->panBBoxCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 844:
+ #line 2043 "parser.Y"
+- {FRB->panPreserveCmd(yyvsp[0].integer);;}
++ {FRB->panPreserveCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 845:
+ #line 2047 "parser.Y"
+- {FRB->panToCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
++ {FRB->panToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (InternalSystem)(yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 846:
+ #line 2049 "parser.Y"
+- {FRB->panToCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
++ {FRB->panToCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
+ break;
+
+ case 847:
+ #line 2052 "parser.Y"
+- {FRB->panMotionBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->panMotionBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 848:
+ #line 2053 "parser.Y"
+- {FRB->panMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->panMotionCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 849:
+ #line 2054 "parser.Y"
+- {FRB->panMotionEndCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->panMotionEndCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 850:
+ #line 2057 "parser.Y"
+- {FRB->pannerCmd(yyvsp[0].integer);;}
++ {FRB->pannerCmd((yyvsp[(1) - (1)].integer));;}
+ break;
+
+ case 851:
+ #line 2059 "parser.Y"
+- {FRB->pannerCmd((CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
++ {FRB->pannerCmd((CoordSystem)(yyvsp[(2) - (3)].integer),(SkyFrame)(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 852:
+ #line 2060 "parser.Y"
+- {FRB->pannerCmd(yyvsp[-2].str, yyvsp[-1].integer, yyvsp[0].integer);;}
++ {FRB->pannerCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 853:
+@@ -7888,47 +8221,47 @@
+
+ case 854:
+ #line 2065 "parser.Y"
+- {FRB->psColorSpaceCmd((Widget::PSColorSpace)yyvsp[0].integer);;}
++ {FRB->psColorSpaceCmd((Widget::PSColorSpace)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 855:
+ #line 2066 "parser.Y"
+- {FRB->psLevelCmd(yyvsp[0].integer);;}
++ {FRB->psLevelCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 856:
+ #line 2067 "parser.Y"
+- {FRB->psResolutionCmd(yyvsp[0].integer);;}
++ {FRB->psResolutionCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 857:
+ #line 2070 "parser.Y"
+- {yyval.integer = Widget::BW;;}
++ {(yyval.integer) = Widget::BW;;}
+ break;
+
+ case 858:
+ #line 2071 "parser.Y"
+- {yyval.integer = Widget::GRAY;;}
++ {(yyval.integer) = Widget::GRAY;;}
+ break;
+
+ case 859:
+ #line 2072 "parser.Y"
+- {yyval.integer = Widget::RGB;;}
++ {(yyval.integer) = Widget::RGB;;}
+ break;
+
+ case 860:
+ #line 2073 "parser.Y"
+- {yyval.integer = Widget::CMYK;;}
++ {(yyval.integer) = Widget::CMYK;;}
+ break;
+
+ case 863:
+ #line 2081 "parser.Y"
+- {FRB->regionHighliteBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->regionHighliteBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 864:
+ #line 2083 "parser.Y"
+- {FRB->regionHighliteMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->regionHighliteMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 865:
+@@ -7943,12 +8276,12 @@
+
+ case 867:
+ #line 2089 "parser.Y"
+- {FRB->regionSelectBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->regionSelectBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 868:
+ #line 2090 "parser.Y"
+- {FRB->regionSelectMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->regionSelectMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 869:
+@@ -7963,37 +8296,37 @@
+
+ case 871:
+ #line 2095 "parser.Y"
+- {FRB->setRGBChannelCmd(yyvsp[0].str);;}
++ {FRB->setRGBChannelCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 872:
+ #line 2096 "parser.Y"
+- {FRB->setRGBSystemCmd((CoordSystem)yyvsp[0].integer);;}
++ {FRB->setRGBSystemCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 873:
+ #line 2097 "parser.Y"
+- {FRB->setRGBViewCmd(yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->setRGBViewCmd((yyvsp[(2) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 874:
+ #line 2100 "parser.Y"
+- {FRB->rotateCmd(degToRad(yyvsp[0].real));;}
++ {FRB->rotateCmd(degToRad((yyvsp[(1) - (1)].real)));;}
+ break;
+
+ case 875:
+ #line 2101 "parser.Y"
+- {FRB->rotateCmd(degToRad(yyvsp[-1].real));;}
++ {FRB->rotateCmd(degToRad((yyvsp[(1) - (2)].real)));;}
+ break;
+
+ case 877:
+ #line 2103 "parser.Y"
+- {FRB->rotateToCmd(degToRad(yyvsp[0].real));;}
++ {FRB->rotateToCmd(degToRad((yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 878:
+ #line 2104 "parser.Y"
+- {FRB->rotateToCmd(degToRad(yyvsp[-1].real));;}
++ {FRB->rotateToCmd(degToRad((yyvsp[(2) - (3)].real)));;}
+ break;
+
+ case 879:
+@@ -8003,7 +8336,7 @@
+
+ case 880:
+ #line 2108 "parser.Y"
+- {FRB->rotateMotionCmd(degToRad(yyvsp[0].real));;}
++ {FRB->rotateMotionCmd(degToRad((yyvsp[(1) - (1)].real)));;}
+ break;
+
+ case 881:
+@@ -8013,67 +8346,67 @@
+
+ case 884:
+ #line 2116 "parser.Y"
+- {FRB->saveArrayFileCmd(yyvsp[0].str);;}
++ {FRB->saveArrayFileCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 885:
+ #line 2117 "parser.Y"
+- {FRB->saveArrayChannelCmd(yyvsp[0].str);;}
++ {FRB->saveArrayChannelCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 886:
+ #line 2118 "parser.Y"
+- {FRB->saveArraySocketCmd(yyvsp[0].integer);;}
++ {FRB->saveArraySocketCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 890:
+ #line 2126 "parser.Y"
+- {FRB->saveFitsImageFileCmd(yyvsp[-1].str, yyvsp[0].integer);;}
++ {FRB->saveFitsImageFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 891:
+ #line 2127 "parser.Y"
+- {FRB->saveFitsImageChannelCmd(yyvsp[-1].str, yyvsp[0].integer);;}
++ {FRB->saveFitsImageChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 892:
+ #line 2128 "parser.Y"
+- {FRB->saveFitsImageSocketCmd(yyvsp[-1].integer, yyvsp[0].integer);;}
++ {FRB->saveFitsImageSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 893:
+ #line 2131 "parser.Y"
+- {FRB->saveFitsTableFileCmd(yyvsp[-1].str, yyvsp[0].integer);;}
++ {FRB->saveFitsTableFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 894:
+ #line 2132 "parser.Y"
+- {FRB->saveFitsTableChannelCmd(yyvsp[-1].str, yyvsp[0].integer);;}
++ {FRB->saveFitsTableChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 895:
+ #line 2133 "parser.Y"
+- {FRB->saveFitsTableSocketCmd(yyvsp[-1].integer, yyvsp[0].integer);;}
++ {FRB->saveFitsTableSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 896:
+ #line 2137 "parser.Y"
+- {FRB->saveFitsResampleFileCmd(yyvsp[-1].str, yyvsp[0].integer);;}
++ {FRB->saveFitsResampleFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 897:
+ #line 2139 "parser.Y"
+- {FRB->saveFitsResampleChannelCmd(yyvsp[-1].str, yyvsp[0].integer);;}
++ {FRB->saveFitsResampleChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 898:
+ #line 2141 "parser.Y"
+- {FRB->saveFitsResampleSocketCmd(yyvsp[-1].integer, yyvsp[0].integer);;}
++ {FRB->saveFitsResampleSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 899:
+ #line 2145 "parser.Y"
+- {FRB->smoothCmd((FrameBase::SmoothFunction)yyvsp[-1].integer,yyvsp[0].integer);;}
++ {FRB->smoothCmd((FrameBase::SmoothFunction)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 900:
+@@ -8083,17 +8416,17 @@
+
+ case 901:
+ #line 2149 "parser.Y"
+- {yyval.integer = FrameBase::BOXCAR;;}
++ {(yyval.integer) = FrameBase::BOXCAR;;}
+ break;
+
+ case 902:
+ #line 2150 "parser.Y"
+- {yyval.integer = FrameBase::GAUSSIAN;;}
++ {(yyval.integer) = FrameBase::GAUSSIAN;;}
+ break;
+
+ case 903:
+ #line 2151 "parser.Y"
+- {yyval.integer = FrameBase::TOPHAT;;}
++ {(yyval.integer) = FrameBase::TOPHAT;;}
+ break;
+
+ case 904:
+@@ -8103,7 +8436,7 @@
+
+ case 905:
+ #line 2156 "parser.Y"
+- {FRB->updateFitsCmd(yyvsp[-4].integer,BBox(yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].real,yyvsp[0].real),0);;}
++ {FRB->updateFitsCmd((yyvsp[(1) - (5)].integer),BBox((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)),0);;}
+ break;
+
+ case 906:
+@@ -8113,32 +8446,32 @@
+
+ case 907:
+ #line 2159 "parser.Y"
+- {FRB->updateFitsCmd(yyvsp[-4].integer,BBox(yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].real,yyvsp[0].real),1);;}
++ {FRB->updateFitsCmd((yyvsp[(2) - (6)].integer),BBox((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),1);;}
+ break;
+
+ case 908:
+ #line 2160 "parser.Y"
+- {FRB->sliceCmd(yyvsp[0].integer);;}
++ {FRB->sliceCmd((yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 909:
+ #line 2163 "parser.Y"
+- {FRB->warpCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->warpCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 910:
+ #line 2164 "parser.Y"
+- {FRB->warpToCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->warpToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+ break;
+
+ case 911:
+ #line 2168 "parser.Y"
+- {FRB->wcsAlignCmd(yyvsp[-2].integer,(CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
++ {FRB->wcsAlignCmd((yyvsp[(2) - (4)].integer),(CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 912:
+ #line 2170 "parser.Y"
+- {FRB->wcsZoomCmd((CoordSystem)yyvsp[-2].integer, Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->wcsZoomCmd((CoordSystem)(yyvsp[(2) - (4)].integer), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 913:
+@@ -8148,38 +8481,38 @@
+
+ case 914:
+ #line 2172 "parser.Y"
+- {FRB->wcsReplaceCmd(yyvsp[0].integer);;}
++ {FRB->wcsReplaceCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 915:
+ #line 2173 "parser.Y"
+- {FRB->wcsReplaceCmd(yyvsp[0].str);;}
++ {FRB->wcsReplaceCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 916:
+ #line 2174 "parser.Y"
+- {FRB->wcsAppendCmd(yyvsp[0].integer);;}
++ {FRB->wcsAppendCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 917:
+ #line 2175 "parser.Y"
+- {FRB->wcsAppendCmd(yyvsp[0].str);;}
++ {FRB->wcsAppendCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 918:
+ #line 2178 "parser.Y"
+- {FRB->zoomCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->zoomCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 919:
+ #line 2180 "parser.Y"
+- {FRB->zoomAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[-1].real,yyvsp[0].real),(InternalSystem)yyvsp[-2].integer);;}
++ {FRB->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),(InternalSystem)(yyvsp[(4) - (6)].integer));;}
+ break;
+
+ case 920:
+ #line 2182 "parser.Y"
+- {FRB->zoomAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[0].vector),
+- (CoordSystem)yyvsp[-2].integer,(SkyFrame)yyvsp[-1].integer);;}
++ {FRB->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(6) - (6)].vector)),
++ (CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
+ break;
+
+ case 922:
+@@ -8189,36 +8522,35 @@
+
+ case 923:
+ #line 2188 "parser.Y"
+- {FRB->zoomToFitCmd(yyvsp[0].real);;}
++ {FRB->zoomToFitCmd((yyvsp[(2) - (2)].real));;}
+ break;
+
+ case 924:
+ #line 2189 "parser.Y"
+- {FRB->zoomToCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
++ {FRB->zoomToCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 925:
+ #line 2191 "parser.Y"
+- {FRB->zoomToAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[-1].real,yyvsp[0].real),
+- (InternalSystem)yyvsp[-2].integer);;}
++ {FRB->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),
++ (InternalSystem)(yyvsp[(4) - (6)].integer));;}
+ break;
+
+ case 926:
+ #line 2194 "parser.Y"
+- {FRB->zoomToAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[0].vector),
+- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
++ {FRB->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)), Vector((yyvsp[(6) - (6)].vector)),
++ (CoordSystem)(yyvsp[(4) - (6)].integer), (SkyFrame)(yyvsp[(5) - (6)].integer));;}
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 8548 "parser.C"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 8217 "parser.C"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -8247,99 +8579,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror ("syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror ("syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (yymsg);
++ }
++ else
++ {
++ yyerror (YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -8349,15 +8647,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -8386,9 +8686,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -8396,11 +8697,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -8420,21 +8722,39 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror ("parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+--- saods9-4.0b7.orig/saotk/frame/ds9parser.H
++++ saods9-4.0b7/saotk/frame/ds9parser.H
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton interface for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,13 +17,21 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+ /* Tokens. */
+ #ifndef YYTOKENTYPE
+@@ -152,6 +162,7 @@
+ SYM_XOR = 378
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -277,16 +288,18 @@
+
+
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 127 "ds9parser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 1275 of yacc.c. */
+-#line 290 "ds9parser.H"
++}
++/* Line 1529 of yacc.c. */
++#line 302 "ds9parser.H"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -294,5 +307,3 @@
+
+ extern YYSTYPE mklval;
+
+-
+-
+--- saods9-4.0b7.orig/saotk/frame/xyparser.H
++++ saods9-4.0b7/saotk/frame/xyparser.H
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton interface for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,13 +17,21 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+ /* Tokens. */
+ #ifndef YYTOKENTYPE
+@@ -85,6 +95,7 @@
+ WCSZ_ = 311
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define HOUR 260
+@@ -143,16 +154,18 @@
+
+
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 40 "xyparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 1275 of yacc.c. */
+-#line 156 "xyparser.H"
++}
++/* Line 1529 of yacc.c. */
++#line 168 "xyparser.H"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -160,5 +173,3 @@
+
+ extern YYSTYPE xylval;
+
+-
+-
+--- saods9-4.0b7.orig/saotk/frame/saoparser.C
++++ saods9-4.0b7/saotk/frame/saoparser.C
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -45,8 +58,7 @@
+ /* Using locations. */
+ #define YYLSP_NEEDED 0
+
+-/* If NAME_PREFIX is specified substitute the variables and functions
+- names. */
++/* Substitute the variable and function names. */
+ #define yyparse saoparse
+ #define yylex saolex
+ #define yyerror saoerror
+@@ -80,6 +92,7 @@
+ VERSION_ = 273
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -112,8 +125,8 @@
+ #define DISCARD_(x) {yyclearin; saoDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+@@ -166,16 +179,23 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 56 "saoparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 179 "saoparser.C"
++}
++/* Line 193 of yacc.c. */
++#line 198 "saoparser.C"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -186,56 +206,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 191 "saoparser.C"
++/* Line 216 of yacc.c. */
++#line 211 "saoparser.C"
++
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
++
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
++# endif
++#endif
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifndef YY_
++# if YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -245,24 +380,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -280,39 +415,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
+-
+-#endif
++ while (YYID (0))
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+ #endif
+
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 3
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 160
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 30
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 31
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 59
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 139
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 273
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned char yytranslate[] =
++static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 19, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -347,7 +476,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned char yyprhs[] =
++static const yytype_uint8 yyprhs[] =
+ {
+ 0, 0, 3, 7, 11, 14, 15, 18, 20, 24,
+ 26, 28, 30, 32, 34, 36, 38, 40, 41, 43,
+@@ -357,8 +486,8 @@
+ 207, 209, 213, 215, 217, 218, 219, 223, 225, 226
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const yysigned_char yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int8 yyrhs[] =
+ {
+ 31, 0, -1, 46, 32, 56, -1, 32, 33, 34,
+ -1, 33, 34, -1, -1, 10, 36, -1, 18, -1,
+@@ -387,7 +516,7 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned short yyrline[] =
++static const yytype_uint16 yyrline[] =
+ {
+ 0, 93, 93, 96, 97, 100, 101, 102, 103, 104,
+ 107, 108, 109, 112, 113, 116, 117, 120, 121, 124,
+@@ -398,9 +527,9 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "INT", "REAL", "STRING", "EOF_",
+@@ -418,7 +547,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 10,
+@@ -427,7 +556,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned char yyr1[] =
++static const yytype_uint8 yyr1[] =
+ {
+ 0, 30, 31, 32, 32, 33, 33, 33, 33, 33,
+ 34, 34, 34, 35, 35, 36, 36, 37, 37, 38,
+@@ -438,7 +567,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 3, 3, 2, 0, 2, 1, 3, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
+@@ -451,7 +580,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned char yydefact[] =
++static const yytype_uint8 yydefact[] =
+ {
+ 30, 0, 31, 1, 0, 7, 55, 31, 0, 32,
+ 9, 16, 15, 6, 0, 0, 2, 12, 10, 11,
+@@ -469,8 +598,8 @@
+ 0, 17, 17, 23, 23, 21, 21, 44, 41
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const yysigned_char yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int8 yydefgoto[] =
+ {
+ -1, 1, 7, 8, 20, 44, 13, 53, 35, 59,
+ 89, 90, 112, 68, 102, 60, 2, 9, 23, 33,
+@@ -481,7 +610,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -71
+-static const short yypact[] =
++static const yytype_int16 yypact[] =
+ {
+ -71, 21, 119, -71, 11, -71, -71, 116, 16, 31,
+ -71, -71, -71, -71, 22, 16, -71, -71, -71, -71,
+@@ -500,7 +629,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const yysigned_char yypgoto[] =
++static const yytype_int8 yypgoto[] =
+ {
+ -71, -71, -71, 80, 71, -10, -71, -28, -27, 19,
+ -70, -71, -40, -2, -71, -29, -71, -71, -71, -71,
+@@ -513,7 +642,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -55
+-static const short yytable[] =
++static const yytype_int16 yytable[] =
+ {
+ 36, 37, 38, 39, 16, 41, 45, 46, 47, 48,
+ 49, 92, 51, 50, 66, 94, 69, 54, 55, 56,
+@@ -534,7 +663,7 @@
+ 58
+ };
+
+-static const short yycheck[] =
++static const yytype_int16 yycheck[] =
+ {
+ 27, 28, 29, 30, 7, 32, 35, 36, 37, 38,
+ 39, 81, 41, 40, 54, 85, 56, 45, 46, 47,
+@@ -557,7 +686,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned char yystos[] =
++static const yytype_uint8 yystos[] =
+ {
+ 0, 31, 46, 0, 10, 18, 29, 32, 33, 47,
+ 57, 13, 14, 36, 58, 33, 56, 6, 19, 20,
+@@ -575,22 +704,6 @@
+ 37, 43, 43, 37, 37, 40, 40, 39, 39
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -616,30 +729,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror ("syntax error: cannot back up");\
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -660,42 +806,96 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -704,45 +904,52 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
+ int yyrule;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -757,13 +964,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -773,45 +976,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -821,70 +1026,192 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
+
+-
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ if (! yyres)
++ return yystrlen (yystr);
++
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
++
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
+
+- switch (yytype)
+- {
+- default:
+- break;
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -892,13 +1219,13 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void);
+ #else
+ int yyparse ();
+@@ -907,10 +1234,10 @@
+
+
+
+-/* The lookahead symbol. */
++/* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+@@ -923,14 +1250,18 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+ #else
+@@ -941,13 +1272,19 @@
+ #endif
+ {
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -958,18 +1295,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -978,9 +1315,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -1004,8 +1341,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -1018,18 +1354,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -1040,21 +1376,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -1085,19 +1421,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -1112,7 +1446,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -1132,22 +1466,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -1194,12 +1527,12 @@
+
+ case 13:
+ #line 112 "saoparser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 14:
+ #line 113 "saoparser.Y"
+- {yyval.real=yyvsp[0].integer;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 15:
+@@ -1214,46 +1547,46 @@
+
+ case 23:
+ #line 132 "saoparser.Y"
+- {yyval.real = 0;;}
++ {(yyval.real) = 0;;}
+ break;
+
+ case 24:
+ #line 133 "saoparser.Y"
+- {yyval.real = yyvsp[0].real;;}
++ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 25:
+ #line 136 "saoparser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 26:
+ #line 139 "saoparser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, IMAGE);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
+ break;
+
+ case 27:
+ #line 143 "saoparser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 28:
+ #line 151 "saoparser.Y"
+- {yyval.integer = yyvsp[0].integer;;}
++ {(yyval.integer) = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 29:
+ #line 155 "saoparser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1289,15 +1622,15 @@
+
+ case 35:
+ #line 180 "saoparser.Y"
+- {FR->createCircleCmd(Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ {FR->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)),
++ (yyvsp[(5) - (7)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 36:
+ #line 184 "saoparser.Y"
+- {FR->createAnnulusCmd(Vector(yyvsp[-6].vector),
+- yyvsp[-4].real,yyvsp[-2].real,1,
++ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (9)].vector)),
++ (yyvsp[(5) - (9)].real),(yyvsp[(7) - (9)].real),1,
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1309,9 +1642,9 @@
+ case 38:
+ #line 189 "saoparser.Y"
+ {
+- aAnnuli[0] = yyvsp[-7].real;
+- aAnnuli[1] = yyvsp[-5].real;
+- FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
++ aAnnuli[0] = (yyvsp[(5) - (12)].real);
++ aAnnuli[1] = (yyvsp[(7) - (12)].real);
++ FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
+ aNum,aAnnuli,
+ color,1,font,text,localProps,localComment,taglist,cblist);
+ ;}
+@@ -1319,8 +1652,8 @@
+
+ case 39:
+ #line 197 "saoparser.Y"
+- {FR->createAnnulusCmd(Vector(yyvsp[-8].vector),
+- yyvsp[-6].real,yyvsp[-4].real,yyvsp[-2].integer,
++ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (11)].vector)),
++ (yyvsp[(5) - (11)].real),(yyvsp[(7) - (11)].real),(yyvsp[(9) - (11)].integer),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1329,16 +1662,16 @@
+ {
+ // for ellipse annulus
+ aStatus = 1;
+- aCenter = Vector(yyvsp[-6].vector);
+- aAngle = yyvsp[-2].real;
+- aVector[0] = Vector(yyvsp[-4].vector);
++ aCenter = Vector((yyvsp[(3) - (9)].vector));
++ aAngle = (yyvsp[(7) - (9)].real);
++ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
+ aNum = 1;
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+- FR->createEllipseCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ FR->createEllipseCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+@@ -1347,7 +1680,7 @@
+ #line 220 "saoparser.Y"
+ {
+ aStatus = 2;
+- aVector[aNum++] = Vector(yyvsp[-13].vector);
++ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
+ ;}
+ break;
+
+@@ -1356,25 +1689,25 @@
+ {
+ // for box annulus
+ aStatus = 3;
+- aCenter = Vector(yyvsp[-6].vector);
+- aAngle = yyvsp[-2].real;
+- aVector[0] = Vector(yyvsp[-4].vector);
++ aCenter = Vector((yyvsp[(3) - (9)].vector));
++ aAngle = (yyvsp[(7) - (9)].real);
++ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
+ aNum = 1;
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+- FR->createBoxCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 43:
+ #line 242 "saoparser.Y"
+- {FR->createBoxCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ {FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1382,13 +1715,13 @@
+ #line 248 "saoparser.Y"
+ {
+ aStatus = 4;
+- aVector[aNum++] = Vector(yyvsp[-13].vector);
++ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
+ ;}
+ break;
+
+ case 45:
+ #line 254 "saoparser.Y"
+- {FR->createBoxCirclePointCmd(Vector(yyvsp[-2].vector),
++ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)),
+ color,1,font,text,localProps,localComment,taglist,cblist);;}
+ break;
+
+@@ -1405,12 +1738,12 @@
+
+ case 50:
+ #line 266 "saoparser.Y"
+- {polylist.append(new Vertex(yyvsp[0].vector));;}
++ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
+ break;
+
+ case 53:
+ #line 273 "saoparser.Y"
+- {aAnnuli[aNum++] = yyvsp[0].real;;}
++ {aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 54:
+@@ -1454,19 +1787,18 @@
+
+ case 59:
+ #line 309 "saoparser.Y"
+- {strncpy(localComment,yyvsp[-1].str,80);;}
++ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);;}
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 1796 "saoparser.C"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 1465 "saoparser.C"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -1495,99 +1827,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror ("syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror ("syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (yymsg);
++ }
++ else
++ {
++ yyerror (YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -1597,15 +1895,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -1634,9 +1934,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -1644,11 +1945,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -1668,21 +1970,39 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror ("parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+--- saods9-4.0b7.orig/saotk/frame/ds9parser.Y
++++ saods9-4.0b7/saotk/frame/ds9parser.Y
+@@ -12,8 +12,8 @@
+ #define DISCARD_(x) {yyclearin; mkDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+--- saods9-4.0b7.orig/saotk/frame/prosparser.H
++++ saods9-4.0b7/saotk/frame/prosparser.H
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton interface for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,13 +17,21 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+ /* Tokens. */
+ #ifndef YYTOKENTYPE
+@@ -62,6 +72,7 @@
+ VERSION_ = 288
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -97,16 +108,18 @@
+
+
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 65 "prosparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 1275 of yacc.c. */
+-#line 110 "prosparser.H"
++}
++/* Line 1529 of yacc.c. */
++#line 122 "prosparser.H"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -114,5 +127,3 @@
+
+ extern YYSTYPE proslval;
+
+-
+-
+--- saods9-4.0b7.orig/saotk/frame/ciaolex.C
++++ saods9-4.0b7/saotk/frame/ciaolex.C
+@@ -4,7 +4,7 @@
+ /* A lexical scanner generated by flex */
+
+ /* Scanner skeleton version:
+- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/ciaolex.C,v 1.79 2005/08/24 20:37:45 joye Exp $
++ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+ #define FLEX_SCANNER
+@@ -12,7 +12,6 @@
+ #define YY_FLEX_MINOR_VERSION 5
+
+
+-
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+ #ifndef __cplusplus
+@@ -24,8 +23,12 @@
+ #ifdef __cplusplus
+
+ #include <stdlib.h>
+-#include <iostream>
+-using namespace std;
++#include <fstream>
++using std::istream;
++using std::ostream;
++#ifndef _WIN32
++#include <unistd.h>
++#endif
+
+ /* Use prototypes in function declarations. */
+ #define YY_USE_PROTOS
+@@ -65,6 +68,7 @@
+ #define YY_PROTO(proto) ()
+ #endif
+
++
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+@@ -412,7 +416,7 @@
+ extern ciaoFlexLexer* ciaolexx;
+ extern int ciaosign;
+ /* rules */
+-#line 416 "ciaolex.C"
++#line 420 "ciaolex.C"
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -536,13 +540,13 @@
+ YY_DECL
+ {
+ register yy_state_type yy_current_state;
+- register char *yy_cp = NULL, *yy_bp = NULL;
++ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ #line 28 "ciaolex.L"
+
+
+-#line 546 "ciaolex.C"
++#line 550 "ciaolex.C"
+
+ if ( yy_init )
+ {
+@@ -817,7 +821,7 @@
+ #line 121 "ciaolex.L"
+ ECHO;
+ YY_BREAK
+-#line 821 "ciaolex.C"
++#line 825 "ciaolex.C"
+
+ case YY_END_OF_BUFFER:
+ {
+@@ -1333,6 +1337,7 @@
+ return c;
+ }
+
++
+ void yyFlexLexer::yyrestart( istream* input_file )
+ {
+ if ( ! yy_current_buffer )
+--- saods9-4.0b7.orig/saotk/frame/xyparser.Y
++++ saods9-4.0b7/saotk/frame/xyparser.Y
+@@ -10,8 +10,8 @@
+ #define FITSPTR (FR->findFits(1))
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+--- saods9-4.0b7.orig/saotk/frame/callback.C
++++ saods9-4.0b7/saotk/frame/callback.C
+@@ -2,8 +2,9 @@
+ // Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+ // For conditions of distribution and use, see copyright notice in "copyright"
+
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <cstring>
++#include <iostream>
+
+ #include "callback.h"
+
+--- saods9-4.0b7.orig/saotk/frame/parser.Y
++++ saods9-4.0b7/saotk/frame/parser.Y
+@@ -12,8 +12,8 @@
+ #define FITSPTR (FRB->findFits(1))
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "frame.h"
+--- saods9-4.0b7.orig/saotk/frame/saolex.C
++++ saods9-4.0b7/saotk/frame/saolex.C
+@@ -4,7 +4,7 @@
+ /* A lexical scanner generated by flex */
+
+ /* Scanner skeleton version:
+- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/saolex.C,v 1.76 2005/08/11 21:32:52 joye Exp $
++ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+ #define FLEX_SCANNER
+@@ -12,7 +12,6 @@
+ #define YY_FLEX_MINOR_VERSION 5
+
+
+-
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+ #ifndef __cplusplus
+@@ -24,8 +23,12 @@
+ #ifdef __cplusplus
+
+ #include <stdlib.h>
+-#include <iostream>
+-using namespace std;
++#include <fstream>
++using std::istream;
++using std::ostream;
++#ifndef _WIN32
++#include <unistd.h>
++#endif
+
+ /* Use prototypes in function declarations. */
+ #define YY_USE_PROTOS
+@@ -65,6 +68,7 @@
+ #define YY_PROTO(proto) ()
+ #endif
+
++
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+@@ -424,7 +428,7 @@
+ #define DISCARD 1
+
+ /* rules */
+-#line 428 "saolex.C"
++#line 432 "saolex.C"
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -548,13 +552,13 @@
+ YY_DECL
+ {
+ register yy_state_type yy_current_state;
+- register char *yy_cp = NULL, *yy_bp = NULL;
++ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ #line 29 "saolex.L"
+
+
+-#line 558 "saolex.C"
++#line 562 "saolex.C"
+
+ if ( yy_init )
+ {
+@@ -808,7 +812,7 @@
+ #line 109 "saolex.L"
+ ECHO;
+ YY_BREAK
+-#line 812 "saolex.C"
++#line 816 "saolex.C"
+
+ case YY_END_OF_BUFFER:
+ {
+@@ -1324,6 +1328,7 @@
+ return c;
+ }
+
++
+ void yyFlexLexer::yyrestart( istream* input_file )
+ {
+ if ( ! yy_current_buffer )
+--- saods9-4.0b7.orig/saotk/frame/saoparser.H
++++ saods9-4.0b7/saotk/frame/saoparser.H
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton interface for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,13 +17,21 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+ /* Tokens. */
+ #ifndef YYTOKENTYPE
+@@ -47,6 +57,7 @@
+ VERSION_ = 273
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -67,16 +78,18 @@
+
+
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 56 "saoparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 1275 of yacc.c. */
+-#line 80 "saoparser.H"
++}
++/* Line 1529 of yacc.c. */
++#line 92 "saoparser.H"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -84,5 +97,3 @@
+
+ extern YYSTYPE saolval;
+
+-
+-
+--- saods9-4.0b7.orig/saotk/frame/ciaoparser.H
++++ saods9-4.0b7/saotk/frame/ciaoparser.H
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton interface for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,13 +17,21 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+ /* Tokens. */
+ #ifndef YYTOKENTYPE
+@@ -52,6 +62,7 @@
+ VERSION_ = 278
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define HOUR 260
+@@ -77,16 +88,18 @@
+
+
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 43 "ciaoparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 1275 of yacc.c. */
+-#line 90 "ciaoparser.H"
++}
++/* Line 1529 of yacc.c. */
++#line 102 "ciaoparser.H"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -94,5 +107,3 @@
+
+ extern YYSTYPE ciaolval;
+
+-
+-
+--- saods9-4.0b7.orig/saotk/frame/tngparser.H
++++ saods9-4.0b7/saotk/frame/tngparser.H
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton interface for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,13 +17,21 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+ /* Tokens. */
+ #ifndef YYTOKENTYPE
+@@ -70,6 +80,7 @@
+ YELLOW_ = 296
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -113,16 +124,18 @@
+
+
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 60 "tngparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 1275 of yacc.c. */
+-#line 126 "tngparser.H"
++}
++/* Line 1529 of yacc.c. */
++#line 138 "tngparser.H"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -130,5 +143,3 @@
+
+ extern YYSTYPE tnglval;
+
+-
+-
+--- saods9-4.0b7.orig/saotk/frame/grid.C
++++ saods9-4.0b7/saotk/frame/grid.C
+@@ -2,7 +2,7 @@
+ // Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+ // For conditions of distribution and use, see copyright notice in "copyright"
+
+-#include <iomanip.h>
++#include <iomanip>
+
+ #include "grid.h"
+ #include "util.h"
+--- saods9-4.0b7.orig/saotk/frame/xylex.C
++++ saods9-4.0b7/saotk/frame/xylex.C
+@@ -4,7 +4,7 @@
+ /* A lexical scanner generated by flex */
+
+ /* Scanner skeleton version:
+- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/xylex.C,v 1.76 2005/08/11 21:32:53 joye Exp $
++ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+ #define FLEX_SCANNER
+@@ -12,7 +12,6 @@
+ #define YY_FLEX_MINOR_VERSION 5
+
+
+-
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+ #ifndef __cplusplus
+@@ -24,8 +23,12 @@
+ #ifdef __cplusplus
+
+ #include <stdlib.h>
+-#include <iostream>
+-using namespace std;
++#include <fstream>
++using std::istream;
++using std::ostream;
++#ifndef _WIN32
++#include <unistd.h>
++#endif
+
+ /* Use prototypes in function declarations. */
+ #define YY_USE_PROTOS
+@@ -65,6 +68,7 @@
+ #define YY_PROTO(proto) ()
+ #endif
+
++
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+@@ -446,7 +450,7 @@
+ extern xyFlexLexer* xylexx;
+ extern int xysign;
+ /* rules */
+-#line 450 "xylex.C"
++#line 454 "xylex.C"
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -570,13 +574,13 @@
+ YY_DECL
+ {
+ register yy_state_type yy_current_state;
+- register char *yy_cp = NULL, *yy_bp = NULL;
++ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ #line 28 "xylex.L"
+
+
+-#line 580 "xylex.C"
++#line 584 "xylex.C"
+
+ if ( yy_init )
+ {
+@@ -997,7 +1001,7 @@
+ #line 145 "xylex.L"
+ ECHO;
+ YY_BREAK
+-#line 1001 "xylex.C"
++#line 1005 "xylex.C"
+
+ case YY_END_OF_BUFFER:
+ {
+@@ -1513,6 +1517,7 @@
+ return c;
+ }
+
++
+ void yyFlexLexer::yyrestart( istream* input_file )
+ {
+ if ( ! yy_current_buffer )
+--- saods9-4.0b7.orig/saotk/frame/ds9lex.C
++++ saods9-4.0b7/saotk/frame/ds9lex.C
+@@ -4,7 +4,7 @@
+ /* A lexical scanner generated by flex */
+
+ /* Scanner skeleton version:
+- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/ds9lex.C,v 1.98 2005/08/11 21:32:11 joye Exp $
++ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+ #define FLEX_SCANNER
+@@ -12,7 +12,6 @@
+ #define YY_FLEX_MINOR_VERSION 5
+
+
+-
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+ #ifndef __cplusplus
+@@ -24,8 +23,12 @@
+ #ifdef __cplusplus
+
+ #include <stdlib.h>
+-#include <iostream>
+-using namespace std;
++#include <fstream>
++using std::istream;
++using std::ostream;
++#ifndef _WIN32
++#include <unistd.h>
++#endif
+
+ /* Use prototypes in function declarations. */
+ #define YY_USE_PROTOS
+@@ -65,6 +68,7 @@
+ #define YY_PROTO(proto) ()
+ #endif
+
++
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+@@ -628,7 +632,7 @@
+ #define DISCARD 1
+
+ /* rules */
+-#line 632 "ds9lex.C"
++#line 636 "ds9lex.C"
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -752,13 +756,13 @@
+ YY_DECL
+ {
+ register yy_state_type yy_current_state;
+- register char *yy_cp = NULL, *yy_bp = NULL;
++ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ #line 30 "ds9lex.L"
+
+
+-#line 762 "ds9lex.C"
++#line 766 "ds9lex.C"
+
+ if ( yy_init )
+ {
+@@ -1579,7 +1583,7 @@
+ #line 272 "ds9lex.L"
+ ECHO;
+ YY_BREAK
+-#line 1583 "ds9lex.C"
++#line 1587 "ds9lex.C"
+
+ case YY_END_OF_BUFFER:
+ {
+@@ -2095,6 +2099,7 @@
+ return c;
+ }
+
++
+ void yyFlexLexer::yyrestart( istream* input_file )
+ {
+ if ( ! yy_current_buffer )
+--- saods9-4.0b7.orig/saotk/frame/ciaoparser.Y
++++ saods9-4.0b7/saotk/frame/ciaoparser.Y
+@@ -10,8 +10,8 @@
+ #define FITSPTR (FR->findFits(1))
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+--- saods9-4.0b7.orig/saotk/frame/prosparser.Y
++++ saods9-4.0b7/saotk/frame/prosparser.Y
+@@ -12,8 +12,8 @@
+ #define DISCARD_(x) {yyclearin; prosDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+--- saods9-4.0b7.orig/saotk/frame/proslex.C
++++ saods9-4.0b7/saotk/frame/proslex.C
+@@ -4,7 +4,7 @@
+ /* A lexical scanner generated by flex */
+
+ /* Scanner skeleton version:
+- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/proslex.C,v 1.76 2005/08/11 21:32:51 joye Exp $
++ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+ #define FLEX_SCANNER
+@@ -12,7 +12,6 @@
+ #define YY_FLEX_MINOR_VERSION 5
+
+
+-
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+ #ifndef __cplusplus
+@@ -24,8 +23,12 @@
+ #ifdef __cplusplus
+
+ #include <stdlib.h>
+-#include <iostream>
+-using namespace std;
++#include <fstream>
++using std::istream;
++using std::ostream;
++#ifndef _WIN32
++#include <unistd.h>
++#endif
+
+ /* Use prototypes in function declarations. */
+ #define YY_USE_PROTOS
+@@ -65,6 +68,7 @@
+ #define YY_PROTO(proto) ()
+ #endif
+
++
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+@@ -482,7 +486,7 @@
+ #define DISCARD 1
+
+ /* rules */
+-#line 486 "proslex.C"
++#line 490 "proslex.C"
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -606,13 +610,13 @@
+ YY_DECL
+ {
+ register yy_state_type yy_current_state;
+- register char *yy_cp = NULL, *yy_bp = NULL;
++ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ #line 30 "proslex.L"
+
+
+-#line 616 "proslex.C"
++#line 620 "proslex.C"
+
+ if ( yy_init )
+ {
+@@ -986,7 +990,7 @@
+ #line 172 "proslex.L"
+ ECHO;
+ YY_BREAK
+-#line 990 "proslex.C"
++#line 994 "proslex.C"
+
+ case YY_END_OF_BUFFER:
+ {
+@@ -1502,6 +1506,7 @@
+ return c;
+ }
+
++
+ void yyFlexLexer::yyrestart( istream* input_file )
+ {
+ if ( ! yy_current_buffer )
+--- saods9-4.0b7.orig/saotk/frame/ds9parser.C
++++ saods9-4.0b7/saotk/frame/ds9parser.C
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -45,8 +58,7 @@
+ /* Using locations. */
+ #define YYLSP_NEEDED 0
+
+-/* If NAME_PREFIX is specified substitute the variables and functions
+- names. */
++/* Substitute the variable and function names. */
+ #define yyparse mkparse
+ #define yylex mklex
+ #define yyerror mkerror
+@@ -185,6 +197,7 @@
+ SYM_XOR = 378
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -322,8 +335,8 @@
+ #define DISCARD_(x) {yyclearin; mkDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+@@ -447,16 +460,23 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 127 "ds9parser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 460 "ds9parser.C"
++}
++/* Line 193 of yacc.c. */
++#line 479 "ds9parser.C"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -467,56 +487,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 472 "ds9parser.C"
++/* Line 216 of yacc.c. */
++#line 492 "ds9parser.C"
++
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
++
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
++# endif
++#endif
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifndef YY_
++# if YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -526,24 +661,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -561,39 +696,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
+-
+-#endif
++ while (YYID (0))
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+ #endif
+
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 3
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 2269
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 136
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 71
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 306
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 792
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 378
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned char yytranslate[] =
++static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 125, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -638,7 +767,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned short yyprhs[] =
++static const yytype_uint16 yyprhs[] =
+ {
+ 0, 0, 3, 7, 11, 14, 15, 18, 20, 24,
+ 27, 31, 32, 36, 37, 41, 42, 46, 50, 55,
+@@ -673,8 +802,8 @@
+ 1202, 1206, 1208, 1210, 1214, 1216, 1220
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const short yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int16 yyrhs[] =
+ {
+ 137, 0, -1, 180, 138, 206, -1, 138, 139, 153,
+ -1, 139, 153, -1, -1, 35, 155, -1, 84, -1,
+@@ -802,7 +931,7 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned short yyrline[] =
++static const yytype_uint16 yyrline[] =
+ {
+ 0, 281, 281, 284, 285, 288, 289, 290, 292, 293,
+ 294, 296, 296, 297, 297, 298, 298, 300, 301, 303,
+@@ -838,9 +967,9 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "INT", "REAL", "STRING", "HOUR",
+@@ -880,7 +1009,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+@@ -900,7 +1029,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned char yyr1[] =
++static const yytype_uint8 yyr1[] =
+ {
+ 0, 136, 137, 138, 138, 139, 139, 139, 139, 139,
+ 139, 140, 139, 141, 139, 142, 139, 139, 139, 139,
+@@ -936,7 +1065,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 3, 3, 2, 0, 2, 1, 3, 2,
+ 3, 0, 3, 0, 3, 0, 3, 3, 4, 1,
+@@ -974,7 +1103,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned short yydefact[] =
++static const yytype_uint16 yydefact[] =
+ {
+ 193, 0, 236, 1, 95, 126, 0, 94, 131, 125,
+ 127, 130, 0, 129, 92, 128, 15, 93, 0, 7,
+@@ -1058,8 +1187,8 @@
+ 270, 263
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const short yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int16 yydefgoto[] =
+ {
+ -1, 1, 49, 50, 94, 95, 83, 51, 86, 113,
+ 191, 371, 432, 501, 452, 453, 518, 93, 250, 58,
+@@ -1074,7 +1203,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -623
+-static const short yypact[] =
++static const yytype_int16 yypact[] =
+ {
+ -623, 44, 1482, -623, -623, -623, -4, -623, -623, -623,
+ -623, -623, 865, -623, -623, -623, -623, -623, 33, -623,
+@@ -1159,7 +1288,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const short yypgoto[] =
++static const yytype_int16 yypgoto[] =
+ {
+ -623, -623, -623, 457, -623, -623, -623, -623, -623, 103,
+ -623, 623, -623, -623, -512, -623, -623, 420, -80, -623,
+@@ -1176,7 +1305,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -307
+-static const short yytable[] =
++static const yytype_int16 yytable[] =
+ {
+ 114, 592, 593, 204, 595, 206, 208, 209, 210, 211,
+ 89, -53, 214, 215, 216, 217, 218, 219, -29, 221,
+@@ -1407,7 +1536,7 @@
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47
+ };
+
+-static const short yycheck[] =
++static const yytype_int16 yycheck[] =
+ {
+ 81, 513, 514, 124, 516, 126, 127, 128, 129, 130,
+ 49, 5, 133, 134, 135, 136, 137, 138, 5, 140,
+@@ -1640,7 +1769,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned char yystos[] =
++static const yytype_uint8 yystos[] =
+ {
+ 0, 137, 180, 0, 17, 22, 35, 38, 40, 48,
+ 49, 51, 52, 54, 56, 58, 60, 66, 81, 84,
+@@ -1724,22 +1853,6 @@
+ 147, 147
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -1765,30 +1878,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror ("syntax error: cannot back up");\
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -1809,42 +1955,96 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -1853,45 +2053,52 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
+ int yyrule;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -1906,13 +2113,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -1922,45 +2125,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -1970,70 +2175,192 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
++
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
+
+-
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ if (! yyres)
++ return yystrlen (yystr);
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
++
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
+
+- switch (yytype)
+- {
+- default:
+- break;
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -2041,13 +2368,13 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void);
+ #else
+ int yyparse ();
+@@ -2056,10 +2383,10 @@
+
+
+
+-/* The lookahead symbol. */
++/* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+@@ -2072,14 +2399,18 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+ #else
+@@ -2090,13 +2421,19 @@
+ #endif
+ {
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -2107,18 +2444,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -2127,9 +2464,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -2153,8 +2490,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -2167,18 +2503,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -2189,21 +2525,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -2234,19 +2570,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -2261,7 +2595,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -2281,22 +2615,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -2338,22 +2671,22 @@
+
+ case 9:
+ #line 293 "ds9parser.Y"
+- {globalTile = yyvsp[0].integer;;}
++ {globalTile = (yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 10:
+ #line 294 "ds9parser.Y"
+- {globalTile = yyvsp[0].integer;;}
++ {globalTile = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 11:
+ #line 296 "ds9parser.Y"
+- {globalSystem=(CoordSystem)yyvsp[0].integer;;}
++ {globalSystem=(CoordSystem)(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 13:
+ #line 297 "ds9parser.Y"
+- {globalSystem=globalWCS; globalSky=(SkyFrame)yyvsp[0].integer;;}
++ {globalSystem=globalWCS; globalSky=(SkyFrame)(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 15:
+@@ -2378,7 +2711,7 @@
+
+ case 27:
+ #line 314 "ds9parser.Y"
+- {strncpy(localComment,yyvsp[-1].str,80);}
++ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);}
+ break;
+
+ case 29:
+@@ -2388,7 +2721,7 @@
+
+ case 30:
+ #line 317 "ds9parser.Y"
+- {strncpy(localComment,yyvsp[-1].str,80);}
++ {strncpy(localComment,(yyvsp[(4) - (5)].str),80);}
+ break;
+
+ case 32:
+@@ -2398,7 +2731,7 @@
+
+ case 33:
+ #line 321 "ds9parser.Y"
+- {strncpy(localComment,yyvsp[-1].str,80);}
++ {strncpy(localComment,(yyvsp[(2) - (3)].str),80);}
+ break;
+
+ case 35:
+@@ -2408,7 +2741,7 @@
+
+ case 36:
+ #line 323 "ds9parser.Y"
+- {strncpy(localComment,yyvsp[-1].str,80);}
++ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);}
+ break;
+
+ case 39:
+@@ -2418,12 +2751,12 @@
+
+ case 40:
+ #line 331 "ds9parser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 41:
+ #line 332 "ds9parser.Y"
+- {yyval.real=yyvsp[0].integer;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 42:
+@@ -2438,47 +2771,47 @@
+
+ case 44:
+ #line 339 "ds9parser.Y"
+- {yyval.integer=(yyvsp[0].integer ? 1 : 0);;}
++ {(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;}
+ break;
+
+ case 45:
+ #line 341 "ds9parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 46:
+ #line 342 "ds9parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 47:
+ #line 343 "ds9parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 48:
+ #line 344 "ds9parser.Y"
+- {yyval.integer=1;;}
++ {(yyval.integer)=1;;}
+ break;
+
+ case 49:
+ #line 346 "ds9parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 50:
+ #line 347 "ds9parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 51:
+ #line 348 "ds9parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 52:
+ #line 349 "ds9parser.Y"
+- {yyval.integer=0;;}
++ {(yyval.integer)=0;;}
+ break;
+
+ case 59:
+@@ -2498,127 +2831,127 @@
+
+ case 62:
+ #line 369 "ds9parser.Y"
+- {yyval.real = FR->mapAngleToRef(0,localSystem,localSky);;}
++ {(yyval.real) = FR->mapAngleToRef(0,localSystem,localSky);;}
+ break;
+
+ case 63:
+ #line 370 "ds9parser.Y"
+- {yyval.real = yyvsp[0].real;;}
++ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 64:
+ #line 373 "ds9parser.Y"
+- {yyval.real = FR->mapAngleToRef(degToRad(yyvsp[0].real),localSystem,localSky);;}
++ {(yyval.real) = FR->mapAngleToRef(degToRad((yyvsp[(1) - (1)].real)),localSystem,localSky);;}
+ break;
+
+ case 65:
+ #line 374 "ds9parser.Y"
+- {yyval.real = FR->mapAngleToRef(degToRad(yyvsp[0].real),localSystem,localSky);;}
++ {(yyval.real) = FR->mapAngleToRef(degToRad((yyvsp[(1) - (1)].real)),localSystem,localSky);;}
+ break;
+
+ case 66:
+ #line 375 "ds9parser.Y"
+- {yyval.real = FR->mapAngleToRef(yyvsp[0].real,localSystem,localSky);;}
++ {(yyval.real) = FR->mapAngleToRef((yyvsp[(1) - (1)].real),localSystem,localSky);;}
+ break;
+
+ case 67:
+ #line 378 "ds9parser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, localSystem, DEGREES);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), localSystem, DEGREES);;}
+ break;
+
+ case 68:
+ #line 379 "ds9parser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, PHYSICAL);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), PHYSICAL);;}
+ break;
+
+ case 69:
+ #line 380 "ds9parser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, IMAGE);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
+ break;
+
+ case 70:
+ #line 381 "ds9parser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), DEGREES);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), DEGREES);;}
+ break;
+
+ case 71:
+ #line 382 "ds9parser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCMIN);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCMIN);;}
+ break;
+
+ case 72:
+ #line 383 "ds9parser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCSEC);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCSEC);;}
+ break;
+
+ case 73:
+ #line 387 "ds9parser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, DEGREES);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, DEGREES);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 74:
+ #line 394 "ds9parser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 75:
+ #line 401 "ds9parser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 76:
+ #line 408 "ds9parser.Y"
+ {
+- Vector r=FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),DEGREES);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),DEGREES);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 77:
+ #line 415 "ds9parser.Y"
+ {
+- Vector r=FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCMIN);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCMIN);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 78:
+ #line 422 "ds9parser.Y"
+ {
+- Vector r=FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCSEC);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCSEC);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 79:
+ #line 430 "ds9parser.Y"
+- {yyval.integer = yyvsp[0].integer;;}
++ {(yyval.integer) = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 80:
+ #line 433 "ds9parser.Y"
+- {yyval.real = parseDMS(yyvsp[0].str);;}
++ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 81:
+@@ -2628,13 +2961,13 @@
+ CoordSystem sys = checkWCSSystem();
+ SkyFrame sky = checkWCSSky();
+ if (sky == GALACTIC || sky == ECLIPTIC)
+- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), sys, sky);
++ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
+ else
+- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real), sys, sky);
++ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -2647,11 +2980,11 @@
+ #line 451 "ds9parser.Y"
+ {
+ Vector r = FITSPTR->mapToRef(
+- Vector(hmsToDegree(mksign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),dmsToDegree(mksign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(hmsToDegree(mksign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),dmsToDegree(mksign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ checkWCSSystem(), checkWCSSky());
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -2664,470 +2997,470 @@
+ #line 461 "ds9parser.Y"
+ {
+ Vector r = FITSPTR->mapToRef(
+- Vector(dmsToDegree(mksign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),dmsToDegree(mksign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(dmsToDegree(mksign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),dmsToDegree(mksign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ checkWCSSystem(), checkWCSSky());
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 86:
+ #line 470 "ds9parser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, localSky);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 87:
+ #line 477 "ds9parser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
+ checkWCSSystem(), checkWCSSky());
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 88:
+ #line 485 "ds9parser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 89:
+ #line 492 "ds9parser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
+ ;}
+ break;
+
+ case 90:
+ #line 498 "ds9parser.Y"
+ {
+- Vector rx = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[-2].real), IMAGE);
+- Vector ry = FITSPTR->mapToRef(Vector(yyvsp[0].real,yyvsp[0].real), PHYSICAL);
+- yyval.vector[0] = rx[0];
+- yyval.vector[1] = ry[0];
+- yyval.vector[2] = 1;
++ Vector rx = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(1) - (3)].real)), IMAGE);
++ Vector ry = FITSPTR->mapToRef(Vector((yyvsp[(3) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
++ (yyval.vector)[0] = rx[0];
++ (yyval.vector)[1] = ry[0];
++ (yyval.vector)[2] = 1;
+ ;}
+ break;
+
+ case 91:
+ #line 506 "ds9parser.Y"
+ {
+- Vector rx = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[-2].real), PHYSICAL);
+- Vector ry = FITSPTR->mapToRef(Vector(yyvsp[0].real,yyvsp[0].real), IMAGE);
+- yyval.vector[0] = rx[0];
+- yyval.vector[1] = ry[0];
+- yyval.vector[2] = 1;
++ Vector rx = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(1) - (3)].real)), PHYSICAL);
++ Vector ry = FITSPTR->mapToRef(Vector((yyvsp[(3) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
++ (yyval.vector)[0] = rx[0];
++ (yyval.vector)[1] = ry[0];
++ (yyval.vector)[2] = 1;
+ ;}
+ break;
+
+ case 92:
+ #line 515 "ds9parser.Y"
+- {yyval.integer = IMAGE;;}
++ {(yyval.integer) = IMAGE;;}
+ break;
+
+ case 93:
+ #line 516 "ds9parser.Y"
+- {yyval.integer = PHYSICAL;;}
++ {(yyval.integer) = PHYSICAL;;}
+ break;
+
+ case 94:
+ #line 517 "ds9parser.Y"
+- {yyval.integer = DETECTOR;;}
++ {(yyval.integer) = DETECTOR;;}
+ break;
+
+ case 95:
+ #line 518 "ds9parser.Y"
+- {yyval.integer = AMPLIFIER;;}
++ {(yyval.integer) = AMPLIFIER;;}
+ break;
+
+ case 96:
+ #line 519 "ds9parser.Y"
+- {yyval.integer = yyvsp[0].integer; globalWCS = (CoordSystem)yyvsp[0].integer;;}
++ {(yyval.integer) = (yyvsp[(1) - (1)].integer); globalWCS = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 97:
+ #line 522 "ds9parser.Y"
+- {yyval.integer = WCS;;}
++ {(yyval.integer) = WCS;;}
+ break;
+
+ case 98:
+ #line 523 "ds9parser.Y"
+- {yyval.integer = WCSA;;}
++ {(yyval.integer) = WCSA;;}
+ break;
+
+ case 99:
+ #line 524 "ds9parser.Y"
+- {yyval.integer = WCSB;;}
++ {(yyval.integer) = WCSB;;}
+ break;
+
+ case 100:
+ #line 525 "ds9parser.Y"
+- {yyval.integer = WCSC;;}
++ {(yyval.integer) = WCSC;;}
+ break;
+
+ case 101:
+ #line 526 "ds9parser.Y"
+- {yyval.integer = WCSD;;}
++ {(yyval.integer) = WCSD;;}
+ break;
+
+ case 102:
+ #line 527 "ds9parser.Y"
+- {yyval.integer = WCSE;;}
++ {(yyval.integer) = WCSE;;}
+ break;
+
+ case 103:
+ #line 528 "ds9parser.Y"
+- {yyval.integer = WCSF;;}
++ {(yyval.integer) = WCSF;;}
+ break;
+
+ case 104:
+ #line 529 "ds9parser.Y"
+- {yyval.integer = WCSG;;}
++ {(yyval.integer) = WCSG;;}
+ break;
+
+ case 105:
+ #line 530 "ds9parser.Y"
+- {yyval.integer = WCSH;;}
++ {(yyval.integer) = WCSH;;}
+ break;
+
+ case 106:
+ #line 531 "ds9parser.Y"
+- {yyval.integer = WCSI;;}
++ {(yyval.integer) = WCSI;;}
+ break;
+
+ case 107:
+ #line 532 "ds9parser.Y"
+- {yyval.integer = WCSJ;;}
++ {(yyval.integer) = WCSJ;;}
+ break;
+
+ case 108:
+ #line 533 "ds9parser.Y"
+- {yyval.integer = WCSK;;}
++ {(yyval.integer) = WCSK;;}
+ break;
+
+ case 109:
+ #line 534 "ds9parser.Y"
+- {yyval.integer = WCSL;;}
++ {(yyval.integer) = WCSL;;}
+ break;
+
+ case 110:
+ #line 535 "ds9parser.Y"
+- {yyval.integer = WCSM;;}
++ {(yyval.integer) = WCSM;;}
+ break;
+
+ case 111:
+ #line 536 "ds9parser.Y"
+- {yyval.integer = WCSN;;}
++ {(yyval.integer) = WCSN;;}
+ break;
+
+ case 112:
+ #line 537 "ds9parser.Y"
+- {yyval.integer = WCSO;;}
++ {(yyval.integer) = WCSO;;}
+ break;
+
+ case 113:
+ #line 538 "ds9parser.Y"
+- {yyval.integer = WCSP;;}
++ {(yyval.integer) = WCSP;;}
+ break;
+
+ case 114:
+ #line 539 "ds9parser.Y"
+- {yyval.integer = WCSQ;;}
++ {(yyval.integer) = WCSQ;;}
+ break;
+
+ case 115:
+ #line 540 "ds9parser.Y"
+- {yyval.integer = WCSR;;}
++ {(yyval.integer) = WCSR;;}
+ break;
+
+ case 116:
+ #line 541 "ds9parser.Y"
+- {yyval.integer = WCSS;;}
++ {(yyval.integer) = WCSS;;}
+ break;
+
+ case 117:
+ #line 542 "ds9parser.Y"
+- {yyval.integer = WCST;;}
++ {(yyval.integer) = WCST;;}
+ break;
+
+ case 118:
+ #line 543 "ds9parser.Y"
+- {yyval.integer = WCSU;;}
++ {(yyval.integer) = WCSU;;}
+ break;
+
+ case 119:
+ #line 544 "ds9parser.Y"
+- {yyval.integer = WCSV;;}
++ {(yyval.integer) = WCSV;;}
+ break;
+
+ case 120:
+ #line 545 "ds9parser.Y"
+- {yyval.integer = WCSW;;}
++ {(yyval.integer) = WCSW;;}
+ break;
+
+ case 121:
+ #line 546 "ds9parser.Y"
+- {yyval.integer = WCSX;;}
++ {(yyval.integer) = WCSX;;}
+ break;
+
+ case 122:
+ #line 547 "ds9parser.Y"
+- {yyval.integer = WCSY;;}
++ {(yyval.integer) = WCSY;;}
+ break;
+
+ case 123:
+ #line 548 "ds9parser.Y"
+- {yyval.integer = WCSZ;;}
++ {(yyval.integer) = WCSZ;;}
+ break;
+
+ case 124:
+ #line 549 "ds9parser.Y"
+- {yyval.integer = WCS0;;}
++ {(yyval.integer) = WCS0;;}
+ break;
+
+ case 125:
+ #line 552 "ds9parser.Y"
+- {yyval.integer = FK4;;}
++ {(yyval.integer) = FK4;;}
+ break;
+
+ case 126:
+ #line 553 "ds9parser.Y"
+- {yyval.integer = FK4;;}
++ {(yyval.integer) = FK4;;}
+ break;
+
+ case 127:
+ #line 554 "ds9parser.Y"
+- {yyval.integer = FK5;;}
++ {(yyval.integer) = FK5;;}
+ break;
+
+ case 128:
+ #line 555 "ds9parser.Y"
+- {yyval.integer = FK5;;}
++ {(yyval.integer) = FK5;;}
+ break;
+
+ case 129:
+ #line 556 "ds9parser.Y"
+- {yyval.integer = ICRS;;}
++ {(yyval.integer) = ICRS;;}
+ break;
+
+ case 130:
+ #line 557 "ds9parser.Y"
+- {yyval.integer = GALACTIC;;}
++ {(yyval.integer) = GALACTIC;;}
+ break;
+
+ case 131:
+ #line 558 "ds9parser.Y"
+- {yyval.integer = ECLIPTIC;;}
++ {(yyval.integer) = ECLIPTIC;;}
+ break;
+
+ case 132:
+ #line 561 "ds9parser.Y"
+- {yyval.integer=DEGREES;;}
++ {(yyval.integer)=DEGREES;;}
+ break;
+
+ case 133:
+ #line 562 "ds9parser.Y"
+- {yyval.integer=ARCMIN;;}
++ {(yyval.integer)=ARCMIN;;}
+ break;
+
+ case 134:
+ #line 563 "ds9parser.Y"
+- {yyval.integer=ARCSEC;;}
++ {(yyval.integer)=ARCSEC;;}
+ break;
+
+ case 135:
+ #line 566 "ds9parser.Y"
+- {yyval.integer = Marker::SELECT;;}
++ {(yyval.integer) = Marker::SELECT;;}
+ break;
+
+ case 136:
+ #line 567 "ds9parser.Y"
+- {yyval.integer = Marker::EDIT;;}
++ {(yyval.integer) = Marker::EDIT;;}
+ break;
+
+ case 137:
+ #line 568 "ds9parser.Y"
+- {yyval.integer = Marker::MOVE;;}
++ {(yyval.integer) = Marker::MOVE;;}
+ break;
+
+ case 138:
+ #line 569 "ds9parser.Y"
+- {yyval.integer = Marker::ROTATE;;}
++ {(yyval.integer) = Marker::ROTATE;;}
+ break;
+
+ case 139:
+ #line 570 "ds9parser.Y"
+- {yyval.integer = Marker::DELETE;;}
++ {(yyval.integer) = Marker::DELETE;;}
+ break;
+
+ case 140:
+ #line 571 "ds9parser.Y"
+- {yyval.integer = Marker::HIGHLITE;;}
++ {(yyval.integer) = Marker::HIGHLITE;;}
+ break;
+
+ case 141:
+ #line 572 "ds9parser.Y"
+- {yyval.integer = Marker::INCLUDE;;}
++ {(yyval.integer) = Marker::INCLUDE;;}
+ break;
+
+ case 142:
+ #line 573 "ds9parser.Y"
+- {yyval.integer = Marker::SOURCE;;}
++ {(yyval.integer) = Marker::SOURCE;;}
+ break;
+
+ case 143:
+ #line 574 "ds9parser.Y"
+- {yyval.integer = Marker::FIXED;;}
++ {(yyval.integer) = Marker::FIXED;;}
+ break;
+
+ case 144:
+ #line 577 "ds9parser.Y"
+- {yyval.integer = CallBack::SELECTCB;;}
++ {(yyval.integer) = CallBack::SELECTCB;;}
+ break;
+
+ case 145:
+ #line 578 "ds9parser.Y"
+- {yyval.integer = CallBack::UNSELECTCB;;}
++ {(yyval.integer) = CallBack::UNSELECTCB;;}
+ break;
+
+ case 146:
+ #line 579 "ds9parser.Y"
+- {yyval.integer = CallBack::HIGHLITECB;;}
++ {(yyval.integer) = CallBack::HIGHLITECB;;}
+ break;
+
+ case 147:
+ #line 580 "ds9parser.Y"
+- {yyval.integer = CallBack::UNHIGHLITECB;;}
++ {(yyval.integer) = CallBack::UNHIGHLITECB;;}
+ break;
+
+ case 148:
+ #line 581 "ds9parser.Y"
+- {yyval.integer = CallBack::MOVEBEGINCB;;}
++ {(yyval.integer) = CallBack::MOVEBEGINCB;;}
+ break;
+
+ case 149:
+ #line 582 "ds9parser.Y"
+- {yyval.integer = CallBack::MOVECB;;}
++ {(yyval.integer) = CallBack::MOVECB;;}
+ break;
+
+ case 150:
+ #line 583 "ds9parser.Y"
+- {yyval.integer = CallBack::MOVEENDCB;;}
++ {(yyval.integer) = CallBack::MOVEENDCB;;}
+ break;
+
+ case 151:
+ #line 584 "ds9parser.Y"
+- {yyval.integer = CallBack::EDITBEGINCB;;}
++ {(yyval.integer) = CallBack::EDITBEGINCB;;}
+ break;
+
+ case 152:
+ #line 585 "ds9parser.Y"
+- {yyval.integer = CallBack::EDITCB;;}
++ {(yyval.integer) = CallBack::EDITCB;;}
+ break;
+
+ case 153:
+ #line 586 "ds9parser.Y"
+- {yyval.integer = CallBack::EDITENDCB;;}
++ {(yyval.integer) = CallBack::EDITENDCB;;}
+ break;
+
+ case 154:
+ #line 587 "ds9parser.Y"
+- {yyval.integer = CallBack::ROTATEBEGINCB;;}
++ {(yyval.integer) = CallBack::ROTATEBEGINCB;;}
+ break;
+
+ case 155:
+ #line 588 "ds9parser.Y"
+- {yyval.integer = CallBack::ROTATECB;;}
++ {(yyval.integer) = CallBack::ROTATECB;;}
+ break;
+
+ case 156:
+ #line 589 "ds9parser.Y"
+- {yyval.integer = CallBack::ROTATEENDCB;;}
++ {(yyval.integer) = CallBack::ROTATEENDCB;;}
+ break;
+
+ case 157:
+ #line 590 "ds9parser.Y"
+- {yyval.integer = CallBack::DELETECB;;}
++ {(yyval.integer) = CallBack::DELETECB;;}
+ break;
+
+ case 158:
+ #line 591 "ds9parser.Y"
+- {yyval.integer = CallBack::TEXTCB;;}
++ {(yyval.integer) = CallBack::TEXTCB;;}
+ break;
+
+ case 159:
+ #line 592 "ds9parser.Y"
+- {yyval.integer = CallBack::COLORCB;;}
++ {(yyval.integer) = CallBack::COLORCB;;}
+ break;
+
+ case 160:
+ #line 593 "ds9parser.Y"
+- {yyval.integer = CallBack::LINEWIDTHCB;;}
++ {(yyval.integer) = CallBack::LINEWIDTHCB;;}
+ break;
+
+ case 161:
+ #line 594 "ds9parser.Y"
+- {yyval.integer = CallBack::PROPERTYCB;;}
++ {(yyval.integer) = CallBack::PROPERTYCB;;}
+ break;
+
+ case 162:
+ #line 595 "ds9parser.Y"
+- {yyval.integer = CallBack::FONTCB;;}
++ {(yyval.integer) = CallBack::FONTCB;;}
+ break;
+
+ case 163:
+ #line 596 "ds9parser.Y"
+- {yyval.integer = CallBack::UPDATECB;;}
++ {(yyval.integer) = CallBack::UPDATECB;;}
+ break;
+
+ case 166:
+ #line 604 "ds9parser.Y"
+ {
+- setProps(&globalProps,yyvsp[-2].integer,yyvsp[0].integer);
+- setProps(&localProps,yyvsp[-2].integer,yyvsp[0].integer);
++ setProps(&globalProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));
++ setProps(&localProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));
+ ;}
+ break;
+
+ case 167:
+ #line 609 "ds9parser.Y"
+ {
+- strncpy(globalColor,yyvsp[0].str,16);
+- strncpy(localColor,yyvsp[0].str,16);
++ strncpy(globalColor,(yyvsp[(3) - (3)].str),16);
++ strncpy(localColor,(yyvsp[(3) - (3)].str),16);
+ ;}
+ break;
+
+ case 168:
+ #line 613 "ds9parser.Y"
+- {globalWidth = localWidth = yyvsp[0].integer;;}
++ {globalWidth = localWidth = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 169:
+ #line 615 "ds9parser.Y"
+ {
+- strncpy(globalFont,yyvsp[0].str,32);
+- strncpy(localFont,yyvsp[0].str,32);
++ strncpy(globalFont,(yyvsp[(3) - (3)].str),32);
++ strncpy(localFont,(yyvsp[(3) - (3)].str),32);
+ ;}
+ break;
+
+ case 170:
+ #line 620 "ds9parser.Y"
+ {
+- strncpy(globalText,yyvsp[0].str,80);
+- strncpy(localText,yyvsp[0].str,80);
++ strncpy(globalText,(yyvsp[(3) - (3)].str),80);
++ strncpy(localText,(yyvsp[(3) - (3)].str),80);
+ ;}
+ break;
+
+@@ -3150,22 +3483,22 @@
+ case 173:
+ #line 635 "ds9parser.Y"
+ {
+- globalPoint = localPoint = yyvsp[0].integer;
++ globalPoint = localPoint = (yyvsp[(3) - (3)].integer);
+ ;}
+ break;
+
+ case 174:
+ #line 639 "ds9parser.Y"
+ {
+- globalLine1 = localLine1 = yyvsp[-1].integer;
+- globalLine2 = localLine2 = yyvsp[0].integer;
++ globalLine1 = localLine1 = (yyvsp[(3) - (4)].integer);
++ globalLine2 = localLine2 = (yyvsp[(4) - (4)].integer);
+ ;}
+ break;
+
+ case 175:
+ #line 644 "ds9parser.Y"
+ {
+- globalVector = localVector = yyvsp[0].integer;
++ globalVector = localVector = (yyvsp[(3) - (3)].integer);
+ ;}
+ break;
+
+@@ -3178,43 +3511,43 @@
+ case 177:
+ #line 651 "ds9parser.Y"
+ {
+- strncpy(globalCompassNorth,yyvsp[-3].str,80);
+- strncpy(globalCompassEast,yyvsp[-2].str,80);
+- strncpy(localCompassNorth,yyvsp[-3].str,80);
+- strncpy(localCompassEast,yyvsp[-2].str,80);
+- globalCompassNArrow = localCompassNArrow = yyvsp[-1].integer;
+- globalCompassEArrow = localCompassEArrow = yyvsp[0].integer;
++ strncpy(globalCompassNorth,(yyvsp[(4) - (7)].str),80);
++ strncpy(globalCompassEast,(yyvsp[(5) - (7)].str),80);
++ strncpy(localCompassNorth,(yyvsp[(4) - (7)].str),80);
++ strncpy(localCompassEast,(yyvsp[(5) - (7)].str),80);
++ globalCompassNArrow = localCompassNArrow = (yyvsp[(6) - (7)].integer);
++ globalCompassEArrow = localCompassEArrow = (yyvsp[(7) - (7)].integer);
+ ;}
+ break;
+
+ case 178:
+ #line 660 "ds9parser.Y"
+ {
+- globalTextAngle = localTextAngle = yyvsp[0].real;
++ globalTextAngle = localTextAngle = (yyvsp[(3) - (3)].real);
+ ;}
+ break;
+
+ case 179:
+ #line 663 "ds9parser.Y"
+- {globalWCS = (CoordSystem)yyvsp[0].integer;;}
++ {globalWCS = (CoordSystem)(yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 180:
+ #line 667 "ds9parser.Y"
+ {
+- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)yyvsp[-3].integer;
+- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)yyvsp[-2].integer;
+- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[-1].integer;
+- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (4)].integer);
++ globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(2) - (4)].integer);
++ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(3) - (4)].integer);
++ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(4) - (4)].integer);
+ ;}
+ break;
+
+ case 181:
+ #line 674 "ds9parser.Y"
+ {
+- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
++ globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
+ globalRulerSkyFrame = localRulerSkyFrame = FK5;
+- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
++ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
+ globalRulerDistFormat = localRulerDistFormat = DEGREES;
+ ;}
+ break;
+@@ -3222,10 +3555,10 @@
+ case 182:
+ #line 681 "ds9parser.Y"
+ {
+- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
++ globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
+ globalRulerSkyFrame = localRulerSkyFrame = FK5;
+ globalRulerDistSystem = localRulerDistSystem = WCS;
+- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+@@ -3233,8 +3566,8 @@
+ #line 688 "ds9parser.Y"
+ {
+ globalRulerCoordSystem = localRulerCoordSystem = WCS;
+- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
+- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
++ globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
++ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
+ globalRulerDistFormat = localRulerDistFormat = DEGREES;
+ ;}
+ break;
+@@ -3243,9 +3576,9 @@
+ #line 695 "ds9parser.Y"
+ {
+ globalRulerCoordSystem = localRulerCoordSystem = WCS;
+- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
++ globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
+ globalRulerDistSystem = localRulerDistSystem = WCS;
+- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+@@ -3254,7 +3587,7 @@
+ {
+ globalRulerCoordSystem = localRulerCoordSystem = WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = FK5;
+- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
++ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
+ globalRulerDistFormat = localRulerDistFormat = DEGREES;
+ ;}
+ break;
+@@ -3265,7 +3598,7 @@
+ globalRulerCoordSystem = localRulerCoordSystem = WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = FK5;
+ globalRulerDistSystem = localRulerDistSystem = WCS;
+- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+@@ -3275,7 +3608,7 @@
+ globalRulerCoordSystem = localRulerCoordSystem = IMAGE;
+ globalRulerSkyFrame = localRulerSkyFrame = FK5;
+ globalRulerDistSystem = localRulerDistSystem = WCS;
+- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(1) - (1)].integer);
+ ;}
+ break;
+
+@@ -3292,15 +3625,15 @@
+ case 189:
+ #line 732 "ds9parser.Y"
+ {
+- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)yyvsp[-1].integer;
+- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
++ globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
++ globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+ case 190:
+ #line 737 "ds9parser.Y"
+ {
+- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)yyvsp[0].integer;
++ globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);
+ globalCompassSkyFrame = localCompassSkyFrame = FK5;
+ ;}
+ break;
+@@ -3309,7 +3642,7 @@
+ #line 742 "ds9parser.Y"
+ {
+ globalCompassCoordSystem = localCompassCoordSystem = WCS;
+- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
++ globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)(yyvsp[(1) - (1)].integer);
+ ;}
+ break;
+
+@@ -3362,38 +3695,38 @@
+
+ case 196:
+ #line 794 "ds9parser.Y"
+- {setProps(&localProps,yyvsp[-2].integer,yyvsp[0].integer);;}
++ {setProps(&localProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 197:
+ #line 795 "ds9parser.Y"
+- {strncpy(localColor,yyvsp[0].str,16);;}
++ {strncpy(localColor,(yyvsp[(3) - (3)].str),16);;}
+ break;
+
+ case 198:
+ #line 796 "ds9parser.Y"
+- {localWidth = yyvsp[0].integer;;}
++ {localWidth = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 199:
+ #line 797 "ds9parser.Y"
+- {strncpy(localFont,yyvsp[0].str,32);;}
++ {strncpy(localFont,(yyvsp[(3) - (3)].str),32);;}
+ break;
+
+ case 200:
+ #line 798 "ds9parser.Y"
+- {strncpy(localText,yyvsp[0].str,80);;}
++ {strncpy(localText,(yyvsp[(3) - (3)].str),80);;}
+ break;
+
+ case 201:
+ #line 799 "ds9parser.Y"
+- {taglist.append(new Tag(yyvsp[0].str));;}
++ {taglist.append(new Tag((yyvsp[(3) - (3)].str)));;}
+ break;
+
+ case 202:
+ #line 800 "ds9parser.Y"
+ {cblist.append(
+- new CallBack(FR->getInterp(),(CallBack::Type)yyvsp[-2].integer,yyvsp[-1].str,yyvsp[0].str));;}
++ new CallBack(FR->getInterp(),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str)));;}
+ break;
+
+ case 203:
+@@ -3408,50 +3741,50 @@
+
+ case 205:
+ #line 805 "ds9parser.Y"
+- {localPoint = yyvsp[0].integer;;}
++ {localPoint = (yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 206:
+ #line 806 "ds9parser.Y"
+- {localLine1=yyvsp[-1].integer; localLine2=yyvsp[0].integer;;}
++ {localLine1=(yyvsp[(3) - (4)].integer); localLine2=(yyvsp[(4) - (4)].integer);;}
+ break;
+
+ case 207:
+ #line 807 "ds9parser.Y"
+- {localVector=yyvsp[0].integer;;}
++ {localVector=(yyvsp[(3) - (3)].integer);;}
+ break;
+
+ case 209:
+ #line 810 "ds9parser.Y"
+ {
+- strncpy(localCompassNorth,yyvsp[-3].str,80);
+- strncpy(localCompassEast,yyvsp[-2].str,80);
+- localCompassNArrow = yyvsp[-1].integer;
+- localCompassEArrow = yyvsp[0].integer;
++ strncpy(localCompassNorth,(yyvsp[(4) - (7)].str),80);
++ strncpy(localCompassEast,(yyvsp[(5) - (7)].str),80);
++ localCompassNArrow = (yyvsp[(6) - (7)].integer);
++ localCompassEArrow = (yyvsp[(7) - (7)].integer);
+ ;}
+ break;
+
+ case 210:
+ #line 816 "ds9parser.Y"
+- {localTextAngle=yyvsp[0].real;;}
++ {localTextAngle=(yyvsp[(3) - (3)].real);;}
+ break;
+
+ case 214:
+ #line 823 "ds9parser.Y"
+ {
+- localRulerCoordSystem = (CoordSystem)yyvsp[-3].integer;
+- localRulerSkyFrame = (SkyFrame)yyvsp[-2].integer;
+- localRulerDistSystem = (CoordSystem)yyvsp[-1].integer;
+- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (4)].integer);
++ localRulerSkyFrame = (SkyFrame)(yyvsp[(2) - (4)].integer);
++ localRulerDistSystem = (CoordSystem)(yyvsp[(3) - (4)].integer);
++ localRulerDistFormat = (SkyFormat)(yyvsp[(4) - (4)].integer);
+ ;}
+ break;
+
+ case 215:
+ #line 830 "ds9parser.Y"
+ {
+- localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
++ localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
+ localRulerSkyFrame = FK5;
+- localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
++ localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
+ localRulerDistFormat = DEGREES;
+ ;}
+ break;
+@@ -3459,10 +3792,10 @@
+ case 216:
+ #line 837 "ds9parser.Y"
+ {
+- localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
++ localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
+ localRulerSkyFrame = FK5;
+ localRulerDistSystem = WCS;
+- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+@@ -3470,8 +3803,8 @@
+ #line 844 "ds9parser.Y"
+ {
+ localRulerCoordSystem = WCS;
+- localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
+- localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
++ localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
++ localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
+ localRulerDistFormat = DEGREES;
+ ;}
+ break;
+@@ -3480,9 +3813,9 @@
+ #line 851 "ds9parser.Y"
+ {
+ localRulerCoordSystem = WCS;
+- localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
++ localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
+ localRulerDistSystem = WCS;
+- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+@@ -3491,7 +3824,7 @@
+ {
+ localRulerCoordSystem = WCS;
+ localRulerSkyFrame = FK5;
+- localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
++ localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
+ localRulerDistFormat = DEGREES;
+ ;}
+ break;
+@@ -3502,7 +3835,7 @@
+ localRulerCoordSystem = WCS;
+ localRulerSkyFrame = FK5;
+ localRulerDistSystem = WCS;
+- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+@@ -3512,7 +3845,7 @@
+ localRulerCoordSystem = IMAGE;
+ localRulerSkyFrame = FK5;
+ localRulerDistSystem = WCS;
+- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
++ localRulerDistFormat = (SkyFormat)(yyvsp[(1) - (1)].integer);
+ ;}
+ break;
+
+@@ -3529,15 +3862,15 @@
+ case 223:
+ #line 888 "ds9parser.Y"
+ {
+- localCompassCoordSystem = (CoordSystem)yyvsp[-1].integer;
+- localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
++ localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
++ localCompassSkyFrame = (SkyFrame)(yyvsp[(2) - (2)].integer);
+ ;}
+ break;
+
+ case 224:
+ #line 893 "ds9parser.Y"
+ {
+- localCompassCoordSystem = (CoordSystem)yyvsp[0].integer;
++ localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);
+ localCompassSkyFrame = FK5;
+ ;}
+ break;
+@@ -3546,7 +3879,7 @@
+ #line 898 "ds9parser.Y"
+ {
+ localCompassCoordSystem = WCS;
+- localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
++ localCompassSkyFrame = (SkyFrame)(yyvsp[(1) - (1)].integer);
+ ;}
+ break;
+
+@@ -3580,7 +3913,7 @@
+
+ case 231:
+ #line 914 "ds9parser.Y"
+- {aAngle=yyvsp[-1].real;localEpanda=2;;}
++ {aAngle=(yyvsp[(9) - (10)].real);localEpanda=2;;}
+ break;
+
+ case 232:
+@@ -3595,7 +3928,7 @@
+
+ case 234:
+ #line 919 "ds9parser.Y"
+- {aAngle=yyvsp[-1].real;localBpanda=2;;}
++ {aAngle=(yyvsp[(9) - (10)].real);localBpanda=2;;}
+ break;
+
+ case 235:
+@@ -3648,37 +3981,37 @@
+
+ case 237:
+ #line 964 "ds9parser.Y"
+- {yyval.integer = CIRCLE;;}
++ {(yyval.integer) = CIRCLE;;}
+ break;
+
+ case 238:
+ #line 965 "ds9parser.Y"
+- {yyval.integer = BOX;;}
++ {(yyval.integer) = BOX;;}
+ break;
+
+ case 239:
+ #line 966 "ds9parser.Y"
+- {yyval.integer = DIAMOND;;}
++ {(yyval.integer) = DIAMOND;;}
+ break;
+
+ case 240:
+ #line 967 "ds9parser.Y"
+- {yyval.integer = CROSS;;}
++ {(yyval.integer) = CROSS;;}
+ break;
+
+ case 241:
+ #line 968 "ds9parser.Y"
+- {yyval.integer = XPT;;}
++ {(yyval.integer) = XPT;;}
+ break;
+
+ case 242:
+ #line 969 "ds9parser.Y"
+- {yyval.integer = ARROW;;}
++ {(yyval.integer) = ARROW;;}
+ break;
+
+ case 243:
+ #line 970 "ds9parser.Y"
+- {yyval.integer = BOXCIRCLE;;}
++ {(yyval.integer) = BOXCIRCLE;;}
+ break;
+
+ case 244:
+@@ -3698,7 +4031,7 @@
+
+ case 247:
+ #line 979 "ds9parser.Y"
+- {FR->createTextCmd(Vector(yyvsp[-3].vector),
++ {FR->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localTextAngle,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+@@ -3706,16 +4039,16 @@
+
+ case 248:
+ #line 984 "ds9parser.Y"
+- {FR->createCompositeCmd(Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ {FR->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
++ (yyvsp[(5) - (8)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 249:
+ #line 989 "ds9parser.Y"
+- {FR->createVectCmd(Vector(yyvsp[-7].vector),
+- yyvsp[-5].real,yyvsp[-3].real,
++ {FR->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
++ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
+ localVector,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+@@ -3725,9 +4058,9 @@
+ #line 995 "ds9parser.Y"
+ {
+ // hard coded into projection.tcl
+- FR->createProjectionCmd(Vector(yyvsp[-7].vector),
+- Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ FR->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
++ Vector((yyvsp[(5) - (10)].vector)),
++ (yyvsp[(7) - (10)].real),
+ "ProjectionPlot", "ProjectionPlotDelete",
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+@@ -3736,8 +4069,8 @@
+
+ case 251:
+ #line 1005 "ds9parser.Y"
+- {FR->createRulerCmd(Vector(yyvsp[-5].vector),
+- Vector(yyvsp[-3].vector),
++ {FR->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
++ Vector((yyvsp[(5) - (8)].vector)),
+ localRulerCoordSystem, localRulerSkyFrame,
+ localRulerDistSystem, localRulerDistFormat,
+ localColor,localWidth,localFont,
+@@ -3746,8 +4079,8 @@
+
+ case 252:
+ #line 1012 "ds9parser.Y"
+- {FR->createCompassCmd(Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ {FR->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
++ (yyvsp[(5) - (8)].real),
+ localCompassNorth, localCompassEast,
+ localCompassNArrow, localCompassEArrow,
+ localCompassCoordSystem, localCompassSkyFrame,
+@@ -3757,16 +4090,16 @@
+
+ case 253:
+ #line 1022 "ds9parser.Y"
+- {FR->createCircleCmd(Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ {FR->createCircleCmd(Vector((yyvsp[(3) - (8)].vector)),
++ (yyvsp[(5) - (8)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 254:
+ #line 1027 "ds9parser.Y"
+- {FR->createAnnulusCmd(Vector(yyvsp[-7].vector),
+- yyvsp[-5].real,yyvsp[-3].real,1,
++ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (10)].vector)),
++ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),1,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+@@ -3774,9 +4107,9 @@
+ case 255:
+ #line 1033 "ds9parser.Y"
+ {
+- aAnnuli[0] = yyvsp[-7].real;
+- aAnnuli[1] = yyvsp[-5].real;
+- FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
++ aAnnuli[0] = (yyvsp[(5) - (12)].real);
++ aAnnuli[1] = (yyvsp[(7) - (12)].real);
++ FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
+ aNum,aAnnuli,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+@@ -3785,8 +4118,8 @@
+
+ case 256:
+ #line 1043 "ds9parser.Y"
+- {FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
+- yyvsp[-7].real,yyvsp[-5].real,yyvsp[-3].integer,
++ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
++ (yyvsp[(5) - (12)].real),(yyvsp[(7) - (12)].real),(yyvsp[(9) - (12)].integer),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+@@ -3798,14 +4131,14 @@
+ case 0: /* ignore it */
+ break;
+ case 1: /* normal cpanda */
+- FR->createCpandaCmd(Vector(yyvsp[-15].vector),
+- yyvsp[-13].real,yyvsp[-11].real,yyvsp[-9].integer,
+- yyvsp[-7].real,yyvsp[-5].real,yyvsp[-3].integer,
++ FR->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
++ (yyvsp[(5) - (18)].real),(yyvsp[(7) - (18)].real),(yyvsp[(9) - (18)].integer),
++ (yyvsp[(11) - (18)].real),(yyvsp[(13) - (18)].real),(yyvsp[(15) - (18)].integer),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case 2: /* one of our special pandas */
+- FR->createCpandaCmd(Vector(yyvsp[-15].vector),
++ FR->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
+ aAngNum,aAngles,
+ aNum,aAnnuli,
+ localColor,localWidth,localFont,
+@@ -3820,9 +4153,9 @@
+ {
+ // for ellipse annulus
+ aStatus = 1;
+- aCenter = Vector(yyvsp[-7].vector);
+- aAngles[0] = yyvsp[-3].real;
+- aVector[0] = Vector(yyvsp[-5].vector);
++ aCenter = Vector((yyvsp[(3) - (10)].vector));
++ aAngles[0] = (yyvsp[(7) - (10)].real);
++ aVector[0] = Vector((yyvsp[(5) - (10)].vector));
+ aNumsao = 1;
+ strncpy(aColor,localColor,16);
+ aWidth = localWidth;
+@@ -3831,9 +4164,9 @@
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+- FR->createEllipseCmd(Vector(yyvsp[-7].vector),
+- Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ FR->createEllipseCmd(Vector((yyvsp[(3) - (10)].vector)),
++ Vector((yyvsp[(5) - (10)].vector)),
++ (yyvsp[(7) - (10)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3843,9 +4176,9 @@
+ #line 1093 "ds9parser.Y"
+ {
+ // prefered syntax
+- FR->createEllipseAnnulusCmd(Vector(yyvsp[-9].vector),
+- Vector(yyvsp[-7].vector),Vector(yyvsp[-5].vector),1,
+- yyvsp[-3].real,
++ FR->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
++ Vector((yyvsp[(5) - (12)].vector)),Vector((yyvsp[(7) - (12)].vector)),1,
++ (yyvsp[(9) - (12)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3855,9 +4188,9 @@
+ #line 1103 "ds9parser.Y"
+ {
+ // prefered syntax
+- FR->createEllipseAnnulusCmd(Vector(yyvsp[-11].vector),
+- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
+- yyvsp[-3].real,
++ FR->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
++ Vector((yyvsp[(5) - (14)].vector)),Vector((yyvsp[(7) - (14)].vector)),(yyvsp[(9) - (14)].integer),
++ (yyvsp[(11) - (14)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3867,11 +4200,11 @@
+ #line 1113 "ds9parser.Y"
+ {
+ // prefered syntax
+- aVector[0] = Vector(yyvsp[-9].vector);
+- aVector[1] = Vector(yyvsp[-7].vector);
+- FR->createEllipseAnnulusCmd(Vector(yyvsp[-11].vector),
++ aVector[0] = Vector((yyvsp[(5) - (14)].vector));
++ aVector[1] = Vector((yyvsp[(7) - (14)].vector));
++ FR->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
+ aNum,aVector,
+- yyvsp[-3].real,
++ (yyvsp[(11) - (14)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3882,7 +4215,7 @@
+ {
+ // old saoimage syntax
+ aStatus = 2;
+- aVector[aNumsao++] = Vector(yyvsp[-13].vector);
++ aVector[aNumsao++] = Vector((yyvsp[(5) - (18)].vector));
+ ;}
+ break;
+
+@@ -3893,15 +4226,15 @@
+ case 0: /* ignore it */
+ break;
+ case 1: /* normal epanda */
+- FR->createEpandaCmd(Vector(yyvsp[-17].vector),
+- yyvsp[-15].real,yyvsp[-13].real,yyvsp[-11].integer,
+- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
+- yyvsp[-3].real,
++ FR->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
++ (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
++ Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
++ (yyvsp[(17) - (20)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case 2: /* one of our special pandas */
+- FR->createEpandaCmd(Vector(yyvsp[-17].vector),
++ FR->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
+ aAngNum,aAngles,
+ aNum,aVector,
+ aAngle,
+@@ -3917,9 +4250,9 @@
+ {
+ // for box annulus
+ aStatus = 3;
+- aCenter = Vector(yyvsp[-7].vector);
+- aAngles[0] = yyvsp[-3].real;
+- aVector[0] = Vector(yyvsp[-5].vector);
++ aCenter = Vector((yyvsp[(3) - (10)].vector));
++ aAngles[0] = (yyvsp[(7) - (10)].real);
++ aVector[0] = Vector((yyvsp[(5) - (10)].vector));
+ aNumsao = 1;
+ strncpy(aColor,localColor,16);
+ aWidth = localWidth;
+@@ -3928,9 +4261,9 @@
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+- FR->createBoxCmd(Vector(yyvsp[-7].vector),
+- Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ FR->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
++ Vector((yyvsp[(5) - (10)].vector)),
++ (yyvsp[(7) - (10)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3938,9 +4271,9 @@
+
+ case 265:
+ #line 1178 "ds9parser.Y"
+- {FR->createBoxCmd(Vector(yyvsp[-7].vector),
+- Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ {FR->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
++ Vector((yyvsp[(5) - (10)].vector)),
++ (yyvsp[(7) - (10)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+@@ -3949,9 +4282,9 @@
+ #line 1185 "ds9parser.Y"
+ {
+ // prefered syntax
+- FR->createBoxAnnulusCmd(Vector(yyvsp[-9].vector),
+- Vector(yyvsp[-7].vector),Vector(yyvsp[-5].vector),1,
+- yyvsp[-3].real,
++ FR->createBoxAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
++ Vector((yyvsp[(5) - (12)].vector)),Vector((yyvsp[(7) - (12)].vector)),1,
++ (yyvsp[(9) - (12)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3961,11 +4294,11 @@
+ #line 1195 "ds9parser.Y"
+ {
+ // prefered syntax
+- aVector[0] = Vector(yyvsp[-9].vector);
+- aVector[1] = Vector(yyvsp[-7].vector);
+- FR->createBoxAnnulusCmd(Vector(yyvsp[-11].vector),
++ aVector[0] = Vector((yyvsp[(5) - (14)].vector));
++ aVector[1] = Vector((yyvsp[(7) - (14)].vector));
++ FR->createBoxAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
+ aNum,aVector,
+- yyvsp[-3].real,
++ (yyvsp[(11) - (14)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3975,9 +4308,9 @@
+ #line 1207 "ds9parser.Y"
+ {
+ // prefered syntax
+- FR->createBoxAnnulusCmd(Vector(yyvsp[-11].vector),
+- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
+- yyvsp[-3].real,
++ FR->createBoxAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
++ Vector((yyvsp[(5) - (14)].vector)),Vector((yyvsp[(7) - (14)].vector)),(yyvsp[(9) - (14)].integer),
++ (yyvsp[(11) - (14)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+@@ -3988,7 +4321,7 @@
+ {
+ // old saoimage syntax
+ aStatus = 4;
+- aVector[aNumsao++] = Vector(yyvsp[-13].vector);
++ aVector[aNumsao++] = Vector((yyvsp[(5) - (18)].vector));
+ ;}
+ break;
+
+@@ -3999,15 +4332,15 @@
+ case 0: /* ignore it */
+ break;
+ case 1: /* normal bpanda */
+- FR->createBpandaCmd(Vector(yyvsp[-17].vector),
+- yyvsp[-15].real,yyvsp[-13].real,yyvsp[-11].integer,
+- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
+- yyvsp[-3].real,
++ FR->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
++ (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
++ Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
++ (yyvsp[(17) - (20)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case 2: /* one of our special pandas */
+- FR->createBpandaCmd(Vector(yyvsp[-17].vector),
++ FR->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
+ aAngNum,aAngles,
+ aNum,aVector,
+ aAngle,
+@@ -4020,8 +4353,8 @@
+
+ case 271:
+ #line 1249 "ds9parser.Y"
+- {FR->createLineCmd(Vector(yyvsp[-5].vector),
+- Vector(yyvsp[-3].vector),
++ {FR->createLineCmd(Vector((yyvsp[(3) - (8)].vector)),
++ Vector((yyvsp[(5) - (8)].vector)),
+ localLine1,localLine2,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+@@ -4032,37 +4365,37 @@
+ {
+ switch (localPoint) {
+ case CIRCLE:
+- FR->createCirclePointCmd(Vector(yyvsp[-3].vector),
++ FR->createCirclePointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case BOX:
+- FR->createBoxPointCmd(Vector(yyvsp[-3].vector),
++ FR->createBoxPointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case DIAMOND:
+- FR->createDiamondPointCmd(Vector(yyvsp[-3].vector),
++ FR->createDiamondPointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case CROSS:
+- FR->createCrossPointCmd(Vector(yyvsp[-3].vector),
++ FR->createCrossPointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case XPT:
+- FR->createExPointCmd(Vector(yyvsp[-3].vector),
++ FR->createExPointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case ARROW:
+- FR->createArrowPointCmd(Vector(yyvsp[-3].vector),
++ FR->createArrowPointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+ case BOXCIRCLE:
+- FR->createBoxCirclePointCmd(Vector(yyvsp[-3].vector),
++ FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ break;
+@@ -4072,49 +4405,49 @@
+
+ case 273:
+ #line 1296 "ds9parser.Y"
+- {FR->createCirclePointCmd(Vector(yyvsp[-3].vector),
++ {FR->createCirclePointCmd(Vector((yyvsp[(4) - (7)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 274:
+ #line 1300 "ds9parser.Y"
+- {FR->createBoxPointCmd(Vector(yyvsp[-3].vector),
++ {FR->createBoxPointCmd(Vector((yyvsp[(4) - (7)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 275:
+ #line 1304 "ds9parser.Y"
+- {FR->createDiamondPointCmd(Vector(yyvsp[-3].vector),
++ {FR->createDiamondPointCmd(Vector((yyvsp[(4) - (7)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 276:
+ #line 1308 "ds9parser.Y"
+- {FR->createCrossPointCmd(Vector(yyvsp[-3].vector),
++ {FR->createCrossPointCmd(Vector((yyvsp[(4) - (7)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 277:
+ #line 1312 "ds9parser.Y"
+- {FR->createExPointCmd(Vector(yyvsp[-3].vector),
++ {FR->createExPointCmd(Vector((yyvsp[(4) - (7)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 278:
+ #line 1316 "ds9parser.Y"
+- {FR->createArrowPointCmd(Vector(yyvsp[-3].vector),
++ {FR->createArrowPointCmd(Vector((yyvsp[(4) - (7)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 279:
+ #line 1320 "ds9parser.Y"
+- {FR->createBoxCirclePointCmd(Vector(yyvsp[-3].vector),
++ {FR->createBoxCirclePointCmd(Vector((yyvsp[(4) - (7)].vector)),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+@@ -4133,7 +4466,7 @@
+
+ case 286:
+ #line 1337 "ds9parser.Y"
+- {FR->createTextCmd(Vector(yyvsp[-3].vector),
++ {FR->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localTextAngle,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+@@ -4141,12 +4474,12 @@
+
+ case 287:
+ #line 1341 "ds9parser.Y"
+- {strncpy(localText,yyvsp[-1].str,80);;}
++ {strncpy(localText,(yyvsp[(5) - (6)].str),80);;}
+ break;
+
+ case 288:
+ #line 1343 "ds9parser.Y"
+- {FR->createTextCmd(Vector(yyvsp[-6].vector),
++ {FR->createTextCmd(Vector((yyvsp[(3) - (9)].vector)),
+ localTextAngle,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+@@ -4154,16 +4487,16 @@
+
+ case 289:
+ #line 1348 "ds9parser.Y"
+- {FR->createCompositeCmd(Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ {FR->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
++ (yyvsp[(5) - (8)].real),
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 290:
+ #line 1353 "ds9parser.Y"
+- {FR->createVectCmd(Vector(yyvsp[-7].vector),
+- yyvsp[-5].real,yyvsp[-3].real,
++ {FR->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
++ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
+ localVector,
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);;}
+@@ -4173,9 +4506,9 @@
+ #line 1359 "ds9parser.Y"
+ {
+ // hard coded into projection.tcl
+- FR->createProjectionCmd(Vector(yyvsp[-7].vector),
+- Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ FR->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
++ Vector((yyvsp[(5) - (10)].vector)),
++ (yyvsp[(7) - (10)].real),
+ "ProjectionPlot", "ProjectionPlotDelete",
+ localColor,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+@@ -4184,8 +4517,8 @@
+
+ case 292:
+ #line 1369 "ds9parser.Y"
+- {FR->createRulerCmd(Vector(yyvsp[-5].vector),
+- Vector(yyvsp[-3].vector),
++ {FR->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
++ Vector((yyvsp[(5) - (8)].vector)),
+ localRulerCoordSystem, localRulerSkyFrame,
+ localRulerDistSystem, localRulerDistFormat,
+ localColor,localWidth,localFont,
+@@ -4194,8 +4527,8 @@
+
+ case 293:
+ #line 1376 "ds9parser.Y"
+- {FR->createCompassCmd(Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,
++ {FR->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
++ (yyvsp[(5) - (8)].real),
+ localCompassNorth, localCompassEast,
+ localCompassNArrow, localCompassEArrow,
+ localCompassCoordSystem, localCompassSkyFrame,
+@@ -4205,14 +4538,14 @@
+
+ case 296:
+ #line 1389 "ds9parser.Y"
+- {polylist.append(new Vertex(yyvsp[0].vector));;}
++ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
+ break;
+
+ case 299:
+ #line 1397 "ds9parser.Y"
+ {
+ if (aNum < MAXANNULI)
+- aAnnuli[aNum++] = yyvsp[0].real;
++ aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);
+ ;}
+ break;
+
+@@ -4220,13 +4553,13 @@
+ #line 1408 "ds9parser.Y"
+ {
+ if (aAngNum < MAXANGLES)
+- aAngles[aAngNum++] = yyvsp[0].real;
++ aAngles[aAngNum++] = (yyvsp[(1) - (1)].real);
+ ;}
+ break;
+
+ case 305:
+ #line 1418 "ds9parser.Y"
+- {aVector[aNum++] = Vector(yyvsp[-2].real,yyvsp[0].real);;}
++ {aVector[aNum++] = Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real));;}
+ break;
+
+ case 306:
+@@ -4260,15 +4593,14 @@
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 4598 "ds9parser.C"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 4267 "ds9parser.C"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -4297,99 +4629,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror ("syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror ("syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (yymsg);
++ }
++ else
++ {
++ yyerror (YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -4399,15 +4697,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -4436,9 +4736,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -4446,11 +4747,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -4470,21 +4772,39 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror ("parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+--- saods9-4.0b7.orig/saotk/frame/tngparser.C
++++ saods9-4.0b7/saotk/frame/tngparser.C
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -45,8 +58,7 @@
+ /* Using locations. */
+ #define YYLSP_NEEDED 0
+
+-/* If NAME_PREFIX is specified substitute the variables and functions
+- names. */
++/* Substitute the variable and function names. */
+ #define yyparse tngparse
+ #define yylex tnglex
+ #define yyerror tngerror
+@@ -103,6 +115,7 @@
+ YELLOW_ = 296
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define STRING 260
+@@ -158,8 +171,8 @@
+ #define DISCARD_(x) {yyclearin; tngDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+@@ -216,16 +229,23 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 60 "tngparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 229 "tngparser.C"
++}
++/* Line 193 of yacc.c. */
++#line 248 "tngparser.C"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -236,56 +256,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 241 "tngparser.C"
++/* Line 216 of yacc.c. */
++#line 261 "tngparser.C"
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++#endif
++
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
++
++#ifndef YY_
++# if YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
++# endif
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -295,24 +430,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -330,39 +465,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
++ while (YYID (0))
+
+ #endif
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+-#endif
+-
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 3
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 136
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 51
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 33
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 80
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 143
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 296
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned char yytranslate[] =
++static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 42, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -399,7 +528,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned char yyprhs[] =
++static const yytype_uint8 yyprhs[] =
+ {
+ 0, 0, 3, 6, 10, 13, 14, 17, 19, 23,
+ 25, 27, 29, 31, 33, 35, 37, 39, 40, 42,
+@@ -412,8 +541,8 @@
+ 234
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const yysigned_char yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int8 yyrhs[] =
+ {
+ 52, 0, -1, 68, 53, -1, 53, 54, 55, -1,
+ 54, 55, -1, -1, 16, 57, -1, 39, -1, 69,
+@@ -442,7 +571,7 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned short yyrline[] =
++static const yytype_uint16 yyrline[] =
+ {
+ 0, 123, 123, 126, 127, 130, 131, 132, 133, 134,
+ 137, 138, 139, 142, 143, 146, 147, 150, 151, 154,
+@@ -456,9 +585,9 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "INT", "REAL", "STRING", "DEGREE",
+@@ -480,7 +609,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+@@ -492,7 +621,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned char yyr1[] =
++static const yytype_uint8 yyr1[] =
+ {
+ 0, 51, 52, 53, 53, 54, 54, 54, 54, 54,
+ 55, 55, 55, 56, 56, 57, 57, 58, 58, 59,
+@@ -506,7 +635,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 2, 3, 2, 0, 2, 1, 3, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
+@@ -522,7 +651,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned char yydefact[] =
++static const yytype_uint8 yydefact[] =
+ {
+ 38, 0, 39, 1, 0, 7, 60, 39, 0, 40,
+ 9, 16, 15, 6, 0, 0, 0, 0, 0, 12,
+@@ -541,8 +670,8 @@
+ 49, 45, 44
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const short yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int16 yydefgoto[] =
+ {
+ -1, 1, 7, 8, 22, 63, 13, 80, 46, 88,
+ 131, 132, 101, 99, 64, 89, 77, 2, 9, 25,
+@@ -553,7 +682,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -87
+-static const short yypact[] =
++static const yytype_int16 yypact[] =
+ {
+ -87, 6, -5, -87, -18, -87, -13, 0, -7, -28,
+ -87, -87, -87, -87, -41, -22, -4, 42, -7, -87,
+@@ -573,7 +702,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const yysigned_char yypgoto[] =
++static const yytype_int8 yypgoto[] =
+ {
+ -87, -87, -87, 89, 79, 9, -87, 1, 76, -86,
+ -17, -87, -87, 17, 30, -23, -87, -87, -87, -87,
+@@ -586,7 +715,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -22
+-static const short yytable[] =
++static const yytype_int16 yytable[] =
+ {
+ -2, 19, 14, -5, 107, 41, 3, 15, -5, 26,
+ 16, 4, 11, 12, 42, 111, 4, 113, -21, 23,
+@@ -604,7 +733,7 @@
+ 0, 75, 59, 60, 76, 61, 62
+ };
+
+-static const short yycheck[] =
++static const yytype_int16 yycheck[] =
+ {
+ 0, 8, 15, 8, 90, 17, 0, 20, 8, 50,
+ 23, 16, 30, 31, 26, 101, 16, 103, 8, 47,
+@@ -624,7 +753,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned char yystos[] =
++static const yytype_uint8 yystos[] =
+ {
+ 0, 52, 68, 0, 16, 39, 49, 53, 54, 69,
+ 76, 30, 31, 57, 15, 20, 23, 79, 54, 8,
+@@ -643,22 +772,6 @@
+ 80, 80, 80
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -684,30 +797,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror ("syntax error: cannot back up");\
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -728,42 +874,96 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -772,45 +972,52 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
+ int yyrule;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -825,13 +1032,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -841,45 +1044,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -889,70 +1094,192 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
+
+-
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
++
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ if (! yyres)
++ return yystrlen (yystr);
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
++
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
++
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
+
+- switch (yytype)
+- {
+- default:
+- break;
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -960,13 +1287,13 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void);
+ #else
+ int yyparse ();
+@@ -975,10 +1302,10 @@
+
+
+
+-/* The lookahead symbol. */
++/* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+@@ -991,14 +1318,18 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+ #else
+@@ -1009,13 +1340,19 @@
+ #endif
+ {
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -1026,18 +1363,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -1046,9 +1383,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -1072,8 +1409,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -1086,18 +1422,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -1108,21 +1444,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -1153,19 +1489,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -1180,7 +1514,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -1200,22 +1534,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -1262,12 +1595,12 @@
+
+ case 13:
+ #line 142 "tngparser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 14:
+ #line 143 "tngparser.Y"
+- {yyval.real=yyvsp[0].integer;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 15:
+@@ -1282,42 +1615,42 @@
+
+ case 23:
+ #line 162 "tngparser.Y"
+- {yyval.real = 0;;}
++ {(yyval.real) = 0;;}
+ break;
+
+ case 24:
+ #line 163 "tngparser.Y"
+- {yyval.real = yyvsp[0].real;;}
++ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 25:
+ #line 166 "tngparser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 26:
+ #line 167 "tngparser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 27:
+ #line 170 "tngparser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real,IMAGE);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real),IMAGE);;}
+ break;
+
+ case 28:
+ #line 174 "tngparser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 29:
+ #line 182 "tngparser.Y"
+- {yyval.real = parseDMS(yyvsp[0].str);;}
++ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 30:
+@@ -1327,60 +1660,60 @@
+ CoordSystem sys = checkWCSSystem();
+ SkyFrame sky = checkWCSSky();
+ if (sky == GALACTIC || sky == ECLIPTIC)
+- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), sys, sky);
++ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
+ else
+- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real), sys, sky);
++ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 31:
+ #line 200 "tngparser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, localSky);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 32:
+ #line 207 "tngparser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
+ checkWCSSystem(), checkWCSSky());
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 33:
+ #line 216 "tngparser.Y"
+- {yyval.integer = FK4;;}
++ {(yyval.integer) = FK4;;}
+ break;
+
+ case 34:
+ #line 217 "tngparser.Y"
+- {yyval.integer = FK5;;}
++ {(yyval.integer) = FK5;;}
+ break;
+
+ case 35:
+ #line 218 "tngparser.Y"
+- {yyval.integer = GALACTIC;;}
++ {(yyval.integer) = GALACTIC;;}
+ break;
+
+ case 36:
+ #line 219 "tngparser.Y"
+- {yyval.integer = ECLIPTIC;;}
++ {(yyval.integer) = ECLIPTIC;;}
+ break;
+
+ case 37:
+ #line 220 "tngparser.Y"
+- {yyval.integer = ICRS;;}
++ {(yyval.integer) = ICRS;;}
+ break;
+
+ case 38:
+@@ -1431,34 +1764,34 @@
+
+ case 43:
+ #line 256 "tngparser.Y"
+- {FR->createCircleCmd(Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ {FR->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)),
++ (yyvsp[(5) - (7)].real),
+ localColor,1,globalFont,localText,
+ localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 44:
+ #line 262 "tngparser.Y"
+- {FR->createEllipseCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ {FR->createEllipseCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ localColor,1,globalFont,localText,
+ localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 45:
+ #line 269 "tngparser.Y"
+- {FR->createBoxCmd(Vector(yyvsp[-6].vector),
+- Vector(yyvsp[-4].vector),
+- yyvsp[-2].real,
++ {FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
++ Vector((yyvsp[(5) - (9)].vector)),
++ (yyvsp[(7) - (9)].real),
+ localColor,1,globalFont,localText,
+ localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 46:
+ #line 276 "tngparser.Y"
+- {FR->createLineCmd(Vector(yyvsp[-4].vector),
+- Vector(yyvsp[-2].vector),
++ {FR->createLineCmd(Vector((yyvsp[(3) - (7)].vector)),
++ Vector((yyvsp[(5) - (7)].vector)),
+ 0,0,
+ localColor,1,globalFont,localText,
+ localProps,localComment,taglist,cblist);;}
+@@ -1466,19 +1799,19 @@
+
+ case 47:
+ #line 283 "tngparser.Y"
+- {FR->createBoxCirclePointCmd(Vector(yyvsp[-2].vector),
++ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)),
+ localColor,1,globalFont,localText,
+ localProps,localComment,taglist,cblist);;}
+ break;
+
+ case 48:
+ #line 287 "tngparser.Y"
+- {strncpy(localText,yyvsp[-1].str,80);;}
++ {strncpy(localText,(yyvsp[(5) - (6)].str),80);;}
+ break;
+
+ case 49:
+ #line 288 "tngparser.Y"
+- {FR->createTextCmd(Vector(yyvsp[-5].vector),
++ {FR->createTextCmd(Vector((yyvsp[(3) - (8)].vector)),
+ 0,
+ localColor,1,globalFont,localText,
+ localProps,localComment,taglist,cblist);;}
+@@ -1498,7 +1831,7 @@
+
+ case 54:
+ #line 303 "tngparser.Y"
+- {polylist.append(new Vertex(yyvsp[0].vector));;}
++ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
+ break;
+
+ case 56:
+@@ -1518,7 +1851,7 @@
+
+ case 61:
+ #line 309 "tngparser.Y"
+- {strncpy(globalText,yyvsp[0].str,80);;}
++ {strncpy(globalText,(yyvsp[(3) - (3)].str),80);;}
+ break;
+
+ case 63:
+@@ -1584,7 +1917,7 @@
+
+ case 74:
+ #line 331 "tngparser.Y"
+- {strncpy(localComment,yyvsp[0].str,80);;}
++ {strncpy(localComment,(yyvsp[(3) - (3)].str),80);;}
+ break;
+
+ case 77:
+@@ -1609,20 +1942,19 @@
+ #line 346 "tngparser.Y"
+ {
+ globalSystem = localSystem = WCS;
+- globalSky = localSky = (SkyFrame)yyvsp[-1].integer;
++ globalSky = localSky = (SkyFrame)(yyvsp[(2) - (3)].integer);
+ ;}
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 1952 "tngparser.C"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 1621 "tngparser.C"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -1651,99 +1983,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror ("syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror ("syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (yymsg);
++ }
++ else
++ {
++ yyerror (YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -1753,15 +2051,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -1790,9 +2090,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -1800,11 +2101,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -1824,21 +2126,39 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror ("parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+--- saods9-4.0b7.orig/saotk/frame/fitsimage.h
++++ saods9-4.0b7/saotk/frame/fitsimage.h
+@@ -12,7 +12,7 @@
+
+ class FitsFile;
+
+-#include "wcs.h"
++#include "../../wcssubs-3.5.6/wcs.h"
+
+ class FitsImage {
+ protected:
+@@ -405,33 +405,33 @@
+ char* getKeyword(const char*);
+ int findKeyword(const char*);
+
+- int FitsImage::saveFitsImageFile(const char* fn, int compress)
++ int saveFitsImageFile(const char* fn, int compress)
+ {return image_ ? image_->saveFitsImageFile(fn, compress) : 0;}
+
+- int FitsImage::saveFitsImageChannel(Tcl_Interp* interp, const char* ch,
++ int saveFitsImageChannel(Tcl_Interp* interp, const char* ch,
+ int compress)
+ {return image_ ? image_->saveFitsImageChannel(interp, ch, compress) : 0;}
+
+- int FitsImage::saveFitsImageSocket(int s, int compress)
++ int saveFitsImageSocket(int s, int compress)
+ {return image_ ? image_->saveFitsImageSocket(s, compress) : 0;}
+
+- int FitsImage::saveFitsTableFile(const char* fn, int compress)
++ int saveFitsTableFile(const char* fn, int compress)
+ {return fits_ ? fits_->saveFitsTableFile(fn, compress) : 0;}
+
+- int FitsImage::saveFitsTableChannel(Tcl_Interp* interp, const char* ch,
++ int saveFitsTableChannel(Tcl_Interp* interp, const char* ch,
+ int compress)
+ {return fits_ ? fits_->saveFitsTableChannel(interp, ch, compress): 0;}
+
+- int FitsImage::saveFitsTableSocket(int s, int compress)
++ int saveFitsTableSocket(int s, int compress)
+ {return fits_ ? fits_->saveFitsTableSocket(s, compress) : 0;}
+
+- int FitsImage::saveArrayFile(const char* fn)
++ int saveArrayFile(const char* fn)
+ {return image_ ? image_->saveArrayFile(fn) : 0;}
+
+- int FitsImage::saveArrayChannel(Tcl_Interp* interp, const char* ch)
++ int saveArrayChannel(Tcl_Interp* interp, const char* ch)
+ {return image_ ? image_->saveArrayChannel(interp, ch) : 0;}
+
+- int FitsImage::saveArraySocket(int s)
++ int saveArraySocket(int s)
+ {return image_ ? image_->saveArraySocket(s) : 0;}
+ };
+
+--- saods9-4.0b7.orig/saotk/frame/contourscale.C
++++ saods9-4.0b7/saotk/frame/contourscale.C
+@@ -3,7 +3,7 @@
+ // For conditions of distribution and use, see copyright notice in "copyright"
+
+ #include <math.h>
+-#include <iostream.h>
++#include <iostream>
+
+ #include "contourscale.h"
+ #include "framebase.h"
+--- saods9-4.0b7.orig/saotk/frame/lex.C
++++ saods9-4.0b7/saotk/frame/lex.C
+@@ -4,7 +4,7 @@
+ /* A lexical scanner generated by flex */
+
+ /* Scanner skeleton version:
+- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/lex.C,v 1.181 2005/08/24 21:41:24 joye Exp $
++ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+ #define FLEX_SCANNER
+@@ -12,7 +12,6 @@
+ #define YY_FLEX_MINOR_VERSION 5
+
+
+-
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+ #ifndef __cplusplus
+@@ -24,8 +23,12 @@
+ #ifdef __cplusplus
+
+ #include <stdlib.h>
+-#include <iostream>
+-using namespace std;
++#include <fstream>
++using std::istream;
++using std::ostream;
++#ifndef _WIN32
++#include <unistd.h>
++#endif
+
+ /* Use prototypes in function declarations. */
+ #define YY_USE_PROTOS
+@@ -65,6 +68,7 @@
+ #define YY_PROTO(proto) ()
+ #endif
+
++
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+
+@@ -995,7 +999,7 @@
+ extern frFlexLexer* frlexx;
+ extern int frsign;
+ /* rules */
+-#line 999 "lex.C"
++#line 1003 "lex.C"
+
+ /* Macros after this point can all be overridden by user definitions in
+ * section 1.
+@@ -1119,13 +1123,13 @@
+ YY_DECL
+ {
+ register yy_state_type yy_current_state;
+- register char *yy_cp = NULL, *yy_bp = NULL;
++ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+ #line 29 "lex.L"
+
+
+-#line 1129 "lex.C"
++#line 1133 "lex.C"
+
+ if ( yy_init )
+ {
+@@ -2810,7 +2814,7 @@
+ #line 417 "lex.L"
+ ECHO;
+ YY_BREAK
+-#line 2814 "lex.C"
++#line 2818 "lex.C"
+ case YY_STATE_EOF(INITIAL):
+ yyterminate();
+
+@@ -3328,6 +3332,7 @@
+ return c;
+ }
+
++
+ void yyFlexLexer::yyrestart( istream* input_file )
+ {
+ if ( ! yy_current_buffer )
+--- saods9-4.0b7.orig/saotk/frame/xyparser.C
++++ saods9-4.0b7/saotk/frame/xyparser.C
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -45,8 +58,7 @@
+ /* Using locations. */
+ #define YYLSP_NEEDED 0
+
+-/* If NAME_PREFIX is specified substitute the variables and functions
+- names. */
++/* Substitute the variable and function names. */
+ #define yyparse xyparse
+ #define yylex xylex
+ #define yyerror xyerror
+@@ -118,6 +130,7 @@
+ WCSZ_ = 311
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define HOUR 260
+@@ -186,8 +199,8 @@
+ #define FITSPTR (FR->findFits(1))
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+@@ -226,16 +239,23 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 40 "xyparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 239 "xyparser.C"
++}
++/* Line 193 of yacc.c. */
++#line 258 "xyparser.C"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -246,56 +266,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 251 "xyparser.C"
++/* Line 216 of yacc.c. */
++#line 271 "xyparser.C"
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++#endif
++
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
++
++#ifndef YY_
++# if YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
++# endif
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -305,24 +440,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -340,39 +475,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
++ while (YYID (0))
+
+ #endif
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+-#endif
+-
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 3
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 138
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 60
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 20
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 75
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 96
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 311
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned char yytranslate[] =
++static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 57, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -411,7 +540,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned char yyprhs[] =
++static const yytype_uint8 yyprhs[] =
+ {
+ 0, 0, 3, 4, 7, 11, 14, 15, 18, 20,
+ 22, 25, 26, 30, 31, 33, 36, 38, 40, 42,
+@@ -423,8 +552,8 @@
+ 161, 163, 165, 167, 169, 171
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const yysigned_char yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int8 yyrhs[] =
+ {
+ 61, 0, -1, -1, 62, 63, -1, 63, 64, 69,
+ -1, 64, 69, -1, -1, 16, 71, -1, 29, -1,
+@@ -447,7 +576,7 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned short yyrline[] =
++static const yytype_uint16 yyrline[] =
+ {
+ 0, 115, 115, 115, 121, 122, 125, 126, 127, 128,
+ 129, 131, 131, 134, 135, 138, 139, 142, 145, 146,
+@@ -460,9 +589,9 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "INT", "REAL", "HOUR", "MINUTE",
+@@ -482,7 +611,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+@@ -494,7 +623,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned char yyr1[] =
++static const yytype_uint8 yyr1[] =
+ {
+ 0, 60, 62, 61, 63, 63, 64, 64, 64, 64,
+ 64, 65, 64, 66, 66, 67, 67, 68, 69, 69,
+@@ -507,7 +636,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 0, 2, 3, 2, 0, 2, 1, 1,
+ 2, 0, 3, 0, 1, 2, 1, 1, 1, 1,
+@@ -522,7 +651,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned char yydefact[] =
++static const yytype_uint8 yydefact[] =
+ {
+ 2, 0, 11, 1, 39, 38, 0, 40, 35, 36,
+ 37, 8, 41, 42, 43, 44, 45, 46, 47, 48,
+@@ -536,8 +665,8 @@
+ 0, 0, 0, 0, 32, 30
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const yysigned_char yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int8 yydefgoto[] =
+ {
+ -1, 1, 2, 39, 40, 41, 76, 77, 78, 50,
+ 79, 45, 72, 57, 58, 87, 86, 42, 67, 59
+@@ -546,7 +675,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -46
+-static const yysigned_char yypact[] =
++static const yytype_int8 yypact[] =
+ {
+ -46, 4, 47, -46, -46, -46, -24, -46, -46, -46,
+ -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
+@@ -561,7 +690,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const yysigned_char yypgoto[] =
++static const yytype_int8 yypgoto[] =
+ {
+ -46, -46, -46, -46, 73, -46, -46, -46, 36, 69,
+ 33, -46, 51, 42, -46, -46, -46, -46, -46, -46
+@@ -572,7 +701,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -7
+-static const yysigned_char yytable[] =
++static const yytype_int8 yytable[] =
+ {
+ -3, 60, 43, 44, 3, 61, 62, 63, 64, 65,
+ 69, 66, -6, 4, 71, 5, 6, 7, 75, 52,
+@@ -590,7 +719,7 @@
+ 0, 0, 0, 0, 0, 0, 0, 88, 89
+ };
+
+-static const yysigned_char yycheck[] =
++static const yytype_int8 yycheck[] =
+ {
+ 0, 14, 26, 27, 0, 18, 19, 20, 21, 22,
+ 9, 24, 12, 13, 59, 15, 16, 17, 3, 4,
+@@ -610,7 +739,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned char yystos[] =
++static const yytype_uint8 yystos[] =
+ {
+ 0, 61, 62, 0, 13, 15, 16, 17, 23, 25,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+@@ -624,22 +753,6 @@
+ 3, 3, 9, 9, 10, 10
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -665,30 +778,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror ("syntax error: cannot back up");\
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -709,42 +855,96 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -753,45 +953,52 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
+ int yyrule;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -806,13 +1013,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -822,45 +1025,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -870,70 +1075,192 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
+
+-
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
++
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ if (! yyres)
++ return yystrlen (yystr);
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
++
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
++
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
+
+- switch (yytype)
+- {
+- default:
+- break;
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -941,13 +1268,13 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void);
+ #else
+ int yyparse ();
+@@ -956,10 +1283,10 @@
+
+
+
+-/* The lookahead symbol. */
++/* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+@@ -972,14 +1299,18 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+ #else
+@@ -990,13 +1321,19 @@
+ #endif
+ {
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -1007,18 +1344,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -1027,9 +1364,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -1053,8 +1390,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -1067,18 +1403,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -1089,21 +1425,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -1134,19 +1470,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -1161,7 +1495,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -1181,22 +1515,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -1246,12 +1579,12 @@
+
+ case 9:
+ #line 128 "xyparser.Y"
+- {globalSystem = (CoordSystem)yyvsp[0].integer;;}
++ {globalSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 10:
+ #line 130 "xyparser.Y"
+- {globalSystem = (CoordSystem)yyvsp[-1].integer; globalSky = (SkyFrame)yyvsp[0].integer;;}
++ {globalSystem = (CoordSystem)(yyvsp[(1) - (2)].integer); globalSky = (SkyFrame)(yyvsp[(2) - (2)].integer);;}
+ break;
+
+ case 11:
+@@ -1271,12 +1604,12 @@
+
+ case 21:
+ #line 150 "xyparser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 22:
+ #line 151 "xyparser.Y"
+- {yyval.real=yyvsp[0].integer;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 23:
+@@ -1291,7 +1624,7 @@
+
+ case 27:
+ #line 162 "xyparser.Y"
+- {yyval.real = parseDMS(yyvsp[0].str);;}
++ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 28:
+@@ -1299,13 +1632,13 @@
+ {
+ Vector r;
+ if (localSky == GALACTIC || localSky == ECLIPTIC)
+- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),localSystem,localSky);
++ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky);
+ else
+- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real),localSystem,localSky);
++ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)),localSystem,localSky);
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1318,12 +1651,12 @@
+ #line 178 "xyparser.Y"
+ {
+ Vector r = FITSPTR->mapToRef(
+- Vector(hmsToDegree(xysign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),
+- dmsToDegree(xysign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(hmsToDegree(xysign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),
++ dmsToDegree(xysign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ localSystem, localSky);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1336,238 +1669,238 @@
+ #line 189 "xyparser.Y"
+ {
+ Vector r = FITSPTR->mapToRef(
+- Vector(dmsToDegree(xysign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),
+- dmsToDegree(xysign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(dmsToDegree(xysign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),
++ dmsToDegree(xysign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ localSystem, localSky);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 33:
+ #line 199 "xyparser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),localSystem,localSky);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 34:
+ #line 206 "xyparser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),localSystem,localSky);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 35:
+ #line 214 "xyparser.Y"
+- {yyval.integer = IMAGE;;}
++ {(yyval.integer) = IMAGE;;}
+ break;
+
+ case 36:
+ #line 215 "xyparser.Y"
+- {yyval.integer = IMAGE;;}
++ {(yyval.integer) = IMAGE;;}
+ break;
+
+ case 37:
+ #line 216 "xyparser.Y"
+- {yyval.integer = PHYSICAL;;}
++ {(yyval.integer) = PHYSICAL;;}
+ break;
+
+ case 38:
+ #line 217 "xyparser.Y"
+- {yyval.integer = PHYSICAL;;}
++ {(yyval.integer) = PHYSICAL;;}
+ break;
+
+ case 39:
+ #line 218 "xyparser.Y"
+- {yyval.integer = AMPLIFIER;;}
++ {(yyval.integer) = AMPLIFIER;;}
+ break;
+
+ case 40:
+ #line 219 "xyparser.Y"
+- {yyval.integer = DETECTOR;;}
++ {(yyval.integer) = DETECTOR;;}
+ break;
+
+ case 41:
+ #line 220 "xyparser.Y"
+- {yyval.integer = WCS;;}
++ {(yyval.integer) = WCS;;}
+ break;
+
+ case 42:
+ #line 221 "xyparser.Y"
+- {yyval.integer = WCSA;;}
++ {(yyval.integer) = WCSA;;}
+ break;
+
+ case 43:
+ #line 222 "xyparser.Y"
+- {yyval.integer = WCSB;;}
++ {(yyval.integer) = WCSB;;}
+ break;
+
+ case 44:
+ #line 223 "xyparser.Y"
+- {yyval.integer = WCSC;;}
++ {(yyval.integer) = WCSC;;}
+ break;
+
+ case 45:
+ #line 224 "xyparser.Y"
+- {yyval.integer = WCSD;;}
++ {(yyval.integer) = WCSD;;}
+ break;
+
+ case 46:
+ #line 225 "xyparser.Y"
+- {yyval.integer = WCSE;;}
++ {(yyval.integer) = WCSE;;}
+ break;
+
+ case 47:
+ #line 226 "xyparser.Y"
+- {yyval.integer = WCSF;;}
++ {(yyval.integer) = WCSF;;}
+ break;
+
+ case 48:
+ #line 227 "xyparser.Y"
+- {yyval.integer = WCSG;;}
++ {(yyval.integer) = WCSG;;}
+ break;
+
+ case 49:
+ #line 228 "xyparser.Y"
+- {yyval.integer = WCSH;;}
++ {(yyval.integer) = WCSH;;}
+ break;
+
+ case 50:
+ #line 229 "xyparser.Y"
+- {yyval.integer = WCSI;;}
++ {(yyval.integer) = WCSI;;}
+ break;
+
+ case 51:
+ #line 230 "xyparser.Y"
+- {yyval.integer = WCSJ;;}
++ {(yyval.integer) = WCSJ;;}
+ break;
+
+ case 52:
+ #line 231 "xyparser.Y"
+- {yyval.integer = WCSK;;}
++ {(yyval.integer) = WCSK;;}
+ break;
+
+ case 53:
+ #line 232 "xyparser.Y"
+- {yyval.integer = WCSL;;}
++ {(yyval.integer) = WCSL;;}
+ break;
+
+ case 54:
+ #line 233 "xyparser.Y"
+- {yyval.integer = WCSM;;}
++ {(yyval.integer) = WCSM;;}
+ break;
+
+ case 55:
+ #line 234 "xyparser.Y"
+- {yyval.integer = WCSN;;}
++ {(yyval.integer) = WCSN;;}
+ break;
+
+ case 56:
+ #line 235 "xyparser.Y"
+- {yyval.integer = WCSO;;}
++ {(yyval.integer) = WCSO;;}
+ break;
+
+ case 57:
+ #line 236 "xyparser.Y"
+- {yyval.integer = WCSP;;}
++ {(yyval.integer) = WCSP;;}
+ break;
+
+ case 58:
+ #line 237 "xyparser.Y"
+- {yyval.integer = WCSQ;;}
++ {(yyval.integer) = WCSQ;;}
+ break;
+
+ case 59:
+ #line 238 "xyparser.Y"
+- {yyval.integer = WCSR;;}
++ {(yyval.integer) = WCSR;;}
+ break;
+
+ case 60:
+ #line 239 "xyparser.Y"
+- {yyval.integer = WCSS;;}
++ {(yyval.integer) = WCSS;;}
+ break;
+
+ case 61:
+ #line 240 "xyparser.Y"
+- {yyval.integer = WCST;;}
++ {(yyval.integer) = WCST;;}
+ break;
+
+ case 62:
+ #line 241 "xyparser.Y"
+- {yyval.integer = WCSU;;}
++ {(yyval.integer) = WCSU;;}
+ break;
+
+ case 63:
+ #line 242 "xyparser.Y"
+- {yyval.integer = WCSV;;}
++ {(yyval.integer) = WCSV;;}
+ break;
+
+ case 64:
+ #line 243 "xyparser.Y"
+- {yyval.integer = WCSW;;}
++ {(yyval.integer) = WCSW;;}
+ break;
+
+ case 65:
+ #line 244 "xyparser.Y"
+- {yyval.integer = WCSX;;}
++ {(yyval.integer) = WCSX;;}
+ break;
+
+ case 66:
+ #line 245 "xyparser.Y"
+- {yyval.integer = WCSY;;}
++ {(yyval.integer) = WCSY;;}
+ break;
+
+ case 67:
+ #line 246 "xyparser.Y"
+- {yyval.integer = WCSZ;;}
++ {(yyval.integer) = WCSZ;;}
+ break;
+
+ case 68:
+ #line 249 "xyparser.Y"
+- {yyval.integer = FK4;;}
++ {(yyval.integer) = FK4;;}
+ break;
+
+ case 69:
+ #line 250 "xyparser.Y"
+- {yyval.integer = FK4;;}
++ {(yyval.integer) = FK4;;}
+ break;
+
+ case 70:
+ #line 251 "xyparser.Y"
+- {yyval.integer = FK5;;}
++ {(yyval.integer) = FK5;;}
+ break;
+
+ case 71:
+ #line 252 "xyparser.Y"
+- {yyval.integer = FK5;;}
++ {(yyval.integer) = FK5;;}
+ break;
+
+ case 72:
+ #line 253 "xyparser.Y"
+- {yyval.integer = ICRS;;}
++ {(yyval.integer) = ICRS;;}
+ break;
+
+ case 73:
+ #line 254 "xyparser.Y"
+- {yyval.integer = GALACTIC;;}
++ {(yyval.integer) = GALACTIC;;}
+ break;
+
+ case 74:
+ #line 255 "xyparser.Y"
+- {yyval.integer = ECLIPTIC;;}
++ {(yyval.integer) = ECLIPTIC;;}
+ break;
+
+ case 75:
+ #line 258 "xyparser.Y"
+- {FR->createBoxCirclePointCmd(Vector(yyvsp[0].vector),
++ {FR->createBoxCirclePointCmd(Vector((yyvsp[(1) - (1)].vector)),
+ "green",1,"helvetica 10 normal","",
+ Marker::SELECT | Marker::EDIT | Marker::MOVE | Marker::ROTATE |
+ Marker::DELETE | Marker::HIGHLITE |
+@@ -1577,15 +1910,14 @@
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 1915 "xyparser.C"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 1584 "xyparser.C"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -1614,99 +1946,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror ("syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror ("syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (yymsg);
++ }
++ else
++ {
++ yyerror (YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -1716,15 +2014,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -1753,9 +2053,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -1763,11 +2064,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -1787,21 +2089,39 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror ("parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+--- saods9-4.0b7.orig/saotk/frame/tngparser.Y
++++ saods9-4.0b7/saotk/frame/tngparser.Y
+@@ -12,8 +12,8 @@
+ #define DISCARD_(x) {yyclearin; tngDiscard(x);}
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+--- saods9-4.0b7.orig/saotk/frame/ciaoparser.C
++++ saods9-4.0b7/saotk/frame/ciaoparser.C
+@@ -1,7 +1,9 @@
+-/* A Bison parser, made by GNU Bison 1.875c. */
++/* A Bison parser, made by GNU Bison 2.3. */
+
+-/* Skeleton parser for Yacc-like parsing with Bison,
+- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
++/* Skeleton implementation for Bison's Yacc-like parsers in C
++
++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
++ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+@@ -15,16 +17,24 @@
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330,
+- Boston, MA 02111-1307, USA. */
++ Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
++/* As a special exception, you may create a larger work that contains
++ part or all of the Bison parser skeleton and distribute that work
++ under terms of your choice, so long as that work isn't itself a
++ parser generator using the skeleton or a modified version thereof
++ as a parser skeleton. Alternatively, if you modify or redistribute
++ the parser skeleton itself, you may (at your option) remove this
++ special exception, which will cause the skeleton and the resulting
++ Bison output files to be licensed under the GNU General Public
++ License without this special exception.
+
+-/* As a special exception, when this file is copied by Bison into a
+- Bison output file, you may use that output file without restriction.
+- This special exception was added by the Free Software Foundation
+- in version 1.24 of Bison. */
++ This special exception was added by the Free Software Foundation in
++ version 2.2 of Bison. */
+
+-/* Written by Richard Stallman by simplifying the original so called
+- ``semantic'' parser. */
++/* C LALR(1) parser skeleton written by Richard Stallman, by
++ simplifying the original so-called "semantic" parser. */
+
+ /* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+@@ -36,6 +46,9 @@
+ /* Identify Bison output. */
+ #define YYBISON 1
+
++/* Bison version. */
++#define YYBISON_VERSION "2.3"
++
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+
+@@ -45,8 +58,7 @@
+ /* Using locations. */
+ #define YYLSP_NEEDED 0
+
+-/* If NAME_PREFIX is specified substitute the variables and functions
+- names. */
++/* Substitute the variable and function names. */
+ #define yyparse ciaoparse
+ #define yylex ciaolex
+ #define yyerror ciaoerror
+@@ -85,6 +97,7 @@
+ VERSION_ = 278
+ };
+ #endif
++/* Tokens. */
+ #define INT 258
+ #define REAL 259
+ #define HOUR 260
+@@ -120,8 +133,8 @@
+ #define FITSPTR (FR->findFits(1))
+
+ #include <math.h>
+-#include <string.h>
+-#include <iostream.h>
++#include <string>
++#include <iostream>
+
+ #include "framebase.h"
+ #include "fitsimage.h"
+@@ -163,16 +176,23 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
++#endif
++
++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
++typedef union YYSTYPE
+ #line 43 "ciaoparser.Y"
+-typedef union YYSTYPE {
++{
+ double real;
+ int integer;
+ char str[2048];
+ double vector[3];
+-} YYSTYPE;
+-/* Line 191 of yacc.c. */
+-#line 176 "ciaoparser.C"
++}
++/* Line 193 of yacc.c. */
++#line 195 "ciaoparser.C"
++ YYSTYPE;
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ # define YYSTYPE_IS_TRIVIAL 1
+@@ -183,56 +203,171 @@
+ /* Copy the second part of user declarations. */
+
+
+-/* Line 214 of yacc.c. */
+-#line 188 "ciaoparser.C"
++/* Line 216 of yacc.c. */
++#line 208 "ciaoparser.C"
+
+-#if ! defined (yyoverflow) || YYERROR_VERBOSE
++#ifdef short
++# undef short
++#endif
++
++#ifdef YYTYPE_UINT8
++typedef YYTYPE_UINT8 yytype_uint8;
++#else
++typedef unsigned char yytype_uint8;
++#endif
+
+-# ifndef YYFREE
+-# define YYFREE free
++#ifdef YYTYPE_INT8
++typedef YYTYPE_INT8 yytype_int8;
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
++#endif
++
++#ifdef YYTYPE_UINT16
++typedef YYTYPE_UINT16 yytype_uint16;
++#else
++typedef unsigned short int yytype_uint16;
++#endif
++
++#ifdef YYTYPE_INT16
++typedef YYTYPE_INT16 yytype_int16;
++#else
++typedef short int yytype_int16;
++#endif
++
++#ifndef YYSIZE_T
++# ifdef __SIZE_TYPE__
++# define YYSIZE_T __SIZE_TYPE__
++# elif defined size_t
++# define YYSIZE_T size_t
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++# define YYSIZE_T size_t
++# else
++# define YYSIZE_T unsigned int
+ # endif
+-# ifndef YYMALLOC
+-# define YYMALLOC malloc
++#endif
++
++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
++
++#ifndef YY_
++# if YYENABLE_NLS
++# if ENABLE_NLS
++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
++# endif
++# endif
++# ifndef YY_
++# define YY_(msgid) msgid
+ # endif
++#endif
++
++/* Suppress unused-variable warnings by "using" E. */
++#if ! defined lint || defined __GNUC__
++# define YYUSE(e) ((void) (e))
++#else
++# define YYUSE(e) /* empty */
++#endif
++
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
++#else
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int i)
++#else
++static int
++YYID (i)
++ int i;
++#endif
++{
++ return i;
++}
++#endif
++
++#if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+
+ # ifdef YYSTACK_USE_ALLOCA
+ # if YYSTACK_USE_ALLOCA
+-# define YYSTACK_ALLOC alloca
+-# endif
+-# else
+-# if defined (alloca) || defined (_ALLOCA_H)
+-# define YYSTACK_ALLOC alloca
+-# else
+ # ifdef __GNUC__
+ # define YYSTACK_ALLOC __builtin_alloca
++# elif defined __BUILTIN_VA_ARG_INCR
++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
++# elif defined _AIX
++# define YYSTACK_ALLOC __alloca
++# elif defined _MSC_VER
++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
++# define alloca _alloca
++# else
++# define YYSTACK_ALLOC alloca
++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
+ # endif
+ # endif
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's `empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+-# else
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
++# ifndef YYSTACK_ALLOC_MAXIMUM
++ /* The OS might guarantee only one guard page at the bottom of the stack,
++ and a page size can be as small as 4096 bytes. So we cannot safely
++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
++ to allow for a few compiler-allocated temporary stack slots. */
++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+ # endif
++# else
+ # define YYSTACK_ALLOC YYMALLOC
+ # define YYSTACK_FREE YYFREE
++# ifndef YYSTACK_ALLOC_MAXIMUM
++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
++# endif
++# if (defined __cplusplus && ! defined _STDLIB_H \
++ && ! ((defined YYMALLOC || defined malloc) \
++ && (defined YYFREE || defined free)))
++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++# ifndef _STDLIB_H
++# define _STDLIB_H 1
++# endif
++# endif
++# ifndef YYMALLOC
++# define YYMALLOC malloc
++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
++# ifndef YYFREE
++# define YYFREE free
++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++void free (void *); /* INFRINGES ON USER NAME SPACE */
++# endif
++# endif
+ # endif
+-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+-#if (! defined (yyoverflow) \
+- && (! defined (__cplusplus) \
+- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++#if (! defined yyoverflow \
++ && (! defined __cplusplus \
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+ {
+- short yyss;
++ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+@@ -242,24 +377,24 @@
+ /* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+ # define YYSTACK_BYTES(N) \
+- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+ /* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+-# if defined (__GNUC__) && 1 < __GNUC__
++# if defined __GNUC__ && 1 < __GNUC__
+ # define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+ # define YYCOPY(To, From, Count) \
+ do \
+ { \
+- register YYSIZE_T yyi; \
++ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+- while (0)
++ while (YYID (0))
+ # endif
+ # endif
+
+@@ -277,39 +412,33 @@
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+- while (0)
++ while (YYID (0))
+
+ #endif
+
+-#if defined (__STDC__) || defined (__cplusplus)
+- typedef signed char yysigned_char;
+-#else
+- typedef short yysigned_char;
+-#endif
+-
+-/* YYFINAL -- State number of the termination state. */
++/* YYFINAL -- State number of the termination state. */
+ #define YYFINAL 9
+ /* YYLAST -- Last index in YYTABLE. */
+ #define YYLAST 135
+
+-/* YYNTOKENS -- Number of terminals. */
++/* YYNTOKENS -- Number of terminals. */
+ #define YYNTOKENS 31
+-/* YYNNTS -- Number of nonterminals. */
++/* YYNNTS -- Number of nonterminals. */
+ #define YYNNTS 22
+-/* YYNRULES -- Number of rules. */
++/* YYNRULES -- Number of rules. */
+ #define YYNRULES 50
+-/* YYNRULES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 122
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 278
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+-static const unsigned char yytranslate[] =
++static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 24, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -344,7 +473,7 @@
+ #if YYDEBUG
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+-static const unsigned char yyprhs[] =
++static const yytype_uint8 yyprhs[] =
+ {
+ 0, 0, 3, 7, 10, 11, 14, 16, 20, 22,
+ 24, 26, 28, 30, 32, 34, 35, 37, 38, 40,
+@@ -354,8 +483,8 @@
+ 171
+ };
+
+-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+-static const yysigned_char yyrhs[] =
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int8 yyrhs[] =
+ {
+ 32, 0, -1, 32, 33, 34, -1, 33, 34, -1,
+ -1, 15, 36, -1, 23, -1, 40, 48, 49, -1,
+@@ -378,7 +507,7 @@
+ };
+
+ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+-static const unsigned char yyrline[] =
++static const yytype_uint8 yyrline[] =
+ {
+ 0, 86, 86, 87, 90, 91, 92, 93, 96, 97,
+ 98, 101, 102, 105, 106, 109, 110, 113, 114, 117,
+@@ -389,9 +518,9 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE
+-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+ {
+ "$end", "error", "$undefined", "INT", "REAL", "HOUR", "MINUTE",
+@@ -408,7 +537,7 @@
+ # ifdef YYPRINT
+ /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+-static const unsigned short yytoknum[] =
++static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+@@ -418,7 +547,7 @@
+ # endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const unsigned char yyr1[] =
++static const yytype_uint8 yyr1[] =
+ {
+ 0, 31, 32, 32, 33, 33, 33, 33, 34, 34,
+ 34, 35, 35, 36, 36, 37, 37, 38, 38, 39,
+@@ -429,7 +558,7 @@
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+-static const unsigned char yyr2[] =
++static const yytype_uint8 yyr2[] =
+ {
+ 0, 2, 3, 2, 0, 2, 1, 3, 1, 1,
+ 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
+@@ -442,7 +571,7 @@
+ /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+-static const unsigned char yydefact[] =
++static const yytype_uint8 yydefact[] =
+ {
+ 21, 0, 6, 21, 0, 36, 14, 13, 5, 1,
+ 0, 10, 8, 9, 3, 37, 38, 0, 2, 17,
+@@ -459,8 +588,8 @@
+ 19, 42
+ };
+
+-/* YYDEFGOTO[NTERM-NUM]. */
+-static const yysigned_char yydefgoto[] =
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yytype_int8 yydefgoto[] =
+ {
+ -1, 3, 4, 14, 41, 8, 54, 29, 62, 5,
+ 105, 75, 79, 42, 63, 87, 86, 17, 27, 35,
+@@ -470,7 +599,7 @@
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ #define YYPACT_NINF -89
+-static const yysigned_char yypact[] =
++static const yytype_int8 yypact[] =
+ {
+ 81, -11, -89, 61, 3, -19, -89, -89, -89, -89,
+ 3, -89, -89, -89, -89, -89, -89, 95, -89, -15,
+@@ -488,7 +617,7 @@
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+-static const yysigned_char yypgoto[] =
++static const yytype_int8 yypgoto[] =
+ {
+ -89, -89, 72, 87, -41, -89, -42, 67, -38, -89,
+ -88, -37, -29, 22, 89, -89, -89, -89, -89, -89,
+@@ -500,7 +629,7 @@
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+ #define YYTABLE_NINF -20
+-static const yysigned_char yytable[] =
++static const yytype_int8 yytable[] =
+ {
+ 55, 56, 57, 58, 59, 60, 6, 7, 66, 107,
+ 15, 16, 28, 70, 11, 74, 78, 74, 78, 74,
+@@ -518,7 +647,7 @@
+ 38, 0, 0, 40, 76, 77
+ };
+
+-static const yysigned_char yycheck[] =
++static const yytype_int8 yycheck[] =
+ {
+ 42, 43, 44, 45, 46, 47, 17, 18, 50, 97,
+ 29, 30, 27, 54, 11, 56, 57, 58, 59, 60,
+@@ -538,7 +667,7 @@
+
+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+-static const unsigned char yystos[] =
++static const yytype_uint8 yystos[] =
+ {
+ 0, 15, 23, 32, 33, 40, 17, 18, 36, 0,
+ 33, 11, 24, 25, 34, 29, 30, 48, 34, 12,
+@@ -555,22 +684,6 @@
+ 41, 39
+ };
+
+-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+-# define YYSIZE_T __SIZE_TYPE__
+-#endif
+-#if ! defined (YYSIZE_T) && defined (size_t)
+-# define YYSIZE_T size_t
+-#endif
+-#if ! defined (YYSIZE_T)
+-# if defined (__STDC__) || defined (__cplusplus)
+-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+-# define YYSIZE_T size_t
+-# endif
+-#endif
+-#if ! defined (YYSIZE_T)
+-# define YYSIZE_T unsigned int
+-#endif
+-
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY (-2)
+@@ -596,30 +709,63 @@
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+- YYPOPSTACK; \
++ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+- { \
+- yyerror ("syntax error: cannot back up");\
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+-while (0)
++while (YYID (0))
++
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+- are run). */
+
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+ #ifndef YYLLOC_DEFAULT
+-# define YYLLOC_DEFAULT(Current, Rhs, N) \
+- ((Current).first_line = (Rhs)[1].first_line, \
+- (Current).first_column = (Rhs)[1].first_column, \
+- (Current).last_line = (Rhs)[N].last_line, \
+- (Current).last_column = (Rhs)[N].last_column)
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
++
++
++/* YY_LOCATION_PRINT -- Print the location on the stream.
++ This macro was not mandated originally: define only if we know
++ we won't break user code: when these are the locations we know. */
++
++#ifndef YY_LOCATION_PRINT
++# if YYLTYPE_IS_TRIVIAL
++# define YY_LOCATION_PRINT(File, Loc) \
++ fprintf (File, "%d.%d-%d.%d", \
++ (Loc).first_line, (Loc).first_column, \
++ (Loc).last_line, (Loc).last_column)
++# else
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++# endif
+ #endif
+
++
+ /* YYLEX -- calling `yylex' with the right arguments. */
+
+ #ifdef YYLEX_PARAM
+@@ -640,42 +786,96 @@
+ do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+-} while (0)
++} while (YYID (0))
+
+-# define YYDSYMPRINT(Args) \
+-do { \
+- if (yydebug) \
+- yysymprint Args; \
+-} while (0)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+-# define YYDSYMPRINTF(Title, Token, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yysymprint (stderr, \
+- Token, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (!yyvaluep)
++ return;
++# ifdef YYPRINT
++ if (yytype < YYNTOKENS)
++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
++# endif
++ switch (yytype)
++ {
++ default:
++ break;
++ }
++}
++
++
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
++
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
++{
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
++ YYFPRINTF (yyoutput, ")");
++}
+
+ /*------------------------------------------------------------------.
+ | yy_stack_print -- Print the state stack from its BOTTOM up to its |
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_stack_print (short *bottom, short *top)
++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+ #else
+ static void
+ yy_stack_print (bottom, top)
+- short *bottom;
+- short *top;
++ yytype_int16 *bottom;
++ yytype_int16 *top;
+ #endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+- for (/* Nothing. */; bottom <= top; ++bottom)
++ for (; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+ }
+@@ -684,45 +884,52 @@
+ do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yy_reduce_print (int yyrule)
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+ #else
+ static void
+-yy_reduce_print (yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
+ int yyrule;
+ #endif
+ {
++ int yynrhs = yyr2[yyrule];
+ int yyi;
+- unsigned int yylno = yyrline[yyrule];
+- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+- yyrule - 1, yylno);
+- /* Print the symbols being reduced, and their result. */
+- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++ unsigned long int yylno = yyrline[yyrule];
++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
++ yyrule - 1, yylno);
++ /* The symbols being reduced. */
++ for (yyi = 0; yyi < yynrhs; yyi++)
++ {
++ fprintf (stderr, " $%d = ", yyi + 1);
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
++ fprintf (stderr, "\n");
++ }
+ }
+
+ # define YY_REDUCE_PRINT(Rule) \
+ do { \
+ if (yydebug) \
+- yy_reduce_print (Rule); \
+-} while (0)
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+ int yydebug;
+ #else /* !YYDEBUG */
+ # define YYDPRINTF(Args)
+-# define YYDSYMPRINT(Args)
+-# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+ # define YY_STACK_PRINT(Bottom, Top)
+ # define YY_REDUCE_PRINT(Rule)
+ #endif /* !YYDEBUG */
+@@ -737,13 +944,9 @@
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+-# undef YYMAXDEPTH
+-#endif
+-
+ #ifndef YYMAXDEPTH
+ # define YYMAXDEPTH 10000
+ #endif
+@@ -753,45 +956,47 @@
+ #if YYERROR_VERBOSE
+
+ # ifndef yystrlen
+-# if defined (__GLIBC__) && defined (_STRING_H)
++# if defined __GLIBC__ && defined _STRING_H
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystrlen (const char *yystr)
+-# else
++#else
++static YYSIZE_T
+ yystrlen (yystr)
+- const char *yystr;
+-# endif
++ const char *yystr;
++#endif
+ {
+- register const char *yys = yystr;
+-
+- while (*yys++ != '\0')
++ YYSIZE_T yylen;
++ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+-
+- return yys - yystr - 1;
++ return yylen;
+ }
+ # endif
+ # endif
+
+ # ifndef yystpcpy
+-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+ # define yystpcpy stpcpy
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+-# if defined (__STDC__) || defined (__cplusplus)
+ yystpcpy (char *yydest, const char *yysrc)
+-# else
++#else
++static char *
+ yystpcpy (yydest, yysrc)
+- char *yydest;
+- const char *yysrc;
+-# endif
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+- register char *yyd = yydest;
+- register const char *yys = yysrc;
++ char *yyd = yydest;
++ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+@@ -801,70 +1006,192 @@
+ # endif
+ # endif
+
+-#endif /* !YYERROR_VERBOSE */
++# ifndef yytnamerr
++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
++ quotes and backslashes, so that it's suitable for yyerror. The
++ heuristic is that double-quoting is unnecessary unless the string
++ contains an apostrophe, a comma, or backslash (other than
++ backslash-backslash). YYSTR is taken from yytname. If YYRES is
++ null, do not copy; instead, return the length of what the result
++ would have been. */
++static YYSIZE_T
++yytnamerr (char *yyres, const char *yystr)
++{
++ if (*yystr == '"')
++ {
++ YYSIZE_T yyn = 0;
++ char const *yyp = yystr;
+
+-
++ for (;;)
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
++
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
++ do_not_strip_quotes: ;
++ }
+
+-#if YYDEBUG
+-/*--------------------------------.
+-| Print this symbol on YYOUTPUT. |
+-`--------------------------------*/
++ if (! yyres)
++ return yystrlen (yystr);
+
+-#if defined (__STDC__) || defined (__cplusplus)
+-static void
+-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+-#else
+-static void
+-yysymprint (yyoutput, yytype, yyvaluep)
+- FILE *yyoutput;
+- int yytype;
+- YYSTYPE *yyvaluep;
+-#endif
++ return yystpcpy (yyres, yystr) - yyres;
++}
++# endif
++
++/* Copy into YYRESULT an error message about the unexpected token
++ YYCHAR while in state YYSTATE. Return the number of bytes copied,
++ including the terminating null byte. If YYRESULT is null, do not
++ copy anything; just return the number of bytes that would be
++ copied. As a special case, return 0 if an ordinary "syntax error"
++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
++ size calculation. */
++static YYSIZE_T
++yysyntax_error (char *yyresult, int yystate, int yychar)
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ int yyn = yypact[yystate];
+
+- if (yytype < YYNTOKENS)
++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
++ return 0;
++ else
+ {
+- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+-# ifdef YYPRINT
+- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++ int yytype = YYTRANSLATE (yychar);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
++ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
++ int yysize_overflow = 0;
++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
++ int yyx;
++
++# if 0
++ /* This is so xgettext sees the translatable formats that are
++ constructed on the fly. */
++ YY_("syntax error, unexpected %s");
++ YY_("syntax error, unexpected %s, expecting %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+ # endif
+- }
+- else
+- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++ char *yyfmt;
++ char const *yyf;
++ static char const yyunexpected[] = "syntax error, unexpected %s";
++ static char const yyexpecting[] = ", expecting %s";
++ static char const yyor[] = " or %s";
++ char yyformat[sizeof yyunexpected
++ + sizeof yyexpecting - 1
++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
++ * (sizeof yyor - 1))];
++ char const *yyprefix = yyexpecting;
++
++ /* Start YYX at -YYN if negative to avoid negative indexes in
++ YYCHECK. */
++ int yyxbegin = yyn < 0 ? -yyn : 0;
++
++ /* Stay within bounds of both yycheck and yytname. */
++ int yychecklim = YYLAST - yyn + 1;
++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++ int yycount = 1;
++
++ yyarg[0] = yytname[yytype];
++ yyfmt = yystpcpy (yyformat, yyunexpected);
++
++ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++ {
++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
++ {
++ yycount = 1;
++ yysize = yysize0;
++ yyformat[sizeof yyunexpected - 1] = '\0';
++ break;
++ }
++ yyarg[yycount++] = yytname[yyx];
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
++ yyfmt = yystpcpy (yyfmt, yyprefix);
++ yyprefix = yyor;
++ }
++
++ yyf = YY_(yyformat);
++ yysize1 = yysize + yystrlen (yyf);
++ yysize_overflow |= (yysize1 < yysize);
++ yysize = yysize1;
+
+- switch (yytype)
+- {
+- default:
+- break;
++ if (yysize_overflow)
++ return YYSIZE_MAXIMUM;
++
++ if (yyresult)
++ {
++ /* Avoid sprintf, as that infringes on the user's name space.
++ Don't have undefined behavior even if the translation
++ produced a string with the wrong number of "%s"s. */
++ char *yyp = yyresult;
++ int yyi = 0;
++ while ((*yyp = *yyf) != '\0')
++ {
++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
++ {
++ yyp += yytnamerr (yyp, yyarg[yyi++]);
++ yyf += 2;
++ }
++ else
++ {
++ yyp++;
++ yyf++;
++ }
++ }
++ }
++ return yysize;
+ }
+- YYFPRINTF (yyoutput, ")");
+ }
++#endif /* YYERROR_VERBOSE */
++
+
+-#endif /* ! YYDEBUG */
+ /*-----------------------------------------------.
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
+-#if defined (__STDC__) || defined (__cplusplus)
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+-yydestruct (int yytype, YYSTYPE *yyvaluep)
++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+ #else
+ static void
+-yydestruct (yytype, yyvaluep)
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+ #endif
+ {
+- /* Pacify ``unused variable'' warnings. */
+- (void) yyvaluep;
++ YYUSE (yyvaluep);
++
++ if (!yymsg)
++ yymsg = "Deleting";
++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+- break;
++ break;
+ }
+ }
+
+@@ -872,13 +1199,13 @@
+ /* Prevent warnings from -Wmissing-prototypes. */
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void *YYPARSE_PARAM);
+-# else
++#else
+ int yyparse ();
+-# endif
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if defined __STDC__ || defined __cplusplus
+ int yyparse (void);
+ #else
+ int yyparse ();
+@@ -887,10 +1214,10 @@
+
+
+
+-/* The lookahead symbol. */
++/* The look-ahead symbol. */
+ int yychar;
+
+-/* The semantic value of the lookahead symbol. */
++/* The semantic value of the look-ahead symbol. */
+ YYSTYPE yylval;
+
+ /* Number of syntax errors so far. */
+@@ -903,14 +1230,18 @@
+ `----------*/
+
+ #ifdef YYPARSE_PARAM
+-# if defined (__STDC__) || defined (__cplusplus)
+-int yyparse (void *YYPARSE_PARAM)
+-# else
+-int yyparse (YYPARSE_PARAM)
+- void *YYPARSE_PARAM;
+-# endif
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
+ #else /* ! YYPARSE_PARAM */
+-#if defined (__STDC__) || defined (__cplusplus)
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
+ #else
+@@ -921,13 +1252,19 @@
+ #endif
+ {
+
+- register int yystate;
+- register int yyn;
++ int yystate;
++ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+- /* Lookahead token as an internal (translated) token number. */
++ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
++#if YYERROR_VERBOSE
++ /* Buffer for error messages, and its allocated size. */
++ char yymsgbuf[128];
++ char *yymsg = yymsgbuf;
++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
++#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+@@ -938,18 +1275,18 @@
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+- short yyssa[YYINITDEPTH];
+- short *yyss = yyssa;
+- register short *yyssp;
++ yytype_int16 yyssa[YYINITDEPTH];
++ yytype_int16 *yyss = yyssa;
++ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+- register YYSTYPE *yyvsp;
++ YYSTYPE *yyvsp;
+
+
+
+-#define YYPOPSTACK (yyvsp--, yyssp--)
++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+@@ -958,9 +1295,9 @@
+ YYSTYPE yyval;
+
+
+- /* When reducing, the number of symbols on the RHS of the reduced
+- rule. */
+- int yylen;
++ /* The number of symbols on the RHS of the reduced rule.
++ Keep to zero when no symbol should be popped. */
++ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+@@ -984,8 +1321,7 @@
+ `------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+- have just been pushed. so pushing a state here evens the stacks.
+- */
++ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+@@ -998,18 +1334,18 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
++ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+- yyoverflow ("parser stack overflow",
++ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+@@ -1020,21 +1356,21 @@
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+- short *yyss1 = yyss;
++ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+- goto yyoverflowlab;
++ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+@@ -1065,19 +1401,17 @@
+ `-----------*/
+ yybackup:
+
+-/* Do appropriate processing given the current state. */
+-/* Read a lookahead token if we need one and don't already have one. */
+-/* yyresume: */
+-
+- /* First try to decide what to do without reference to lookahead token. */
++ /* Do appropriate processing given the current state. Read a
++ look-ahead token if we need one and don't already have one. */
+
++ /* First try to decide what to do without reference to look-ahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+- /* Not known => get a lookahead token if don't already have one. */
++ /* Not known => get a look-ahead token if don't already have one. */
+
+- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+@@ -1092,7 +1426,7 @@
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+@@ -1112,22 +1446,21 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- /* Shift the lookahead token. */
+- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+-
+- /* Discard the token being shifted unless it is eof. */
+- if (yychar != YYEOF)
+- yychar = YYEMPTY;
+-
+- *++yyvsp = yylval;
+-
+-
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
++ /* Shift the look-ahead token. */
++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
++
++ /* Discard the shifted token unless it is eof. */
++ if (yychar != YYEOF)
++ yychar = YYEMPTY;
++
+ yystate = yyn;
++ *++yyvsp = yylval;
++
+ goto yynewstate;
+
+
+@@ -1174,12 +1507,12 @@
+
+ case 11:
+ #line 101 "ciaoparser.Y"
+- {yyval.real=yyvsp[0].real;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
+ break;
+
+ case 12:
+ #line 102 "ciaoparser.Y"
+- {yyval.real=yyvsp[0].integer;;}
++ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 13:
+@@ -1204,67 +1537,67 @@
+
+ case 22:
+ #line 129 "ciaoparser.Y"
+- {yyval.real = degToRad(yyvsp[0].real);;}
++ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
+ break;
+
+ case 23:
+ #line 132 "ciaoparser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, PHYSICAL);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), PHYSICAL);;}
+ break;
+
+ case 24:
+ #line 133 "ciaoparser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, WCS, ARCMIN);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), WCS, ARCMIN);;}
+ break;
+
+ case 25:
+ #line 134 "ciaoparser.Y"
+- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, WCS, ARCSEC);;}
++ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), WCS, ARCSEC);;}
+ break;
+
+ case 26:
+ #line 138 "ciaoparser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 27:
+ #line 145 "ciaoparser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), WCS, ARCMIN);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), WCS, ARCMIN);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 28:
+ #line 152 "ciaoparser.Y"
+ {
+- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), WCS, ARCSEC);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), WCS, ARCSEC);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 29:
+ #line 160 "ciaoparser.Y"
+- {yyval.real = parseDMS(yyvsp[0].str);;}
++ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
+ break;
+
+ case 30:
+ #line 164 "ciaoparser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real),WCS,FK5);
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)),WCS,FK5);
+
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1277,12 +1610,12 @@
+ #line 172 "ciaoparser.Y"
+ {
+ Vector r = FITSPTR->mapToRef(
+- Vector(hmsToDegree(ciaosign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),
+- dmsToDegree(ciaosign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(hmsToDegree(ciaosign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),
++ dmsToDegree(ciaosign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ WCS, FK5);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1295,22 +1628,22 @@
+ #line 183 "ciaoparser.Y"
+ {
+ Vector r = FITSPTR->mapToRef(
+- Vector(dmsToDegree(ciaosign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),
+- dmsToDegree(ciaosign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
++ Vector(dmsToDegree(ciaosign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),
++ dmsToDegree(ciaosign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
+ WCS, FK5);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+ case 35:
+ #line 193 "ciaoparser.Y"
+ {
+- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
+- yyval.vector[0] = r[0];
+- yyval.vector[1] = r[1];
+- yyval.vector[2] = r[2];
++ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
++ (yyval.vector)[0] = r[0];
++ (yyval.vector)[1] = r[1];
++ (yyval.vector)[2] = r[2];
+ ;}
+ break;
+
+@@ -1326,52 +1659,52 @@
+
+ case 39:
+ #line 207 "ciaoparser.Y"
+- {FR->createCircleCmd(Vector(yyvsp[-3].vector),
+- yyvsp[-1].real,
++ {FR->createCircleCmd(Vector((yyvsp[(3) - (6)].vector)),
++ (yyvsp[(5) - (6)].real),
+ color,1,font,text,props,NULL,taglist,cblist);;}
+ break;
+
+ case 40:
+ #line 212 "ciaoparser.Y"
+- {FR->createEllipseCmd(Vector(yyvsp[-5].vector),
+- Vector(yyvsp[-3].vector),yyvsp[-1].real,
++ {FR->createEllipseCmd(Vector((yyvsp[(3) - (8)].vector)),
++ Vector((yyvsp[(5) - (8)].vector)),(yyvsp[(7) - (8)].real),
+ color,1,font,text,props,NULL,taglist,cblist);;}
+ break;
+
+ case 41:
+ #line 217 "ciaoparser.Y"
+- {FR->createAnnulusCmd(Vector(yyvsp[-5].vector),
+- yyvsp[-3].real,yyvsp[-1].real,1,
++ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (8)].vector)),
++ (yyvsp[(5) - (8)].real),(yyvsp[(7) - (8)].real),1,
+ color,1,font,text,props,NULL,taglist,cblist);;}
+ break;
+
+ case 42:
+ #line 222 "ciaoparser.Y"
+- {FR->createCpandaCmd(Vector(yyvsp[-9].vector),
+- yyvsp[-3].real,yyvsp[-1].real,1,
+- yyvsp[-7].real,yyvsp[-5].real,1,
++ {FR->createCpandaCmd(Vector((yyvsp[(3) - (12)].vector)),
++ (yyvsp[(9) - (12)].real),(yyvsp[(11) - (12)].real),1,
++ (yyvsp[(5) - (12)].real),(yyvsp[(7) - (12)].real),1,
+ color,1,font,text,props,NULL,taglist,cblist);;}
+ break;
+
+ case 43:
+ #line 228 "ciaoparser.Y"
+- {FR->createBoxCmd(Vector(yyvsp[-3].vector),
+- Vector(yyvsp[-1].vector),
++ {FR->createBoxCmd(Vector((yyvsp[(3) - (6)].vector)),
++ Vector((yyvsp[(5) - (6)].vector)),
+ 0,
+ color,1,font,text,props,NULL,taglist,cblist);;}
+ break;
+
+ case 44:
+ #line 234 "ciaoparser.Y"
+- {FR->createBoxCmd(Vector(yyvsp[-5].vector),
+- Vector(yyvsp[-3].vector),
+- yyvsp[-1].real,
++ {FR->createBoxCmd(Vector((yyvsp[(3) - (8)].vector)),
++ Vector((yyvsp[(5) - (8)].vector)),
++ (yyvsp[(7) - (8)].real),
+ color,1,font,text,props,NULL,taglist,cblist);;}
+ break;
+
+ case 45:
+ #line 240 "ciaoparser.Y"
+- {FR->createBoxCirclePointCmd(Vector(yyvsp[-1].vector),
++ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (4)].vector)),
+ color,1,font,text,props,NULL,taglist,cblist);;}
+ break;
+
+@@ -1388,19 +1721,18 @@
+
+ case 50:
+ #line 252 "ciaoparser.Y"
+- {polylist.append(new Vertex(yyvsp[0].vector));;}
++ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
+ break;
+
+
++/* Line 1267 of yacc.c. */
++#line 1730 "ciaoparser.C"
++ default: break;
+ }
++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+-/* Line 1000 of yacc.c. */
+-#line 1399 "ciaoparser.C"
+-
+- yyvsp -= yylen;
+- yyssp -= yylen;
+-
+-
++ YYPOPSTACK (yylen);
++ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+@@ -1429,99 +1761,65 @@
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+-#if YYERROR_VERBOSE
+- yyn = yypact[yystate];
+-
+- if (YYPACT_NINF < yyn && yyn < YYLAST)
+- {
+- YYSIZE_T yysize = 0;
+- int yytype = YYTRANSLATE (yychar);
+- const char* yyprefix;
+- char *yymsg;
+- int yyx;
+-
+- /* Start YYX at -YYN if negative to avoid negative indexes in
+- YYCHECK. */
+- int yyxbegin = yyn < 0 ? -yyn : 0;
+-
+- /* Stay within bounds of both yycheck and yytname. */
+- int yychecklim = YYLAST - yyn;
+- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+- int yycount = 0;
+-
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++#if ! YYERROR_VERBOSE
++ yyerror (YY_("syntax error"));
++#else
++ {
++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
++ {
++ YYSIZE_T yyalloc = 2 * yysize;
++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
++ yyalloc = YYSTACK_ALLOC_MAXIMUM;
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
++ if (yymsg)
++ yymsg_alloc = yyalloc;
++ else
+ {
+- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+- yycount += 1;
+- if (yycount == 5)
+- {
+- yysize = 0;
+- break;
+- }
++ yymsg = yymsgbuf;
++ yymsg_alloc = sizeof yymsgbuf;
+ }
+- yysize += (sizeof ("syntax error, unexpected ")
+- + yystrlen (yytname[yytype]));
+- yymsg = (char *) YYSTACK_ALLOC (yysize);
+- if (yymsg != 0)
+- {
+- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+- yyp = yystpcpy (yyp, yytname[yytype]);
++ }
+
+- if (yycount < 5)
+- {
+- yyprefix = ", expecting ";
+- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+- {
+- yyp = yystpcpy (yyp, yyprefix);
+- yyp = yystpcpy (yyp, yytname[yyx]);
+- yyprefix = " or ";
+- }
+- }
+- yyerror (yymsg);
+- YYSTACK_FREE (yymsg);
+- }
+- else
+- yyerror ("syntax error; also virtual memory exhausted");
+- }
+- else
+-#endif /* YYERROR_VERBOSE */
+- yyerror ("syntax error");
++ if (0 < yysize && yysize <= yymsg_alloc)
++ {
++ (void) yysyntax_error (yymsg, yystate, yychar);
++ yyerror (yymsg);
++ }
++ else
++ {
++ yyerror (YY_("syntax error"));
++ if (yysize != 0)
++ goto yyexhaustedlab;
++ }
++ }
++#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+- /* If just tried and failed to reuse lookahead token after an
++ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* If at end of input, pop the error token,
+- then the rest of the stack, then return failure. */
++ {
++ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+- for (;;)
+- {
+- YYPOPSTACK;
+- if (yyssp == yyss)
+- YYABORT;
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[*yyssp], yyvsp);
+- }
+- }
++ YYABORT;
++ }
+ else
+ {
+- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+- yydestruct (yytoken, &yylval);
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
+ yychar = YYEMPTY;
+-
+ }
+ }
+
+- /* Else will try to reuse lookahead token after shifting the error
++ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+@@ -1531,15 +1829,17 @@
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+-#ifdef __GNUC__
+- /* Pacify GCC when the user code never invokes YYERROR and the label
+- yyerrorlab therefore never appears in user code. */
+- if (0)
++ /* Pacify compilers like GCC when the user code never invokes
++ YYERROR and the label yyerrorlab therefore never appears in user
++ code. */
++ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+-#endif
+
+- yyvsp -= yylen;
+- yyssp -= yylen;
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYERROR. */
++ YYPOPSTACK (yylen);
++ yylen = 0;
++ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+@@ -1568,9 +1868,10 @@
+ if (yyssp == yyss)
+ YYABORT;
+
+- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+- yydestruct (yystos[yystate], yyvsp);
+- YYPOPSTACK;
++
++ yydestruct ("Error: popping",
++ yystos[yystate], yyvsp);
++ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+@@ -1578,11 +1879,12 @@
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+- YYDPRINTF ((stderr, "Shifting error token, "));
+-
+ *++yyvsp = yylval;
+
+
++ /* Shift the error token. */
++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
++
+ yystate = yyn;
+ goto yynewstate;
+
+@@ -1602,21 +1904,39 @@
+ goto yyreturn;
+
+ #ifndef yyoverflow
+-/*----------------------------------------------.
+-| yyoverflowlab -- parser overflow comes here. |
+-`----------------------------------------------*/
+-yyoverflowlab:
+- yyerror ("parser stack overflow");
++/*-------------------------------------------------.
++| yyexhaustedlab -- memory exhaustion comes here. |
++`-------------------------------------------------*/
++yyexhaustedlab:
++ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+ #endif
+
+ yyreturn:
++ if (yychar != YYEOF && yychar != YYEMPTY)
++ yydestruct ("Cleanup: discarding lookahead",
++ yytoken, &yylval);
++ /* Do not reclaim the symbols of the rule which action triggered
++ this YYABORT or YYACCEPT. */
++ YYPOPSTACK (yylen);
++ YY_STACK_PRINT (yyss, yyssp);
++ while (yyssp != yyss)
++ {
++ yydestruct ("Cleanup: popping",
++ yystos[*yyssp], yyvsp);
++ YYPOPSTACK (1);
++ }
+ #ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+ #endif
+- return yyresult;
++#if YYERROR_VERBOSE
++ if (yymsg != yymsgbuf)
++ YYSTACK_FREE (yymsg);
++#endif
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+
+
+--- saods9-4.0b7.orig/saotk/vector/vector.h
++++ saods9-4.0b7/saotk/vector/vector.h
+@@ -13,6 +13,10 @@
+
+ #include "tk.h"
+
++class Vector;
++class Matrix;
++class BBox;
++
+ class Vector {
+ friend class Matrix;
+ friend class Translate;
+--- saods9-4.0b7.orig/saotk/colorbar/lut.C
++++ saods9-4.0b7/saotk/colorbar/lut.C
+@@ -1,4 +1,4 @@
+-// Copyright (C) 1999-200
++// Copyright (C) 1999-2005
+ // Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+ // For conditions of distribution and use, see copyright notice in "copyright"
+
diff --git a/debian/patches/sla.patch b/debian/patches/sla.patch
new file mode 100644
index 0000000..a7cdb69
--- /dev/null
+++ b/debian/patches/sla.patch
@@ -0,0 +1,20 @@
+--- saods9-4.0b7.orig/sla/Makefile
++++ saods9-4.0b7/sla/Makefile
+@@ -0,0 +1,17 @@
++# ./sla/Makefile
++# A work of Justin Pryzby during the year of 2005.
++# Hereby placed into the public domain.
++SRC=$(wildcard *.f)
++OBJ=$(SRC:.f=.o)
++STLIB=libsla.a
++LIBDIR=../lib/
++FCFLAGS=$(FLAGS)
++FC=gfortran
++
++install: $(STLIB)
++ mkdir -p $(LIBDIR);
++ cp $^ $(LIBDIR);
++
++$(STLIB): $(OBJ)
++ ar q $@ $^;
++ ranlib $@
diff --git a/debian/patches/wcssubs.patch b/debian/patches/wcssubs.patch
new file mode 100644
index 0000000..8be3a53
--- /dev/null
+++ b/debian/patches/wcssubs.patch
@@ -0,0 +1,59 @@
+--- saods9-4.0b7.orig/wcssubs-3.5.6/Makefile
++++ saods9-4.0b7/wcssubs-3.5.6/Makefile
+@@ -12,6 +12,7 @@
+ lin.c \
+ platepos.c \
+ proj.c \
++ slasubs.c \
+ sph.c \
+ tnxpos.c \
+ wcs.c \
+--- saods9-4.0b7.orig/wcssubs-3.5.6/slasubs.c
++++ saods9-4.0b7/wcssubs-3.5.6/slasubs.c
+@@ -17,6 +17,7 @@
+ * rotations about specified Cartesian axes.
+ */
+
++#if 0
+ void
+ slaDcs2c (a, b, v)
+
+@@ -222,6 +223,7 @@
+ return ( fabs ( w ) < DPI ) ? w : w - dsign ( D2PI, angle );
+ }
+
++#endif
+
+ void
+ slaDeuler (order, phi, theta, psi, rmat)
+--- saods9-4.0b7.orig/wcssubs-3.5.6/hget.c
++++ saods9-4.0b7/wcssubs-3.5.6/hget.c
+@@ -153,7 +153,7 @@
+ char *value;
+ double dval;
+ int minint;
+- int lval, id;
++ int lval;
+ char *dchar;
+
+ /* Get value and comment from header string */
+@@ -1355,8 +1355,10 @@
+ return (strnsrch (s1, s2, ls1));
+ }
+
++#if 0
+ static char *scase;
+ static int lscase = 0;
++#endif
+
+ /* Find string s2 within string s1 */
+
+@@ -1369,7 +1371,7 @@
+
+ {
+ char *s,*s1e;
+- char cfirst,clast, s2i;
++ char cfirst,clast;
+ int i,ls2;
+
+ /* Return null string if either pointer is NULL */
diff --git a/debian/patches/xpa.patch b/debian/patches/xpa.patch
new file mode 100644
index 0000000..953233c
--- /dev/null
+++ b/debian/patches/xpa.patch
@@ -0,0 +1,82 @@
+--- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpaaccess.1
++++ saods9-4.0b7/xpa-2.1.6/man/man1/xpaaccess.1
+@@ -131,7 +131,7 @@
+ .IX Title "xpaaccess 1"
+ .TH xpaaccess 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
+ .SH "NAME"
+-\&\fBxpaaccess: see if template matches registered XPA access points\fR
++xpaaccess \- see if template matches registered XPA access points
+ .SH "SYNOPSIS"
+ .IX Header "SYNOPSIS"
+ xpaaccess [\-c] [\-h] [\-i nsinet] [\-m method] [\-n] [\-t sval,lval] [\-u users] \-v <template> [type]
+--- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpainfo.1
++++ saods9-4.0b7/xpa-2.1.6/man/man1/xpainfo.1
+@@ -131,7 +131,7 @@
+ .IX Title "xpainfo 1"
+ .TH xpainfo 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
+ .SH "NAME"
+-\&\fBxpainfo: send short message to one or more XPA servers\fR
++xpainfo \- send short message to one or more XPA servers
+ .SH "SYNOPSIS"
+ .IX Header "SYNOPSIS"
+ xpainfo [\-h] [\-i nsinet] [\-m method] [\-n] [\-s] [\-t sval,lval] [\-u users] <template|host:port> [paramlist]
+--- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpaget.1
++++ saods9-4.0b7/xpa-2.1.6/man/man1/xpaget.1
+@@ -131,7 +131,7 @@
+ .IX Title "xpaget 1"
+ .TH xpaget 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
+ .SH "NAME"
+-\&\fBxpaget: retrieve data from one or more XPA servers\fR
++xpaget \- retrieve data from one or more XPA servers
+ .SH "SYNOPSIS"
+ .IX Header "SYNOPSIS"
+ xpaget [\-h] [\-i nsinet] [\-m method] [\-s] [\-t sval,lval] [\-u users] <template|host:port> [paramlist]
+--- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpaset.1
++++ saods9-4.0b7/xpa-2.1.6/man/man1/xpaset.1
+@@ -131,7 +131,7 @@
+ .IX Title "xpaset 1"
+ .TH xpaset 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
+ .SH "NAME"
+-\&\fBxpaset: send data to one or more XPA servers\fR
++xpaset \- send data to one or more XPA servers
+ .SH "SYNOPSIS"
+ .IX Header "SYNOPSIS"
+ <data> | xpaset [\-h] [\-i nsinet] [\-m method] [\-n] [\-p] [\-s] [\-t sval,lval] [\-u users] [\-v] <template|host:port> [paramlist]
+--- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpans.1
++++ saods9-4.0b7/xpa-2.1.6/man/man1/xpans.1
+@@ -131,7 +131,7 @@
+ .IX Title "xpans 1"
+ .TH xpans 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
+ .SH "NAME"
+-\&\fBxpans: the XPA Name Server\fR
++xpans \- the XPA Name Server
+ .SH "SYNOPSIS"
+ .IX Header "SYNOPSIS"
+ .Vb 1
+--- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpachanges.1
++++ saods9-4.0b7/xpa-2.1.6/man/man1/xpachanges.1
+@@ -128,10 +128,10 @@
+ .rm #[ #] #H #V #F C
+ .\" ========================================================================
+ .\"
+-.IX Title "xpachanges 1"
+-.TH xpachanges 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
++.IX Title "xpachanges 7"
++.TH xpachanges 7 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
+ .SH "NAME"
+-\&\fBXPA Changes: Changes For Users from XPA 1.0 and 2.0\fR
++XPA Changes \- Changes For Users from XPA 1.0 and 2.0
+ .SH "SYNOPSIS"
+ .IX Header "SYNOPSIS"
+ This document describes changes that will affect users who migrate
+--- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpamb.1
++++ saods9-4.0b7/xpa-2.1.6/man/man1/xpamb.1
+@@ -131,7 +131,7 @@
+ .IX Title "xpamb 1"
+ .TH xpamb 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
+ .SH "NAME"
+-\&\fBxpamb: the XPA Message Bus\fR
++xpamb \- the XPA Message Bus
+ .SH "SYNOPSIS"
+ .IX Header "SYNOPSIS"
+ The xpamb program can act as a \*(L"classical\*(R" message bus interface
diff --git a/debian/saods9-4.0b7-2-nodebian.diff b/debian/saods9-4.0b7-2-nodebian.diff
deleted file mode 100644
index bb413e8..0000000
--- a/debian/saods9-4.0b7-2-nodebian.diff
+++ /dev/null
@@ -1,21650 +0,0 @@
---- saods9-4.0b7.orig/make.linux
-+++ saods9-4.0b7/make.linux
-@@ -1,21 +1,21 @@
- ARCH = linux
--BUILD_SHARED = yes
--OPTS = -O2
-+OPTS = $(FLAGS) -DHAVE_SYS_UN_H -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/tcl8.4
-+DEPENDS = no
- #OPTS = -gstabs+ -fno-inline
- #OPTS = -gstabs+ -fno-inline -pg
-
--X11INCLUDE=/usr/X11R6/include
-+X11INCLUDE=/usr/include/X11
- X11LIB = /usr/X11R6/lib
-
- CXX = g++
--CXXOPT = ${OPTS} -fPIC -DHAVE_SYS_UN_H -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-+CXXOPT = ${OPTS}
- CC = gcc
- CCc = gcc
- #CCc = 'gcc -g'
--CCOPT = ${OPTS} -fPIC -DHAVE_SYS_UN_H -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-+CCOPT = $(OPTS)
-
- LIBCMD = $(AR) -cq
--RANLIB = echo
-+RANLIB = ranlib
- SHCMD = $(CXX) -shared -o
- SHEXT = so
--ETAGS = etags
-+ETAGS = true
---- saods9-4.0b7.orig/Makefile
-+++ saods9-4.0b7/Makefile
-@@ -26,7 +26,7 @@
- TCLXDIR = $(TCLXDIR)/win
-
- TCLLIBFLAGS = --prefix ..
-- PREHTMLFLAGS = config_BUILD_TCLSH=tclsh84s config_TARGET_TCL_SCRIPT_DIR=$(root)/lib/tcl8.4
-+ PREHTMLFLAGS = config_BUILD_TCLSH=tclsh84s config_TARGET_TCL_SCRIPT_DIR=$(root)/share/tcltk/tcl8.4
- else
- EXE =
- WISH = wish8.4
-@@ -37,6 +37,7 @@
-
- XFLAGS = --x-includes=$(X11INCLUDE) --x-libraries="$(X11LIB) $(HTMLEXTLIB)"
- TCLLIBFLAGS = --prefix $(root)
-+ PREHTMLFLAGS= config_TARGET_TCL_SCRIPT_DIR=/usr/share/tcltk/tcl8.4 config_TARGET_TK_SCRIPT_DIR=/usr/share/tcltk/tk8.4
- endif
-
- TCLFLAGS = --enable-gcc --prefix $(root) $(XFLAGS)
-@@ -46,12 +47,12 @@
- --with-tcl=$(root)/$(TCLDIR) --with-tk=$(root)/$(TKDIR) $(XFLAGS)
- TKIMGFLAGS = --enable-gcc --prefix $(root) --with-tcl=$(root)/$(TCLDIRDIR) \
- --with-tk=$(root)/$(TKDIRDIR) $(XFLAGS)
--XPAFLAGS = --enable-gcc --prefix $(root) --with-tcl=$(root)/$(TCLDIRDIR) \
-+XPAFLAGS = --enable-gcc --prefix $(root) --with-tcl=/usr/share/tcltk/tcl8.4 \
- $(XFLAGS)
--HTMLFLAGS = --enable-gcc --prefix $(root) --with-tcl=$(root)/$(TCLDIR) \
-- --with-tk=$(root)/$(TKDIR) $(XFLAGS)
-+HTMLFLAGS = --enable-gcc --prefix $(root) --with-tcl=/usr/share/tcltk/tcl8.4/ --with-tk=/usr/share/tcltk/tk8.4/
-+
-+FUNTOOLSFLAGS = --prefix $(root) --enable-gcc --with-zlib=-lz --with-wcslib=../lib/libwcs.a --enable-mainlib
-
--FUNTOOLSFLAGS = --prefix $(root) --enable-gcc --with-zlib=../lib/libz.a --with-wcslib=../lib/libwcs.a --enable-mainlib
- ZLIBFLAGS = --prefix $(root)
-
- SAOINDEX= lib/pkgIndex.tcl
-@@ -185,7 +186,7 @@
-
- tkindex : FORCE
- @echo "Installing Tk mkIndex..."
-- cd lib/tk8.4; echo "pkg_mkIndex . *.tcl" | ../../bin/tclsh8.4
-+ cd share/tcltk/tk8.4; echo "pkg_mkIndex . *.tcl" | ../../../bin/tclsh8.4
-
- blt : FORCE
- @echo "Installing BLT..."
-@@ -194,7 +195,7 @@
-
- mktclapp: FORCE
- @echo "Installing MKTCLAPP..."
-- cd $(MKTCLAPPDIR); CC=$(CCc) $(MAKE) mktclapp -e
-+ cd $(MKTCLAPPDIR); CC=$(CCc) CFLAGS="$(CCOPT)" $(MAKE) mktclapp -e
- cp $(MKTCLAPPDIR)/mktclapp$(EXE) bin/.
-
- zlib : FORCE
-@@ -219,13 +220,13 @@
-
- tkmpeg : FORCE
- @echo "Installing TKMPEG..."
-- cd $(TKMPEGDIR); $(MAKE)
-+ cd $(TKMPEGDIR); $(MAKE) CXXOPT="$(CXXOPT)"
- cd $(TKMPEGDIR); $(MAKE) install
-
- html : FORCE
- @echo "Installing HTMLWIDGET noshared..."
-- cd $(HTMLDIR); CC=$(CCc) $(PREHTMLFLAGS) $(root)/htmlwidget/configure $(HTMLFLAGS) --enable-shared=no
-- cd $(HTMLDIR); $(MAKE)
-+ cd $(HTMLDIR); CFLAGS="$(CXXOPT)" CC=$(CCc) $(PREHTMLFLAGS) $(root)/htmlwidget/configure $(HTMLFLAGS) --enable-shared=no
-+ cd $(HTMLDIR); $(MAKE) headers libtkhtml.a
- cp $(HTMLDIR)/libtkhtml.a lib/.
-
- htmlsh : FORCE
-@@ -242,7 +243,7 @@
-
- xpa : FORCE
- @echo "Installing XPA..."
-- cd $(XPADIR); CC=$(CCc) ./configure $(XPAFLAGS) --disable-shared
-+ cd $(XPADIR); CC=$(CCc) CFLAGS="$(CCOPT)" ./configure $(XPAFLAGS) --disable-shared
- cd $(XPADIR); $(MAKE); $(MAKE) install
-
- iis : FORCE
-@@ -272,7 +273,7 @@
-
- saotk : FORCE
- @echo "Installing SAOTK..."
-- cd $(SAOTKDIR); $(MAKE) install
-+ cd $(SAOTKDIR); $(MAKE) CXX="$(CXX)" install
-
- win : FORCE
- @echo "Installing WIN..."
---- saods9-4.0b7.orig/wcssubs-3.5.6/Makefile
-+++ saods9-4.0b7/wcssubs-3.5.6/Makefile
-@@ -12,6 +12,7 @@
- lin.c \
- platepos.c \
- proj.c \
-+ slasubs.c \
- sph.c \
- tnxpos.c \
- wcs.c \
---- saods9-4.0b7.orig/wcssubs-3.5.6/slasubs.c
-+++ saods9-4.0b7/wcssubs-3.5.6/slasubs.c
-@@ -17,6 +17,7 @@
- * rotations about specified Cartesian axes.
- */
-
-+#if 0
- void
- slaDcs2c (a, b, v)
-
-@@ -222,6 +223,7 @@
- return ( fabs ( w ) < DPI ) ? w : w - dsign ( D2PI, angle );
- }
-
-+#endif
-
- void
- slaDeuler (order, phi, theta, psi, rmat)
---- saods9-4.0b7.orig/wcssubs-3.5.6/hget.c
-+++ saods9-4.0b7/wcssubs-3.5.6/hget.c
-@@ -153,7 +153,7 @@
- char *value;
- double dval;
- int minint;
-- int lval, id;
-+ int lval;
- char *dchar;
-
- /* Get value and comment from header string */
-@@ -1355,8 +1355,10 @@
- return (strnsrch (s1, s2, ls1));
- }
-
-+#if 0
- static char *scase;
- static int lscase = 0;
-+#endif
-
- /* Find string s2 within string s1 */
-
-@@ -1369,7 +1371,7 @@
-
- {
- char *s,*s1e;
-- char cfirst,clast, s2i;
-+ char cfirst,clast;
- int i,ls2;
-
- /* Return null string if either pointer is NULL */
---- saods9-4.0b7.orig/ds9/ds9.tcl
-+++ saods9-4.0b7/ds9/ds9.tcl
-@@ -46,10 +46,10 @@
-
- # other tcl packages
- if {$tcl_platform(platform) != "windows"} {
-- source ../lib/tcl8.4/http2.5/http.tcl
-- source ../lib/tcllib1.6/base64/base64.tcl
-- source ../lib/tcllib1.6/log/log.tcl
-- source ../lib/tcllib1.6/ftp/ftp.tcl
-+ source /usr/share/tcltk/tcl8.4/http2.5/http.tcl
-+ #source /usr/lib/tcllib1.8/base64/base64.tcl
-+ #source /usr/lib/tcllib1.8/log/log.tcl
-+ #source /usr/lib/tcllib1.8/ftp/ftp.tcl
- } else {
- source C:/cygwin/home/joye/saods9/lib/tcl8.4/http2.5/http.tcl
- source C:/cygwin/home/joye/saods9/lib/tcllib1.6/base64/base64.tcl
-@@ -84,7 +84,7 @@
- # we need this after BLT is loaded
- # neede for BLT_ZoomStack
- if {$tcl_platform(platform) != "windows"} {
-- source ../lib/blt2.4/graph.tcl
-+ source /usr/lib/blt2.4/graph.tcl
- } else {
- source C:/cygwin/home/joye/saods9/lib/blt2.4/graph.tcl
- }
---- saods9-4.0b7.orig/ds9/ds9.mta
-+++ saods9-4.0b7/ds9/ds9.mta
-@@ -9,9 +9,9 @@
- ## CFile:ds9.C 1
- ## CmdLine None
- ## ConfigFile ds9.mta
--## Data:../lib/blt2.4/bltGraph.pro 1
--## Data:../lib/tcl8.4/encoding/iso8859-1.enc 1
--## Data:../lib/tcl8.4/encoding/symbol.enc 1
-+## Data:/usr/lib/blt2.4/bltGraph.pro 1
-+## Data:/usr/share/tcltk/tcl8.4/encoding/iso8859-1.enc 1
-+## Data:/usr/share/tcltk/tcl8.4/encoding/symbol.enc 1
- ## Data:doc/acknowledgment.html 1
- ## Data:doc/faq.html 1
- ## Data:doc/helpdesk.html 1
-@@ -79,11 +79,11 @@
- ## MainScript ds9.tcl
- ## Mode Tcl/Tk
- ## NoSource No
--## OtherLib:../lib/blt2.4 1
--## OtherLib:../lib/tcl8.4/http2.5 1
--## OtherLib:../lib/tcllib1.6/base64 1
--## OtherLib:../lib/tcllib1.6/ftp 1
--## OtherLib:../lib/tcllib1.6/log 1
-+## OtherLib:/usr/lib/blt2.4 1
-+## OtherLib:/usr/share/tcltk/tcl8.4/http2.5 1
-+# OtherLib:/usr/lib/tcllib1.8/base64 1
-+# OtherLib:/usr/lib/tcllib1.8/ftp 1
-+# OtherLib:/usr/lib/tcllib1.8/log 1
- ## OutputFile ds9tk.c
- ## Shroud No
- ## Standalone Yes
-@@ -177,76 +177,76 @@
- ## TclFile:vo.tcl 1
- ## TclFile:wcs.tcl 1
- ## TclFile:xpa.tcl 1
--## TclLib ../lib/tcl8.4
--## TkLib ../lib/tk8.4
-+## TclLib /usr/share/tcltk/tcl8.4
-+## TkLib /usr/share/tcltk/tk8.4
- #
- -main-script "ds9.tcl"
---tcl-library "../lib/tcl8.4"
---tk-library "../lib/tk8.4"
---strip-tcl "../lib/blt2.4/dnd.tcl"
---strip-tcl "../lib/blt2.4/dragdrop.tcl"
---strip-tcl "../lib/blt2.4/graph.tcl"
---strip-tcl "../lib/blt2.4/hierbox.tcl"
---strip-tcl "../lib/blt2.4/pkgIndex.tcl"
---strip-tcl "../lib/blt2.4/tabnotebook.tcl"
---strip-tcl "../lib/blt2.4/tabset.tcl"
---strip-tcl "../lib/blt2.4/tclIndex"
---strip-tcl "../lib/blt2.4/treeview.tcl"
---strip-tcl "../lib/tcl8.4/auto.tcl"
---strip-tcl "../lib/tcl8.4/history.tcl"
---strip-tcl "../lib/tcl8.4/http2.5/http.tcl"
---strip-tcl "../lib/tcl8.4/http2.5/pkgIndex.tcl"
---strip-tcl "../lib/tcl8.4/init.tcl"
---strip-tcl "../lib/tcl8.4/ldAout.tcl"
---strip-tcl "../lib/tcl8.4/package.tcl"
---strip-tcl "../lib/tcl8.4/parray.tcl"
---strip-tcl "../lib/tcl8.4/safe.tcl"
---strip-tcl "../lib/tcl8.4/tclIndex"
---strip-tcl "../lib/tcl8.4/word.tcl"
---strip-tcl "../lib/tcllib1.6/base64/base64.tcl"
---strip-tcl "../lib/tcllib1.6/base64/base64c.tcl"
---strip-tcl "../lib/tcllib1.6/base64/pkgIndex.tcl"
---strip-tcl "../lib/tcllib1.6/base64/uuencode.tcl"
---strip-tcl "../lib/tcllib1.6/base64/yencode.tcl"
---strip-tcl "../lib/tcllib1.6/ftp/ftp.tcl"
---strip-tcl "../lib/tcllib1.6/ftp/ftp_geturl.tcl"
---strip-tcl "../lib/tcllib1.6/ftp/pkgIndex.tcl"
---strip-tcl "../lib/tcllib1.6/log/log.tcl"
---strip-tcl "../lib/tcllib1.6/log/logger.tcl"
---strip-tcl "../lib/tcllib1.6/log/pkgIndex.tcl"
---strip-tcl "../lib/tk8.4/bgerror.tcl"
---strip-tcl "../lib/tk8.4/button.tcl"
---strip-tcl "../lib/tk8.4/choosedir.tcl"
---strip-tcl "../lib/tk8.4/clrpick.tcl"
---strip-tcl "../lib/tk8.4/comdlg.tcl"
---strip-tcl "../lib/tk8.4/console.tcl"
---strip-tcl "../lib/tk8.4/dialog.tcl"
---strip-tcl "../lib/tk8.4/entry.tcl"
---strip-tcl "../lib/tk8.4/focus.tcl"
---strip-tcl "../lib/tk8.4/listbox.tcl"
---strip-tcl "../lib/tk8.4/menu.tcl"
---strip-tcl "../lib/tk8.4/mkpsenc.tcl"
---strip-tcl "../lib/tk8.4/msgbox.tcl"
---strip-tcl "../lib/tk8.4/obsolete.tcl"
---strip-tcl "../lib/tk8.4/optMenu.tcl"
---strip-tcl "../lib/tk8.4/palette.tcl"
---strip-tcl "../lib/tk8.4/panedwindow.tcl"
---strip-tcl "../lib/tk8.4/pkgIndex.tcl"
---strip-tcl "../lib/tk8.4/safetk.tcl"
---strip-tcl "../lib/tk8.4/scale.tcl"
---strip-tcl "../lib/tk8.4/scrlbar.tcl"
---strip-tcl "../lib/tk8.4/spinbox.tcl"
---strip-tcl "../lib/tk8.4/tclIndex"
---strip-tcl "../lib/tk8.4/tearoff.tcl"
---strip-tcl "../lib/tk8.4/text.tcl"
---strip-tcl "../lib/tk8.4/tk.tcl"
---strip-tcl "../lib/tk8.4/tkfbox.tcl"
---strip-tcl "../lib/tk8.4/unsupported.tcl"
---strip-tcl "../lib/tk8.4/xmfbox.tcl"
-+-tcl-library "/usr/share/tcltk/tcl8.4"
-+-tk-library "/usr/share/tcltk/tk8.4"
-+-strip-tcl "/usr/lib/blt2.4/dnd.tcl"
-+-strip-tcl "/usr/lib/blt2.4/dragdrop.tcl"
-+-strip-tcl "/usr/lib/blt2.4/graph.tcl"
-+-strip-tcl "/usr/lib/blt2.4/hierbox.tcl"
-+-strip-tcl "/usr/lib/blt2.4/pkgIndex.tcl"
-+-strip-tcl "/usr/lib/blt2.4/tabnotebook.tcl"
-+-strip-tcl "/usr/lib/blt2.4/tabset.tcl"
-+-strip-tcl "/usr/lib/blt2.4/tclIndex"
-+-strip-tcl "/usr/lib/blt2.4/treeview.tcl"
-+-strip-tcl "auto.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/history.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/http2.5/http.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/http2.5/pkgIndex.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/init.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/ldAout.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/package.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/parray.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/safe.tcl"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/tclIndex"
-+-strip-tcl "/usr/share/tcltk/tcl8.4/word.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/base64/base64.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/base64/base64c.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/base64/pkgIndex.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/base64/uuencode.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/base64/yencode.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/ftp/ftp.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/ftp/ftp_geturl.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/ftp/pkgIndex.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/log/log.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/log/logger.tcl"
-+#-strip-tcl "/usr/lib/tcllib1.8/log/pkgIndex.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/bgerror.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/button.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/choosedir.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/clrpick.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/comdlg.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/console.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/dialog.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/entry.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/focus.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/listbox.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/menu.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/mkpsenc.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/msgbox.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/obsolete.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/optMenu.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/palette.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/panedwindow.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/pkgIndex.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/safetk.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/scale.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/scrlbar.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/spinbox.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/tclIndex"
-+-strip-tcl "/usr/share/tcltk/tk8.4/tearoff.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/text.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/tk.tcl"
-+-strip-tcl "tkfbox.tcl"
-+-strip-tcl "/usr/share/tcltk/tk8.4/unsupported.tcl"
-+-strip-tcl "xmfbox.tcl"
- "ds9.C"
---i "../lib/blt2.4/bltGraph.pro"
---i "../lib/tcl8.4/encoding/iso8859-1.enc"
---i "../lib/tcl8.4/encoding/symbol.enc"
-+-i "/usr/lib/blt2.4/bltGraph.pro"
-+-i "/usr/share/tcltk/tcl8.4/encoding/iso8859-1.enc"
-+-i "/usr/share/tcltk/tcl8.4/encoding/symbol.enc"
- -i "doc/acknowledgment.html"
- -i "doc/faq.html"
- -i "doc/helpdesk.html"
---- saods9-4.0b7.orig/ds9/Makefile
-+++ saods9-4.0b7/ds9/Makefile
-@@ -175,20 +175,12 @@
-
- INDEX = pkgIndex.tcl
-
--LIBS = -L../lib -lsaotk -ltkhtml -ltkmpeg -L../lib/Img1.3 \
-- -ltkimgwindow1.3 \
-- -ltkimgjpeg1.3 -ljpegtcl1.0 \
-- -ltkimgtiff1.3 -ltifftcl1.0 \
-- -ltkimgpng1.3 -lpngtcl1.0 \
-- -ltkimgppm1.3 \
-- -ltkimggif1.3 \
-- -ltkimgbmp1.3 \
-- -ltkimgxbm1.3 \
-- -lzlibtcl1.0 -ltkimg1.3 \
-- -L../lib/Tktable2.9 -lTktable2.9 \
-- -L../lib -lz -lxpa -liis -lcheckdns \
-- -lBLT24 \
-- -ltk8.4 -ltcl8.4
-+LIBS = \
-+ /usr/lib/Tktable2.9/libTktable2.9.so \
-+ -lz -lBLT -ltk8.4 -ltcl8.4 \
-+ -L../lib -lsaotk -ltkhtml -ltkmpeg -lsla\
-+ -liis -lcheckdns -lxpa -lcheckdns \
-+ -lgfortran
-
- LIBS.a = ../lib/libsaotk.a \
- ../lib/libtkhtml.a \
-@@ -254,17 +246,7 @@
- #
- ifeq ($(ARCH),linux)
- ds9 : ds9.o ds9tk.o FORCE
-- $(RM) $@
-- rm -f libstdc++.a
-- ln -s `$(CXX) -print-file-name=libstdc++.a` .
-- $(CXX) -static-libgcc $(OPTS) \
-- -Wl,--export-dynamic \
-- -o $@ ds9.o ds9tk.o \
-- -Wl,-Bstatic $(LIBS) \
-- -L. -lstdc++ \
-- -Wl,-Bdynamic -L$(X11LIB) -lX11 \
-- -ldl -lpthread
-- rm -f libstdc++.a
-+ $(CXX) $(OPTS) -o $@ ds9.o ds9tk.o $(LIBS)
- endif
-
- #--------------------------linux64
---- saods9-4.0b7.orig/ds9/ds9.C
-+++ saods9-4.0b7/ds9/ds9.C
-@@ -6,6 +6,7 @@
- using namespace std;
-
- #include "ds9tk.h"
-+#include <tcl.h>
-
- extern "C" {
- int Blt_Init(Tcl_Interp*);
-@@ -15,20 +16,6 @@
- int Tkhtml_Init(Tcl_Interp*);
- int Tkmpeg_Init(Tcl_Interp*);
-
-- int Tkimg_Init(Tcl_Interp*);
-- int Zlibtcl_Init(Tcl_Interp*);
-- int Jpegtcl_Init(Tcl_Interp*);
-- int Tkimgjpeg_Init(Tcl_Interp*);
-- int Tifftcl_Init(Tcl_Interp*);
-- int Tkimgtiff_Init(Tcl_Interp*);
-- int Pngtcl_Init(Tcl_Interp*);
-- int Tkimgpng_Init(Tcl_Interp*);
-- int Tkimggif_Init(Tcl_Interp*);
-- int Tkimgppm_Init(Tcl_Interp*);
-- int Tkimgbmp_Init(Tcl_Interp*);
-- int Tkimgxbm_Init(Tcl_Interp*);
-- int Tkimgwindow_Init(Tcl_Interp*);
--
- int Tclxpa_Init(Tcl_Interp*);
- int Iis_Init(Tcl_Interp*);
- }
-@@ -74,57 +61,8 @@
-
- // Tkimg _inits
-
-- if (Tkimg_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "img", Tkimg_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Zlibtcl_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "zlibtcl", Zlibtcl_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Jpegtcl_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "jpegtcl", Jpegtcl_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimgjpeg_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "jpeg", Tkimgjpeg_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tifftcl_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "tifftcl", Tifftcl_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimgtiff_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "tiff", Tkimgtiff_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Pngtcl_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "pngtcl", Pngtcl_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimgpng_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "png", Tkimgpng_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimggif_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "gif", Tkimggif_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimgppm_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "ppm", Tkimgppm_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimgbmp_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "bmp", Tkimgbmp_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimgxbm_Init(interp) == TCL_ERROR)
-- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "xbm", Tkimgxbm_Init,(Tcl_PackageInitProc*)NULL);
--
-- if (Tkimgwindow_Init(interp) == TCL_ERROR)
-+ if (Tcl_PkgRequire (interp, "Img", NULL, 0) == NULL)
- return TCL_ERROR;
-- Tcl_StaticPackage (interp, "window", Tkimgwindow_Init,(Tcl_PackageInitProc*)NULL);
-
- return TCL_OK;
- }
---- saods9-4.0b7.orig/ds9/sample.tcl
-+++ saods9-4.0b7/ds9/sample.tcl
-@@ -1,4 +1,4 @@
--# Copyright (C) 1999-200
-+# Copyright (C) 1999-2005
- # Smithsonian Astrophysical Observatory, Cambridge, MA, USA
- # For conditions of distribution and use, see copyright notice in "copyright"
-
---- saods9-4.0b7.orig/sla/Makefile
-+++ saods9-4.0b7/sla/Makefile
-@@ -0,0 +1,17 @@
-+# ./sla/Makefile
-+# A work of Justin Pryzby during the year of 2005.
-+# Hereby placed into the public domain.
-+SRC=$(wildcard *.f)
-+OBJ=$(SRC:.f=.o)
-+STLIB=libsla.a
-+LIBDIR=../lib/
-+FCFLAGS=$(FLAGS)
-+FC=gfortran
-+
-+install: $(STLIB)
-+ mkdir -p $(LIBDIR);
-+ cp $^ $(LIBDIR);
-+
-+$(STLIB): $(OBJ)
-+ ar q $@ $^;
-+ ranlib $@
---- saods9-4.0b7.orig/funtools-1.3.0b9/Makefile.in
-+++ saods9-4.0b7/funtools-1.3.0b9/Makefile.in
-@@ -60,7 +60,7 @@
- # FITSY_LIBS = -L./fitsy -lfitsy
-
- # wcs files are in the wcs subdirectory
--WCS_INC = -I./wcs
-+WCS_INC = -I../wcssubs-3.5.6/
- # WCS_LIBS = -L./wcs -lwcs
-
- # filter files are in the filter subdirectory
-@@ -187,7 +187,7 @@
-
- # Subdirectories to run make in for the primary targets.
-
--SUBLIBS = util fitsy wcs filter
-+SUBLIBS = util fitsy filter
-
- SUBDIRS = $(SUBLIBS) gnu funtest
-
---- saods9-4.0b7.orig/funtools-1.3.0b9/filter/Makefile.in
-+++ saods9-4.0b7/funtools-1.3.0b9/filter/Makefile.in
-@@ -55,7 +55,7 @@
- #FITSY_LIBS = -L../fitsy
-
- # wcs files are in the wcs subdirectory
--WCS_INC = -I../wcs
-+WCS_INC = -I../../wcssubs-3.5.6
- #WCS_LIBS = -L../wcs -lwcs
-
- # extra includes for compiling
---- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpaaccess.1
-+++ saods9-4.0b7/xpa-2.1.6/man/man1/xpaaccess.1
-@@ -131,7 +131,7 @@
- .IX Title "xpaaccess 1"
- .TH xpaaccess 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
- .SH "NAME"
--\&\fBxpaaccess: see if template matches registered XPA access points\fR
-+xpaaccess \- see if template matches registered XPA access points
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- xpaaccess [\-c] [\-h] [\-i nsinet] [\-m method] [\-n] [\-t sval,lval] [\-u users] \-v <template> [type]
---- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpainfo.1
-+++ saods9-4.0b7/xpa-2.1.6/man/man1/xpainfo.1
-@@ -131,7 +131,7 @@
- .IX Title "xpainfo 1"
- .TH xpainfo 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
- .SH "NAME"
--\&\fBxpainfo: send short message to one or more XPA servers\fR
-+xpainfo \- send short message to one or more XPA servers
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- xpainfo [\-h] [\-i nsinet] [\-m method] [\-n] [\-s] [\-t sval,lval] [\-u users] <template|host:port> [paramlist]
---- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpaget.1
-+++ saods9-4.0b7/xpa-2.1.6/man/man1/xpaget.1
-@@ -131,7 +131,7 @@
- .IX Title "xpaget 1"
- .TH xpaget 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
- .SH "NAME"
--\&\fBxpaget: retrieve data from one or more XPA servers\fR
-+xpaget \- retrieve data from one or more XPA servers
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- xpaget [\-h] [\-i nsinet] [\-m method] [\-s] [\-t sval,lval] [\-u users] <template|host:port> [paramlist]
---- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpaset.1
-+++ saods9-4.0b7/xpa-2.1.6/man/man1/xpaset.1
-@@ -131,7 +131,7 @@
- .IX Title "xpaset 1"
- .TH xpaset 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
- .SH "NAME"
--\&\fBxpaset: send data to one or more XPA servers\fR
-+xpaset \- send data to one or more XPA servers
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- <data> | xpaset [\-h] [\-i nsinet] [\-m method] [\-n] [\-p] [\-s] [\-t sval,lval] [\-u users] [\-v] <template|host:port> [paramlist]
---- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpans.1
-+++ saods9-4.0b7/xpa-2.1.6/man/man1/xpans.1
-@@ -131,7 +131,7 @@
- .IX Title "xpans 1"
- .TH xpans 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
- .SH "NAME"
--\&\fBxpans: the XPA Name Server\fR
-+xpans \- the XPA Name Server
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- .Vb 1
---- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpachanges.1
-+++ saods9-4.0b7/xpa-2.1.6/man/man1/xpachanges.1
-@@ -128,10 +128,10 @@
- .rm #[ #] #H #V #F C
- .\" ========================================================================
- .\"
--.IX Title "xpachanges 1"
--.TH xpachanges 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
-+.IX Title "xpachanges 7"
-+.TH xpachanges 7 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
- .SH "NAME"
--\&\fBXPA Changes: Changes For Users from XPA 1.0 and 2.0\fR
-+XPA Changes \- Changes For Users from XPA 1.0 and 2.0
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- This document describes changes that will affect users who migrate
---- saods9-4.0b7.orig/xpa-2.1.6/man/man1/xpamb.1
-+++ saods9-4.0b7/xpa-2.1.6/man/man1/xpamb.1
-@@ -131,7 +131,7 @@
- .IX Title "xpamb 1"
- .TH xpamb 1 "March 25, 2005" "version 2.1.6" "SAORD Documentation"
- .SH "NAME"
--\&\fBxpamb: the XPA Message Bus\fR
-+xpamb \- the XPA Message Bus
- .SH "SYNOPSIS"
- .IX Header "SYNOPSIS"
- The xpamb program can act as a \*(L"classical\*(R" message bus interface
---- saods9-4.0b7.orig/htmlwidget/src/htmlindex.c
-+++ saods9-4.0b7/htmlwidget/src/htmlindex.c
-@@ -24,6 +24,7 @@
- ** http://www.hwaci.com/drh/
- */
- #include <ctype.h>
-+#include <string.h>
- #include <tk.h>
- #include "htmlindex.h"
-
---- saods9-4.0b7.orig/htmlwidget/src/htmldraw.c
-+++ saods9-4.0b7/htmlwidget/src/htmldraw.c
-@@ -404,14 +404,12 @@
- }else{
- /* We are dealing with a single HtmlElement which contains something
- ** other than plain text. */
-- int top, btm, cntr;
- int cnt, w;
- char zBuf[30];
- switch( src->base.type ){
- case Html_LI:
- x = src->li.x;
- y = src->li.y;
-- cntr = (top+btm)/2;
- switch( src->li.type ){
- case LI_TYPE_Enum_1:
- sprintf(zBuf,"%d.",src->li.cnt);
---- saods9-4.0b7.orig/htmlwidget/src/htmlcmd.c
-+++ saods9-4.0b7/htmlwidget/src/htmlcmd.c
-@@ -25,6 +25,7 @@
- */
- #include <tk.h>
- #include <stdlib.h>
-+#include <string.h>
- #include "htmlcmd.h"
-
- /*
---- saods9-4.0b7.orig/htmlwidget/confdefs.h
-+++ saods9-4.0b7/htmlwidget/confdefs.h
-@@ -0,0 +1 @@
-+
---- saods9-4.0b7.orig/iis/util.c
-+++ saods9-4.0b7/iis/util.c
-@@ -1,5 +1,6 @@
- #include <stdio.h>
- #include <stdlib.h>
-+#include <string.h>
-
- #include "iis.h"
- #include "xim.h"
---- saods9-4.0b7.orig/iis/xim.C
-+++ saods9-4.0b7/iis/xim.C
-@@ -24,7 +24,7 @@
-
- void iisIO(void* data, int mask)
- {
-- int fd = (int)data;
-+ int fd = *(int*)data;
-
- if (IISDebug)
- cerr << "iisIO() " << fd << ' ' << mask << endl;
-@@ -48,7 +48,7 @@
- iis->chan[fd] = chan;
- #ifndef __WIN32__
- Tcl_CreateFileHandler(fd, TCL_READABLE, (void (*)(void*,int))iisIO,
-- (void*)fd);
-+ &fd);
- #else
- Tcl_CreateEventSource(setupProc, checkProc, (void*)fd);
- #endif
---- saods9-4.0b7.orig/iis/iistcl.C
-+++ saods9-4.0b7/iis/iistcl.C
-@@ -6,10 +6,12 @@
- #include <string.h>
-
- #if __GNUC__ >= 3
-+#include <cstdlib>
- #include <iostream>
- #include <sstream>
- using namespace std;
- #else
-+#include <stdlib.h>
- #include <iostream.h>
- #include <strstream.h>
- #endif
-@@ -46,6 +48,7 @@
- return copy;
- }
-
-+#if 0
- static char* toLower(char* str)
- {
- char* ptr = str;
-@@ -55,6 +58,7 @@
- }
- return str;
- }
-+#endif
-
- int Iis_Init(Tcl_Interp* interp) {
-
-@@ -154,7 +158,7 @@
- xim.chan[i].dataout = 0; // output channel
- xim.chan[i].keepalive = 0; // used to keep input fifo ready
- xim.chan[i].path[0] = '\0'; // for unix sockets
-- xim.chan[i].reference_frame;// reference (cmd i/o) frame
-+ xim.chan[i].reference_frame=0;// reference (cmd i/o) frame
- xim.chan[i].rf_p = NULL; // reference frame descriptor
- }
- }
---- saods9-4.0b7.orig/iis/iis.c
-+++ saods9-4.0b7/iis/iis.c
-@@ -4,10 +4,14 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
-+#include <string.h>
- #ifdef HAVE_SYS_UN_H
- #include <sys/un.h>
- #endif
- #include <fcntl.h>
-+#include <unistd.h>
-+#include <ctype.h>
-+#include <time.h>
-
- #include "iis.h"
- #include "xim.h"
-@@ -110,7 +114,7 @@
- * UNIX domain socket connection. All three types of server ports are
- * simultaneously ready to receive client connections.
- */
--xim_iisOpen (xim)
-+int xim_iisOpen (xim)
- register XimDataPtr xim;
- {
- int nopen = 0;
-@@ -292,7 +296,7 @@
- goto err;
-
- /* Allocate and fill in i/o channel descriptor. */
-- if (chan = get_iochan(xim)) {
-+ if ((chan = get_iochan(xim))) {
- chan->xim = (XtPointer) xim;
- chan->type = IO_INET;
- chan->datain = s;
-@@ -360,7 +364,7 @@
- goto err;
-
- /* Allocate and fill in i/o channel descriptor. */
-- if (chan = get_iochan(xim)) {
-+ if ((chan = get_iochan(xim))) {
- chan->xim = (XtPointer) xim;
- chan->type = IO_UNIX;
- chan->datain = s;
-@@ -414,7 +418,7 @@
- } */
-
- /* Allocate and fill in i/o channel descriptor. */
-- if (chan = get_iochan(xim)) {
-+ if ((chan = get_iochan(xim))) {
- chan->xim = (XtPointer) xim;
- chan->type = chan_port->type;
- chan->datain = s;
-@@ -457,7 +461,6 @@
- get_iochan (xim)
- register XimDataPtr xim;
- {
-- register IoChanPtr chan;
- register int i;
-
- for (i=0; i < XtNumber(xim->chan); i++)
-@@ -744,7 +747,7 @@
- */
- char emsg[SZ_WCSBUF];
- char *text;
-- int frame, wcsnum;
-+ int frame;
-
- memset ((char *)emsg, 0, SZ_WCSBUF);
-
-@@ -1031,7 +1034,7 @@
-
- /* DECODE_FRAMENO -- Decode encoded IIS register frame number.
- */
--static
-+static int
- decode_frameno (z)
- register int z;
- {
-@@ -1385,6 +1388,8 @@
- * elsewhere if needed, our only purpose here is to extract the frame WCS.
- */
-
-+print_mappings (FrameBufPtr fr);
-+
- static void
- add_mapping (xim, ctran, wcsbuf, fr)
- register XimDataPtr xim;
-@@ -1476,8 +1481,7 @@
-
- /* PRINT_MAPPINGS -- Debug routine to print all mappings on a frame.
- */
--print_mappings (fr)
--FrameBufPtr fr;
-+print_mappings (FrameBufPtr fr)
- {
- MappingPtr mp;
- register int i;
---- saods9-4.0b7.orig/checkdns/checkdns.c
-+++ saods9-4.0b7/checkdns/checkdns.c
-@@ -9,6 +9,8 @@
- #include <signal.h>
- #include <netdb.h>
- #include <tcl.h>
-+#include <string.h>
-+#include <stdlib.h>
-
- #ifndef SZ_LINE
- #define SZ_LINE 2048
-@@ -30,7 +32,6 @@
- {
- int flag=0;
- char host[SZ_LINE];
-- struct hostent *hostent;
- struct sigaction act1, oact1;
-
- /* start the alarm, if necessary */
---- saods9-4.0b7.orig/saotk/fitsy++/strm.C
-+++ saods9-4.0b7/saotk/fitsy++/strm.C
-@@ -346,7 +346,7 @@
- if (!(this->pExt_ || (this->pIndex_>0))) {
-
- // we are only looking for a primary image
-- if (this->head_ = this->headRead()) {
-+ if ((this->head_ = this->headRead())) {
- this->found();
- return;
- }
-@@ -402,7 +402,7 @@
- this->head_ = NULL;
- }
-
-- if (this->head_ = this->headRead()) {
-+ if ((this->head_ = this->headRead())) {
- this->ext_++;
- this->found();
- return;
---- saods9-4.0b7.orig/saotk/fitsy++/outchannel.C
-+++ saods9-4.0b7/saotk/fitsy++/outchannel.C
-@@ -7,7 +7,7 @@
- OutFitsChannel::OutFitsChannel(Tcl_Interp* interp, const char* ch)
- {
- int tclMode;
-- if (ch_ = Tcl_GetChannel(interp, (char*)ch, &tclMode))
-+ if ((ch_ = Tcl_GetChannel(interp, (char*)ch, &tclMode)))
- valid_ = 1;
- }
-
---- saods9-4.0b7.orig/saotk/fitsy++/outfile.C
-+++ saods9-4.0b7/saotk/fitsy++/outfile.C
-@@ -6,7 +6,7 @@
-
- OutFitsFile::OutFitsFile(const char* fn)
- {
-- if (fd_ = fopen(fn, "wb"))
-+ if ((fd_ = fopen(fn, "wb")))
- valid_ = 1;
- }
-
-@@ -23,7 +23,7 @@
-
- OutFitsFileGZ::OutFitsFileGZ(const char* fn)
- {
-- if (fd_ = gzopen(fn, "wb"))
-+ if ((fd_ = gzopen(fn, "wb")))
- valid_ = 1;
- }
-
---- saods9-4.0b7.orig/saotk/tkpostscript.h
-+++ saods9-4.0b7/saotk/tkpostscript.h
-@@ -4,7 +4,7 @@
-
- // this is copied from tkCanvPs.c
-
--#include "../../tk8.4.9/generic/tkCanvas.h"
-+#include <tk-private/generic/tkCanvas.h>
-
- typedef struct TkPostscriptInfo {
- int x, y, width, height; /* Area to print, in canvas pixel
---- saods9-4.0b7.orig/saotk/Makefile
-+++ saods9-4.0b7/saotk/Makefile
-@@ -34,7 +34,6 @@
- ../$(WCSSUBSDIR)/*.o \
- ../$(SLADIR)/*.o \
- ../$(ASTDIR)/*.o \
-- ../$(ZLIBDIR)/*.o \
- ../$(FUNTOOLSDIR)/filter/*.o \
- ../$(FUNTOOLSDIR)/fitsy/*.o \
- ../$(FUNTOOLSDIR)/util/*.o
---- saods9-4.0b7.orig/saotk/frame/parser.H
-+++ saods9-4.0b7/saotk/frame/parser.H
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton interface for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,13 +17,21 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
- /* Tokens. */
- #ifndef YYTOKENTYPE
-@@ -332,6 +342,7 @@
- ZOOM_ = 558
- };
- #endif
-+/* Tokens. */
- #define REAL 258
- #define INT 259
- #define STRING 260
-@@ -637,18 +648,20 @@
-
-
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 54 "parser.Y"
--typedef union YYSTYPE {
-+{
- char chr;
- char str[2048];
- void* ptr;
- int integer;
- double real;
- double vector[3];
--} YYSTYPE;
--/* Line 1275 of yacc.c. */
--#line 652 "parser.H"
-+}
-+/* Line 1529 of yacc.c. */
-+#line 664 "parser.H"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -656,5 +669,3 @@
-
- extern YYSTYPE frlval;
-
--
--
---- saods9-4.0b7.orig/saotk/frame/prosparser.C
-+++ saods9-4.0b7/saotk/frame/prosparser.C
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -45,8 +58,7 @@
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
--/* If NAME_PREFIX is specified substitute the variables and functions
-- names. */
-+/* Substitute the variable and function names. */
- #define yyparse prosparse
- #define yylex proslex
- #define yyerror proserror
-@@ -95,6 +107,7 @@
- VERSION_ = 288
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -142,8 +155,8 @@
- #define DISCARD_(x) {yyclearin; prosDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
-@@ -205,16 +218,23 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 65 "prosparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 218 "prosparser.C"
-+}
-+/* Line 193 of yacc.c. */
-+#line 237 "prosparser.C"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -225,56 +245,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 230 "prosparser.C"
-+/* Line 216 of yacc.c. */
-+#line 250 "prosparser.C"
-+
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-+
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
-+# endif
-+#endif
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifndef YY_
-+# if YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -284,24 +419,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -319,39 +454,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
--
--#endif
-+ while (YYID (0))
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
- #endif
-
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 3
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 229
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 45
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 41
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 90
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 195
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 288
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned char yytranslate[] =
-+static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 34, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -387,7 +516,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned short yyprhs[] =
-+static const yytype_uint16 yyprhs[] =
- {
- 0, 0, 3, 7, 11, 14, 15, 18, 20, 21,
- 25, 26, 30, 34, 36, 38, 40, 42, 44, 46,
-@@ -401,8 +530,8 @@
- 313
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const yysigned_char yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int8 yyrhs[] =
- {
- 46, 0, -1, 69, 47, 79, -1, 47, 48, 51,
- -1, 48, 51, -1, -1, 19, 53, -1, 33, -1,
-@@ -439,7 +568,7 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned short yyrline[] =
-+static const yytype_uint16 yyrline[] =
- {
- 0, 123, 123, 126, 127, 130, 131, 132, 133, 133,
- 134, 134, 135, 136, 139, 140, 141, 144, 145, 148,
-@@ -454,9 +583,9 @@
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "INT", "REAL", "STRING", "HOUR",
-@@ -478,7 +607,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-@@ -489,7 +618,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned char yyr1[] =
-+static const yytype_uint8 yyr1[] =
- {
- 0, 45, 46, 47, 47, 48, 48, 48, 49, 48,
- 50, 48, 48, 48, 51, 51, 51, 52, 52, 53,
-@@ -504,7 +633,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 3, 3, 2, 0, 2, 1, 0, 3,
- 0, 3, 3, 1, 1, 1, 1, 1, 1, 1,
-@@ -521,7 +650,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned char yydefact[] =
-+static const yytype_uint8 yydefact[] =
- {
- 58, 0, 59, 1, 52, 0, 55, 0, 54, 53,
- 49, 50, 7, 86, 59, 0, 8, 10, 60, 13,
-@@ -545,8 +674,8 @@
- 27, 25, 25, 72, 69
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const short yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int16 yydefgoto[] =
- {
- -1, 1, 14, 15, 33, 34, 32, 66, 22, 78,
- 53, 86, 139, 140, 168, 106, 156, 67, 87, 116,
-@@ -558,7 +687,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -110
--static const short yypact[] =
-+static const yytype_int16 yypact[] =
- {
- -110, 20, 185, -110, -110, 4, -110, 18, -110, -110,
- -110, -110, -110, -110, 162, 14, -110, -110, -5, -110,
-@@ -583,7 +712,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const short yypgoto[] =
-+static const yytype_int16 yypgoto[] =
- {
- -110, -110, -110, 136, -110, -110, 125, -17, -110, -45,
- -44, -12, -109, -110, -77, -57, -110, 75, -46, -110,
-@@ -597,7 +726,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -83
--static const short yytable[] =
-+static const yytype_int16 yytable[] =
- {
- 54, 55, 56, 57, 101, 59, 107, 68, 69, 70,
- 71, 72, 28, 74, 73, 142, 159, -25, 109, 144,
-@@ -624,7 +753,7 @@
- -5, 0, 0, 0, 0, 0, 0, 0, 0, 13
- };
-
--static const short yycheck[] =
-+static const yytype_int16 yycheck[] =
- {
- 44, 45, 46, 47, 81, 49, 83, 53, 54, 55,
- 56, 57, 14, 59, 58, 124, 42, 14, 44, 128,
-@@ -653,7 +782,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned char yystos[] =
-+static const yytype_uint8 yystos[] =
- {
- 0, 46, 69, 0, 16, 19, 20, 22, 23, 24,
- 25, 29, 33, 44, 47, 48, 66, 67, 70, 82,
-@@ -677,22 +806,6 @@
- 54, 57, 57, 56, 56
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -718,30 +831,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror ("syntax error: cannot back up");\
-+ { \
-+ yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -762,42 +908,96 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -806,45 +1006,52 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule)
-+ YYSTYPE *yyvsp;
- int yyrule;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ );
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -859,13 +1066,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -875,45 +1078,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -923,70 +1128,192 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-+
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-
--
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ if (! yyres)
-+ return yystrlen (yystr);
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-+
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -994,13 +1321,13 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void);
- #else
- int yyparse ();
-@@ -1009,10 +1336,10 @@
-
-
-
--/* The lookahead symbol. */
-+/* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -1025,14 +1352,18 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
- yyparse (void)
- #else
-@@ -1043,13 +1374,19 @@
- #endif
- {
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -1060,18 +1397,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -1080,9 +1417,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -1106,8 +1443,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -1120,18 +1456,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -1142,21 +1478,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -1187,19 +1523,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -1214,7 +1548,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -1234,22 +1568,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -1291,12 +1624,12 @@
-
- case 8:
- #line 133 "prosparser.Y"
-- {globalSystem = (CoordSystem)yyvsp[0].integer;;}
-+ {globalSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 10:
- #line 134 "prosparser.Y"
-- {globalSystem = WCS; globalSky = (SkyFrame)yyvsp[0].integer;;}
-+ {globalSystem = WCS; globalSky = (SkyFrame)(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 16:
-@@ -1306,12 +1639,12 @@
-
- case 17:
- #line 144 "prosparser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 18:
- #line 145 "prosparser.Y"
-- {yyval.real=yyvsp[0].integer;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 19:
-@@ -1326,97 +1659,97 @@
-
- case 27:
- #line 164 "prosparser.Y"
-- {yyval.real = 0;;}
-+ {(yyval.real) = 0;;}
- break;
-
- case 28:
- #line 165 "prosparser.Y"
-- {yyval.real = yyvsp[0].real;;}
-+ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
- break;
-
- case 29:
- #line 168 "prosparser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 30:
- #line 169 "prosparser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 31:
- #line 170 "prosparser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 32:
- #line 173 "prosparser.Y"
-- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, IMAGE);;}
-+ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
- break;
-
- case 33:
- #line 174 "prosparser.Y"
-- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), DEGREES);;}
-+ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), DEGREES);;}
- break;
-
- case 34:
- #line 175 "prosparser.Y"
-- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCMIN);;}
-+ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCMIN);;}
- break;
-
- case 35:
- #line 176 "prosparser.Y"
-- {yyval.real = FITPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCSEC);;}
-+ {(yyval.real) = FITPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCSEC);;}
- break;
-
- case 36:
- #line 180 "prosparser.Y"
- {
-- Vector r = FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 37:
- #line 187 "prosparser.Y"
- {
-- Vector r=FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),DEGREES);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r=FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),DEGREES);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 38:
- #line 194 "prosparser.Y"
- {
-- Vector r=FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCMIN);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r=FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCMIN);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 39:
- #line 201 "prosparser.Y"
- {
-- Vector r=FITPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCSEC);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r=FITPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCSEC);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 40:
- #line 209 "prosparser.Y"
-- {yyval.integer = yyvsp[0].integer;;}
-+ {(yyval.integer) = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 41:
- #line 212 "prosparser.Y"
-- {yyval.real = parseDMS(yyvsp[0].str);;}
-+ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
- break;
-
- case 42:
-@@ -1426,13 +1759,13 @@
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
-- r = FITPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), sys, sky);
-+ r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
- else
-- r = FITPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real), sys, sky);
-+ r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1445,12 +1778,12 @@
- #line 230 "prosparser.Y"
- {
- Vector r = FITPTR->mapToRef(
-- Vector(hmsToDegree(prossign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),
-- dmsToDegree(prossign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(hmsToDegree(prossign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),
-+ dmsToDegree(prossign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- checkWCSSystem(), checkWCSSky());
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1463,79 +1796,79 @@
- #line 241 "prosparser.Y"
- {
- Vector r = FITPTR->mapToRef(
-- Vector(dmsToDegree(prossign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),
-- dmsToDegree(prossign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(dmsToDegree(prossign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),
-+ dmsToDegree(prossign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- checkWCSSystem(), checkWCSSky());
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 47:
- #line 251 "prosparser.Y"
- {
-- Vector r = FITPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, localSky);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 48:
- #line 258 "prosparser.Y"
- {
-- Vector r = FITPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),
-+ Vector r = FITPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
- checkWCSSystem(), checkWCSSky());
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 49:
- #line 267 "prosparser.Y"
-- {yyval.integer = IMAGE;;}
-+ {(yyval.integer) = IMAGE;;}
- break;
-
- case 50:
- #line 268 "prosparser.Y"
-- {yyval.integer = PHYSICAL;;}
-+ {(yyval.integer) = PHYSICAL;;}
- break;
-
- case 51:
- #line 271 "prosparser.Y"
-- {yyval.integer = yyvsp[0].integer;;}
-+ {(yyval.integer) = (yyvsp[(2) - (2)].integer);;}
- break;
-
- case 52:
- #line 272 "prosparser.Y"
-- {yyval.integer = FK4;;}
-+ {(yyval.integer) = FK4;;}
- break;
-
- case 53:
- #line 273 "prosparser.Y"
-- {yyval.integer = FK5;;}
-+ {(yyval.integer) = FK5;;}
- break;
-
- case 54:
- #line 274 "prosparser.Y"
-- {yyval.integer = GALACTIC;;}
-+ {(yyval.integer) = GALACTIC;;}
- break;
-
- case 55:
- #line 275 "prosparser.Y"
-- {yyval.integer = ECLIPTIC;;}
-+ {(yyval.integer) = ECLIPTIC;;}
- break;
-
- case 56:
- #line 278 "prosparser.Y"
-- {yyval.integer = FK4;;}
-+ {(yyval.integer) = FK4;;}
- break;
-
- case 57:
- #line 279 "prosparser.Y"
-- {yyval.integer = FK5;;}
-+ {(yyval.integer) = FK5;;}
- break;
-
- case 58:
-@@ -1579,15 +1912,15 @@
-
- case 63:
- #line 309 "prosparser.Y"
-- {FR->createCircleCmd(Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ {FR->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)),
-+ (yyvsp[(5) - (7)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
- case 64:
- #line 313 "prosparser.Y"
-- {FR->createAnnulusCmd(Vector(yyvsp[-6].vector),
-- yyvsp[-4].real,yyvsp[-2].real,1,
-+ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ (yyvsp[(5) - (9)].real),(yyvsp[(7) - (9)].real),1,
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1599,9 +1932,9 @@
- case 66:
- #line 318 "prosparser.Y"
- {
-- aAnnuli[0] = yyvsp[-7].real;
-- aAnnuli[1] = yyvsp[-5].real;
-- FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
-+ aAnnuli[0] = (yyvsp[(5) - (12)].real);
-+ aAnnuli[1] = (yyvsp[(7) - (12)].real);
-+ FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
- aNum,aAnnuli,
- color,1,font,text,localProps,localComment,taglist,cblist);
- ;}
-@@ -1609,8 +1942,8 @@
-
- case 67:
- #line 326 "prosparser.Y"
-- {FR->createAnnulusCmd(Vector(yyvsp[-8].vector),
-- yyvsp[-6].real,yyvsp[-4].real,yyvsp[-2].integer,
-+ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (11)].vector)),
-+ (yyvsp[(5) - (11)].real),(yyvsp[(7) - (11)].real),(yyvsp[(9) - (11)].integer),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1619,16 +1952,16 @@
- {
- // for ellipse annulus
- aStatus = 1;
-- aCenter = Vector(yyvsp[-6].vector);
-- aAngle = yyvsp[-2].real;
-- aVector[0] = Vector(yyvsp[-4].vector);
-+ aCenter = Vector((yyvsp[(3) - (9)].vector));
-+ aAngle = (yyvsp[(7) - (9)].real);
-+ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
- aNum = 1;
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
-- FR->createEllipseCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ FR->createEllipseCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);
- ;}
- break;
-@@ -1637,7 +1970,7 @@
- #line 348 "prosparser.Y"
- {
- aStatus = 2;
-- aVector[aNum++] = Vector(yyvsp[-13].vector);
-+ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
- ;}
- break;
-
-@@ -1646,25 +1979,25 @@
- {
- // for box annulus
- aStatus = 3;
-- aCenter = Vector(yyvsp[-6].vector);
-- aAngle = yyvsp[-2].real;
-- aVector[0] = Vector(yyvsp[-4].vector);
-+ aCenter = Vector((yyvsp[(3) - (9)].vector));
-+ aAngle = (yyvsp[(7) - (9)].real);
-+ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
- aNum = 1;
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
-- FR->createBoxCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);
- ;}
- break;
-
- case 71:
- #line 370 "prosparser.Y"
-- {FR->createBoxCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ {FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1672,13 +2005,13 @@
- #line 376 "prosparser.Y"
- {
- aStatus = 4;
-- aVector[aNum++] = Vector(yyvsp[-13].vector);
-+ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
- ;}
- break;
-
- case 73:
- #line 382 "prosparser.Y"
-- {FR->createBoxCirclePointCmd(Vector(yyvsp[-2].vector),
-+ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1695,12 +2028,12 @@
-
- case 78:
- #line 394 "prosparser.Y"
-- {polylist.append(new Vertex(yyvsp[0].vector));;}
-+ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
- break;
-
- case 81:
- #line 401 "prosparser.Y"
-- {aAnnuli[aNum++] = yyvsp[0].real;;}
-+ {aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);;}
- break;
-
- case 82:
-@@ -1749,19 +2082,18 @@
-
- case 90:
- #line 441 "prosparser.Y"
-- {strncpy(localComment,yyvsp[-1].str,80);;}
-+ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);;}
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 2091 "prosparser.C"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 1760 "prosparser.C"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -1790,99 +2122,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror ("syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror ("syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (yymsg);
-+ }
-+ else
-+ {
-+ yyerror (YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -1892,15 +2190,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -1929,9 +2229,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -1939,11 +2240,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -1963,21 +2265,39 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror ("parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
---- saods9-4.0b7.orig/saotk/frame/fitsdata.C
-+++ saods9-4.0b7/saotk/frame/fitsdata.C
-@@ -5,7 +5,7 @@
- #include <stdlib.h>
- #include <limits.h>
- #include <float.h>
--#include <iostream.h>
-+#include <iostream>
- #include <math.h>
-
- #include "fitsdata.h"
---- saods9-4.0b7.orig/saotk/frame/tnglex.C
-+++ saods9-4.0b7/saotk/frame/tnglex.C
-@@ -4,7 +4,7 @@
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/tnglex.C,v 1.76 2005/08/11 21:32:52 joye Exp $
-+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
- #define FLEX_SCANNER
-@@ -12,7 +12,6 @@
- #define YY_FLEX_MINOR_VERSION 5
-
-
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -24,8 +23,12 @@
- #ifdef __cplusplus
-
- #include <stdlib.h>
--#include <iostream>
--using namespace std;
-+#include <fstream>
-+using std::istream;
-+using std::ostream;
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
-
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -65,6 +68,7 @@
- #define YY_PROTO(proto) ()
- #endif
-
-+
- /* Returned upon end-of-file. */
- #define YY_NULL 0
-
-@@ -570,7 +574,7 @@
- #define DISCARD 1
-
- /* rules */
--#line 574 "tnglex.C"
-+#line 578 "tnglex.C"
-
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
-@@ -694,13 +698,13 @@
- YY_DECL
- {
- register yy_state_type yy_current_state;
-- register char *yy_cp = NULL, *yy_bp = NULL;
-+ register char *yy_cp, *yy_bp;
- register int yy_act;
-
- #line 30 "tnglex.L"
-
-
--#line 704 "tnglex.C"
-+#line 708 "tnglex.C"
-
- if ( yy_init )
- {
-@@ -1081,7 +1085,7 @@
- #line 145 "tnglex.L"
- ECHO;
- YY_BREAK
--#line 1085 "tnglex.C"
-+#line 1089 "tnglex.C"
-
- case YY_END_OF_BUFFER:
- {
-@@ -1597,6 +1601,7 @@
- return c;
- }
-
-+
- void yyFlexLexer::yyrestart( istream* input_file )
- {
- if ( ! yy_current_buffer )
---- saods9-4.0b7.orig/saotk/frame/saoparser.Y
-+++ saods9-4.0b7/saotk/frame/saoparser.Y
-@@ -12,8 +12,8 @@
- #define DISCARD_(x) {yyclearin; saoDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
---- saods9-4.0b7.orig/saotk/frame/parser.C
-+++ saods9-4.0b7/saotk/frame/parser.C
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -45,8 +58,7 @@
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
--/* If NAME_PREFIX is specified substitute the variables and functions
-- names. */
-+/* Substitute the variable and function names. */
- #define yyparse frparse
- #define yylex frlex
- #define yyerror frerror
-@@ -365,6 +377,7 @@
- ZOOM_ = 558
- };
- #endif
-+/* Tokens. */
- #define REAL 258
- #define INT 259
- #define STRING 260
-@@ -682,8 +695,8 @@
- #define FITSPTR (FRB->findFits(1))
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "frame.h"
-@@ -734,18 +747,25 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 54 "parser.Y"
--typedef union YYSTYPE {
-+{
- char chr;
- char str[2048];
- void* ptr;
- int integer;
- double real;
- double vector[3];
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 749 "parser.C"
-+}
-+/* Line 193 of yacc.c. */
-+#line 768 "parser.C"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -756,56 +776,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 761 "parser.C"
-+/* Line 216 of yacc.c. */
-+#line 781 "parser.C"
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+#endif
-+
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-+
-+#ifndef YY_
-+# if YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
-+# endif
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -815,24 +950,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -850,39 +985,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
-+ while (YYID (0))
-
- #endif
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
--#endif
--
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 290
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 4160
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 308
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 143
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 926
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 2089
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 558
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned short yytranslate[] =
-+static const yytype_uint16 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -945,7 +1074,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned short yyprhs[] =
-+static const yytype_uint16 yyprhs[] =
- {
- 0, 0, 3, 6, 9, 13, 15, 17, 20, 23,
- 26, 29, 32, 35, 38, 41, 44, 47, 50, 52,
-@@ -1042,8 +1171,8 @@
- 3426, 3433, 3436, 3438, 3441, 3444, 3451
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const short yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int16 yyrhs[] =
- {
- 309, 0, -1, 82, 311, -1, 39, 330, -1, 38,
- 60, 5, -1, 52, -1, 56, -1, 58, 334, -1,
-@@ -1394,7 +1523,7 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned short yyrline[] =
-+static const yytype_uint16 yyrline[] =
- {
- 0, 399, 399, 401, 402, 403, 404, 405, 406, 407,
- 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
-@@ -1492,9 +1621,9 @@
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "REAL", "INT", "STRING", "POINTER",
-@@ -1577,7 +1706,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-@@ -1614,7 +1743,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned short yyr1[] =
-+static const yytype_uint16 yyr1[] =
- {
- 0, 308, 309, 309, 309, 309, 309, 309, 309, 309,
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
-@@ -1712,7 +1841,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 2, 2, 3, 1, 1, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
-@@ -1812,7 +1941,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned short yydefact[] =
-+static const yytype_uint16 yydefact[] =
- {
- 0, 0, 0, 5, 6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
-@@ -2025,8 +2154,8 @@
- 830, 826, 165, 547, 582, 778, 778, 683, 680
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const short yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int16 yydefgoto[] =
- {
- -1, 42, 1059, 141, 127, 444, 955, 1724, 1725, 634,
- 635, 1537, 1536, 403, 129, 404, 354, 948, 72, 1022,
-@@ -2048,7 +2177,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -1930
--static const short yypact[] =
-+static const yytype_int16 yypact[] =
- {
- 3663, 44, 98, -1930, -1930, 534, 468, 630, 444, 151,
- 40, 103, 529, -67, 3827, 317, 927, -1930, 40, 727,
-@@ -2262,7 +2391,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const short yypgoto[] =
-+static const yytype_int16 yypgoto[] =
- {
- -1930, -1930, 1448, -1930, -10, -177, -1930, -1385, -729, 964,
- -348, -1930, -1930, -7, -238, 14, -237, -371, 349, -704,
-@@ -2286,7 +2415,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -829
--static const short yytable[] =
-+static const yytype_int16 yytable[] =
- {
- 132, 142, 128, 844, 1060, 540, 638, 455, 205, 543,
- 1034, 223, 848, 1037, 819, 822, 1139, 248, 423, 242,
-@@ -2707,7 +2836,7 @@
- 1043
- };
-
--static const short yycheck[] =
-+static const yytype_int16 yycheck[] =
- {
- 10, 11, 9, 517, 733, 242, 354, 184, 18, 247,
- 714, 21, 5, 717, 512, 513, 5, 27, 6, 26,
-@@ -3130,7 +3259,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned short yystos[] =
-+static const yytype_uint16 yystos[] =
- {
- 0, 38, 39, 52, 56, 58, 59, 61, 67, 74,
- 81, 82, 98, 107, 117, 121, 124, 127, 129, 136,
-@@ -3343,22 +3472,6 @@
- 423, 312, 5, 324, 324, 315, 315, 414, 414
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -3384,30 +3497,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror ("syntax error: cannot back up");\
-+ { \
-+ yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -3428,42 +3574,96 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -3472,45 +3672,52 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule)
-+ YYSTYPE *yyvsp;
- int yyrule;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ );
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -3525,13 +3732,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -3541,45 +3744,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -3589,70 +3794,192 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-
--
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-+
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ if (! yyres)
-+ return yystrlen (yystr);
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-+
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-+
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -3660,13 +3987,13 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void);
- #else
- int yyparse ();
-@@ -3675,10 +4002,10 @@
-
-
-
--/* The lookahead symbol. */
-+/* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -3691,14 +4018,18 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
- yyparse (void)
- #else
-@@ -3709,13 +4040,19 @@
- #endif
- {
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -3726,18 +4063,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -3746,9 +4083,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -3772,8 +4109,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -3786,18 +4122,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -3808,21 +4144,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -3853,19 +4189,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -3880,7 +4214,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -3900,22 +4234,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -3952,7 +4285,7 @@
- {
- case 4:
- #line 402 "parser.Y"
-- {FRB->bgColorCmd(yyvsp[0].str);;}
-+ {FRB->bgColorCmd((yyvsp[(3) - (3)].str));;}
- break;
-
- case 5:
-@@ -3967,12 +4300,12 @@
-
- case 9:
- #line 408 "parser.Y"
-- {FRB->colorScaleCmd((FrScale::ColorScaleType)yyvsp[0].integer);;}
-+ {FRB->colorScaleCmd((FrScale::ColorScaleType)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 12:
- #line 411 "parser.Y"
-- {FRB->DATASECCmd(yyvsp[0].integer);;}
-+ {FRB->DATASECCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 18:
-@@ -3982,17 +4315,17 @@
-
- case 19:
- #line 418 "parser.Y"
-- {FRB->highliteCmd(yyvsp[0].integer);;}
-+ {FRB->highliteCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 24:
- #line 423 "parser.Y"
-- {FRB->mosaicFastCmd(yyvsp[0].integer);;}
-+ {FRB->mosaicFastCmd((yyvsp[(3) - (3)].integer));;}
- break;
-
- case 25:
- #line 424 "parser.Y"
-- {FRB->nanColorCmd(yyvsp[0].str);;}
-+ {FRB->nanColorCmd((yyvsp[(3) - (3)].str));;}
- break;
-
- case 30:
-@@ -4017,182 +4350,182 @@
-
- case 43:
- #line 444 "parser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 44:
- #line 445 "parser.Y"
-- {yyval.real=yyvsp[0].integer;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 45:
- #line 448 "parser.Y"
-- {yydebug=yyvsp[0].integer;;}
-+ {yydebug=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 46:
- #line 449 "parser.Y"
-- {DebugAST=yyvsp[0].integer;;}
-+ {DebugAST=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 47:
- #line 450 "parser.Y"
-- {DebugMosaic=yyvsp[0].integer;;}
-+ {DebugMosaic=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 48:
- #line 451 "parser.Y"
-- {yydebug=yyvsp[0].integer;;}
-+ {yydebug=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 49:
- #line 452 "parser.Y"
-- {DebugPerf=yyvsp[0].integer;;}
-+ {DebugPerf=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 50:
- #line 453 "parser.Y"
-- {DebugWCS=yyvsp[0].integer;;}
-+ {DebugWCS=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 51:
- #line 454 "parser.Y"
-- {DebugBin=yyvsp[0].integer;;}
-+ {DebugBin=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 52:
- #line 455 "parser.Y"
-- {DebugGZ=yyvsp[0].integer;;}
-+ {DebugGZ=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 53:
- #line 456 "parser.Y"
-- {DebugRGB=yyvsp[0].integer;;}
-+ {DebugRGB=(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 54:
- #line 459 "parser.Y"
-- {yyval.integer=(yyvsp[0].integer ? 1 : 0);;}
-+ {(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;}
- break;
-
- case 55:
- #line 461 "parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 56:
- #line 462 "parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 57:
- #line 463 "parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 58:
- #line 464 "parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 59:
- #line 466 "parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 60:
- #line 467 "parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 61:
- #line 468 "parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 62:
- #line 469 "parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 63:
- #line 472 "parser.Y"
-- {yyval.integer = FrameBase::DEFAULT;;}
-+ {(yyval.integer) = FrameBase::DEFAULT;;}
- break;
-
- case 64:
- #line 473 "parser.Y"
-- {yyval.integer = FrameBase::DEFAULT;;}
-+ {(yyval.integer) = FrameBase::DEFAULT;;}
- break;
-
- case 65:
- #line 474 "parser.Y"
-- {yyval.integer = FrameBase::FIXED;;}
-+ {(yyval.integer) = FrameBase::FIXED;;}
- break;
-
- case 66:
- #line 475 "parser.Y"
-- {yyval.integer = FrameBase::SCIENTIFIC;;}
-+ {(yyval.integer) = FrameBase::SCIENTIFIC;;}
- break;
-
- case 67:
- #line 476 "parser.Y"
-- {yyval.integer = FrameBase::INTEGER;;}
-+ {(yyval.integer) = FrameBase::INTEGER;;}
- break;
-
- case 68:
- #line 479 "parser.Y"
-- {yyval.integer = FrameBase::ROOTBASE;;}
-+ {(yyval.integer) = FrameBase::ROOTBASE;;}
- break;
-
- case 69:
- #line 480 "parser.Y"
-- {yyval.integer = FrameBase::ROOTBASE;;}
-+ {(yyval.integer) = FrameBase::ROOTBASE;;}
- break;
-
- case 70:
- #line 481 "parser.Y"
-- {yyval.integer = FrameBase::FULLBASE;;}
-+ {(yyval.integer) = FrameBase::FULLBASE;;}
- break;
-
- case 71:
- #line 482 "parser.Y"
-- {yyval.integer = FrameBase::ROOT;;}
-+ {(yyval.integer) = FrameBase::ROOT;;}
- break;
-
- case 72:
- #line 483 "parser.Y"
-- {yyval.integer = FrameBase::FULL;;}
-+ {(yyval.integer) = FrameBase::FULL;;}
- break;
-
- case 73:
- #line 486 "parser.Y"
-- {yyval.real = 0;;}
-+ {(yyval.real) = 0;;}
- break;
-
- case 74:
- #line 487 "parser.Y"
-- {yyval.real = yyvsp[0].real;;}
-+ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
- break;
-
- case 75:
- #line 490 "parser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 76:
- #line 491 "parser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 77:
- #line 492 "parser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 78:
- #line 495 "parser.Y"
-- {yyval.real = parseDMS(yyvsp[0].str);;}
-+ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
- break;
-
- case 79:
-@@ -4200,13 +4533,13 @@
- {
- Vector r;
- if (currentSky == GALACTIC || currentSky == ECLIPTIC)
-- r = Vector(yyvsp[-1].real,yyvsp[0].real);
-+ r = Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));
- else
-- r = Vector(yyvsp[-1].real*360./24.,yyvsp[0].real);
-+ r = Vector((yyvsp[(1) - (2)].real)*360./24.,(yyvsp[(2) - (2)].real));
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -4218,12 +4551,12 @@
- case 81:
- #line 511 "parser.Y"
- {
-- Vector r = Vector(hmsToDegree(frsign2,yyvsp[-6].integer,yyvsp[-5].integer,yyvsp[-4].real),
-- dmsToDegree(frsign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real));
-+ Vector r = Vector(hmsToDegree(frsign2,(yyvsp[(1) - (7)].integer),(yyvsp[(2) - (7)].integer),(yyvsp[(3) - (7)].real)),
-+ dmsToDegree(frsign,(yyvsp[(5) - (7)].integer),(yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -4235,377 +4568,377 @@
- case 83:
- #line 520 "parser.Y"
- {
-- Vector r = Vector(dmsToDegree(frsign2,yyvsp[-6].integer,yyvsp[-5].real,yyvsp[-4].real),
-- dmsToDegree(frsign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real));
-+ Vector r = Vector(dmsToDegree(frsign2,(yyvsp[(1) - (7)].integer),(yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),
-+ dmsToDegree(frsign,(yyvsp[(5) - (7)].integer),(yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 84:
- #line 529 "parser.Y"
- {
-- yyval.vector[0] = yyvsp[-1].real;
-- yyval.vector[1] = yyvsp[0].real;
-- yyval.vector[2] = 1;
-+ (yyval.vector)[0] = (yyvsp[(1) - (2)].real);
-+ (yyval.vector)[1] = (yyvsp[(2) - (2)].real);
-+ (yyval.vector)[2] = 1;
- ;}
- break;
-
- case 85:
- #line 536 "parser.Y"
-- {yyval.integer = currentCoord = IMAGE;;}
-+ {(yyval.integer) = currentCoord = IMAGE;;}
- break;
-
- case 86:
- #line 537 "parser.Y"
-- {yyval.integer = currentCoord = PHYSICAL;;}
-+ {(yyval.integer) = currentCoord = PHYSICAL;;}
- break;
-
- case 87:
- #line 538 "parser.Y"
-- {yyval.integer = currentCoord = DETECTOR;;}
-+ {(yyval.integer) = currentCoord = DETECTOR;;}
- break;
-
- case 88:
- #line 539 "parser.Y"
-- {yyval.integer = currentCoord = AMPLIFIER;;}
-+ {(yyval.integer) = currentCoord = AMPLIFIER;;}
- break;
-
- case 89:
- #line 540 "parser.Y"
-- {yyval.integer = (CoordSystem)yyvsp[0].integer;;}
-+ {(yyval.integer) = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 90:
- #line 543 "parser.Y"
-- {yyval.integer = currentCoord = WCS;;}
-+ {(yyval.integer) = currentCoord = WCS;;}
- break;
-
- case 91:
- #line 544 "parser.Y"
-- {yyval.integer = currentCoord = WCSA;;}
-+ {(yyval.integer) = currentCoord = WCSA;;}
- break;
-
- case 92:
- #line 545 "parser.Y"
-- {yyval.integer = currentCoord = WCSB;;}
-+ {(yyval.integer) = currentCoord = WCSB;;}
- break;
-
- case 93:
- #line 546 "parser.Y"
-- {yyval.integer = currentCoord = WCSC;;}
-+ {(yyval.integer) = currentCoord = WCSC;;}
- break;
-
- case 94:
- #line 547 "parser.Y"
-- {yyval.integer = currentCoord = WCSD;;}
-+ {(yyval.integer) = currentCoord = WCSD;;}
- break;
-
- case 95:
- #line 548 "parser.Y"
-- {yyval.integer = currentCoord = WCSE;;}
-+ {(yyval.integer) = currentCoord = WCSE;;}
- break;
-
- case 96:
- #line 549 "parser.Y"
-- {yyval.integer = currentCoord = WCSF;;}
-+ {(yyval.integer) = currentCoord = WCSF;;}
- break;
-
- case 97:
- #line 550 "parser.Y"
-- {yyval.integer = currentCoord = WCSG;;}
-+ {(yyval.integer) = currentCoord = WCSG;;}
- break;
-
- case 98:
- #line 551 "parser.Y"
-- {yyval.integer = currentCoord = WCSH;;}
-+ {(yyval.integer) = currentCoord = WCSH;;}
- break;
-
- case 99:
- #line 552 "parser.Y"
-- {yyval.integer = currentCoord = WCSI;;}
-+ {(yyval.integer) = currentCoord = WCSI;;}
- break;
-
- case 100:
- #line 553 "parser.Y"
-- {yyval.integer = currentCoord = WCSJ;;}
-+ {(yyval.integer) = currentCoord = WCSJ;;}
- break;
-
- case 101:
- #line 554 "parser.Y"
-- {yyval.integer = currentCoord = WCSK;;}
-+ {(yyval.integer) = currentCoord = WCSK;;}
- break;
-
- case 102:
- #line 555 "parser.Y"
-- {yyval.integer = currentCoord = WCSL;;}
-+ {(yyval.integer) = currentCoord = WCSL;;}
- break;
-
- case 103:
- #line 556 "parser.Y"
-- {yyval.integer = currentCoord = WCSM;;}
-+ {(yyval.integer) = currentCoord = WCSM;;}
- break;
-
- case 104:
- #line 557 "parser.Y"
-- {yyval.integer = currentCoord = WCSN;;}
-+ {(yyval.integer) = currentCoord = WCSN;;}
- break;
-
- case 105:
- #line 558 "parser.Y"
-- {yyval.integer = currentCoord = WCSO;;}
-+ {(yyval.integer) = currentCoord = WCSO;;}
- break;
-
- case 106:
- #line 559 "parser.Y"
-- {yyval.integer = currentCoord = WCSP;;}
-+ {(yyval.integer) = currentCoord = WCSP;;}
- break;
-
- case 107:
- #line 560 "parser.Y"
-- {yyval.integer = currentCoord = WCSQ;;}
-+ {(yyval.integer) = currentCoord = WCSQ;;}
- break;
-
- case 108:
- #line 561 "parser.Y"
-- {yyval.integer = currentCoord = WCSR;;}
-+ {(yyval.integer) = currentCoord = WCSR;;}
- break;
-
- case 109:
- #line 562 "parser.Y"
-- {yyval.integer = currentCoord = WCSS;;}
-+ {(yyval.integer) = currentCoord = WCSS;;}
- break;
-
- case 110:
- #line 563 "parser.Y"
-- {yyval.integer = currentCoord = WCST;;}
-+ {(yyval.integer) = currentCoord = WCST;;}
- break;
-
- case 111:
- #line 564 "parser.Y"
-- {yyval.integer = currentCoord = WCSU;;}
-+ {(yyval.integer) = currentCoord = WCSU;;}
- break;
-
- case 112:
- #line 565 "parser.Y"
-- {yyval.integer = currentCoord = WCSV;;}
-+ {(yyval.integer) = currentCoord = WCSV;;}
- break;
-
- case 113:
- #line 566 "parser.Y"
-- {yyval.integer = currentCoord = WCSW;;}
-+ {(yyval.integer) = currentCoord = WCSW;;}
- break;
-
- case 114:
- #line 567 "parser.Y"
-- {yyval.integer = currentCoord = WCSX;;}
-+ {(yyval.integer) = currentCoord = WCSX;;}
- break;
-
- case 115:
- #line 568 "parser.Y"
-- {yyval.integer = currentCoord = WCSY;;}
-+ {(yyval.integer) = currentCoord = WCSY;;}
- break;
-
- case 116:
- #line 569 "parser.Y"
-- {yyval.integer = currentCoord = WCSZ;;}
-+ {(yyval.integer) = currentCoord = WCSZ;;}
- break;
-
- case 117:
- #line 572 "parser.Y"
-- {yyval.integer = CANVAS;;}
-+ {(yyval.integer) = CANVAS;;}
- break;
-
- case 118:
- #line 573 "parser.Y"
-- {yyval.integer = PANNER;;}
-+ {(yyval.integer) = PANNER;;}
- break;
-
- case 119:
- #line 576 "parser.Y"
-- {yyval.integer = currentSky = FK5;;}
-+ {(yyval.integer) = currentSky = FK5;;}
- break;
-
- case 120:
- #line 577 "parser.Y"
-- {yyval.integer = currentSky = FK4;;}
-+ {(yyval.integer) = currentSky = FK4;;}
- break;
-
- case 121:
- #line 578 "parser.Y"
-- {yyval.integer = currentSky = FK4;;}
-+ {(yyval.integer) = currentSky = FK4;;}
- break;
-
- case 122:
- #line 579 "parser.Y"
-- {yyval.integer = currentSky = FK5;;}
-+ {(yyval.integer) = currentSky = FK5;;}
- break;
-
- case 123:
- #line 580 "parser.Y"
-- {yyval.integer = currentSky = FK5;;}
-+ {(yyval.integer) = currentSky = FK5;;}
- break;
-
- case 124:
- #line 581 "parser.Y"
-- {yyval.integer = currentSky = ICRS;;}
-+ {(yyval.integer) = currentSky = ICRS;;}
- break;
-
- case 125:
- #line 582 "parser.Y"
-- {yyval.integer = currentSky = GALACTIC;;}
-+ {(yyval.integer) = currentSky = GALACTIC;;}
- break;
-
- case 126:
- #line 583 "parser.Y"
-- {yyval.integer = currentSky = ECLIPTIC;;}
-+ {(yyval.integer) = currentSky = ECLIPTIC;;}
- break;
-
- case 127:
- #line 586 "parser.Y"
-- {yyval.integer=DEGREES;;}
-+ {(yyval.integer)=DEGREES;;}
- break;
-
- case 128:
- #line 587 "parser.Y"
-- {yyval.integer=DEGREES;;}
-+ {(yyval.integer)=DEGREES;;}
- break;
-
- case 129:
- #line 588 "parser.Y"
-- {yyval.integer=SEXAGESIMAL;;}
-+ {(yyval.integer)=SEXAGESIMAL;;}
- break;
-
- case 130:
- #line 589 "parser.Y"
-- {yyval.integer=HMS;;}
-+ {(yyval.integer)=HMS;;}
- break;
-
- case 131:
- #line 590 "parser.Y"
-- {yyval.integer=ARCMIN;;}
-+ {(yyval.integer)=ARCMIN;;}
- break;
-
- case 132:
- #line 591 "parser.Y"
-- {yyval.integer=ARCSEC;;}
-+ {(yyval.integer)=ARCSEC;;}
- break;
-
- case 133:
- #line 594 "parser.Y"
-- {yyval.integer = FrScale::LINEARSCALE;;}
-+ {(yyval.integer) = FrScale::LINEARSCALE;;}
- break;
-
- case 134:
- #line 595 "parser.Y"
-- {yyval.integer = FrScale::LOGSCALE;;}
-+ {(yyval.integer) = FrScale::LOGSCALE;;}
- break;
-
- case 135:
- #line 596 "parser.Y"
-- {yyval.integer = FrScale::SQUAREDSCALE;;}
-+ {(yyval.integer) = FrScale::SQUAREDSCALE;;}
- break;
-
- case 136:
- #line 597 "parser.Y"
-- {yyval.integer = FrScale::SQRTSCALE;;}
-+ {(yyval.integer) = FrScale::SQRTSCALE;;}
- break;
-
- case 137:
- #line 598 "parser.Y"
-- {yyval.integer = FrScale::HISTEQUSCALE;;}
-+ {(yyval.integer) = FrScale::HISTEQUSCALE;;}
- break;
-
- case 138:
- #line 601 "parser.Y"
-- {yyval.integer = FrameBase::SHMID;;}
-+ {(yyval.integer) = FrameBase::SHMID;;}
- break;
-
- case 139:
- #line 602 "parser.Y"
-- {yyval.integer = FrameBase::SHMID;;}
-+ {(yyval.integer) = FrameBase::SHMID;;}
- break;
-
- case 140:
- #line 603 "parser.Y"
-- {yyval.integer = FrameBase::KEY;;}
-+ {(yyval.integer) = FrameBase::KEY;;}
- break;
-
- case 141:
- #line 606 "parser.Y"
-- {yyval.integer = FrameBase::LOADALL;;}
-+ {(yyval.integer) = FrameBase::LOADALL;;}
- break;
-
- case 142:
- #line 607 "parser.Y"
-- {yyval.integer = FrameBase::LOADALL;;}
-+ {(yyval.integer) = FrameBase::LOADALL;;}
- break;
-
- case 143:
- #line 608 "parser.Y"
-- {yyval.integer = FrameBase::INCR;;}
-+ {(yyval.integer) = FrameBase::INCR;;}
- break;
-
- case 144:
- #line 611 "parser.Y"
-- {yyval.integer = FrameBase::NOCOMPRESS;;}
-+ {(yyval.integer) = FrameBase::NOCOMPRESS;;}
- break;
-
- case 145:
- #line 612 "parser.Y"
-- {yyval.integer = FrameBase::NOCOMPRESS;;}
-+ {(yyval.integer) = FrameBase::NOCOMPRESS;;}
- break;
-
- case 146:
- #line 613 "parser.Y"
-- {yyval.integer = FrameBase::GZ;;}
-+ {(yyval.integer) = FrameBase::GZ;;}
- break;
-
- case 147:
- #line 616 "parser.Y"
-- {FRB->binAboutCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->binAboutCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 148:
- #line 617 "parser.Y"
-- {FRB->binColsCmd(yyvsp[-2].str,yyvsp[-1].str,yyvsp[0].str);;}
-+ {FRB->binColsCmd((yyvsp[(2) - (4)].str),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
- break;
-
- case 149:
- #line 618 "parser.Y"
-- {FRB->binDepthCmd(yyvsp[0].integer);;}
-+ {FRB->binDepthCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 152:
- #line 621 "parser.Y"
-- {FRB->binBufferSizeCmd(yyvsp[0].integer);;}
-+ {FRB->binBufferSizeCmd((yyvsp[(3) - (3)].integer));;}
- break;
-
- case 154:
- #line 623 "parser.Y"
-- {FRB->binFilterCmd(yyvsp[0].str);;}
-+ {FRB->binFilterCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 155:
- #line 626 "parser.Y"
-- {FRB->binFactorCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->binFactorCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 156:
- #line 628 "parser.Y"
-- {FRB->binFactorAboutCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->binFactorAboutCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)), Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
- break;
-
- case 157:
- #line 629 "parser.Y"
-- {FRB->binFactorToCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->binFactorToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 158:
- #line 631 "parser.Y"
-- {FRB->binFactorToAboutCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->binFactorToAboutCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 159:
-@@ -4625,48 +4958,48 @@
-
- case 162:
- #line 640 "parser.Y"
-- {FRB->binCmd(Vector(yyvsp[-6].real,yyvsp[-5].real), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
-+ {FRB->binCmd(Vector((yyvsp[(1) - (7)].real),(yyvsp[(2) - (7)].real)), (yyvsp[(5) - (7)].str), (yyvsp[(6) - (7)].str), (yyvsp[(7) - (7)].str));;}
- break;
-
- case 163:
- #line 643 "parser.Y"
-- {FRB->binCmd(Vector(yyvsp[-10].real,yyvsp[-9].real), yyvsp[-8].integer, Vector(yyvsp[-7].real,yyvsp[-6].real), yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
-+ {FRB->binCmd(Vector((yyvsp[(1) - (11)].real),(yyvsp[(2) - (11)].real)), (yyvsp[(3) - (11)].integer), Vector((yyvsp[(4) - (11)].real),(yyvsp[(5) - (11)].real)), (yyvsp[(8) - (11)].str), (yyvsp[(9) - (11)].str), (yyvsp[(10) - (11)].str), (yyvsp[(11) - (11)].str));;}
- break;
-
- case 164:
- #line 645 "parser.Y"
-- {FRB->binCmd(Vector(yyvsp[-7].real,yyvsp[-6].real), Vector(yyvsp[-4].real,yyvsp[-3].real), yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
-+ {FRB->binCmd(Vector((yyvsp[(1) - (8)].real),(yyvsp[(2) - (8)].real)), Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real)), (yyvsp[(6) - (8)].str), (yyvsp[(7) - (8)].str), (yyvsp[(8) - (8)].str));;}
- break;
-
- case 165:
- #line 648 "parser.Y"
-- {FRB->binCmd(Vector(yyvsp[-11].real,yyvsp[-10].real), yyvsp[-9].integer, Vector(yyvsp[-8].real,yyvsp[-7].real), Vector(yyvsp[-5].real,yyvsp[-4].real),
-- yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str);;}
-+ {FRB->binCmd(Vector((yyvsp[(1) - (12)].real),(yyvsp[(2) - (12)].real)), (yyvsp[(3) - (12)].integer), Vector((yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real)), Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
-+ (yyvsp[(9) - (12)].str), (yyvsp[(10) - (12)].str), (yyvsp[(11) - (12)].str), (yyvsp[(12) - (12)].str));;}
- break;
-
- case 170:
- #line 656 "parser.Y"
-- {FRB->clipZScaleParamCmd(yyvsp[-2].real,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->clipZScaleParamCmd((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 171:
- #line 657 "parser.Y"
-- {FRB->clipPreserveCmd(yyvsp[0].integer);;}
-+ {FRB->clipPreserveCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 172:
- #line 660 "parser.Y"
-- {FRB->clipUserCmd(yyvsp[-1].real,yyvsp[0].real);;}
-+ {FRB->clipUserCmd((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));;}
- break;
-
- case 173:
- #line 661 "parser.Y"
-- {FRB->clipUserLowCmd(yyvsp[0].real);;}
-+ {FRB->clipUserLowCmd((yyvsp[(2) - (2)].real));;}
- break;
-
- case 174:
- #line 662 "parser.Y"
-- {FRB->clipUserHighCmd(yyvsp[0].real);;}
-+ {FRB->clipUserHighCmd((yyvsp[(2) - (2)].real));;}
- break;
-
- case 175:
-@@ -4681,7 +5014,7 @@
-
- case 177:
- #line 669 "parser.Y"
-- {FRB->clipModeCmd(yyvsp[0].real);;}
-+ {FRB->clipModeCmd((yyvsp[(1) - (1)].real));;}
- break;
-
- case 178:
-@@ -4706,7 +5039,7 @@
-
- case 183:
- #line 677 "parser.Y"
-- {FRB->clipMinMaxParamCmd(yyvsp[0].integer);;}
-+ {FRB->clipMinMaxParamCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 184:
-@@ -4736,40 +5069,40 @@
-
- case 189:
- #line 688 "parser.Y"
-- {FR->colormapCmd(yyvsp[-6].integer, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].integer, (unsigned short*)yyvsp[-2].ptr,
-- (unsigned char*)yyvsp[-1].ptr, yyvsp[0].integer);;}
-+ {FR->colormapCmd((yyvsp[(1) - (7)].integer), (yyvsp[(2) - (7)].real), (yyvsp[(3) - (7)].real), (yyvsp[(4) - (7)].integer), (unsigned short*)(yyvsp[(5) - (7)].ptr),
-+ (unsigned char*)(yyvsp[(6) - (7)].ptr), (yyvsp[(7) - (7)].integer));;}
- break;
-
- case 190:
- #line 691 "parser.Y"
-- {FRRGB->colormapCmd(yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real,yyvsp[-2].real,(unsigned char*)yyvsp[-1].ptr,yyvsp[0].integer);;}
-+ {FRRGB->colormapCmd((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real),(yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real),(yyvsp[(6) - (9)].real),(yyvsp[(7) - (9)].real),(unsigned char*)(yyvsp[(8) - (9)].ptr),(yyvsp[(9) - (9)].integer));;}
- break;
-
- case 191:
- #line 693 "parser.Y"
-- {FRB->colormapAreaCmd(yyvsp[-1].integer,(FrameBase::ColormapMode)yyvsp[0].integer);;}
-+ {FRB->colormapAreaCmd((yyvsp[(2) - (3)].integer),(FrameBase::ColormapMode)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 193:
- #line 696 "parser.Y"
-- {FR->colormapMotionCmd(yyvsp[-6].integer, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].integer, (unsigned short*)yyvsp[-2].ptr,
-- (unsigned char*)yyvsp[-1].ptr, yyvsp[0].integer);;}
-+ {FR->colormapMotionCmd((yyvsp[(2) - (8)].integer), (yyvsp[(3) - (8)].real), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].integer), (unsigned short*)(yyvsp[(6) - (8)].ptr),
-+ (unsigned char*)(yyvsp[(7) - (8)].ptr), (yyvsp[(8) - (8)].integer));;}
- break;
-
- case 194:
- #line 700 "parser.Y"
-- {FRRGB->colormapMotionCmd(yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real,yyvsp[-2].real,(unsigned char*)yyvsp[-1].ptr,yyvsp[0].integer);;}
-+ {FRRGB->colormapMotionCmd((yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(unsigned char*)(yyvsp[(9) - (10)].ptr),(yyvsp[(10) - (10)].integer));;}
- break;
-
- case 195:
- #line 702 "parser.Y"
-- {FR->colormapEndCmd(yyvsp[-6].integer, yyvsp[-5].real, yyvsp[-4].real, yyvsp[-3].integer, (unsigned short*)yyvsp[-2].ptr,
-- (unsigned char*)yyvsp[-1].ptr, yyvsp[0].integer);;}
-+ {FR->colormapEndCmd((yyvsp[(2) - (8)].integer), (yyvsp[(3) - (8)].real), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].integer), (unsigned short*)(yyvsp[(6) - (8)].ptr),
-+ (unsigned char*)(yyvsp[(7) - (8)].ptr), (yyvsp[(8) - (8)].integer));;}
- break;
-
- case 196:
- #line 705 "parser.Y"
-- {FRRGB->colormapEndCmd(yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real,yyvsp[-2].real,(unsigned char*)yyvsp[-1].ptr,yyvsp[0].integer);;}
-+ {FRRGB->colormapEndCmd((yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(unsigned char*)(yyvsp[(9) - (10)].ptr),(yyvsp[(10) - (10)].integer));;}
- break;
-
- case 197:
-@@ -4779,27 +5112,27 @@
-
- case 198:
- #line 709 "parser.Y"
-- {FRB->colormapBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->colormapBeginCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 199:
- #line 712 "parser.Y"
-- {yyval.integer = FrameBase::CENTER;;}
-+ {(yyval.integer) = FrameBase::CENTER;;}
- break;
-
- case 200:
- #line 713 "parser.Y"
-- {yyval.integer = FrameBase::CLICK;;}
-+ {(yyval.integer) = FrameBase::CLICK;;}
- break;
-
- case 201:
- #line 716 "parser.Y"
-- {FRB->contourSetColorCmd(yyvsp[0].str);;}
-+ {FRB->contourSetColorCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 202:
- #line 718 "parser.Y"
-- {FRB->contourCopyCmd((CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->contourCopyCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (SkyFrame)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 204:
-@@ -4814,32 +5147,32 @@
-
- case 206:
- #line 723 "parser.Y"
-- {FRB->contourLoadCmd(yyvsp[-4].str, yyvsp[-3].integer, yyvsp[-2].str, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->contourLoadCmd((yyvsp[(2) - (6)].str), (yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].str), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFrame)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 207:
- #line 725 "parser.Y"
-- {FRB->contourPasteCmd(yyvsp[-4].str, yyvsp[-3].integer, yyvsp[-2].ptr, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->contourPasteCmd((yyvsp[(2) - (6)].str), (yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].ptr), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFrame)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 208:
- #line 727 "parser.Y"
-- {FRB->contourSaveCmd(yyvsp[-2].str, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->contourSaveCmd((yyvsp[(2) - (4)].str), (CoordSystem)(yyvsp[(3) - (4)].integer), (SkyFrame)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 209:
- #line 728 "parser.Y"
-- {FRB->contourSetLineWidthCmd(yyvsp[0].integer);;}
-+ {FRB->contourSetLineWidthCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 210:
- #line 732 "parser.Y"
-- {FRB->contourCreateCmd(yyvsp[-4].str,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].integer);;}
-+ {FRB->contourCreateCmd((yyvsp[(1) - (5)].str),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 211:
- #line 734 "parser.Y"
-- {FRB->contourCreateCmd(yyvsp[-4].str,yyvsp[-3].integer,yyvsp[-2].real,yyvsp[-1].integer,yyvsp[0].str);;}
-+ {FRB->contourCreateCmd((yyvsp[(1) - (5)].str),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].str));;}
- break;
-
- case 212:
-@@ -4850,62 +5183,62 @@
-
- case 213:
- #line 740 "parser.Y"
-- {yyval.integer = FVContour::SMOOTH;;}
-+ {(yyval.integer) = FVContour::SMOOTH;;}
- break;
-
- case 214:
- #line 741 "parser.Y"
-- {yyval.integer = FVContour::BLOCK;;}
-+ {(yyval.integer) = FVContour::BLOCK;;}
- break;
-
- case 215:
- #line 745 "parser.Y"
-- {FRB->crosshairBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->crosshairBeginCmd(Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)), (InternalSystem)(yyvsp[(3) - (5)].integer));;}
- break;
-
- case 216:
- #line 747 "parser.Y"
-- {FRB->crosshairMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->crosshairMotionCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (InternalSystem)(yyvsp[(2) - (4)].integer));;}
- break;
-
- case 217:
- #line 749 "parser.Y"
-- {FRB->crosshairCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->crosshairCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (InternalSystem)(yyvsp[(1) - (3)].integer));;}
- break;
-
- case 218:
- #line 751 "parser.Y"
-- {FRB->crosshairBeginCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-1].integer);;}
-+ {FRB->crosshairBeginCmd(Vector((yyvsp[(4) - (4)].vector)), (CoordSystem)(yyvsp[(3) - (4)].integer));;}
- break;
-
- case 219:
- #line 753 "parser.Y"
-- {FRB->crosshairMotionCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-1].integer);;}
-+ {FRB->crosshairMotionCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(2) - (3)].integer));;}
- break;
-
- case 220:
- #line 755 "parser.Y"
-- {FRB->crosshairCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->crosshairCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
- break;
-
- case 221:
- #line 756 "parser.Y"
-- {FRB->crosshairCmd(yyvsp[0].integer);;}
-+ {FRB->crosshairCmd((yyvsp[(1) - (1)].integer));;}
- break;
-
- case 222:
- #line 757 "parser.Y"
-- {FRB->crosshairWarpCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->crosshairWarpCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 224:
- #line 761 "parser.Y"
-- {FRB->exportJPEGCmd(yyvsp[-1].str,yyvsp[0].real);;}
-+ {FRB->exportJPEGCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].real));;}
- break;
-
- case 228:
- #line 767 "parser.Y"
-- {FRB->fitsyHasExtCmd(yyvsp[0].str);;}
-+ {FRB->fitsyHasExtCmd((yyvsp[(3) - (3)].str));;}
- break;
-
- case 229:
-@@ -4940,12 +5273,12 @@
-
- case 244:
- #line 785 "parser.Y"
-- {FRB->getHistogramCmd(yyvsp[-1].str,yyvsp[0].str);;}
-+ {FRB->getHistogramCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 245:
- #line 787 "parser.Y"
-- {FRB->getHorzCutCmd(yyvsp[-4].str,yyvsp[-3].str,Vector(yyvsp[-2].real,yyvsp[-1].real),(InternalSystem)yyvsp[0].integer);;}
-+ {FRB->getHorzCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(InternalSystem)(yyvsp[(7) - (7)].integer));;}
- break;
-
- case 248:
-@@ -4965,7 +5298,7 @@
-
- case 253:
- #line 796 "parser.Y"
-- {FRB->getPixelTableCmd(Vector(yyvsp[-3].real,yyvsp[-2].real), (InternalSystem)yyvsp[-4].integer, yyvsp[-1].integer, yyvsp[0].str);;}
-+ {FRB->getPixelTableCmd(Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)), (InternalSystem)(yyvsp[(3) - (7)].integer), (yyvsp[(6) - (7)].integer), (yyvsp[(7) - (7)].str));;}
- break;
-
- case 257:
-@@ -4975,12 +5308,12 @@
-
- case 258:
- #line 802 "parser.Y"
-- {FRB->getValueCmd(Vector(yyvsp[-1].real,yyvsp[0].real),(InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->getValueCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(InternalSystem)(yyvsp[(2) - (4)].integer));;}
- break;
-
- case 259:
- #line 804 "parser.Y"
-- {FRB->getVertCutCmd(yyvsp[-4].str,yyvsp[-3].str,Vector(yyvsp[-2].real,yyvsp[-1].real),(InternalSystem)yyvsp[0].integer);;}
-+ {FRB->getVertCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(InternalSystem)(yyvsp[(7) - (7)].integer));;}
- break;
-
- case 261:
-@@ -5025,7 +5358,7 @@
-
- case 270:
- #line 817 "parser.Y"
-- {FRB->getBinColsMinMaxCmd(yyvsp[0].str);;}
-+ {FRB->getBinColsMinMaxCmd((yyvsp[(3) - (3)].str));;}
- break;
-
- case 271:
-@@ -5065,7 +5398,7 @@
-
- case 280:
- #line 831 "parser.Y"
-- {FRB->getClipCmd(yyvsp[0].real);;}
-+ {FRB->getClipCmd((yyvsp[(1) - (1)].real));;}
- break;
-
- case 281:
-@@ -5100,7 +5433,7 @@
-
- case 287:
- #line 843 "parser.Y"
-- {FRB->getContourCmd((CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
-+ {FRB->getContourCmd((CoordSystem)(yyvsp[(1) - (2)].integer),(SkyFrame)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 288:
-@@ -5125,24 +5458,24 @@
-
- case 293:
- #line 852 "parser.Y"
-- {FRB->getContourLevelCmd(yyvsp[-3].integer,yyvsp[-2].real,yyvsp[-1].real,(FrScale::ColorScaleType)yyvsp[0].integer);;}
-+ {FRB->getContourLevelCmd((yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real),(FrScale::ColorScaleType)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 294:
- #line 856 "parser.Y"
-- {FRB->getCoordCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), (InternalSystem)yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
-- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getCoordCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), (InternalSystem)(yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
-+ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 295:
- #line 860 "parser.Y"
-- {FRB->getCrosshairCmd((InternalSystem)yyvsp[0].integer);;}
-+ {FRB->getCrosshairCmd((InternalSystem)(yyvsp[(1) - (1)].integer));;}
- break;
-
- case 296:
- #line 862 "parser.Y"
-- {FRB->getCrosshairCmd((CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer, (SkyFormat)yyvsp[-1].integer,
-- (FrameBase::Precision)yyvsp[0].integer);}
-+ {FRB->getCrosshairCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (SkyFrame)(yyvsp[(2) - (4)].integer), (SkyFormat)(yyvsp[(3) - (4)].integer),
-+ (FrameBase::Precision)(yyvsp[(4) - (4)].integer));}
- break;
-
- case 297:
-@@ -5152,13 +5485,13 @@
-
- case 298:
- #line 867 "parser.Y"
-- {FRB->getCursorCmd((InternalSystem)yyvsp[0].integer);;}
-+ {FRB->getCursorCmd((InternalSystem)(yyvsp[(1) - (1)].integer));;}
- break;
-
- case 299:
- #line 869 "parser.Y"
-- {FRB->getCursorCmd((CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer, (SkyFormat)yyvsp[-1].integer,
-- (FrameBase::Precision)yyvsp[0].integer);;}
-+ {FRB->getCursorCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (SkyFrame)(yyvsp[(2) - (4)].integer), (SkyFormat)(yyvsp[(3) - (4)].integer),
-+ (FrameBase::Precision)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 300:
-@@ -5168,36 +5501,36 @@
-
- case 301:
- #line 875 "parser.Y"
-- {FRB->getDataValuesCmd(1, Vector(yyvsp[-3].vector),
-- (CoordSystem)yyvsp[-5].integer, (SkyFrame)yyvsp[-4].integer, Vector(yyvsp[-2].real,yyvsp[-1].real), yyvsp[0].str);;}
-+ {FRB->getDataValuesCmd(1, Vector((yyvsp[(3) - (6)].vector)),
-+ (CoordSystem)(yyvsp[(1) - (6)].integer), (SkyFrame)(yyvsp[(2) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), (yyvsp[(6) - (6)].str));;}
- break;
-
- case 302:
- #line 878 "parser.Y"
-- {FRB->getDataValuesCmd(yyvsp[-6].integer, Vector(yyvsp[-3].vector),
-- (CoordSystem)yyvsp[-5].integer, (SkyFrame)yyvsp[-4].integer, Vector(yyvsp[-2].real,yyvsp[-1].real), yyvsp[0].str);;}
-+ {FRB->getDataValuesCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].vector)),
-+ (CoordSystem)(yyvsp[(2) - (7)].integer), (SkyFrame)(yyvsp[(3) - (7)].integer), Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)), (yyvsp[(7) - (7)].str));;}
- break;
-
- case 303:
- #line 881 "parser.Y"
-- {FRB->getDataValuesCmd(Vector(yyvsp[-3].real,yyvsp[-2].real),(InternalSystem)yyvsp[-4].integer,
-- Vector(yyvsp[-1].integer,yyvsp[0].integer));;}
-+ {FRB->getDataValuesCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),(InternalSystem)(yyvsp[(1) - (5)].integer),
-+ Vector((yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer)));;}
- break;
-
- case 304:
- #line 885 "parser.Y"
-- {FRB->getInfoCmd(yyvsp[0].str);;}
-+ {FRB->getInfoCmd((yyvsp[(1) - (1)].str));;}
- break;
-
- case 305:
- #line 887 "parser.Y"
-- {FRB->getInfoCmd(Vector(yyvsp[-4].real,yyvsp[-3].real), (InternalSystem)yyvsp[-5].integer,
-- (SkyFrame)yyvsp[-2].integer, (SkyFormat)yyvsp[-1].integer, yyvsp[0].str);;}
-+ {FRB->getInfoCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), (InternalSystem)(yyvsp[(1) - (6)].integer),
-+ (SkyFrame)(yyvsp[(4) - (6)].integer), (SkyFormat)(yyvsp[(5) - (6)].integer), (yyvsp[(6) - (6)].str));;}
- break;
-
- case 306:
- #line 891 "parser.Y"
-- {FR->iisGetCmd((char*)yyvsp[-4].ptr,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FR->iisGetCmd((char*)(yyvsp[(1) - (5)].ptr),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 307:
-@@ -5222,12 +5555,12 @@
-
- case 312:
- #line 899 "parser.Y"
-- {FRB->iisGetFileNameCmd(yyvsp[0].integer);;}
-+ {FRB->iisGetFileNameCmd((yyvsp[(1) - (1)].integer));;}
- break;
-
- case 313:
- #line 900 "parser.Y"
-- {FRB->iisGetFileNameCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->iisGetFileNameCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 314:
-@@ -5237,12 +5570,12 @@
-
- case 316:
- #line 905 "parser.Y"
-- {FRB->getFitsHeaderCmd(yyvsp[0].integer);;}
-+ {FRB->getFitsHeaderCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 317:
- #line 906 "parser.Y"
-- {FRB->getFitsHeaderKeywordCmd(yyvsp[-2].integer,yyvsp[0].str);;}
-+ {FRB->getFitsHeaderKeywordCmd((yyvsp[(2) - (4)].integer),(yyvsp[(4) - (4)].str));;}
- break;
-
- case 319:
-@@ -5257,7 +5590,7 @@
-
- case 321:
- #line 911 "parser.Y"
-- {FRB->getFitsSizeCmd((CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getFitsSizeCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (SkyFormat)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 322:
-@@ -5272,18 +5605,18 @@
-
- case 324:
- #line 917 "parser.Y"
-- {FRB->getFitsFileNameCmd((FrameBase::FileNameType)yyvsp[0].integer);;}
-+ {FRB->getFitsFileNameCmd((FrameBase::FileNameType)(yyvsp[(1) - (1)].integer));;}
- break;
-
- case 325:
- #line 919 "parser.Y"
-- {FRB->getFitsFileNameCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer,
-- (FrameBase::FileNameType)yyvsp[-3].integer);;}
-+ {FRB->getFitsFileNameCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (InternalSystem)(yyvsp[(2) - (4)].integer),
-+ (FrameBase::FileNameType)(yyvsp[(1) - (4)].integer));;}
- break;
-
- case 326:
- #line 922 "parser.Y"
-- {FRB->getFitsFileNameCmd(yyvsp[0].integer, (FrameBase::FileNameType)yyvsp[-2].integer);;}
-+ {FRB->getFitsFileNameCmd((yyvsp[(3) - (3)].integer), (FrameBase::FileNameType)(yyvsp[(1) - (3)].integer));;}
- break;
-
- case 327:
-@@ -5293,7 +5626,7 @@
-
- case 328:
- #line 926 "parser.Y"
-- {FRB->getFitsObjectNameCmd(yyvsp[0].integer);;}
-+ {FRB->getFitsObjectNameCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 329:
-@@ -5323,7 +5656,7 @@
-
- case 334:
- #line 938 "parser.Y"
-- {FRB->getRotateCmd((FrameBase::Precision)yyvsp[0].integer);;}
-+ {FRB->getRotateCmd((FrameBase::Precision)(yyvsp[(1) - (1)].integer));;}
- break;
-
- case 335:
-@@ -5343,23 +5676,23 @@
-
- case 338:
- #line 947 "parser.Y"
-- {FRB->getWCSZoomCmd((CoordSystem)yyvsp[-1].integer, (FrameBase::Precision)yyvsp[0].integer);;}
-+ {FRB->getWCSZoomCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (FrameBase::Precision)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 339:
- #line 948 "parser.Y"
-- {FRB->getWCSNameCmd((CoordSystem)yyvsp[0].integer);;}
-+ {FRB->getWCSNameCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 340:
- #line 951 "parser.Y"
-- {FRB->getZoomCmd((FrameBase::Precision)yyvsp[0].integer);;}
-+ {FRB->getZoomCmd((FrameBase::Precision)(yyvsp[(1) - (1)].integer));;}
- break;
-
- case 341:
- #line 955 "parser.Y"
-- {FRB->gridCmd((CoordSystem)yyvsp[-4].integer, (SkyFrame)yyvsp[-3].integer, (SkyFormat)yyvsp[-2].integer,
-- (Grid::GridType)yyvsp[-1].integer, yyvsp[0].str);;}
-+ {FRB->gridCmd((CoordSystem)(yyvsp[(2) - (6)].integer), (SkyFrame)(yyvsp[(3) - (6)].integer), (SkyFormat)(yyvsp[(4) - (6)].integer),
-+ (Grid::GridType)(yyvsp[(5) - (6)].integer), (yyvsp[(6) - (6)].str));;}
- break;
-
- case 342:
-@@ -5369,12 +5702,12 @@
-
- case 343:
- #line 960 "parser.Y"
-- {yyval.integer=Grid::ANALYSIS;;}
-+ {(yyval.integer)=Grid::ANALYSIS;;}
- break;
-
- case 344:
- #line 961 "parser.Y"
-- {yyval.integer=Grid::PUBLICATION;;}
-+ {(yyval.integer)=Grid::PUBLICATION;;}
- break;
-
- case 345:
-@@ -5434,7 +5767,7 @@
-
- case 358:
- #line 977 "parser.Y"
-- {FRB->hasSystemCmd((CoordSystem)yyvsp[0].integer);;}
-+ {FRB->hasSystemCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 360:
-@@ -5449,7 +5782,7 @@
-
- case 362:
- #line 983 "parser.Y"
-- {FRB->hasFitsExtCmd(yyvsp[0].integer);;}
-+ {FRB->hasFitsExtCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 363:
-@@ -5489,22 +5822,22 @@
-
- case 370:
- #line 995 "parser.Y"
-- {FRB->hasWCSCmd((CoordSystem)yyvsp[0].integer);;}
-+ {FRB->hasWCSCmd((CoordSystem)(yyvsp[(1) - (1)].integer));;}
- break;
-
- case 371:
- #line 996 "parser.Y"
-- {FRB->hasWCSEquCmd((CoordSystem)yyvsp[0].integer);;}
-+ {FRB->hasWCSEquCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 372:
- #line 997 "parser.Y"
-- {FRB->hasWCSLinearCmd((CoordSystem)yyvsp[0].integer);;}
-+ {FRB->hasWCSLinearCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 373:
- #line 1000 "parser.Y"
-- {FR->iisCmd(yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FR->iisCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 374:
-@@ -5514,12 +5847,12 @@
-
- case 375:
- #line 1002 "parser.Y"
-- {FR->iisMessageCmd(yyvsp[0].str);;}
-+ {FR->iisMessageCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 378:
- #line 1006 "parser.Y"
-- {FR->iisSetCmd((const char*)yyvsp[-4].ptr,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FR->iisSetCmd((const char*)(yyvsp[(2) - (6)].ptr),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 379:
-@@ -5529,656 +5862,656 @@
-
- case 380:
- #line 1010 "parser.Y"
-- {FR->iisWCSCmd(Matrix(yyvsp[-8].real,yyvsp[-7].real,yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].real,yyvsp[-3].real),Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
-+ {FR->iisWCSCmd(Matrix((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real)),Vector((yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].real)),(yyvsp[(10) - (10)].integer));;}
- break;
-
- case 381:
- #line 1013 "parser.Y"
-- {FRB->iisSetFileNameCmd(yyvsp[0].str);;}
-+ {FRB->iisSetFileNameCmd((yyvsp[(1) - (1)].str));;}
- break;
-
- case 382:
- #line 1014 "parser.Y"
-- {FRB->iisSetFileNameCmd(yyvsp[-1].str,yyvsp[0].integer);;}
-+ {FRB->iisSetFileNameCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 383:
- #line 1018 "parser.Y"
-- {FR->iisSetCursorCmd(Vector(yyvsp[-2].integer,yyvsp[-1].integer),CANVAS);;}
-+ {FR->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),CANVAS);;}
- break;
-
- case 384:
- #line 1020 "parser.Y"
-- {FR->iisSetCursorCmd(Vector(yyvsp[-2].integer,yyvsp[-1].integer),(CoordSystem)yyvsp[0].integer);;}
-+ {FR->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),(CoordSystem)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 385:
- #line 1021 "parser.Y"
-- {FR->iisCursorModeCmd(yyvsp[0].integer);;}
-+ {FR->iisCursorModeCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 389:
- #line 1029 "parser.Y"
-- {FRB->loadArrAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 390:
- #line 1030 "parser.Y"
-- {FRB->loadArrAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 391:
- #line 1031 "parser.Y"
-- {FRB->loadArrChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
-+ {FRB->loadArrChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 392:
- #line 1032 "parser.Y"
-- {FRB->loadArrMMapCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrMMapCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 393:
- #line 1033 "parser.Y"
-- {FRB->loadArrMMapIncrCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrMMapIncrCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 394:
- #line 1035 "parser.Y"
-- {FRB->loadArrShareCmd((FrameBase::ShmType)yyvsp[-1].integer, yyvsp[0].integer, yyvsp[-3].str);;}
-+ {FRB->loadArrShareCmd((FrameBase::ShmType)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(1) - (4)].str));;}
- break;
-
- case 395:
- #line 1036 "parser.Y"
-- {FRB->loadArrSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadArrSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 396:
- #line 1037 "parser.Y"
-- {FRB->loadArrSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadArrSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 397:
- #line 1038 "parser.Y"
-- {FRB->loadArrVarCmd(yyvsp[0].str, yyvsp[-2].str);;}
-+ {FRB->loadArrVarCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 399:
- #line 1042 "parser.Y"
-- {FRB->loadArrRGBCubeAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrRGBCubeAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 400:
- #line 1043 "parser.Y"
-- {FRB->loadArrRGBCubeAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrRGBCubeAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 401:
- #line 1044 "parser.Y"
-- {FRB->loadArrRGBCubeChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
-+ {FRB->loadArrRGBCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 402:
- #line 1045 "parser.Y"
-- {FRB->loadArrRGBCubeMMapCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrRGBCubeMMapCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 403:
- #line 1046 "parser.Y"
-- {FRB->loadArrRGBCubeMMapIncrCmd(yyvsp[-1].str);;}
-+ {FRB->loadArrRGBCubeMMapIncrCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 404:
- #line 1048 "parser.Y"
-- {FRB->loadArrRGBCubeShareCmd((FrameBase::ShmType)yyvsp[-1].integer, yyvsp[0].integer, yyvsp[-3].str);;}
-+ {FRB->loadArrRGBCubeShareCmd((FrameBase::ShmType)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(1) - (4)].str));;}
- break;
-
- case 405:
- #line 1049 "parser.Y"
-- {FRB->loadArrRGBCubeSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadArrRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 406:
- #line 1050 "parser.Y"
-- {FRB->loadArrRGBCubeSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadArrRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 407:
- #line 1051 "parser.Y"
-- {FRB->loadArrRGBCubeVarCmd(yyvsp[0].str, yyvsp[-2].str);;}
-+ {FRB->loadArrRGBCubeVarCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 408:
- #line 1054 "parser.Y"
-- {FRB->loadFitsAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadFitsAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 409:
- #line 1055 "parser.Y"
-- {FRB->loadFitsAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadFitsAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 410:
- #line 1056 "parser.Y"
-- {FRB->loadFitsChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
-+ {FRB->loadFitsChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 411:
- #line 1058 "parser.Y"
-- {FRB->loadFitsMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadFitsMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 412:
- #line 1060 "parser.Y"
-- {FRB->loadFitsSMMapCmd(yyvsp[-3].str,yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadFitsSMMapCmd((yyvsp[(1) - (4)].str),(yyvsp[(2) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 413:
- #line 1062 "parser.Y"
-- {FRB->loadFitsMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadFitsMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 414:
- #line 1064 "parser.Y"
-- {FRB->loadFitsShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadFitsShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 415:
- #line 1067 "parser.Y"
-- {FRB->loadFitsSShareCmd((FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-5].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadFitsSShareCmd((FrameBase::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 416:
- #line 1069 "parser.Y"
-- {FRB->loadFitsSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadFitsSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 417:
- #line 1070 "parser.Y"
-- {FRB->loadFitsSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadFitsSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 418:
- #line 1072 "parser.Y"
-- {FRB->loadFitsVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadFitsVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 422:
- #line 1076 "parser.Y"
-- {FRB->loadFitsSlaveCmd(yyvsp[-1].str,(FitsFile*)yyvsp[0].ptr);;}
-+ {FRB->loadFitsSlaveCmd((yyvsp[(2) - (3)].str),(FitsFile*)(yyvsp[(3) - (3)].ptr));;}
- break;
-
- case 423:
- #line 1079 "parser.Y"
-- {FRB->loadDataCubeAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadDataCubeAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 424:
- #line 1080 "parser.Y"
-- {FRB->loadDataCubeAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadDataCubeAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 425:
- #line 1081 "parser.Y"
-- {FRB->loadDataCubeChannelCmd(yyvsp[0].str, yyvsp[-2].str);;}
-+ {FRB->loadDataCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 426:
- #line 1083 "parser.Y"
-- {FRB->loadDataCubeMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadDataCubeMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 427:
- #line 1085 "parser.Y"
-- {FRB->loadDataCubeMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadDataCubeMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 428:
- #line 1087 "parser.Y"
-- {FRB->loadDataCubeShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadDataCubeShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 429:
- #line 1089 "parser.Y"
-- {FRB->loadDataCubeSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadDataCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 430:
- #line 1090 "parser.Y"
-- {FRB->loadDataCubeSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadDataCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 431:
- #line 1092 "parser.Y"
-- {FRB->loadDataCubeVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadDataCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 438:
- #line 1103 "parser.Y"
-- {FRB->loadMosaicImageIRAFAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageIRAFAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 439:
- #line 1104 "parser.Y"
-- {FRB->loadMosaicImageIRAFAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageIRAFAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 440:
- #line 1105 "parser.Y"
-- {FRB->loadMosaicImageIRAFChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageIRAFChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
- break;
-
- case 441:
- #line 1107 "parser.Y"
-- {FRB->loadMosaicImageIRAFMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageIRAFMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 442:
- #line 1109 "parser.Y"
-- {FRB->loadMosaicImageIRAFMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageIRAFMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 443:
- #line 1111 "parser.Y"
-- {FRB->loadMosaicImageIRAFShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer,
-- yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageIRAFShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer),
-+ (yyvsp[(1) - (5)].str), (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 444:
- #line 1113 "parser.Y"
-- {FRB->loadMosaicImageIRAFSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageIRAFSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 445:
- #line 1114 "parser.Y"
-- {FRB->loadMosaicImageIRAFSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageIRAFSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 446:
- #line 1116 "parser.Y"
-- {FRB->loadMosaicImageIRAFVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageIRAFVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 447:
- #line 1119 "parser.Y"
-- {FRB->loadMosaicIRAFAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadMosaicIRAFAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 448:
- #line 1120 "parser.Y"
-- {FRB->loadMosaicIRAFAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadMosaicIRAFAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 449:
- #line 1121 "parser.Y"
-- {FRB->loadMosaicIRAFChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
-+ {FRB->loadMosaicIRAFChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
- break;
-
- case 450:
- #line 1123 "parser.Y"
-- {FRB->loadMosaicIRAFMMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicIRAFMMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 451:
- #line 1125 "parser.Y"
-- {FRB->loadMosaicIRAFSMMapCmd(yyvsp[-3].str,yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicIRAFSMMapCmd((yyvsp[(1) - (4)].str),(yyvsp[(2) - (4)].str),(FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 452:
- #line 1127 "parser.Y"
-- {FRB->loadMosaicIRAFMMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicIRAFMMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 453:
- #line 1129 "parser.Y"
-- {FRB->loadMosaicIRAFShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer,
-- yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicIRAFShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer),
-+ (yyvsp[(1) - (5)].str), (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 454:
- #line 1132 "parser.Y"
-- {FRB->loadMosaicIRAFSShareCmd((FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer,
-- yyvsp[-5].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicIRAFSShareCmd((FrameBase::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer),
-+ (yyvsp[(1) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 455:
- #line 1134 "parser.Y"
-- {FRB->loadMosaicIRAFSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicIRAFSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 456:
- #line 1135 "parser.Y"
-- {FRB->loadMosaicIRAFSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicIRAFSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 457:
- #line 1137 "parser.Y"
-- {FRB->loadMosaicIRAFVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicIRAFVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 458:
- #line 1141 "parser.Y"
-- {FRB->loadMosaicImageWCSAllocCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageWCSAllocCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
- break;
-
- case 459:
- #line 1143 "parser.Y"
-- {FRB->loadMosaicImageWCSAllocGZCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageWCSAllocGZCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
- break;
-
- case 460:
- #line 1145 "parser.Y"
-- {FRB->loadMosaicImageWCSChannelCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].str, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageWCSChannelCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str), (yyvsp[(2) - (4)].str));;}
- break;
-
- case 461:
- #line 1147 "parser.Y"
-- {FRB->loadMosaicImageWCSMMapCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWCSMMapCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 462:
- #line 1150 "parser.Y"
-- {FRB->loadMosaicImageWCSMMapIncrCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWCSMMapIncrCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 463:
- #line 1153 "parser.Y"
-- {FRB->loadMosaicImageWCSShareCmd((CoordSystem)yyvsp[-5].integer,
-- (FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWCSShareCmd((CoordSystem)(yyvsp[(1) - (6)].integer),
-+ (FrameBase::ShmType)(yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(2) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 464:
- #line 1156 "parser.Y"
-- {FRB->loadMosaicImageWCSSocketCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageWCSSocketCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
- break;
-
- case 465:
- #line 1158 "parser.Y"
-- {FRB->loadMosaicImageWCSSocketGZCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageWCSSocketGZCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
- break;
-
- case 466:
- #line 1160 "parser.Y"
-- {FRB->loadMosaicImageWCSVarCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-1].str, yyvsp[-3].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWCSVarCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 467:
- #line 1165 "parser.Y"
-- {FRB->loadMosaicImageNextWCSAllocCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageNextWCSAllocCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
- break;
-
- case 468:
- #line 1167 "parser.Y"
-- {FRB->loadMosaicImageNextWCSAllocGZCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageNextWCSAllocGZCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
- break;
-
- case 469:
- #line 1169 "parser.Y"
-- {FRB->loadMosaicImageNextWCSChannelCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].str,yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageNextWCSChannelCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str),(yyvsp[(2) - (4)].str));;}
- break;
-
- case 470:
- #line 1171 "parser.Y"
-- {FRB->loadMosaicImageNextWCSMMapCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageNextWCSMMapCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 471:
- #line 1174 "parser.Y"
-- {FRB->loadMosaicImageNextWCSMMapIncrCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageNextWCSMMapIncrCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 472:
- #line 1177 "parser.Y"
-- {FRB->loadMosaicImageNextWCSShareCmd((CoordSystem)yyvsp[-5].integer,
-- (FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageNextWCSShareCmd((CoordSystem)(yyvsp[(1) - (6)].integer),
-+ (FrameBase::ShmType)(yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(2) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 473:
- #line 1180 "parser.Y"
-- {FRB->loadMosaicImageNextWCSSocketCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageNextWCSSocketCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
- break;
-
- case 474:
- #line 1182 "parser.Y"
-- {FRB->loadMosaicImageNextWCSSocketGZCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageNextWCSSocketGZCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
- break;
-
- case 475:
- #line 1184 "parser.Y"
-- {FRB->loadMosaicImageNextWCSVarCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-1].str, yyvsp[-3].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageNextWCSVarCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 476:
- #line 1189 "parser.Y"
-- {FRB->loadMosaicWCSAllocCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
-+ {FRB->loadMosaicWCSAllocCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
- break;
-
- case 477:
- #line 1191 "parser.Y"
-- {FRB->loadMosaicWCSAllocGZCmd((CoordSystem)yyvsp[-2].integer, yyvsp[-1].str);;}
-+ {FRB->loadMosaicWCSAllocGZCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (yyvsp[(2) - (3)].str));;}
- break;
-
- case 478:
- #line 1193 "parser.Y"
-- {FRB->loadMosaicWCSChannelCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].str,yyvsp[-2].str);;}
-+ {FRB->loadMosaicWCSChannelCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str),(yyvsp[(2) - (4)].str));;}
- break;
-
- case 479:
- #line 1195 "parser.Y"
-- {FRB->loadMosaicWCSMMapCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicWCSMMapCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 480:
- #line 1198 "parser.Y"
-- {FRB->loadMosaicWCSSMMapCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-3].str, yyvsp[-2].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicWCSSMMapCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(2) - (5)].str), (yyvsp[(3) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 481:
- #line 1201 "parser.Y"
-- {FRB->loadMosaicWCSMMapIncrCmd((CoordSystem)yyvsp[-3].integer, yyvsp[-2].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicWCSMMapIncrCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 482:
- #line 1204 "parser.Y"
-- {FRB->loadMosaicWCSShareCmd((CoordSystem)yyvsp[-5].integer,
-- (FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicWCSShareCmd((CoordSystem)(yyvsp[(1) - (6)].integer),
-+ (FrameBase::ShmType)(yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(2) - (6)].str), (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 483:
- #line 1207 "parser.Y"
-- {FRB->loadMosaicWCSSShareCmd((CoordSystem)yyvsp[-6].integer,
-- (FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-5].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicWCSSShareCmd((CoordSystem)(yyvsp[(1) - (7)].integer),
-+ (FrameBase::ShmType)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(6) - (7)].integer), (yyvsp[(2) - (7)].str), (FrameBase::LoadMethod)(yyvsp[(7) - (7)].integer));;}
- break;
-
- case 484:
- #line 1210 "parser.Y"
-- {FRB->loadMosaicWCSSocketCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicWCSSocketCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
- break;
-
- case 485:
- #line 1212 "parser.Y"
-- {FRB->loadMosaicWCSSocketGZCmd((CoordSystem)yyvsp[-3].integer, yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicWCSSocketGZCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(2) - (4)].str));;}
- break;
-
- case 486:
- #line 1214 "parser.Y"
-- {FRB->loadMosaicWCSVarCmd((CoordSystem)yyvsp[-4].integer, yyvsp[-1].str, yyvsp[-3].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicWCSVarCmd((CoordSystem)(yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 487:
- #line 1219 "parser.Y"
-- {FRB->loadMosaicImageWFPC2AllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageWFPC2AllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 488:
- #line 1220 "parser.Y"
-- {FRB->loadMosaicImageWFPC2AllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadMosaicImageWFPC2AllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 489:
- #line 1221 "parser.Y"
-- {FRB->loadMosaicImageWFPC2ChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageWFPC2ChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
- break;
-
- case 490:
- #line 1223 "parser.Y"
-- {FRB->loadMosaicImageWFPC2MMapCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWFPC2MMapCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 491:
- #line 1225 "parser.Y"
-- {FRB->loadMosaicImageWFPC2MMapIncrCmd(yyvsp[-2].str,(FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWFPC2MMapIncrCmd((yyvsp[(1) - (3)].str),(FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 492:
- #line 1227 "parser.Y"
-- {FRB->loadMosaicImageWFPC2ShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer,
-- yyvsp[-4].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWFPC2ShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer),
-+ (yyvsp[(1) - (5)].str), (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 493:
- #line 1229 "parser.Y"
-- {FRB->loadMosaicImageWFPC2SocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageWFPC2SocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 494:
- #line 1230 "parser.Y"
-- {FRB->loadMosaicImageWFPC2SocketGZCmd(yyvsp[0].integer,yyvsp[-2].str);;}
-+ {FRB->loadMosaicImageWFPC2SocketGZCmd((yyvsp[(3) - (3)].integer),(yyvsp[(1) - (3)].str));;}
- break;
-
- case 495:
- #line 1232 "parser.Y"
-- {FRB->loadMosaicImageWFPC2VarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadMosaicImageWFPC2VarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 498:
- #line 1238 "parser.Y"
-- {FRB->loadRGBCubeAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadRGBCubeAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 499:
- #line 1239 "parser.Y"
-- {FRB->loadRGBCubeAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadRGBCubeAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 500:
- #line 1240 "parser.Y"
-- {FRB->loadRGBCubeChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
-+ {FRB->loadRGBCubeChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
- break;
-
- case 501:
- #line 1242 "parser.Y"
-- {FRB->loadRGBCubeMMapCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBCubeMMapCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 502:
- #line 1244 "parser.Y"
-- {FRB->loadRGBCubeSMMapCmd(yyvsp[-3].str, yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBCubeSMMapCmd((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 503:
- #line 1246 "parser.Y"
-- {FRB->loadRGBCubeMMapIncrCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBCubeMMapIncrCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 504:
- #line 1248 "parser.Y"
-- {FRB->loadRGBCubeShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBCubeShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 505:
- #line 1251 "parser.Y"
-- {FRB->loadRGBCubeSShareCmd((FrameBase::ShmType)yyvsp[-3].integer, yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-5].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBCubeSShareCmd((FrameBase::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 506:
- #line 1253 "parser.Y"
-- {FRB->loadRGBCubeSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 507:
- #line 1254 "parser.Y"
-- {FRB->loadRGBCubeSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 508:
- #line 1256 "parser.Y"
-- {FRB->loadRGBCubeVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 509:
- #line 1258 "parser.Y"
-- {FRB->loadRGBCubeSlaveCmd(yyvsp[-1].str,(FitsFile*)yyvsp[0].ptr);;}
-+ {FRB->loadRGBCubeSlaveCmd((yyvsp[(2) - (3)].str),(FitsFile*)(yyvsp[(3) - (3)].ptr));;}
- break;
-
- case 510:
- #line 1261 "parser.Y"
-- {FRB->loadRGBImageAllocCmd(yyvsp[-1].str);;}
-+ {FRB->loadRGBImageAllocCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 511:
- #line 1262 "parser.Y"
-- {FRB->loadRGBImageAllocGZCmd(yyvsp[-1].str);;}
-+ {FRB->loadRGBImageAllocGZCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 512:
- #line 1263 "parser.Y"
-- {FRB->loadRGBImageChannelCmd(yyvsp[0].str,yyvsp[-2].str);;}
-+ {FRB->loadRGBImageChannelCmd((yyvsp[(3) - (3)].str),(yyvsp[(1) - (3)].str));;}
- break;
-
- case 513:
- #line 1265 "parser.Y"
-- {FRB->loadRGBImageMMapCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBImageMMapCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 514:
- #line 1267 "parser.Y"
-- {FRB->loadRGBImageMMapIncrCmd(yyvsp[-2].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBImageMMapIncrCmd((yyvsp[(1) - (3)].str), (FrameBase::LoadMethod)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 515:
- #line 1269 "parser.Y"
-- {FRB->loadRGBImageShareCmd((FrameBase::ShmType)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[-4].str,
-- (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBImageShareCmd((FrameBase::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
-+ (FrameBase::LoadMethod)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 516:
- #line 1271 "parser.Y"
-- {FRB->loadRGBImageSocketCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadRGBImageSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 517:
- #line 1272 "parser.Y"
-- {FRB->loadRGBImageSocketGZCmd(yyvsp[0].integer, yyvsp[-2].str);;}
-+ {FRB->loadRGBImageSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
- break;
-
- case 518:
- #line 1274 "parser.Y"
-- {FRB->loadRGBImageVarCmd(yyvsp[-1].str, yyvsp[-3].str, (FrameBase::LoadMethod)yyvsp[0].integer);;}
-+ {FRB->loadRGBImageVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (FrameBase::LoadMethod)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 519:
- #line 1277 "parser.Y"
-- {FRB->loadIncrDataCmd(yyvsp[-4].integer,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->loadIncrDataCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 520:
- #line 1278 "parser.Y"
-- {FRB->loadIncrMinMaxCmd(yyvsp[-4].integer,yyvsp[-3].integer,yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->loadIncrMinMaxCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 521:
-@@ -6188,22 +6521,22 @@
-
- case 522:
- #line 1282 "parser.Y"
-- {FRB->magnifierCmd(yyvsp[0].integer);;}
-+ {FRB->magnifierCmd((yyvsp[(1) - (1)].integer));;}
- break;
-
- case 523:
- #line 1283 "parser.Y"
-- {FRB->magnifierGraphicsCmd(yyvsp[0].integer);;}
-+ {FRB->magnifierGraphicsCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 524:
- #line 1284 "parser.Y"
-- {FRB->magnifierCursorCmd(yyvsp[0].integer);;}
-+ {FRB->magnifierCursorCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 525:
- #line 1285 "parser.Y"
-- {FRB->magnifierCmd(yyvsp[-2].str, yyvsp[-1].integer, yyvsp[0].integer);;}
-+ {FRB->magnifierCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 526:
-@@ -6213,17 +6546,17 @@
-
- case 527:
- #line 1287 "parser.Y"
-- {FRB->updateMagnifierCmd(Vector(yyvsp[-1].real, yyvsp[0].real));;}
-+ {FRB->updateMagnifierCmd(Vector((yyvsp[(2) - (3)].real), (yyvsp[(3) - (3)].real)));;}
- break;
-
- case 528:
- #line 1288 "parser.Y"
-- {FRB->magnifierZoomCmd(yyvsp[0].real);;}
-+ {FRB->magnifierZoomCmd((yyvsp[(2) - (2)].real));;}
- break;
-
- case 529:
- #line 1291 "parser.Y"
-- {FRB->markerColorCmd(yyvsp[0].str);;}
-+ {FRB->markerColorCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 530:
-@@ -6233,12 +6566,12 @@
-
- case 531:
- #line 1294 "parser.Y"
-- {FRB->markerCommandCmd((FrameBase::MarkerFormat)yyvsp[-1].integer,yyvsp[0].str);;}
-+ {FRB->markerCommandCmd((FrameBase::MarkerFormat)(yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 532:
- #line 1296 "parser.Y"
-- {FRB->markerCommandVarCmd((FrameBase::MarkerFormat)yyvsp[-2].integer,yyvsp[0].str);;}
-+ {FRB->markerCommandVarCmd((FrameBase::MarkerFormat)(yyvsp[(2) - (4)].integer),(yyvsp[(4) - (4)].str));;}
- break;
-
- case 533:
-@@ -6263,405 +6596,405 @@
-
- case 539:
- #line 1303 "parser.Y"
-- {FRB->markerFontCmd(yyvsp[0].str);;}
-+ {FRB->markerFontCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 540:
- #line 1305 "parser.Y"
-- {FRB->markerAngleCmd(yyvsp[-2].integer,yyvsp[0].real);;}
-+ {FRB->markerAngleCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].real));;}
- break;
-
- case 541:
- #line 1307 "parser.Y"
-- {FRB->markerAngleCmd(yyvsp[-4].integer,yyvsp[-2].real,(CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerAngleCmd((yyvsp[(1) - (5)].integer),(yyvsp[(3) - (5)].real),(CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 542:
- #line 1311 "parser.Y"
-- {FRB->markerAnnulusRadiusCmd(yyvsp[-7].integer,
-- yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerAnnulusRadiusCmd((yyvsp[(1) - (8)].integer),
-+ (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].real), (yyvsp[(6) - (8)].integer),
-+ (CoordSystem)(yyvsp[(7) - (8)].integer), (SkyFormat)(yyvsp[(8) - (8)].integer));;}
- break;
-
- case 543:
- #line 1316 "parser.Y"
-- {FRB->markerAnnulusRadiusCmd(yyvsp[-5].integer,
-- yyvsp[-2].str,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),
-+ (yyvsp[(4) - (6)].str),(CoordSystem)(yyvsp[(5) - (6)].integer),(SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 544:
- #line 1321 "parser.Y"
-- {FRB->markerBoxAnnulusRadiusCmd(yyvsp[-8].integer,
-- Vector(yyvsp[-5].real, yyvsp[-4].real), Vector(yyvsp[-3].real, yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (9)].integer),
-+ Vector((yyvsp[(4) - (9)].real), (yyvsp[(5) - (9)].real)), Vector((yyvsp[(6) - (9)].real), (yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer),
-+ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
- break;
-
- case 545:
- #line 1326 "parser.Y"
-- {FRB->markerBoxAnnulusRadiusCmd(yyvsp[-5].integer,
-- yyvsp[-2].str,(CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),
-+ (yyvsp[(4) - (6)].str),(CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 546:
- #line 1331 "parser.Y"
-- {FRB->markerBoxRadiusCmd(yyvsp[-6].integer,
-- Vector(yyvsp[-3].real,yyvsp[-2].real),
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerBoxRadiusCmd((yyvsp[(1) - (7)].integer),
-+ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
-+ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
- break;
-
- case 547:
- #line 1338 "parser.Y"
-- {FRB->markerBpandaEditCmd(yyvsp[-11].integer,
-- yyvsp[-8].real, yyvsp[-7].real, yyvsp[-6].integer,
-- Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerBpandaEditCmd((yyvsp[(1) - (12)].integer),
-+ (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer),
-+ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer),
-+ (CoordSystem)(yyvsp[(11) - (12)].integer), (SkyFrame)(yyvsp[(12) - (12)].integer));;}
- break;
-
- case 548:
- #line 1346 "parser.Y"
-- {FRB->markerBpandaEditCmd(yyvsp[-8].integer,
-- yyvsp[-5].str, yyvsp[-4].str,
-- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerBpandaEditCmd((yyvsp[(1) - (9)].integer),
-+ (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
-+ (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
-+ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
- break;
-
- case 549:
- #line 1351 "parser.Y"
-- {FRB->markerCallBackCmd(yyvsp[-4].integer,(CallBack::Type)yyvsp[-2].integer,yyvsp[-1].str,yyvsp[0].str);;}
-+ {FRB->markerCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
- break;
-
- case 550:
- #line 1353 "parser.Y"
-- {FRB->markerCircleRadiusCmd(yyvsp[-5].integer, yyvsp[-2].real, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerCircleRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 551:
- #line 1354 "parser.Y"
-- {FRB->markerColorCmd(yyvsp[-2].integer,yyvsp[0].str);;}
-+ {FRB->markerColorCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 552:
- #line 1356 "parser.Y"
-- {FRB->markerCompassArrowCmd(yyvsp[-4].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->markerCompassArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 553:
- #line 1358 "parser.Y"
-- {FRB->markerCompassLabelCmd(yyvsp[-4].integer,yyvsp[-1].str,yyvsp[0].str);;}
-+ {FRB->markerCompassLabelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
- break;
-
- case 554:
- #line 1360 "parser.Y"
-- {FRB->markerCompassRadiusCmd(yyvsp[-5].integer,yyvsp[-2].real,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerCompassRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].real),(CoordSystem)(yyvsp[(5) - (6)].integer),(SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 555:
- #line 1362 "parser.Y"
-- {FRB->markerCompassSystemCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerCompassSystemCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 556:
- #line 1364 "parser.Y"
-- {FRB->markerAnnulusCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 557:
- #line 1366 "parser.Y"
-- {FRB->markerBoxAnnulusCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerBoxAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 558:
- #line 1368 "parser.Y"
-- {FRB->markerBpandaCreateAnglesCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerBpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 559:
- #line 1370 "parser.Y"
-- {FRB->markerBpandaCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerBpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 560:
- #line 1372 "parser.Y"
-- {FRB->markerEllipseAnnulusCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerEllipseAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 561:
- #line 1374 "parser.Y"
-- {FRB->markerEpandaCreateAnglesCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerEpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 562:
- #line 1376 "parser.Y"
-- {FRB->markerEpandaCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerEpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 563:
- #line 1378 "parser.Y"
-- {FRB->markerCpandaCreateAnglesCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerCpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 564:
- #line 1380 "parser.Y"
-- {FRB->markerCpandaCreateRadiusCmd(yyvsp[-5].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerCpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
- break;
-
- case 565:
- #line 1382 "parser.Y"
-- {FRB->markerPolygonCreateVertexCmd(yyvsp[-6].integer,yyvsp[-2].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerPolygonCreateVertexCmd((yyvsp[(1) - (7)].integer),(yyvsp[(5) - (7)].integer),Vector((yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));;}
- break;
-
- case 566:
- #line 1383 "parser.Y"
-- {FRB->markerDeleteCmd(yyvsp[-1].integer);;}
-+ {FRB->markerDeleteCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 567:
- #line 1385 "parser.Y"
-- {FRB->markerAnnulusDeleteRadiusCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 568:
- #line 1387 "parser.Y"
-- {FRB->markerBoxAnnulusDeleteRadiusCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerBoxAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 569:
- #line 1388 "parser.Y"
-- {FRB->markerBpandaDeleteCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerBpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 570:
- #line 1390 "parser.Y"
-- {FRB->markerEllipseAnnulusDeleteRadiusCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerEllipseAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 571:
- #line 1392 "parser.Y"
-- {FRB->markerDeleteCallBackCmd(yyvsp[-4].integer,(CallBack::Type)yyvsp[-1].integer,yyvsp[0].str);;}
-+ {FRB->markerDeleteCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].str));;}
- break;
-
- case 572:
- #line 1393 "parser.Y"
-- {FRB->markerEpandaDeleteCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerEpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 573:
- #line 1394 "parser.Y"
-- {FRB->markerCpandaDeleteCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerCpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 574:
- #line 1396 "parser.Y"
-- {FRB->markerPolygonDeleteVertexCmd(yyvsp[-4].integer,yyvsp[0].integer);;}
-+ {FRB->markerPolygonDeleteVertexCmd((yyvsp[(1) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 575:
- #line 1397 "parser.Y"
-- {FRB->markerDeleteTagCmd(yyvsp[-2].integer);;}
-+ {FRB->markerDeleteTagCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 576:
- #line 1398 "parser.Y"
-- {FRB->markerDeleteTagCmd(yyvsp[-3].integer,yyvsp[0].str);;}
-+ {FRB->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].str));;}
- break;
-
- case 577:
- #line 1399 "parser.Y"
-- {FRB->markerDeleteTagCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 578:
- #line 1400 "parser.Y"
-- {FRB->markerEditBeginCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerEditBeginCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 579:
- #line 1404 "parser.Y"
-- {FRB->markerEllipseRadiusCmd(yyvsp[-6].integer,
-- Vector(yyvsp[-3].real, yyvsp[-2].real),
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerEllipseRadiusCmd((yyvsp[(1) - (7)].integer),
-+ Vector((yyvsp[(4) - (7)].real), (yyvsp[(5) - (7)].real)),
-+ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
- break;
-
- case 580:
- #line 1410 "parser.Y"
-- {FRB->markerEllipseAnnulusRadiusCmd(yyvsp[-8].integer,
-- Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (9)].integer),
-+ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)), Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer),
-+ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
- break;
-
- case 581:
- #line 1415 "parser.Y"
-- {FRB->markerEllipseAnnulusRadiusCmd(yyvsp[-5].integer,
-- yyvsp[-2].str, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),
-+ (yyvsp[(4) - (6)].str), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 582:
- #line 1421 "parser.Y"
-- {FRB->markerEpandaEditCmd(yyvsp[-11].integer,
-- yyvsp[-8].real, yyvsp[-7].real, yyvsp[-6].integer,
-- Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-4].real/yyvsp[-5].real), yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerEpandaEditCmd((yyvsp[(1) - (12)].integer),
-+ (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer),
-+ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer),
-+ (CoordSystem)(yyvsp[(11) - (12)].integer), (SkyFrame)(yyvsp[(12) - (12)].integer));;}
- break;
-
- case 583:
- #line 1429 "parser.Y"
-- {FRB->markerEpandaEditCmd(yyvsp[-8].integer,
-- yyvsp[-5].str, yyvsp[-4].str,
-- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerEpandaEditCmd((yyvsp[(1) - (9)].integer),
-+ (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
-+ (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
-+ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
- break;
-
- case 584:
- #line 1433 "parser.Y"
-- {FRB->markerFontCmd(yyvsp[-2].integer,yyvsp[0].str);;}
-+ {FRB->markerFontCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 585:
- #line 1434 "parser.Y"
-- {FRB->markerHighliteCmd(yyvsp[-1].integer);;}
-+ {FRB->markerHighliteCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 586:
- #line 1435 "parser.Y"
-- {FRB->markerHighliteOnlyCmd(yyvsp[-2].integer);;}
-+ {FRB->markerHighliteOnlyCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 587:
- #line 1436 "parser.Y"
-- {FRB->markerLineArrowCmd(yyvsp[-4].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->markerLineArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 588:
- #line 1438 "parser.Y"
-- {FRB->markerLineCmd(yyvsp[-6].integer, Vector(yyvsp[-1].vector), Vector(yyvsp[0].vector),
-- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer);;}
-+ {FRB->markerLineCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)),
-+ (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer));;}
- break;
-
- case 589:
- #line 1441 "parser.Y"
-- {FRB->markerMoveCmd(yyvsp[-3].integer, Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerMoveCmd((yyvsp[(1) - (4)].integer), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 590:
- #line 1442 "parser.Y"
-- {FRB->markerFrontCmd(yyvsp[-2].integer);;}
-+ {FRB->markerFrontCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 591:
- #line 1443 "parser.Y"
-- {FRB->markerBackCmd(yyvsp[-2].integer);;}
-+ {FRB->markerBackCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 592:
- #line 1445 "parser.Y"
-- {FRB->markerMoveToCmd(yyvsp[-5].integer, Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->markerMoveToCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)), (InternalSystem)(yyvsp[(4) - (6)].integer));;}
- break;
-
- case 593:
- #line 1447 "parser.Y"
-- {FRB->markerMoveToCmd(yyvsp[-5].integer,Vector(yyvsp[0].vector),(CoordSystem)yyvsp[-2].integer,(SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->markerMoveToCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(6) - (6)].vector)),(CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
- break;
-
- case 594:
- #line 1452 "parser.Y"
-- {FRB->markerCpandaEditCmd(yyvsp[-10].integer,
-- yyvsp[-7].real, yyvsp[-6].real, yyvsp[-5].integer,
-- yyvsp[-4].real, yyvsp[-3].real, yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerCpandaEditCmd((yyvsp[(1) - (11)].integer),
-+ (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer),
-+ (yyvsp[(7) - (11)].real), (yyvsp[(8) - (11)].real), (yyvsp[(9) - (11)].integer),
-+ (CoordSystem)(yyvsp[(10) - (11)].integer), (SkyFrame)(yyvsp[(11) - (11)].integer));;}
- break;
-
- case 595:
- #line 1460 "parser.Y"
-- {FRB->markerCpandaEditCmd(yyvsp[-8].integer,
-- yyvsp[-5].str, yyvsp[-4].str,
-- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerCpandaEditCmd((yyvsp[(1) - (9)].integer),
-+ (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
-+ (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
-+ (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyFormat)(yyvsp[(9) - (9)].integer));;}
- break;
-
- case 596:
- #line 1465 "parser.Y"
-- {FRB->markerPolygonResetCmd(yyvsp[-6].integer, Vector(yyvsp[-3].real,yyvsp[-2].real),
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerPolygonResetCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
-+ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
- break;
-
- case 597:
- #line 1469 "parser.Y"
-- {FRB->markerProjectionCmd(yyvsp[-9].integer, Vector(yyvsp[-5].vector), Vector(yyvsp[-4].vector),
-- (CoordSystem)yyvsp[-7].integer, (SkyFrame)yyvsp[-6].integer, yyvsp[-3].real, yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerProjectionCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(5) - (10)].vector)), Vector((yyvsp[(6) - (10)].vector)),
-+ (CoordSystem)(yyvsp[(3) - (10)].integer), (SkyFrame)(yyvsp[(4) - (10)].integer), (yyvsp[(7) - (10)].real), (yyvsp[(8) - (10)].integer),
-+ (CoordSystem)(yyvsp[(9) - (10)].integer), (SkyFormat)(yyvsp[(10) - (10)].integer));;}
- break;
-
- case 598:
- #line 1473 "parser.Y"
-- {FRB->markerProjectionSystemCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerProjectionSystemCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFrame)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 599:
- #line 1475 "parser.Y"
-- {FRB->markerPropertyCmd(yyvsp[-3].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->markerPropertyCmd((yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 600:
- #line 1476 "parser.Y"
-- {FRB->markerRotateBeginCmd(yyvsp[-2].integer);;}
-+ {FRB->markerRotateBeginCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 601:
- #line 1478 "parser.Y"
-- {FRB->markerRulerPointCmd(yyvsp[-6].integer, Vector(yyvsp[-1].vector), Vector(yyvsp[0].vector),
-- (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer);;}
-+ {FRB->markerRulerPointCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)),
-+ (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer));;}
- break;
-
- case 602:
- #line 1481 "parser.Y"
-- {FRB->markerRulerSystemCmd(yyvsp[-6].integer, (CoordSystem)yyvsp[-3].integer, (SkyFrame)yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->markerRulerSystemCmd((yyvsp[(1) - (7)].integer), (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer),
-+ (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFormat)(yyvsp[(7) - (7)].integer));;}
- break;
-
- case 603:
- #line 1483 "parser.Y"
-- {FRB->markerSelectCmd(yyvsp[-1].integer);;}
-+ {FRB->markerSelectCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 604:
- #line 1484 "parser.Y"
-- {FRB->markerSelectOnlyCmd(yyvsp[-2].integer);;}
-+ {FRB->markerSelectOnlyCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 605:
- #line 1485 "parser.Y"
-- {FRB->markerTagCmd(yyvsp[-2].integer,yyvsp[0].str);;}
-+ {FRB->markerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 606:
- #line 1486 "parser.Y"
-- {FRB->markerTextCmd(yyvsp[-2].integer,yyvsp[0].str);;}
-+ {FRB->markerTextCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 607:
- #line 1487 "parser.Y"
-- {FRB->markerUnhighliteCmd(yyvsp[-1].integer);;}
-+ {FRB->markerUnhighliteCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 608:
- #line 1488 "parser.Y"
-- {FRB->markerUnselectCmd(yyvsp[-1].integer);;}
-+ {FRB->markerUnselectCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 609:
- #line 1489 "parser.Y"
-- {FRB->markerVectorArrowCmd(yyvsp[-3].integer,yyvsp[0].integer);;}
-+ {FRB->markerVectorArrowCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 610:
- #line 1492 "parser.Y"
-- {FRB->markerVectorCmd(yyvsp[-9].integer, Vector(yyvsp[-4].vector), (CoordSystem)yyvsp[-6].integer, (SkyFrame)yyvsp[-5].integer,
-- yyvsp[-1].real, (CoordSystem)yyvsp[-3].integer, (SkyFormat)yyvsp[-2].integer, yyvsp[0].real);;}
-+ {FRB->markerVectorCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(6) - (10)].vector)), (CoordSystem)(yyvsp[(4) - (10)].integer), (SkyFrame)(yyvsp[(5) - (10)].integer),
-+ (yyvsp[(9) - (10)].real), (CoordSystem)(yyvsp[(7) - (10)].integer), (SkyFormat)(yyvsp[(8) - (10)].integer), (yyvsp[(10) - (10)].real));;}
- break;
-
- case 611:
- #line 1494 "parser.Y"
-- {FRB->markerLineWidthCmd(yyvsp[-2].integer,yyvsp[0].integer);;}
-+ {FRB->markerLineWidthCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 612:
-@@ -6671,37 +7004,37 @@
-
- case 613:
- #line 1498 "parser.Y"
-- {FRB->markerHighliteOnlyCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerHighliteOnlyCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 614:
- #line 1500 "parser.Y"
-- {FRB->markerHighliteToggleCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerHighliteToggleCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 618:
- #line 1505 "parser.Y"
-- {FRB->markerPreserveCmd(yyvsp[0].integer);;}
-+ {FRB->markerPreserveCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 619:
- #line 1506 "parser.Y"
-- {FRB->markerPropertyCmd(yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->markerPropertyCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 620:
- #line 1508 "parser.Y"
-- {FRB->markerPropertyCmd(yyvsp[-3].integer,yyvsp[-2].integer,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerPropertyCmd((yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
- break;
-
- case 621:
- #line 1510 "parser.Y"
-- {FRB->markerRotateBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerRotateBeginCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 622:
- #line 1512 "parser.Y"
-- {FRB->markerRotateMotionCmd(Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
-+ {FRB->markerRotateMotionCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real)),(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 623:
-@@ -6711,108 +7044,108 @@
-
- case 624:
- #line 1515 "parser.Y"
-- {FRB->markerSaveCmd(yyvsp[-6].str, (FrameBase::MarkerFormat)yyvsp[-5].integer,
-- (CoordSystem)yyvsp[-4].integer, (SkyFrame)yyvsp[-3].integer, (SkyFormat)yyvsp[-2].integer, yyvsp[-1].integer, yyvsp[0].integer);;}
-+ {FRB->markerSaveCmd((yyvsp[(2) - (8)].str), (FrameBase::MarkerFormat)(yyvsp[(3) - (8)].integer),
-+ (CoordSystem)(yyvsp[(4) - (8)].integer), (SkyFrame)(yyvsp[(5) - (8)].integer), (SkyFormat)(yyvsp[(6) - (8)].integer), (yyvsp[(7) - (8)].integer), (yyvsp[(8) - (8)].integer));;}
- break;
-
- case 625:
- #line 1517 "parser.Y"
-- {FRB->markerSaveTemplateCmd(yyvsp[0].str);;}
-+ {FRB->markerSaveTemplateCmd((yyvsp[(3) - (3)].str));;}
- break;
-
- case 627:
- #line 1520 "parser.Y"
-- {FRB->markerShowCmd(yyvsp[0].integer);;}
-+ {FRB->markerShowCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 628:
- #line 1522 "parser.Y"
-- {FRB->markerColorCmd(yyvsp[-2].str,yyvsp[0].str);;}
-+ {FRB->markerColorCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 629:
- #line 1523 "parser.Y"
-- {FRB->markerCopyCmd(yyvsp[-1].str);;}
-+ {FRB->markerCopyCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 630:
- #line 1524 "parser.Y"
-- {FRB->markerDeleteCmd(yyvsp[-1].str);;}
-+ {FRB->markerDeleteCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 631:
- #line 1525 "parser.Y"
-- {FRB->markerCutCmd(yyvsp[-1].str);;}
-+ {FRB->markerCutCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 632:
- #line 1526 "parser.Y"
-- {FRB->markerFontCmd(yyvsp[-2].str,yyvsp[0].str);;}
-+ {FRB->markerFontCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 633:
- #line 1527 "parser.Y"
-- {FRB->markerHighliteCmd(yyvsp[-1].str);;}
-+ {FRB->markerHighliteCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 634:
- #line 1528 "parser.Y"
-- {FRB->markerHighliteOnlyCmd(yyvsp[-2].str);;}
-+ {FRB->markerHighliteOnlyCmd((yyvsp[(1) - (3)].str));;}
- break;
-
- case 635:
- #line 1529 "parser.Y"
-- {FRB->markerMoveCmd(yyvsp[-3].str,Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerMoveCmd((yyvsp[(1) - (4)].str),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 636:
- #line 1530 "parser.Y"
-- {FRB->markerFrontCmd(yyvsp[-2].str);;}
-+ {FRB->markerFrontCmd((yyvsp[(1) - (3)].str));;}
- break;
-
- case 637:
- #line 1531 "parser.Y"
-- {FRB->markerBackCmd(yyvsp[-2].str);;}
-+ {FRB->markerBackCmd((yyvsp[(1) - (3)].str));;}
- break;
-
- case 638:
- #line 1533 "parser.Y"
-- {FRB->markerMoveToCmd(yyvsp[-5].str,Vector(yyvsp[0].vector),(CoordSystem)yyvsp[-2].integer,(SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->markerMoveToCmd((yyvsp[(1) - (6)].str),Vector((yyvsp[(6) - (6)].vector)),(CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
- break;
-
- case 639:
- #line 1535 "parser.Y"
-- {FRB->markerPropertyCmd(yyvsp[-3].str,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->markerPropertyCmd((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 640:
- #line 1536 "parser.Y"
-- {FRB->markerSelectCmd(yyvsp[-1].str);;}
-+ {FRB->markerSelectCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 641:
- #line 1537 "parser.Y"
-- {FRB->markerSelectOnlyCmd(yyvsp[-2].str);;}
-+ {FRB->markerSelectOnlyCmd((yyvsp[(1) - (3)].str));;}
- break;
-
- case 642:
- #line 1538 "parser.Y"
-- {FRB->markerUnhighliteCmd(yyvsp[-1].str);;}
-+ {FRB->markerUnhighliteCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 643:
- #line 1539 "parser.Y"
-- {FRB->markerUnselectCmd(yyvsp[-1].str);;}
-+ {FRB->markerUnselectCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 644:
- #line 1541 "parser.Y"
-- {FRB->markerTagEditCmd(yyvsp[-1].str,yyvsp[0].str);;}
-+ {FRB->markerTagEditCmd((yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
- break;
-
- case 645:
- #line 1542 "parser.Y"
-- {FRB->markerTagDeleteCmd(yyvsp[0].str);;}
-+ {FRB->markerTagDeleteCmd((yyvsp[(3) - (3)].str));;}
- break;
-
- case 646:
-@@ -6822,12 +7155,12 @@
-
- case 647:
- #line 1544 "parser.Y"
-- {FRB->markerTagCmd(yyvsp[0].str);;}
-+ {FRB->markerTagCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 648:
- #line 1545 "parser.Y"
-- {FRB->markerTagUpdateCmd(yyvsp[0].str);;}
-+ {FRB->markerTagUpdateCmd((yyvsp[(3) - (3)].str));;}
- break;
-
- case 649:
-@@ -6837,7 +7170,7 @@
-
- case 650:
- #line 1549 "parser.Y"
-- {FRB->markerPasteCmd((CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerPasteCmd((CoordSystem)(yyvsp[(2) - (3)].integer),(SkyFrame)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 651:
-@@ -6857,197 +7190,197 @@
-
- case 654:
- #line 1553 "parser.Y"
-- {FRB->markerLineWidthCmd(yyvsp[0].integer);;}
-+ {FRB->markerLineWidthCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 655:
- #line 1556 "parser.Y"
-- {yyval.integer = CallBack::SELECTCB;;}
-+ {(yyval.integer) = CallBack::SELECTCB;;}
- break;
-
- case 656:
- #line 1557 "parser.Y"
-- {yyval.integer = CallBack::UNSELECTCB;;}
-+ {(yyval.integer) = CallBack::UNSELECTCB;;}
- break;
-
- case 657:
- #line 1558 "parser.Y"
-- {yyval.integer = CallBack::HIGHLITECB;;}
-+ {(yyval.integer) = CallBack::HIGHLITECB;;}
- break;
-
- case 658:
- #line 1559 "parser.Y"
-- {yyval.integer = CallBack::UNHIGHLITECB;;}
-+ {(yyval.integer) = CallBack::UNHIGHLITECB;;}
- break;
-
- case 659:
- #line 1560 "parser.Y"
-- {yyval.integer = CallBack::MOVEBEGINCB;;}
-+ {(yyval.integer) = CallBack::MOVEBEGINCB;;}
- break;
-
- case 660:
- #line 1561 "parser.Y"
-- {yyval.integer = CallBack::MOVECB;;}
-+ {(yyval.integer) = CallBack::MOVECB;;}
- break;
-
- case 661:
- #line 1562 "parser.Y"
-- {yyval.integer = CallBack::MOVEENDCB;;}
-+ {(yyval.integer) = CallBack::MOVEENDCB;;}
- break;
-
- case 662:
- #line 1563 "parser.Y"
-- {yyval.integer = CallBack::EDITBEGINCB;;}
-+ {(yyval.integer) = CallBack::EDITBEGINCB;;}
- break;
-
- case 663:
- #line 1564 "parser.Y"
-- {yyval.integer = CallBack::EDITCB;;}
-+ {(yyval.integer) = CallBack::EDITCB;;}
- break;
-
- case 664:
- #line 1565 "parser.Y"
-- {yyval.integer = CallBack::EDITENDCB;;}
-+ {(yyval.integer) = CallBack::EDITENDCB;;}
- break;
-
- case 665:
- #line 1566 "parser.Y"
-- {yyval.integer = CallBack::ROTATEBEGINCB;;}
-+ {(yyval.integer) = CallBack::ROTATEBEGINCB;;}
- break;
-
- case 666:
- #line 1567 "parser.Y"
-- {yyval.integer = CallBack::ROTATECB;;}
-+ {(yyval.integer) = CallBack::ROTATECB;;}
- break;
-
- case 667:
- #line 1568 "parser.Y"
-- {yyval.integer = CallBack::ROTATEENDCB;;}
-+ {(yyval.integer) = CallBack::ROTATEENDCB;;}
- break;
-
- case 668:
- #line 1569 "parser.Y"
-- {yyval.integer = CallBack::DELETECB;;}
-+ {(yyval.integer) = CallBack::DELETECB;;}
- break;
-
- case 669:
- #line 1570 "parser.Y"
-- {yyval.integer = CallBack::TEXTCB;;}
-+ {(yyval.integer) = CallBack::TEXTCB;;}
- break;
-
- case 670:
- #line 1571 "parser.Y"
-- {yyval.integer = CallBack::COLORCB;;}
-+ {(yyval.integer) = CallBack::COLORCB;;}
- break;
-
- case 671:
- #line 1572 "parser.Y"
-- {yyval.integer = CallBack::LINEWIDTHCB;;}
-+ {(yyval.integer) = CallBack::LINEWIDTHCB;;}
- break;
-
- case 672:
- #line 1573 "parser.Y"
-- {yyval.integer = CallBack::PROPERTYCB;;}
-+ {(yyval.integer) = CallBack::PROPERTYCB;;}
- break;
-
- case 673:
- #line 1574 "parser.Y"
-- {yyval.integer = CallBack::FONTCB;;}
-+ {(yyval.integer) = CallBack::FONTCB;;}
- break;
-
- case 674:
- #line 1575 "parser.Y"
-- {yyval.integer = CallBack::UPDATECB;;}
-+ {(yyval.integer) = CallBack::UPDATECB;;}
- break;
-
- case 675:
- #line 1582 "parser.Y"
-- {FRB->createCircleCmd(Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(),
-- yyvsp[-1].real,
-+ {FRB->createCircleCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(4) - (5)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 676:
- #line 1589 "parser.Y"
-- {FRB->createAnnulusCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
-- yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].integer,
-+ {FRB->createAnnulusCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].integer),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 677:
- #line 1597 "parser.Y"
-- {FRB->createCpandaCmd(Vector(yyvsp[-8].real,yyvsp[-7].real)*FRB->getCanvasToRef(),
-- yyvsp[-6].real,yyvsp[-5].real,yyvsp[-4].integer,
-- yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].integer,
-+ {FRB->createCpandaCmd(Vector((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].integer),
-+ (yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].integer),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 678:
- #line 1607 "parser.Y"
-- {FRB->createEllipseCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-3].real,yyvsp[-2].real),
-- yyvsp[-1].real,
-+ {FRB->createEllipseCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
-+ (yyvsp[(6) - (7)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 679:
- #line 1616 "parser.Y"
-- {FRB->createEllipseAnnulusCmd(Vector(yyvsp[-7].real,yyvsp[-6].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-5].real,yyvsp[-4].real),
-- Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
-- yyvsp[-1].real,
-+ {FRB->createEllipseAnnulusCmd(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),
-+ Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
-+ (yyvsp[(8) - (9)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 680:
- #line 1627 "parser.Y"
-- {FRB->createEpandaCmd(Vector(yyvsp[-10].real,yyvsp[-9].real)*FRB->getCanvasToRef(),
-- yyvsp[-8].real,yyvsp[-7].real,yyvsp[-6].integer,
-- Vector(yyvsp[-5].real,yyvsp[-4].real),
-- Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
-- yyvsp[-1].real,
-+ {FRB->createEpandaCmd(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
-+ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
-+ Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
-+ (yyvsp[(11) - (12)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 681:
- #line 1639 "parser.Y"
-- {FRB->createBoxCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-3].real,yyvsp[-2].real),
-- yyvsp[-1].real,
-+ {FRB->createBoxCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
-+ (yyvsp[(6) - (7)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 682:
- #line 1648 "parser.Y"
-- {FRB->createBoxAnnulusCmd(Vector(yyvsp[-7].real,yyvsp[-6].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
-- yyvsp[-1].real,
-+ {FRB->createBoxAnnulusCmd(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
-+ (yyvsp[(8) - (9)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 683:
- #line 1658 "parser.Y"
-- {FRB->createBpandaCmd(Vector(yyvsp[-10].real,yyvsp[-9].real)*FRB->getCanvasToRef(),
-- yyvsp[-8].real,yyvsp[-7].real,yyvsp[-6].integer,
-- Vector(yyvsp[-5].real,yyvsp[-4].real),
-- Vector(yyvsp[-3].real,yyvsp[-3].real*yyvsp[-5].real/yyvsp[-4].real),yyvsp[-2].integer,
-- yyvsp[-1].real,
-+ {FRB->createBpandaCmd(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
-+ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
-+ Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
-+ (yyvsp[(11) - (12)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 684:
- #line 1669 "parser.Y"
-- {FRB->createLineCmd(Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createLineCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real))*FRB->getCanvasToRef(),
- 0, 0,
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
-@@ -7055,8 +7388,8 @@
-
- case 685:
- #line 1677 "parser.Y"
-- {FRB->createVectCmd(Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createVectCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real))*FRB->getCanvasToRef(),
- 1,
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
-@@ -7064,9 +7397,9 @@
-
- case 686:
- #line 1686 "parser.Y"
-- {FRB->createProjectionCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(),
-- yyvsp[-1].real,
-+ {FRB->createProjectionCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(6) - (7)].real),
- NULL,NULL,
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
-@@ -7074,94 +7407,94 @@
-
- case 687:
- #line 1697 "parser.Y"
-- {FRB->createProjectionCmd(Vector(yyvsp[-7].real,yyvsp[-6].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
-- yyvsp[-3].real,
-- yyvsp[-2].str,yyvsp[-1].str,
-+ {FRB->createProjectionCmd(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(6) - (9)].real),
-+ (yyvsp[(7) - (9)].str),(yyvsp[(8) - (9)].str),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 688:
- #line 1707 "parser.Y"
-- {FRB->createRulerCmd(Vector(yyvsp[-6].real,yyvsp[-5].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
-- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer, PHYSICAL, DEGREES,
-+ {FRB->createRulerCmd(Vector((yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real))*FRB->getCanvasToRef(),
-+ (CoordSystem)(yyvsp[(6) - (8)].integer), (SkyFrame)(yyvsp[(7) - (8)].integer), PHYSICAL, DEGREES,
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 689:
- #line 1715 "parser.Y"
-- {FRB->createCirclePointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createCirclePointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 690:
- #line 1720 "parser.Y"
-- {FRB->createBoxPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createBoxPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 691:
- #line 1725 "parser.Y"
-- {FRB->createDiamondPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createDiamondPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 692:
- #line 1730 "parser.Y"
-- {FRB->createCrossPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createCrossPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 693:
- #line 1735 "parser.Y"
-- {FRB->createExPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createExPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 694:
- #line 1740 "parser.Y"
-- {FRB->createArrowPointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createArrowPointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 695:
- #line 1745 "parser.Y"
-- {FRB->createBoxCirclePointCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(),
-+ {FRB->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real))*FRB->getCanvasToRef(),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 696:
- #line 1752 "parser.Y"
-- {FRB->createTextCmd(Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(),
-- yyvsp[-1].real,
-+ {FRB->createTextCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(4) - (5)].real),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 697:
- #line 1760 "parser.Y"
-- {FRB->createPolygonCmd(Vector(yyvsp[-4].real,yyvsp[-3].real)*FRB->getCanvasToRef(),
-- Vector(yyvsp[-2].real,yyvsp[-1].real),
-+ {FRB->createPolygonCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real))*FRB->getCanvasToRef(),
-+ Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-
- case 698:
- #line 1769 "parser.Y"
-- {FRB->createCompassCmd(Vector(yyvsp[-5].real,yyvsp[-4].real)*FRB->getCanvasToRef(),
-- yyvsp[-3].real,
-+ {FRB->createCompassCmd(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real))*FRB->getCanvasToRef(),
-+ (yyvsp[(4) - (7)].real),
- "N", "E", 1, 1,
-- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer,
-+ (CoordSystem)(yyvsp[(5) - (7)].integer), (SkyFrame)(yyvsp[(6) - (7)].integer),
- currentColor,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
- break;
-@@ -7175,22 +7508,22 @@
-
- case 700:
- #line 1782 "parser.Y"
-- {FRB->createTemplateCmd(Vector(yyvsp[-2].real,yyvsp[-1].real)*FRB->getCanvasToRef(), yyvsp[0].str);;}
-+ {FRB->createTemplateCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real))*FRB->getCanvasToRef(), (yyvsp[(4) - (4)].str));;}
- break;
-
- case 701:
- #line 1785 "parser.Y"
-- {FRB->createTemplateVarCmd(Vector(yyvsp[-3].real,yyvsp[-2].real)*FRB->getCanvasToRef(), yyvsp[0].str);;}
-+ {FRB->createTemplateVarCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real))*FRB->getCanvasToRef(), (yyvsp[(5) - (5)].str));;}
- break;
-
- case 702:
- #line 1789 "parser.Y"
-- {FRB->markerEditBeginCmd(Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
-+ {FRB->markerEditBeginCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 703:
- #line 1791 "parser.Y"
-- {FRB->markerEditMotionCmd(Vector(yyvsp[-2].real,yyvsp[-1].real),yyvsp[0].integer);;}
-+ {FRB->markerEditMotionCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 704:
-@@ -7200,32 +7533,32 @@
-
- case 705:
- #line 1795 "parser.Y"
-- {yyval.integer = FrameBase::DS9;;}
-+ {(yyval.integer) = FrameBase::DS9;;}
- break;
-
- case 706:
- #line 1796 "parser.Y"
-- {yyval.integer = FrameBase::CIAO;;}
-+ {(yyval.integer) = FrameBase::CIAO;;}
- break;
-
- case 707:
- #line 1797 "parser.Y"
-- {yyval.integer = FrameBase::SAOTNG;;}
-+ {(yyval.integer) = FrameBase::SAOTNG;;}
- break;
-
- case 708:
- #line 1798 "parser.Y"
-- {yyval.integer = FrameBase::SAOIMAGE;;}
-+ {(yyval.integer) = FrameBase::SAOIMAGE;;}
- break;
-
- case 709:
- #line 1799 "parser.Y"
-- {yyval.integer = FrameBase::PROS;;}
-+ {(yyval.integer) = FrameBase::PROS;;}
- break;
-
- case 710:
- #line 1800 "parser.Y"
-- {yyval.integer = FrameBase::RAWXY;;}
-+ {(yyval.integer) = FrameBase::RAWXY;;}
- break;
-
- case 711:
-@@ -7240,12 +7573,12 @@
-
- case 713:
- #line 1805 "parser.Y"
-- {FRB->getMarkerHandleCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->getMarkerHandleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 714:
- #line 1806 "parser.Y"
-- {FRB->getMarkerIdCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->getMarkerIdCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 715:
-@@ -7255,220 +7588,220 @@
-
- case 716:
- #line 1809 "parser.Y"
-- {FRB->getMarkerAngleCmd(yyvsp[-3].integer,(CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->getMarkerAngleCmd((yyvsp[(1) - (4)].integer),(CoordSystem)(yyvsp[(3) - (4)].integer), (SkyFrame)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 717:
- #line 1811 "parser.Y"
-- {FRB->getMarkerAnnulusRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 718:
- #line 1813 "parser.Y"
-- {FRB->getMarkerBoxAnnulusRadiusCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 719:
- #line 1815 "parser.Y"
-- {FRB->getMarkerBoxRadiusCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerBoxRadiusCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 720:
- #line 1817 "parser.Y"
-- {FRB->getMarkerBpandaAnglesCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->getMarkerBpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 721:
- #line 1819 "parser.Y"
-- {FRB->getMarkerBpandaRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerBpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 722:
- #line 1821 "parser.Y"
-- {FRB->getMarkerCenterCmd(yyvsp[-4].integer,
-- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerCenterCmd((yyvsp[(1) - (5)].integer),
-+ (CoordSystem)(yyvsp[(3) - (5)].integer), (SkyFrame)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 723:
- #line 1824 "parser.Y"
-- {FRB->getMarkerCircleRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 724:
- #line 1825 "parser.Y"
-- {FRB->getMarkerColorCmd(yyvsp[-1].integer);;}
-+ {FRB->getMarkerColorCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 725:
- #line 1826 "parser.Y"
-- {FRB->getMarkerCompassArrowCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerCompassArrowCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 726:
- #line 1827 "parser.Y"
-- {FRB->getMarkerCompassLabelCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerCompassLabelCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 727:
- #line 1828 "parser.Y"
-- {FRB->getMarkerCompassSystemCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerCompassSystemCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 728:
- #line 1830 "parser.Y"
-- {FRB->getMarkerEllipseRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerEllipseRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 729:
- #line 1832 "parser.Y"
-- {FRB->getMarkerEllipseAnnulusRadiusCmd(yyvsp[-4].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),
-+ (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 730:
- #line 1835 "parser.Y"
-- {FRB->getMarkerEpandaAnglesCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->getMarkerEpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 731:
- #line 1837 "parser.Y"
-- {FRB->getMarkerEpandaRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerEpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 732:
- #line 1838 "parser.Y"
-- {FRB->getMarkerFontCmd(yyvsp[-1].integer);;}
-+ {FRB->getMarkerFontCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 733:
- #line 1839 "parser.Y"
-- {FRB->getMarkerLineArrowCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerLineArrowCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 734:
- #line 1841 "parser.Y"
-- {FRB->getMarkerLineLengthCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerLineLengthCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 735:
- #line 1843 "parser.Y"
-- {FRB->getMarkerLineCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
-- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerLineCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
-+ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 736:
- #line 1846 "parser.Y"
-- {FRB->getMarkerMapLenFromRefCmd(yyvsp[-5].integer, yyvsp[-2].real,
-- (CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerMapLenFromRefCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real),
-+ (CoordSystem)(yyvsp[(5) - (6)].integer),(SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 737:
- #line 1849 "parser.Y"
-- {FRB->getMarkerCpandaAnglesCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFrame)yyvsp[0].integer);;}
-+ {FRB->getMarkerCpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 738:
- #line 1851 "parser.Y"
-- {FRB->getMarkerCpandaRadiusCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerCpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 739:
- #line 1853 "parser.Y"
-- {FRB->getMarkerProjectionCmd(yyvsp[-5].integer,yyvsp[-3].str,yyvsp[-2].str,yyvsp[-1].str,yyvsp[0].str);;}
-+ {FRB->getMarkerProjectionCmd((yyvsp[(1) - (6)].integer),(yyvsp[(3) - (6)].str),(yyvsp[(4) - (6)].str),(yyvsp[(5) - (6)].str),(yyvsp[(6) - (6)].str));;}
- break;
-
- case 740:
- #line 1855 "parser.Y"
-- {FRB->getMarkerProjectionPointsCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
-- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerProjectionPointsCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
-+ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 741:
- #line 1858 "parser.Y"
-- {FRB->getMarkerProjectionLengthCmd(yyvsp[-4].integer,
-- (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerProjectionLengthCmd((yyvsp[(1) - (5)].integer),
-+ (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 742:
- #line 1860 "parser.Y"
-- {FRB->getMarkerProjectionMethodCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerProjectionMethodCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 743:
- #line 1862 "parser.Y"
-- {FRB->getMarkerProjectionWidthCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerProjectionWidthCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 744:
- #line 1863 "parser.Y"
-- {FRB->getMarkerProjectionSystemCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerProjectionSystemCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 745:
- #line 1864 "parser.Y"
-- {FRB->getMarkerPropertyCmd(yyvsp[-1].integer);;}
-+ {FRB->getMarkerPropertyCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 746:
- #line 1865 "parser.Y"
-- {FRB->getMarkerPropertyCmd(yyvsp[-2].integer,yyvsp[0].integer);;}
-+ {FRB->getMarkerPropertyCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 747:
- #line 1867 "parser.Y"
-- {FRB->getMarkerRulerLengthCmd(yyvsp[-4].integer,(CoordSystem)yyvsp[-1].integer,(SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerRulerLengthCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 748:
- #line 1869 "parser.Y"
-- {FRB->getMarkerRulerPointCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
-- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerRulerPointCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
-+ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 749:
- #line 1871 "parser.Y"
-- {FRB->getMarkerRulerSystemCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerRulerSystemCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 750:
- #line 1872 "parser.Y"
-- {FRB->getMarkerTagCmd(yyvsp[-1].integer);;}
-+ {FRB->getMarkerTagCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 751:
- #line 1873 "parser.Y"
-- {FRB->getMarkerTagCmd(yyvsp[-2].integer,yyvsp[0].integer);;}
-+ {FRB->getMarkerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 752:
- #line 1874 "parser.Y"
-- {FRB->getMarkerTextCmd(yyvsp[-1].integer);;}
-+ {FRB->getMarkerTextCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 753:
- #line 1875 "parser.Y"
-- {FRB->getMarkerTypeCmd(yyvsp[-1].integer);;}
-+ {FRB->getMarkerTypeCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 754:
- #line 1876 "parser.Y"
-- {FRB->getMarkerVectorArrowCmd(yyvsp[-2].integer);;}
-+ {FRB->getMarkerVectorArrowCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 755:
- #line 1878 "parser.Y"
-- {FRB->getMarkerVectorLengthCmd(yyvsp[-4].integer, (CoordSystem)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerVectorLengthCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFormat)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 756:
- #line 1880 "parser.Y"
-- {FRB->getMarkerVectorCmd(yyvsp[-5].integer, (CoordSystem)yyvsp[-2].integer,
-- (SkyFrame)yyvsp[-1].integer, (SkyFormat)yyvsp[0].integer);;}
-+ {FRB->getMarkerVectorCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
-+ (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 757:
- #line 1882 "parser.Y"
-- {FRB->getMarkerLineWidthCmd(yyvsp[-1].integer);;}
-+ {FRB->getMarkerLineWidthCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 759:
-@@ -7478,7 +7811,7 @@
-
- case 760:
- #line 1886 "parser.Y"
-- {FRB->getMarkerPolygonSegmentCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->getMarkerPolygonSegmentCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 761:
-@@ -7488,7 +7821,7 @@
-
- case 762:
- #line 1888 "parser.Y"
-- {FRB->getMarkerPropertyCmd(yyvsp[0].integer);;}
-+ {FRB->getMarkerPropertyCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 764:
-@@ -7503,27 +7836,27 @@
-
- case 766:
- #line 1894 "parser.Y"
-- {FRB->getMarkerColorCmd(yyvsp[-1].str);;}
-+ {FRB->getMarkerColorCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 767:
- #line 1895 "parser.Y"
-- {FRB->getMarkerFontCmd(yyvsp[-1].str);;}
-+ {FRB->getMarkerFontCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 768:
- #line 1896 "parser.Y"
-- {FRB->getMarkerPropertyCmd(yyvsp[-2].str,yyvsp[0].integer);;}
-+ {FRB->getMarkerPropertyCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 769:
- #line 1897 "parser.Y"
-- {FRB->getMarkerTagCmd(yyvsp[-1].str);;}
-+ {FRB->getMarkerTagCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 770:
- #line 1898 "parser.Y"
-- {FRB->getMarkerTagNumberCmd(yyvsp[-2].str);;}
-+ {FRB->getMarkerTagNumberCmd((yyvsp[(1) - (3)].str));;}
- break;
-
- case 771:
-@@ -7548,7 +7881,7 @@
-
- case 775:
- #line 1907 "parser.Y"
-- {FRB->getMarkerSelectedCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->getMarkerSelectedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 776:
-@@ -7558,7 +7891,7 @@
-
- case 777:
- #line 1911 "parser.Y"
-- {FRB->getMarkerHighlitedCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->getMarkerHighlitedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 778:
-@@ -7591,48 +7924,48 @@
-
- case 782:
- #line 1932 "parser.Y"
-- {FRB->markerListCmd((FrameBase::MarkerFormat)yyvsp[-7].integer,
-- (CoordSystem)yyvsp[-6].integer, (SkyFrame)yyvsp[-5].integer, (SkyFormat)yyvsp[-4].integer, yyvsp[-3].integer, yyvsp[-2].integer,
-+ {FRB->markerListCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (8)].integer),
-+ (CoordSystem)(yyvsp[(2) - (8)].integer), (SkyFrame)(yyvsp[(3) - (8)].integer), (SkyFormat)(yyvsp[(4) - (8)].integer), (yyvsp[(5) - (8)].integer), (yyvsp[(6) - (8)].integer),
- 0, propQMask, propQValue, taglist);;}
- break;
-
- case 783:
- #line 1937 "parser.Y"
-- {FRB->markerListCmd((FrameBase::MarkerFormat)yyvsp[-7].integer,
-- (CoordSystem)yyvsp[-6].integer, (SkyFrame)yyvsp[-5].integer, (SkyFormat)yyvsp[-4].integer, yyvsp[-3].integer, yyvsp[-2].integer,
-+ {FRB->markerListCmd((FrameBase::MarkerFormat)(yyvsp[(2) - (9)].integer),
-+ (CoordSystem)(yyvsp[(3) - (9)].integer), (SkyFrame)(yyvsp[(4) - (9)].integer), (SkyFormat)(yyvsp[(5) - (9)].integer), (yyvsp[(6) - (9)].integer), (yyvsp[(7) - (9)].integer),
- 1, propQMask, propQValue, taglist);;}
- break;
-
- case 784:
- #line 1943 "parser.Y"
-- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-1].integer,yyvsp[0].str);;}
-+ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;}
- break;
-
- case 785:
- #line 1945 "parser.Y"
-- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-3].integer,yyvsp[-2].str,
-- (CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].str),
-+ (CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 786:
- #line 1948 "parser.Y"
-- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 787:
- #line 1950 "parser.Y"
-- {FRB->markerLoadCmd((FrameBase::MarkerFormat)yyvsp[-3].integer,yyvsp[-2].integer,
-- (CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
-+ {FRB->markerLoadCmd((FrameBase::MarkerFormat)(yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].integer),
-+ (CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 788:
- #line 1953 "parser.Y"
-- {FRB->markerLoadFitsCmd(yyvsp[-3].str, yyvsp[-2].str, yyvsp[-1].integer, yyvsp[0].str);;}
-+ {FRB->markerLoadFitsCmd((yyvsp[(2) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(4) - (5)].integer), (yyvsp[(5) - (5)].str));;}
- break;
-
- case 789:
- #line 1956 "parser.Y"
-- {FRB->markerMoveCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerMoveCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 790:
-@@ -7647,12 +7980,12 @@
-
- case 792:
- #line 1959 "parser.Y"
-- {FRB->markerMoveBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerMoveBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 793:
- #line 1960 "parser.Y"
-- {FRB->markerMoveMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerMoveMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 794:
-@@ -7662,82 +7995,82 @@
-
- case 795:
- #line 1963 "parser.Y"
-- {FRB->markerMoveToCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->markerMoveToCmd(Vector((yyvsp[(4) - (4)].vector)), (CoordSystem)(yyvsp[(2) - (4)].integer), (SkyFrame)(yyvsp[(3) - (4)].integer));;}
- break;
-
- case 798:
- #line 1970 "parser.Y"
-- {setProps(¤tProps,yyvsp[-2].integer,yyvsp[0].integer);;}
-+ {setProps(¤tProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 799:
- #line 1971 "parser.Y"
-- {strncpy(currentColor,yyvsp[0].str,16);;}
-+ {strncpy(currentColor,(yyvsp[(3) - (3)].str),16);;}
- break;
-
- case 800:
- #line 1972 "parser.Y"
-- {currentWidth = yyvsp[0].integer;;}
-+ {currentWidth = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 801:
- #line 1973 "parser.Y"
-- {strncpy(currentFont,yyvsp[0].str,32);;}
-+ {strncpy(currentFont,(yyvsp[(3) - (3)].str),32);;}
- break;
-
- case 802:
- #line 1974 "parser.Y"
-- {strncpy(currentText,yyvsp[0].str,80);;}
-+ {strncpy(currentText,(yyvsp[(3) - (3)].str),80);;}
- break;
-
- case 805:
- #line 1979 "parser.Y"
-- {yyval.integer = Marker::NONE;;}
-+ {(yyval.integer) = Marker::NONE;;}
- break;
-
- case 806:
- #line 1980 "parser.Y"
-- {yyval.integer = Marker::SELECT;;}
-+ {(yyval.integer) = Marker::SELECT;;}
- break;
-
- case 807:
- #line 1981 "parser.Y"
-- {yyval.integer = Marker::HIGHLITE;;}
-+ {(yyval.integer) = Marker::HIGHLITE;;}
- break;
-
- case 808:
- #line 1982 "parser.Y"
-- {yyval.integer = Marker::EDIT;;}
-+ {(yyval.integer) = Marker::EDIT;;}
- break;
-
- case 809:
- #line 1983 "parser.Y"
-- {yyval.integer = Marker::MOVE;;}
-+ {(yyval.integer) = Marker::MOVE;;}
- break;
-
- case 810:
- #line 1984 "parser.Y"
-- {yyval.integer = Marker::ROTATE;;}
-+ {(yyval.integer) = Marker::ROTATE;;}
- break;
-
- case 811:
- #line 1985 "parser.Y"
-- {yyval.integer = Marker::DELETE;;}
-+ {(yyval.integer) = Marker::DELETE;;}
- break;
-
- case 812:
- #line 1986 "parser.Y"
-- {yyval.integer = Marker::INCLUDE;;}
-+ {(yyval.integer) = Marker::INCLUDE;;}
- break;
-
- case 813:
- #line 1987 "parser.Y"
-- {yyval.integer = Marker::SOURCE;;}
-+ {(yyval.integer) = Marker::SOURCE;;}
- break;
-
- case 814:
- #line 1988 "parser.Y"
-- {yyval.integer = Marker::FIXED;;}
-+ {(yyval.integer) = Marker::FIXED;;}
- break;
-
- case 817:
-@@ -7757,7 +8090,7 @@
-
- case 821:
- #line 2000 "parser.Y"
-- {FRB->markerSelectOnlyCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerSelectOnlyCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 822:
-@@ -7767,12 +8100,12 @@
-
- case 823:
- #line 2002 "parser.Y"
-- {FRB->markerSelectToggleCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->markerSelectToggleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 826:
- #line 2010 "parser.Y"
-- {propQMask |= yyvsp[-2].integer; setProps(&propQValue,yyvsp[-2].integer,yyvsp[0].integer);;}
-+ {propQMask |= (yyvsp[(1) - (3)].integer); setProps(&propQValue,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 827:
-@@ -7787,13 +8120,13 @@
-
- case 832:
- #line 2021 "parser.Y"
-- {taglist.append(new Tag(yyvsp[0].str));;}
-+ {taglist.append(new Tag((yyvsp[(3) - (3)].str)));;}
- break;
-
- case 833:
- #line 2024 "parser.Y"
- {cblist.append(
-- new CallBack(FRB->getInterp(),(CallBack::Type)yyvsp[-2].integer,yyvsp[-1].str,yyvsp[0].str));;}
-+ new CallBack(FRB->getInterp(),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str)));;}
- break;
-
- case 834:
-@@ -7818,67 +8151,67 @@
-
- case 838:
- #line 2035 "parser.Y"
-- {FRB->panCmd(Vector(yyvsp[-3].real,yyvsp[-2].real),Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->panCmd(Vector((yyvsp[(1) - (4)].real),(yyvsp[(2) - (4)].real)),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 839:
- #line 2037 "parser.Y"
-- {FRB->panCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->panCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (InternalSystem)(yyvsp[(1) - (3)].integer));;}
- break;
-
- case 840:
- #line 2039 "parser.Y"
-- {FRB->panCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->panCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
- break;
-
- case 842:
- #line 2041 "parser.Y"
-- {FRB->panBBoxCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->panBBoxCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 844:
- #line 2043 "parser.Y"
-- {FRB->panPreserveCmd(yyvsp[0].integer);;}
-+ {FRB->panPreserveCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 845:
- #line 2047 "parser.Y"
-- {FRB->panToCmd(Vector(yyvsp[-1].real,yyvsp[0].real), (InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->panToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (InternalSystem)(yyvsp[(1) - (3)].integer));;}
- break;
-
- case 846:
- #line 2049 "parser.Y"
-- {FRB->panToCmd(Vector(yyvsp[0].vector), (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->panToCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
- break;
-
- case 847:
- #line 2052 "parser.Y"
-- {FRB->panMotionBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->panMotionBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 848:
- #line 2053 "parser.Y"
-- {FRB->panMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->panMotionCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 849:
- #line 2054 "parser.Y"
-- {FRB->panMotionEndCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->panMotionEndCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 850:
- #line 2057 "parser.Y"
-- {FRB->pannerCmd(yyvsp[0].integer);;}
-+ {FRB->pannerCmd((yyvsp[(1) - (1)].integer));;}
- break;
-
- case 851:
- #line 2059 "parser.Y"
-- {FRB->pannerCmd((CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
-+ {FRB->pannerCmd((CoordSystem)(yyvsp[(2) - (3)].integer),(SkyFrame)(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 852:
- #line 2060 "parser.Y"
-- {FRB->pannerCmd(yyvsp[-2].str, yyvsp[-1].integer, yyvsp[0].integer);;}
-+ {FRB->pannerCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 853:
-@@ -7888,47 +8221,47 @@
-
- case 854:
- #line 2065 "parser.Y"
-- {FRB->psColorSpaceCmd((Widget::PSColorSpace)yyvsp[0].integer);;}
-+ {FRB->psColorSpaceCmd((Widget::PSColorSpace)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 855:
- #line 2066 "parser.Y"
-- {FRB->psLevelCmd(yyvsp[0].integer);;}
-+ {FRB->psLevelCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 856:
- #line 2067 "parser.Y"
-- {FRB->psResolutionCmd(yyvsp[0].integer);;}
-+ {FRB->psResolutionCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 857:
- #line 2070 "parser.Y"
-- {yyval.integer = Widget::BW;;}
-+ {(yyval.integer) = Widget::BW;;}
- break;
-
- case 858:
- #line 2071 "parser.Y"
-- {yyval.integer = Widget::GRAY;;}
-+ {(yyval.integer) = Widget::GRAY;;}
- break;
-
- case 859:
- #line 2072 "parser.Y"
-- {yyval.integer = Widget::RGB;;}
-+ {(yyval.integer) = Widget::RGB;;}
- break;
-
- case 860:
- #line 2073 "parser.Y"
-- {yyval.integer = Widget::CMYK;;}
-+ {(yyval.integer) = Widget::CMYK;;}
- break;
-
- case 863:
- #line 2081 "parser.Y"
-- {FRB->regionHighliteBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->regionHighliteBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 864:
- #line 2083 "parser.Y"
-- {FRB->regionHighliteMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->regionHighliteMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 865:
-@@ -7943,12 +8276,12 @@
-
- case 867:
- #line 2089 "parser.Y"
-- {FRB->regionSelectBeginCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->regionSelectBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 868:
- #line 2090 "parser.Y"
-- {FRB->regionSelectMotionCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->regionSelectMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 869:
-@@ -7963,37 +8296,37 @@
-
- case 871:
- #line 2095 "parser.Y"
-- {FRB->setRGBChannelCmd(yyvsp[0].str);;}
-+ {FRB->setRGBChannelCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 872:
- #line 2096 "parser.Y"
-- {FRB->setRGBSystemCmd((CoordSystem)yyvsp[0].integer);;}
-+ {FRB->setRGBSystemCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 873:
- #line 2097 "parser.Y"
-- {FRB->setRGBViewCmd(yyvsp[-2].integer,yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->setRGBViewCmd((yyvsp[(2) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 874:
- #line 2100 "parser.Y"
-- {FRB->rotateCmd(degToRad(yyvsp[0].real));;}
-+ {FRB->rotateCmd(degToRad((yyvsp[(1) - (1)].real)));;}
- break;
-
- case 875:
- #line 2101 "parser.Y"
-- {FRB->rotateCmd(degToRad(yyvsp[-1].real));;}
-+ {FRB->rotateCmd(degToRad((yyvsp[(1) - (2)].real)));;}
- break;
-
- case 877:
- #line 2103 "parser.Y"
-- {FRB->rotateToCmd(degToRad(yyvsp[0].real));;}
-+ {FRB->rotateToCmd(degToRad((yyvsp[(2) - (2)].real)));;}
- break;
-
- case 878:
- #line 2104 "parser.Y"
-- {FRB->rotateToCmd(degToRad(yyvsp[-1].real));;}
-+ {FRB->rotateToCmd(degToRad((yyvsp[(2) - (3)].real)));;}
- break;
-
- case 879:
-@@ -8003,7 +8336,7 @@
-
- case 880:
- #line 2108 "parser.Y"
-- {FRB->rotateMotionCmd(degToRad(yyvsp[0].real));;}
-+ {FRB->rotateMotionCmd(degToRad((yyvsp[(1) - (1)].real)));;}
- break;
-
- case 881:
-@@ -8013,67 +8346,67 @@
-
- case 884:
- #line 2116 "parser.Y"
-- {FRB->saveArrayFileCmd(yyvsp[0].str);;}
-+ {FRB->saveArrayFileCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 885:
- #line 2117 "parser.Y"
-- {FRB->saveArrayChannelCmd(yyvsp[0].str);;}
-+ {FRB->saveArrayChannelCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 886:
- #line 2118 "parser.Y"
-- {FRB->saveArraySocketCmd(yyvsp[0].integer);;}
-+ {FRB->saveArraySocketCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 890:
- #line 2126 "parser.Y"
-- {FRB->saveFitsImageFileCmd(yyvsp[-1].str, yyvsp[0].integer);;}
-+ {FRB->saveFitsImageFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 891:
- #line 2127 "parser.Y"
-- {FRB->saveFitsImageChannelCmd(yyvsp[-1].str, yyvsp[0].integer);;}
-+ {FRB->saveFitsImageChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 892:
- #line 2128 "parser.Y"
-- {FRB->saveFitsImageSocketCmd(yyvsp[-1].integer, yyvsp[0].integer);;}
-+ {FRB->saveFitsImageSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 893:
- #line 2131 "parser.Y"
-- {FRB->saveFitsTableFileCmd(yyvsp[-1].str, yyvsp[0].integer);;}
-+ {FRB->saveFitsTableFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 894:
- #line 2132 "parser.Y"
-- {FRB->saveFitsTableChannelCmd(yyvsp[-1].str, yyvsp[0].integer);;}
-+ {FRB->saveFitsTableChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 895:
- #line 2133 "parser.Y"
-- {FRB->saveFitsTableSocketCmd(yyvsp[-1].integer, yyvsp[0].integer);;}
-+ {FRB->saveFitsTableSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 896:
- #line 2137 "parser.Y"
-- {FRB->saveFitsResampleFileCmd(yyvsp[-1].str, yyvsp[0].integer);;}
-+ {FRB->saveFitsResampleFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 897:
- #line 2139 "parser.Y"
-- {FRB->saveFitsResampleChannelCmd(yyvsp[-1].str, yyvsp[0].integer);;}
-+ {FRB->saveFitsResampleChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 898:
- #line 2141 "parser.Y"
-- {FRB->saveFitsResampleSocketCmd(yyvsp[-1].integer, yyvsp[0].integer);;}
-+ {FRB->saveFitsResampleSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
- break;
-
- case 899:
- #line 2145 "parser.Y"
-- {FRB->smoothCmd((FrameBase::SmoothFunction)yyvsp[-1].integer,yyvsp[0].integer);;}
-+ {FRB->smoothCmd((FrameBase::SmoothFunction)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
- break;
-
- case 900:
-@@ -8083,17 +8416,17 @@
-
- case 901:
- #line 2149 "parser.Y"
-- {yyval.integer = FrameBase::BOXCAR;;}
-+ {(yyval.integer) = FrameBase::BOXCAR;;}
- break;
-
- case 902:
- #line 2150 "parser.Y"
-- {yyval.integer = FrameBase::GAUSSIAN;;}
-+ {(yyval.integer) = FrameBase::GAUSSIAN;;}
- break;
-
- case 903:
- #line 2151 "parser.Y"
-- {yyval.integer = FrameBase::TOPHAT;;}
-+ {(yyval.integer) = FrameBase::TOPHAT;;}
- break;
-
- case 904:
-@@ -8103,7 +8436,7 @@
-
- case 905:
- #line 2156 "parser.Y"
-- {FRB->updateFitsCmd(yyvsp[-4].integer,BBox(yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].real,yyvsp[0].real),0);;}
-+ {FRB->updateFitsCmd((yyvsp[(1) - (5)].integer),BBox((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)),0);;}
- break;
-
- case 906:
-@@ -8113,32 +8446,32 @@
-
- case 907:
- #line 2159 "parser.Y"
-- {FRB->updateFitsCmd(yyvsp[-4].integer,BBox(yyvsp[-3].real,yyvsp[-2].real,yyvsp[-1].real,yyvsp[0].real),1);;}
-+ {FRB->updateFitsCmd((yyvsp[(2) - (6)].integer),BBox((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),1);;}
- break;
-
- case 908:
- #line 2160 "parser.Y"
-- {FRB->sliceCmd(yyvsp[0].integer);;}
-+ {FRB->sliceCmd((yyvsp[(3) - (3)].integer));;}
- break;
-
- case 909:
- #line 2163 "parser.Y"
-- {FRB->warpCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->warpCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 910:
- #line 2164 "parser.Y"
-- {FRB->warpToCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->warpToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 911:
- #line 2168 "parser.Y"
-- {FRB->wcsAlignCmd(yyvsp[-2].integer,(CoordSystem)yyvsp[-1].integer,(SkyFrame)yyvsp[0].integer);;}
-+ {FRB->wcsAlignCmd((yyvsp[(2) - (4)].integer),(CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 912:
- #line 2170 "parser.Y"
-- {FRB->wcsZoomCmd((CoordSystem)yyvsp[-2].integer, Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->wcsZoomCmd((CoordSystem)(yyvsp[(2) - (4)].integer), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
- break;
-
- case 913:
-@@ -8148,38 +8481,38 @@
-
- case 914:
- #line 2172 "parser.Y"
-- {FRB->wcsReplaceCmd(yyvsp[0].integer);;}
-+ {FRB->wcsReplaceCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 915:
- #line 2173 "parser.Y"
-- {FRB->wcsReplaceCmd(yyvsp[0].str);;}
-+ {FRB->wcsReplaceCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 916:
- #line 2174 "parser.Y"
-- {FRB->wcsAppendCmd(yyvsp[0].integer);;}
-+ {FRB->wcsAppendCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 917:
- #line 2175 "parser.Y"
-- {FRB->wcsAppendCmd(yyvsp[0].str);;}
-+ {FRB->wcsAppendCmd((yyvsp[(2) - (2)].str));;}
- break;
-
- case 918:
- #line 2178 "parser.Y"
-- {FRB->zoomCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->zoomCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 919:
- #line 2180 "parser.Y"
-- {FRB->zoomAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[-1].real,yyvsp[0].real),(InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),(InternalSystem)(yyvsp[(4) - (6)].integer));;}
- break;
-
- case 920:
- #line 2182 "parser.Y"
-- {FRB->zoomAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[0].vector),
-- (CoordSystem)yyvsp[-2].integer,(SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(6) - (6)].vector)),
-+ (CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
- break;
-
- case 922:
-@@ -8189,36 +8522,35 @@
-
- case 923:
- #line 2188 "parser.Y"
-- {FRB->zoomToFitCmd(yyvsp[0].real);;}
-+ {FRB->zoomToFitCmd((yyvsp[(2) - (2)].real));;}
- break;
-
- case 924:
- #line 2189 "parser.Y"
-- {FRB->zoomToCmd(Vector(yyvsp[-1].real,yyvsp[0].real));;}
-+ {FRB->zoomToCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
- break;
-
- case 925:
- #line 2191 "parser.Y"
-- {FRB->zoomToAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real),Vector(yyvsp[-1].real,yyvsp[0].real),
-- (InternalSystem)yyvsp[-2].integer);;}
-+ {FRB->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),
-+ (InternalSystem)(yyvsp[(4) - (6)].integer));;}
- break;
-
- case 926:
- #line 2194 "parser.Y"
-- {FRB->zoomToAboutCmd(Vector(yyvsp[-5].real,yyvsp[-4].real), Vector(yyvsp[0].vector),
-- (CoordSystem)yyvsp[-2].integer, (SkyFrame)yyvsp[-1].integer);;}
-+ {FRB->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)), Vector((yyvsp[(6) - (6)].vector)),
-+ (CoordSystem)(yyvsp[(4) - (6)].integer), (SkyFrame)(yyvsp[(5) - (6)].integer));;}
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 8548 "parser.C"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 8217 "parser.C"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -8247,99 +8579,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror ("syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror ("syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (yymsg);
-+ }
-+ else
-+ {
-+ yyerror (YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -8349,15 +8647,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -8386,9 +8686,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -8396,11 +8697,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -8420,21 +8722,39 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror ("parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
---- saods9-4.0b7.orig/saotk/frame/ds9parser.H
-+++ saods9-4.0b7/saotk/frame/ds9parser.H
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton interface for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,13 +17,21 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
- /* Tokens. */
- #ifndef YYTOKENTYPE
-@@ -152,6 +162,7 @@
- SYM_XOR = 378
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -277,16 +288,18 @@
-
-
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 127 "ds9parser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 1275 of yacc.c. */
--#line 290 "ds9parser.H"
-+}
-+/* Line 1529 of yacc.c. */
-+#line 302 "ds9parser.H"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -294,5 +307,3 @@
-
- extern YYSTYPE mklval;
-
--
--
---- saods9-4.0b7.orig/saotk/frame/xyparser.H
-+++ saods9-4.0b7/saotk/frame/xyparser.H
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton interface for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,13 +17,21 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
- /* Tokens. */
- #ifndef YYTOKENTYPE
-@@ -85,6 +95,7 @@
- WCSZ_ = 311
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define HOUR 260
-@@ -143,16 +154,18 @@
-
-
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 40 "xyparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 1275 of yacc.c. */
--#line 156 "xyparser.H"
-+}
-+/* Line 1529 of yacc.c. */
-+#line 168 "xyparser.H"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -160,5 +173,3 @@
-
- extern YYSTYPE xylval;
-
--
--
---- saods9-4.0b7.orig/saotk/frame/saoparser.C
-+++ saods9-4.0b7/saotk/frame/saoparser.C
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -45,8 +58,7 @@
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
--/* If NAME_PREFIX is specified substitute the variables and functions
-- names. */
-+/* Substitute the variable and function names. */
- #define yyparse saoparse
- #define yylex saolex
- #define yyerror saoerror
-@@ -80,6 +92,7 @@
- VERSION_ = 273
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -112,8 +125,8 @@
- #define DISCARD_(x) {yyclearin; saoDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
-@@ -166,16 +179,23 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 56 "saoparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 179 "saoparser.C"
-+}
-+/* Line 193 of yacc.c. */
-+#line 198 "saoparser.C"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -186,56 +206,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 191 "saoparser.C"
-+/* Line 216 of yacc.c. */
-+#line 211 "saoparser.C"
-+
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-+
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
-+# endif
-+#endif
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifndef YY_
-+# if YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -245,24 +380,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -280,39 +415,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
--
--#endif
-+ while (YYID (0))
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
- #endif
-
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 3
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 160
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 30
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 31
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 59
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 139
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 273
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned char yytranslate[] =
-+static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 19, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -347,7 +476,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned char yyprhs[] =
-+static const yytype_uint8 yyprhs[] =
- {
- 0, 0, 3, 7, 11, 14, 15, 18, 20, 24,
- 26, 28, 30, 32, 34, 36, 38, 40, 41, 43,
-@@ -357,8 +486,8 @@
- 207, 209, 213, 215, 217, 218, 219, 223, 225, 226
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const yysigned_char yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int8 yyrhs[] =
- {
- 31, 0, -1, 46, 32, 56, -1, 32, 33, 34,
- -1, 33, 34, -1, -1, 10, 36, -1, 18, -1,
-@@ -387,7 +516,7 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned short yyrline[] =
-+static const yytype_uint16 yyrline[] =
- {
- 0, 93, 93, 96, 97, 100, 101, 102, 103, 104,
- 107, 108, 109, 112, 113, 116, 117, 120, 121, 124,
-@@ -398,9 +527,9 @@
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "INT", "REAL", "STRING", "EOF_",
-@@ -418,7 +547,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 10,
-@@ -427,7 +556,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned char yyr1[] =
-+static const yytype_uint8 yyr1[] =
- {
- 0, 30, 31, 32, 32, 33, 33, 33, 33, 33,
- 34, 34, 34, 35, 35, 36, 36, 37, 37, 38,
-@@ -438,7 +567,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 3, 3, 2, 0, 2, 1, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
-@@ -451,7 +580,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned char yydefact[] =
-+static const yytype_uint8 yydefact[] =
- {
- 30, 0, 31, 1, 0, 7, 55, 31, 0, 32,
- 9, 16, 15, 6, 0, 0, 2, 12, 10, 11,
-@@ -469,8 +598,8 @@
- 0, 17, 17, 23, 23, 21, 21, 44, 41
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const yysigned_char yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int8 yydefgoto[] =
- {
- -1, 1, 7, 8, 20, 44, 13, 53, 35, 59,
- 89, 90, 112, 68, 102, 60, 2, 9, 23, 33,
-@@ -481,7 +610,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -71
--static const short yypact[] =
-+static const yytype_int16 yypact[] =
- {
- -71, 21, 119, -71, 11, -71, -71, 116, 16, 31,
- -71, -71, -71, -71, 22, 16, -71, -71, -71, -71,
-@@ -500,7 +629,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const yysigned_char yypgoto[] =
-+static const yytype_int8 yypgoto[] =
- {
- -71, -71, -71, 80, 71, -10, -71, -28, -27, 19,
- -70, -71, -40, -2, -71, -29, -71, -71, -71, -71,
-@@ -513,7 +642,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -55
--static const short yytable[] =
-+static const yytype_int16 yytable[] =
- {
- 36, 37, 38, 39, 16, 41, 45, 46, 47, 48,
- 49, 92, 51, 50, 66, 94, 69, 54, 55, 56,
-@@ -534,7 +663,7 @@
- 58
- };
-
--static const short yycheck[] =
-+static const yytype_int16 yycheck[] =
- {
- 27, 28, 29, 30, 7, 32, 35, 36, 37, 38,
- 39, 81, 41, 40, 54, 85, 56, 45, 46, 47,
-@@ -557,7 +686,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned char yystos[] =
-+static const yytype_uint8 yystos[] =
- {
- 0, 31, 46, 0, 10, 18, 29, 32, 33, 47,
- 57, 13, 14, 36, 58, 33, 56, 6, 19, 20,
-@@ -575,22 +704,6 @@
- 37, 43, 43, 37, 37, 40, 40, 39, 39
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -616,30 +729,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror ("syntax error: cannot back up");\
-+ { \
-+ yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -660,42 +806,96 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -704,45 +904,52 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule)
-+ YYSTYPE *yyvsp;
- int yyrule;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ );
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -757,13 +964,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -773,45 +976,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -821,70 +1026,192 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-
--
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ if (! yyres)
-+ return yystrlen (yystr);
-+
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-+
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -892,13 +1219,13 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void);
- #else
- int yyparse ();
-@@ -907,10 +1234,10 @@
-
-
-
--/* The lookahead symbol. */
-+/* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -923,14 +1250,18 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
- yyparse (void)
- #else
-@@ -941,13 +1272,19 @@
- #endif
- {
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -958,18 +1295,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -978,9 +1315,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -1004,8 +1341,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -1018,18 +1354,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -1040,21 +1376,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -1085,19 +1421,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -1112,7 +1446,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -1132,22 +1466,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -1194,12 +1527,12 @@
-
- case 13:
- #line 112 "saoparser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 14:
- #line 113 "saoparser.Y"
-- {yyval.real=yyvsp[0].integer;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 15:
-@@ -1214,46 +1547,46 @@
-
- case 23:
- #line 132 "saoparser.Y"
-- {yyval.real = 0;;}
-+ {(yyval.real) = 0;;}
- break;
-
- case 24:
- #line 133 "saoparser.Y"
-- {yyval.real = yyvsp[0].real;;}
-+ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
- break;
-
- case 25:
- #line 136 "saoparser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 26:
- #line 139 "saoparser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, IMAGE);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
- break;
-
- case 27:
- #line 143 "saoparser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 28:
- #line 151 "saoparser.Y"
-- {yyval.integer = yyvsp[0].integer;;}
-+ {(yyval.integer) = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 29:
- #line 155 "saoparser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1289,15 +1622,15 @@
-
- case 35:
- #line 180 "saoparser.Y"
-- {FR->createCircleCmd(Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ {FR->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)),
-+ (yyvsp[(5) - (7)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
- case 36:
- #line 184 "saoparser.Y"
-- {FR->createAnnulusCmd(Vector(yyvsp[-6].vector),
-- yyvsp[-4].real,yyvsp[-2].real,1,
-+ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ (yyvsp[(5) - (9)].real),(yyvsp[(7) - (9)].real),1,
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1309,9 +1642,9 @@
- case 38:
- #line 189 "saoparser.Y"
- {
-- aAnnuli[0] = yyvsp[-7].real;
-- aAnnuli[1] = yyvsp[-5].real;
-- FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
-+ aAnnuli[0] = (yyvsp[(5) - (12)].real);
-+ aAnnuli[1] = (yyvsp[(7) - (12)].real);
-+ FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
- aNum,aAnnuli,
- color,1,font,text,localProps,localComment,taglist,cblist);
- ;}
-@@ -1319,8 +1652,8 @@
-
- case 39:
- #line 197 "saoparser.Y"
-- {FR->createAnnulusCmd(Vector(yyvsp[-8].vector),
-- yyvsp[-6].real,yyvsp[-4].real,yyvsp[-2].integer,
-+ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (11)].vector)),
-+ (yyvsp[(5) - (11)].real),(yyvsp[(7) - (11)].real),(yyvsp[(9) - (11)].integer),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1329,16 +1662,16 @@
- {
- // for ellipse annulus
- aStatus = 1;
-- aCenter = Vector(yyvsp[-6].vector);
-- aAngle = yyvsp[-2].real;
-- aVector[0] = Vector(yyvsp[-4].vector);
-+ aCenter = Vector((yyvsp[(3) - (9)].vector));
-+ aAngle = (yyvsp[(7) - (9)].real);
-+ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
- aNum = 1;
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
-- FR->createEllipseCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ FR->createEllipseCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);
- ;}
- break;
-@@ -1347,7 +1680,7 @@
- #line 220 "saoparser.Y"
- {
- aStatus = 2;
-- aVector[aNum++] = Vector(yyvsp[-13].vector);
-+ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
- ;}
- break;
-
-@@ -1356,25 +1689,25 @@
- {
- // for box annulus
- aStatus = 3;
-- aCenter = Vector(yyvsp[-6].vector);
-- aAngle = yyvsp[-2].real;
-- aVector[0] = Vector(yyvsp[-4].vector);
-+ aCenter = Vector((yyvsp[(3) - (9)].vector));
-+ aAngle = (yyvsp[(7) - (9)].real);
-+ aVector[0] = Vector((yyvsp[(5) - (9)].vector));
- aNum = 1;
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
-- FR->createBoxCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);
- ;}
- break;
-
- case 43:
- #line 242 "saoparser.Y"
-- {FR->createBoxCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ {FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1382,13 +1715,13 @@
- #line 248 "saoparser.Y"
- {
- aStatus = 4;
-- aVector[aNum++] = Vector(yyvsp[-13].vector);
-+ aVector[aNum++] = Vector((yyvsp[(5) - (18)].vector));
- ;}
- break;
-
- case 45:
- #line 254 "saoparser.Y"
-- {FR->createBoxCirclePointCmd(Vector(yyvsp[-2].vector),
-+ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)),
- color,1,font,text,localProps,localComment,taglist,cblist);;}
- break;
-
-@@ -1405,12 +1738,12 @@
-
- case 50:
- #line 266 "saoparser.Y"
-- {polylist.append(new Vertex(yyvsp[0].vector));;}
-+ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
- break;
-
- case 53:
- #line 273 "saoparser.Y"
-- {aAnnuli[aNum++] = yyvsp[0].real;;}
-+ {aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);;}
- break;
-
- case 54:
-@@ -1454,19 +1787,18 @@
-
- case 59:
- #line 309 "saoparser.Y"
-- {strncpy(localComment,yyvsp[-1].str,80);;}
-+ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);;}
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 1796 "saoparser.C"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 1465 "saoparser.C"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -1495,99 +1827,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror ("syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror ("syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (yymsg);
-+ }
-+ else
-+ {
-+ yyerror (YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -1597,15 +1895,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -1634,9 +1934,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -1644,11 +1945,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -1668,21 +1970,39 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror ("parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
---- saods9-4.0b7.orig/saotk/frame/ds9parser.Y
-+++ saods9-4.0b7/saotk/frame/ds9parser.Y
-@@ -12,8 +12,8 @@
- #define DISCARD_(x) {yyclearin; mkDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
---- saods9-4.0b7.orig/saotk/frame/prosparser.H
-+++ saods9-4.0b7/saotk/frame/prosparser.H
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton interface for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,13 +17,21 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
- /* Tokens. */
- #ifndef YYTOKENTYPE
-@@ -62,6 +72,7 @@
- VERSION_ = 288
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -97,16 +108,18 @@
-
-
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 65 "prosparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 1275 of yacc.c. */
--#line 110 "prosparser.H"
-+}
-+/* Line 1529 of yacc.c. */
-+#line 122 "prosparser.H"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -114,5 +127,3 @@
-
- extern YYSTYPE proslval;
-
--
--
---- saods9-4.0b7.orig/saotk/frame/ciaolex.C
-+++ saods9-4.0b7/saotk/frame/ciaolex.C
-@@ -4,7 +4,7 @@
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/ciaolex.C,v 1.79 2005/08/24 20:37:45 joye Exp $
-+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
- #define FLEX_SCANNER
-@@ -12,7 +12,6 @@
- #define YY_FLEX_MINOR_VERSION 5
-
-
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -24,8 +23,12 @@
- #ifdef __cplusplus
-
- #include <stdlib.h>
--#include <iostream>
--using namespace std;
-+#include <fstream>
-+using std::istream;
-+using std::ostream;
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
-
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -65,6 +68,7 @@
- #define YY_PROTO(proto) ()
- #endif
-
-+
- /* Returned upon end-of-file. */
- #define YY_NULL 0
-
-@@ -412,7 +416,7 @@
- extern ciaoFlexLexer* ciaolexx;
- extern int ciaosign;
- /* rules */
--#line 416 "ciaolex.C"
-+#line 420 "ciaolex.C"
-
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
-@@ -536,13 +540,13 @@
- YY_DECL
- {
- register yy_state_type yy_current_state;
-- register char *yy_cp = NULL, *yy_bp = NULL;
-+ register char *yy_cp, *yy_bp;
- register int yy_act;
-
- #line 28 "ciaolex.L"
-
-
--#line 546 "ciaolex.C"
-+#line 550 "ciaolex.C"
-
- if ( yy_init )
- {
-@@ -817,7 +821,7 @@
- #line 121 "ciaolex.L"
- ECHO;
- YY_BREAK
--#line 821 "ciaolex.C"
-+#line 825 "ciaolex.C"
-
- case YY_END_OF_BUFFER:
- {
-@@ -1333,6 +1337,7 @@
- return c;
- }
-
-+
- void yyFlexLexer::yyrestart( istream* input_file )
- {
- if ( ! yy_current_buffer )
---- saods9-4.0b7.orig/saotk/frame/xyparser.Y
-+++ saods9-4.0b7/saotk/frame/xyparser.Y
-@@ -10,8 +10,8 @@
- #define FITSPTR (FR->findFits(1))
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
---- saods9-4.0b7.orig/saotk/frame/callback.C
-+++ saods9-4.0b7/saotk/frame/callback.C
-@@ -2,8 +2,9 @@
- // Smithsonian Astrophysical Observatory, Cambridge, MA, USA
- // For conditions of distribution and use, see copyright notice in "copyright"
-
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <cstring>
-+#include <iostream>
-
- #include "callback.h"
-
---- saods9-4.0b7.orig/saotk/frame/parser.Y
-+++ saods9-4.0b7/saotk/frame/parser.Y
-@@ -12,8 +12,8 @@
- #define FITSPTR (FRB->findFits(1))
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "frame.h"
---- saods9-4.0b7.orig/saotk/frame/saolex.C
-+++ saods9-4.0b7/saotk/frame/saolex.C
-@@ -4,7 +4,7 @@
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/saolex.C,v 1.76 2005/08/11 21:32:52 joye Exp $
-+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
- #define FLEX_SCANNER
-@@ -12,7 +12,6 @@
- #define YY_FLEX_MINOR_VERSION 5
-
-
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -24,8 +23,12 @@
- #ifdef __cplusplus
-
- #include <stdlib.h>
--#include <iostream>
--using namespace std;
-+#include <fstream>
-+using std::istream;
-+using std::ostream;
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
-
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -65,6 +68,7 @@
- #define YY_PROTO(proto) ()
- #endif
-
-+
- /* Returned upon end-of-file. */
- #define YY_NULL 0
-
-@@ -424,7 +428,7 @@
- #define DISCARD 1
-
- /* rules */
--#line 428 "saolex.C"
-+#line 432 "saolex.C"
-
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
-@@ -548,13 +552,13 @@
- YY_DECL
- {
- register yy_state_type yy_current_state;
-- register char *yy_cp = NULL, *yy_bp = NULL;
-+ register char *yy_cp, *yy_bp;
- register int yy_act;
-
- #line 29 "saolex.L"
-
-
--#line 558 "saolex.C"
-+#line 562 "saolex.C"
-
- if ( yy_init )
- {
-@@ -808,7 +812,7 @@
- #line 109 "saolex.L"
- ECHO;
- YY_BREAK
--#line 812 "saolex.C"
-+#line 816 "saolex.C"
-
- case YY_END_OF_BUFFER:
- {
-@@ -1324,6 +1328,7 @@
- return c;
- }
-
-+
- void yyFlexLexer::yyrestart( istream* input_file )
- {
- if ( ! yy_current_buffer )
---- saods9-4.0b7.orig/saotk/frame/saoparser.H
-+++ saods9-4.0b7/saotk/frame/saoparser.H
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton interface for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,13 +17,21 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
- /* Tokens. */
- #ifndef YYTOKENTYPE
-@@ -47,6 +57,7 @@
- VERSION_ = 273
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -67,16 +78,18 @@
-
-
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 56 "saoparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 1275 of yacc.c. */
--#line 80 "saoparser.H"
-+}
-+/* Line 1529 of yacc.c. */
-+#line 92 "saoparser.H"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -84,5 +97,3 @@
-
- extern YYSTYPE saolval;
-
--
--
---- saods9-4.0b7.orig/saotk/frame/ciaoparser.H
-+++ saods9-4.0b7/saotk/frame/ciaoparser.H
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton interface for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,13 +17,21 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
- /* Tokens. */
- #ifndef YYTOKENTYPE
-@@ -52,6 +62,7 @@
- VERSION_ = 278
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define HOUR 260
-@@ -77,16 +88,18 @@
-
-
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 43 "ciaoparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 1275 of yacc.c. */
--#line 90 "ciaoparser.H"
-+}
-+/* Line 1529 of yacc.c. */
-+#line 102 "ciaoparser.H"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -94,5 +107,3 @@
-
- extern YYSTYPE ciaolval;
-
--
--
---- saods9-4.0b7.orig/saotk/frame/tngparser.H
-+++ saods9-4.0b7/saotk/frame/tngparser.H
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton interface for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,13 +17,21 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
- /* Tokens. */
- #ifndef YYTOKENTYPE
-@@ -70,6 +80,7 @@
- YELLOW_ = 296
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -113,16 +124,18 @@
-
-
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 60 "tngparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 1275 of yacc.c. */
--#line 126 "tngparser.H"
-+}
-+/* Line 1529 of yacc.c. */
-+#line 138 "tngparser.H"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -130,5 +143,3 @@
-
- extern YYSTYPE tnglval;
-
--
--
---- saods9-4.0b7.orig/saotk/frame/grid.C
-+++ saods9-4.0b7/saotk/frame/grid.C
-@@ -2,7 +2,7 @@
- // Smithsonian Astrophysical Observatory, Cambridge, MA, USA
- // For conditions of distribution and use, see copyright notice in "copyright"
-
--#include <iomanip.h>
-+#include <iomanip>
-
- #include "grid.h"
- #include "util.h"
---- saods9-4.0b7.orig/saotk/frame/xylex.C
-+++ saods9-4.0b7/saotk/frame/xylex.C
-@@ -4,7 +4,7 @@
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/xylex.C,v 1.76 2005/08/11 21:32:53 joye Exp $
-+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
- #define FLEX_SCANNER
-@@ -12,7 +12,6 @@
- #define YY_FLEX_MINOR_VERSION 5
-
-
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -24,8 +23,12 @@
- #ifdef __cplusplus
-
- #include <stdlib.h>
--#include <iostream>
--using namespace std;
-+#include <fstream>
-+using std::istream;
-+using std::ostream;
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
-
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -65,6 +68,7 @@
- #define YY_PROTO(proto) ()
- #endif
-
-+
- /* Returned upon end-of-file. */
- #define YY_NULL 0
-
-@@ -446,7 +450,7 @@
- extern xyFlexLexer* xylexx;
- extern int xysign;
- /* rules */
--#line 450 "xylex.C"
-+#line 454 "xylex.C"
-
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
-@@ -570,13 +574,13 @@
- YY_DECL
- {
- register yy_state_type yy_current_state;
-- register char *yy_cp = NULL, *yy_bp = NULL;
-+ register char *yy_cp, *yy_bp;
- register int yy_act;
-
- #line 28 "xylex.L"
-
-
--#line 580 "xylex.C"
-+#line 584 "xylex.C"
-
- if ( yy_init )
- {
-@@ -997,7 +1001,7 @@
- #line 145 "xylex.L"
- ECHO;
- YY_BREAK
--#line 1001 "xylex.C"
-+#line 1005 "xylex.C"
-
- case YY_END_OF_BUFFER:
- {
-@@ -1513,6 +1517,7 @@
- return c;
- }
-
-+
- void yyFlexLexer::yyrestart( istream* input_file )
- {
- if ( ! yy_current_buffer )
---- saods9-4.0b7.orig/saotk/frame/ds9lex.C
-+++ saods9-4.0b7/saotk/frame/ds9lex.C
-@@ -4,7 +4,7 @@
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/ds9lex.C,v 1.98 2005/08/11 21:32:11 joye Exp $
-+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
- #define FLEX_SCANNER
-@@ -12,7 +12,6 @@
- #define YY_FLEX_MINOR_VERSION 5
-
-
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -24,8 +23,12 @@
- #ifdef __cplusplus
-
- #include <stdlib.h>
--#include <iostream>
--using namespace std;
-+#include <fstream>
-+using std::istream;
-+using std::ostream;
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
-
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -65,6 +68,7 @@
- #define YY_PROTO(proto) ()
- #endif
-
-+
- /* Returned upon end-of-file. */
- #define YY_NULL 0
-
-@@ -628,7 +632,7 @@
- #define DISCARD 1
-
- /* rules */
--#line 632 "ds9lex.C"
-+#line 636 "ds9lex.C"
-
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
-@@ -752,13 +756,13 @@
- YY_DECL
- {
- register yy_state_type yy_current_state;
-- register char *yy_cp = NULL, *yy_bp = NULL;
-+ register char *yy_cp, *yy_bp;
- register int yy_act;
-
- #line 30 "ds9lex.L"
-
-
--#line 762 "ds9lex.C"
-+#line 766 "ds9lex.C"
-
- if ( yy_init )
- {
-@@ -1579,7 +1583,7 @@
- #line 272 "ds9lex.L"
- ECHO;
- YY_BREAK
--#line 1583 "ds9lex.C"
-+#line 1587 "ds9lex.C"
-
- case YY_END_OF_BUFFER:
- {
-@@ -2095,6 +2099,7 @@
- return c;
- }
-
-+
- void yyFlexLexer::yyrestart( istream* input_file )
- {
- if ( ! yy_current_buffer )
---- saods9-4.0b7.orig/saotk/frame/ciaoparser.Y
-+++ saods9-4.0b7/saotk/frame/ciaoparser.Y
-@@ -10,8 +10,8 @@
- #define FITSPTR (FR->findFits(1))
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
---- saods9-4.0b7.orig/saotk/frame/prosparser.Y
-+++ saods9-4.0b7/saotk/frame/prosparser.Y
-@@ -12,8 +12,8 @@
- #define DISCARD_(x) {yyclearin; prosDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
---- saods9-4.0b7.orig/saotk/frame/proslex.C
-+++ saods9-4.0b7/saotk/frame/proslex.C
-@@ -4,7 +4,7 @@
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/proslex.C,v 1.76 2005/08/11 21:32:51 joye Exp $
-+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
- #define FLEX_SCANNER
-@@ -12,7 +12,6 @@
- #define YY_FLEX_MINOR_VERSION 5
-
-
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -24,8 +23,12 @@
- #ifdef __cplusplus
-
- #include <stdlib.h>
--#include <iostream>
--using namespace std;
-+#include <fstream>
-+using std::istream;
-+using std::ostream;
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
-
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -65,6 +68,7 @@
- #define YY_PROTO(proto) ()
- #endif
-
-+
- /* Returned upon end-of-file. */
- #define YY_NULL 0
-
-@@ -482,7 +486,7 @@
- #define DISCARD 1
-
- /* rules */
--#line 486 "proslex.C"
-+#line 490 "proslex.C"
-
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
-@@ -606,13 +610,13 @@
- YY_DECL
- {
- register yy_state_type yy_current_state;
-- register char *yy_cp = NULL, *yy_bp = NULL;
-+ register char *yy_cp, *yy_bp;
- register int yy_act;
-
- #line 30 "proslex.L"
-
-
--#line 616 "proslex.C"
-+#line 620 "proslex.C"
-
- if ( yy_init )
- {
-@@ -986,7 +990,7 @@
- #line 172 "proslex.L"
- ECHO;
- YY_BREAK
--#line 990 "proslex.C"
-+#line 994 "proslex.C"
-
- case YY_END_OF_BUFFER:
- {
-@@ -1502,6 +1506,7 @@
- return c;
- }
-
-+
- void yyFlexLexer::yyrestart( istream* input_file )
- {
- if ( ! yy_current_buffer )
---- saods9-4.0b7.orig/saotk/frame/ds9parser.C
-+++ saods9-4.0b7/saotk/frame/ds9parser.C
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -45,8 +58,7 @@
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
--/* If NAME_PREFIX is specified substitute the variables and functions
-- names. */
-+/* Substitute the variable and function names. */
- #define yyparse mkparse
- #define yylex mklex
- #define yyerror mkerror
-@@ -185,6 +197,7 @@
- SYM_XOR = 378
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -322,8 +335,8 @@
- #define DISCARD_(x) {yyclearin; mkDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
-@@ -447,16 +460,23 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 127 "ds9parser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 460 "ds9parser.C"
-+}
-+/* Line 193 of yacc.c. */
-+#line 479 "ds9parser.C"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -467,56 +487,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 472 "ds9parser.C"
-+/* Line 216 of yacc.c. */
-+#line 492 "ds9parser.C"
-+
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-+
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
-+# endif
-+#endif
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifndef YY_
-+# if YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -526,24 +661,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -561,39 +696,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
--
--#endif
-+ while (YYID (0))
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
- #endif
-
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 3
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 2269
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 136
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 71
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 306
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 792
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 378
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned char yytranslate[] =
-+static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 125, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -638,7 +767,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned short yyprhs[] =
-+static const yytype_uint16 yyprhs[] =
- {
- 0, 0, 3, 7, 11, 14, 15, 18, 20, 24,
- 27, 31, 32, 36, 37, 41, 42, 46, 50, 55,
-@@ -673,8 +802,8 @@
- 1202, 1206, 1208, 1210, 1214, 1216, 1220
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const short yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int16 yyrhs[] =
- {
- 137, 0, -1, 180, 138, 206, -1, 138, 139, 153,
- -1, 139, 153, -1, -1, 35, 155, -1, 84, -1,
-@@ -802,7 +931,7 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned short yyrline[] =
-+static const yytype_uint16 yyrline[] =
- {
- 0, 281, 281, 284, 285, 288, 289, 290, 292, 293,
- 294, 296, 296, 297, 297, 298, 298, 300, 301, 303,
-@@ -838,9 +967,9 @@
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "INT", "REAL", "STRING", "HOUR",
-@@ -880,7 +1009,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-@@ -900,7 +1029,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned char yyr1[] =
-+static const yytype_uint8 yyr1[] =
- {
- 0, 136, 137, 138, 138, 139, 139, 139, 139, 139,
- 139, 140, 139, 141, 139, 142, 139, 139, 139, 139,
-@@ -936,7 +1065,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 3, 3, 2, 0, 2, 1, 3, 2,
- 3, 0, 3, 0, 3, 0, 3, 3, 4, 1,
-@@ -974,7 +1103,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned short yydefact[] =
-+static const yytype_uint16 yydefact[] =
- {
- 193, 0, 236, 1, 95, 126, 0, 94, 131, 125,
- 127, 130, 0, 129, 92, 128, 15, 93, 0, 7,
-@@ -1058,8 +1187,8 @@
- 270, 263
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const short yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int16 yydefgoto[] =
- {
- -1, 1, 49, 50, 94, 95, 83, 51, 86, 113,
- 191, 371, 432, 501, 452, 453, 518, 93, 250, 58,
-@@ -1074,7 +1203,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -623
--static const short yypact[] =
-+static const yytype_int16 yypact[] =
- {
- -623, 44, 1482, -623, -623, -623, -4, -623, -623, -623,
- -623, -623, 865, -623, -623, -623, -623, -623, 33, -623,
-@@ -1159,7 +1288,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const short yypgoto[] =
-+static const yytype_int16 yypgoto[] =
- {
- -623, -623, -623, 457, -623, -623, -623, -623, -623, 103,
- -623, 623, -623, -623, -512, -623, -623, 420, -80, -623,
-@@ -1176,7 +1305,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -307
--static const short yytable[] =
-+static const yytype_int16 yytable[] =
- {
- 114, 592, 593, 204, 595, 206, 208, 209, 210, 211,
- 89, -53, 214, 215, 216, 217, 218, 219, -29, 221,
-@@ -1407,7 +1536,7 @@
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47
- };
-
--static const short yycheck[] =
-+static const yytype_int16 yycheck[] =
- {
- 81, 513, 514, 124, 516, 126, 127, 128, 129, 130,
- 49, 5, 133, 134, 135, 136, 137, 138, 5, 140,
-@@ -1640,7 +1769,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned char yystos[] =
-+static const yytype_uint8 yystos[] =
- {
- 0, 137, 180, 0, 17, 22, 35, 38, 40, 48,
- 49, 51, 52, 54, 56, 58, 60, 66, 81, 84,
-@@ -1724,22 +1853,6 @@
- 147, 147
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -1765,30 +1878,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror ("syntax error: cannot back up");\
-+ { \
-+ yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -1809,42 +1955,96 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -1853,45 +2053,52 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule)
-+ YYSTYPE *yyvsp;
- int yyrule;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ );
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -1906,13 +2113,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -1922,45 +2125,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -1970,70 +2175,192 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-+
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-
--
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ if (! yyres)
-+ return yystrlen (yystr);
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-+
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -2041,13 +2368,13 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void);
- #else
- int yyparse ();
-@@ -2056,10 +2383,10 @@
-
-
-
--/* The lookahead symbol. */
-+/* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -2072,14 +2399,18 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
- yyparse (void)
- #else
-@@ -2090,13 +2421,19 @@
- #endif
- {
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -2107,18 +2444,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -2127,9 +2464,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -2153,8 +2490,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -2167,18 +2503,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -2189,21 +2525,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -2234,19 +2570,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -2261,7 +2595,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -2281,22 +2615,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -2338,22 +2671,22 @@
-
- case 9:
- #line 293 "ds9parser.Y"
-- {globalTile = yyvsp[0].integer;;}
-+ {globalTile = (yyvsp[(2) - (2)].integer);;}
- break;
-
- case 10:
- #line 294 "ds9parser.Y"
-- {globalTile = yyvsp[0].integer;;}
-+ {globalTile = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 11:
- #line 296 "ds9parser.Y"
-- {globalSystem=(CoordSystem)yyvsp[0].integer;;}
-+ {globalSystem=(CoordSystem)(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 13:
- #line 297 "ds9parser.Y"
-- {globalSystem=globalWCS; globalSky=(SkyFrame)yyvsp[0].integer;;}
-+ {globalSystem=globalWCS; globalSky=(SkyFrame)(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 15:
-@@ -2378,7 +2711,7 @@
-
- case 27:
- #line 314 "ds9parser.Y"
-- {strncpy(localComment,yyvsp[-1].str,80);}
-+ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);}
- break;
-
- case 29:
-@@ -2388,7 +2721,7 @@
-
- case 30:
- #line 317 "ds9parser.Y"
-- {strncpy(localComment,yyvsp[-1].str,80);}
-+ {strncpy(localComment,(yyvsp[(4) - (5)].str),80);}
- break;
-
- case 32:
-@@ -2398,7 +2731,7 @@
-
- case 33:
- #line 321 "ds9parser.Y"
-- {strncpy(localComment,yyvsp[-1].str,80);}
-+ {strncpy(localComment,(yyvsp[(2) - (3)].str),80);}
- break;
-
- case 35:
-@@ -2408,7 +2741,7 @@
-
- case 36:
- #line 323 "ds9parser.Y"
-- {strncpy(localComment,yyvsp[-1].str,80);}
-+ {strncpy(localComment,(yyvsp[(3) - (4)].str),80);}
- break;
-
- case 39:
-@@ -2418,12 +2751,12 @@
-
- case 40:
- #line 331 "ds9parser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 41:
- #line 332 "ds9parser.Y"
-- {yyval.real=yyvsp[0].integer;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 42:
-@@ -2438,47 +2771,47 @@
-
- case 44:
- #line 339 "ds9parser.Y"
-- {yyval.integer=(yyvsp[0].integer ? 1 : 0);;}
-+ {(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;}
- break;
-
- case 45:
- #line 341 "ds9parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 46:
- #line 342 "ds9parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 47:
- #line 343 "ds9parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 48:
- #line 344 "ds9parser.Y"
-- {yyval.integer=1;;}
-+ {(yyval.integer)=1;;}
- break;
-
- case 49:
- #line 346 "ds9parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 50:
- #line 347 "ds9parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 51:
- #line 348 "ds9parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 52:
- #line 349 "ds9parser.Y"
-- {yyval.integer=0;;}
-+ {(yyval.integer)=0;;}
- break;
-
- case 59:
-@@ -2498,127 +2831,127 @@
-
- case 62:
- #line 369 "ds9parser.Y"
-- {yyval.real = FR->mapAngleToRef(0,localSystem,localSky);;}
-+ {(yyval.real) = FR->mapAngleToRef(0,localSystem,localSky);;}
- break;
-
- case 63:
- #line 370 "ds9parser.Y"
-- {yyval.real = yyvsp[0].real;;}
-+ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
- break;
-
- case 64:
- #line 373 "ds9parser.Y"
-- {yyval.real = FR->mapAngleToRef(degToRad(yyvsp[0].real),localSystem,localSky);;}
-+ {(yyval.real) = FR->mapAngleToRef(degToRad((yyvsp[(1) - (1)].real)),localSystem,localSky);;}
- break;
-
- case 65:
- #line 374 "ds9parser.Y"
-- {yyval.real = FR->mapAngleToRef(degToRad(yyvsp[0].real),localSystem,localSky);;}
-+ {(yyval.real) = FR->mapAngleToRef(degToRad((yyvsp[(1) - (1)].real)),localSystem,localSky);;}
- break;
-
- case 66:
- #line 375 "ds9parser.Y"
-- {yyval.real = FR->mapAngleToRef(yyvsp[0].real,localSystem,localSky);;}
-+ {(yyval.real) = FR->mapAngleToRef((yyvsp[(1) - (1)].real),localSystem,localSky);;}
- break;
-
- case 67:
- #line 378 "ds9parser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, localSystem, DEGREES);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), localSystem, DEGREES);;}
- break;
-
- case 68:
- #line 379 "ds9parser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, PHYSICAL);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), PHYSICAL);;}
- break;
-
- case 69:
- #line 380 "ds9parser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, IMAGE);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
- break;
-
- case 70:
- #line 381 "ds9parser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), DEGREES);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), DEGREES);;}
- break;
-
- case 71:
- #line 382 "ds9parser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCMIN);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCMIN);;}
- break;
-
- case 72:
- #line 383 "ds9parser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, checkWCSSystem(), ARCSEC);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCSEC);;}
- break;
-
- case 73:
- #line 387 "ds9parser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, DEGREES);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, DEGREES);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 74:
- #line 394 "ds9parser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 75:
- #line 401 "ds9parser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 76:
- #line 408 "ds9parser.Y"
- {
-- Vector r=FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),DEGREES);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),DEGREES);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 77:
- #line 415 "ds9parser.Y"
- {
-- Vector r=FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCMIN);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCMIN);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 78:
- #line 422 "ds9parser.Y"
- {
-- Vector r=FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real),checkWCSSystem(),ARCSEC);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCSEC);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 79:
- #line 430 "ds9parser.Y"
-- {yyval.integer = yyvsp[0].integer;;}
-+ {(yyval.integer) = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 80:
- #line 433 "ds9parser.Y"
-- {yyval.real = parseDMS(yyvsp[0].str);;}
-+ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
- break;
-
- case 81:
-@@ -2628,13 +2961,13 @@
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
-- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), sys, sky);
-+ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
- else
-- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real), sys, sky);
-+ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -2647,11 +2980,11 @@
- #line 451 "ds9parser.Y"
- {
- Vector r = FITSPTR->mapToRef(
-- Vector(hmsToDegree(mksign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),dmsToDegree(mksign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(hmsToDegree(mksign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),dmsToDegree(mksign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- checkWCSSystem(), checkWCSSky());
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -2664,470 +2997,470 @@
- #line 461 "ds9parser.Y"
- {
- Vector r = FITSPTR->mapToRef(
-- Vector(dmsToDegree(mksign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),dmsToDegree(mksign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(dmsToDegree(mksign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),dmsToDegree(mksign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- checkWCSSystem(), checkWCSSky());
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 86:
- #line 470 "ds9parser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, localSky);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 87:
- #line 477 "ds9parser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
- checkWCSSystem(), checkWCSSky());
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 88:
- #line 485 "ds9parser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 89:
- #line 492 "ds9parser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
- ;}
- break;
-
- case 90:
- #line 498 "ds9parser.Y"
- {
-- Vector rx = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[-2].real), IMAGE);
-- Vector ry = FITSPTR->mapToRef(Vector(yyvsp[0].real,yyvsp[0].real), PHYSICAL);
-- yyval.vector[0] = rx[0];
-- yyval.vector[1] = ry[0];
-- yyval.vector[2] = 1;
-+ Vector rx = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(1) - (3)].real)), IMAGE);
-+ Vector ry = FITSPTR->mapToRef(Vector((yyvsp[(3) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
-+ (yyval.vector)[0] = rx[0];
-+ (yyval.vector)[1] = ry[0];
-+ (yyval.vector)[2] = 1;
- ;}
- break;
-
- case 91:
- #line 506 "ds9parser.Y"
- {
-- Vector rx = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[-2].real), PHYSICAL);
-- Vector ry = FITSPTR->mapToRef(Vector(yyvsp[0].real,yyvsp[0].real), IMAGE);
-- yyval.vector[0] = rx[0];
-- yyval.vector[1] = ry[0];
-- yyval.vector[2] = 1;
-+ Vector rx = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(1) - (3)].real)), PHYSICAL);
-+ Vector ry = FITSPTR->mapToRef(Vector((yyvsp[(3) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
-+ (yyval.vector)[0] = rx[0];
-+ (yyval.vector)[1] = ry[0];
-+ (yyval.vector)[2] = 1;
- ;}
- break;
-
- case 92:
- #line 515 "ds9parser.Y"
-- {yyval.integer = IMAGE;;}
-+ {(yyval.integer) = IMAGE;;}
- break;
-
- case 93:
- #line 516 "ds9parser.Y"
-- {yyval.integer = PHYSICAL;;}
-+ {(yyval.integer) = PHYSICAL;;}
- break;
-
- case 94:
- #line 517 "ds9parser.Y"
-- {yyval.integer = DETECTOR;;}
-+ {(yyval.integer) = DETECTOR;;}
- break;
-
- case 95:
- #line 518 "ds9parser.Y"
-- {yyval.integer = AMPLIFIER;;}
-+ {(yyval.integer) = AMPLIFIER;;}
- break;
-
- case 96:
- #line 519 "ds9parser.Y"
-- {yyval.integer = yyvsp[0].integer; globalWCS = (CoordSystem)yyvsp[0].integer;;}
-+ {(yyval.integer) = (yyvsp[(1) - (1)].integer); globalWCS = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 97:
- #line 522 "ds9parser.Y"
-- {yyval.integer = WCS;;}
-+ {(yyval.integer) = WCS;;}
- break;
-
- case 98:
- #line 523 "ds9parser.Y"
-- {yyval.integer = WCSA;;}
-+ {(yyval.integer) = WCSA;;}
- break;
-
- case 99:
- #line 524 "ds9parser.Y"
-- {yyval.integer = WCSB;;}
-+ {(yyval.integer) = WCSB;;}
- break;
-
- case 100:
- #line 525 "ds9parser.Y"
-- {yyval.integer = WCSC;;}
-+ {(yyval.integer) = WCSC;;}
- break;
-
- case 101:
- #line 526 "ds9parser.Y"
-- {yyval.integer = WCSD;;}
-+ {(yyval.integer) = WCSD;;}
- break;
-
- case 102:
- #line 527 "ds9parser.Y"
-- {yyval.integer = WCSE;;}
-+ {(yyval.integer) = WCSE;;}
- break;
-
- case 103:
- #line 528 "ds9parser.Y"
-- {yyval.integer = WCSF;;}
-+ {(yyval.integer) = WCSF;;}
- break;
-
- case 104:
- #line 529 "ds9parser.Y"
-- {yyval.integer = WCSG;;}
-+ {(yyval.integer) = WCSG;;}
- break;
-
- case 105:
- #line 530 "ds9parser.Y"
-- {yyval.integer = WCSH;;}
-+ {(yyval.integer) = WCSH;;}
- break;
-
- case 106:
- #line 531 "ds9parser.Y"
-- {yyval.integer = WCSI;;}
-+ {(yyval.integer) = WCSI;;}
- break;
-
- case 107:
- #line 532 "ds9parser.Y"
-- {yyval.integer = WCSJ;;}
-+ {(yyval.integer) = WCSJ;;}
- break;
-
- case 108:
- #line 533 "ds9parser.Y"
-- {yyval.integer = WCSK;;}
-+ {(yyval.integer) = WCSK;;}
- break;
-
- case 109:
- #line 534 "ds9parser.Y"
-- {yyval.integer = WCSL;;}
-+ {(yyval.integer) = WCSL;;}
- break;
-
- case 110:
- #line 535 "ds9parser.Y"
-- {yyval.integer = WCSM;;}
-+ {(yyval.integer) = WCSM;;}
- break;
-
- case 111:
- #line 536 "ds9parser.Y"
-- {yyval.integer = WCSN;;}
-+ {(yyval.integer) = WCSN;;}
- break;
-
- case 112:
- #line 537 "ds9parser.Y"
-- {yyval.integer = WCSO;;}
-+ {(yyval.integer) = WCSO;;}
- break;
-
- case 113:
- #line 538 "ds9parser.Y"
-- {yyval.integer = WCSP;;}
-+ {(yyval.integer) = WCSP;;}
- break;
-
- case 114:
- #line 539 "ds9parser.Y"
-- {yyval.integer = WCSQ;;}
-+ {(yyval.integer) = WCSQ;;}
- break;
-
- case 115:
- #line 540 "ds9parser.Y"
-- {yyval.integer = WCSR;;}
-+ {(yyval.integer) = WCSR;;}
- break;
-
- case 116:
- #line 541 "ds9parser.Y"
-- {yyval.integer = WCSS;;}
-+ {(yyval.integer) = WCSS;;}
- break;
-
- case 117:
- #line 542 "ds9parser.Y"
-- {yyval.integer = WCST;;}
-+ {(yyval.integer) = WCST;;}
- break;
-
- case 118:
- #line 543 "ds9parser.Y"
-- {yyval.integer = WCSU;;}
-+ {(yyval.integer) = WCSU;;}
- break;
-
- case 119:
- #line 544 "ds9parser.Y"
-- {yyval.integer = WCSV;;}
-+ {(yyval.integer) = WCSV;;}
- break;
-
- case 120:
- #line 545 "ds9parser.Y"
-- {yyval.integer = WCSW;;}
-+ {(yyval.integer) = WCSW;;}
- break;
-
- case 121:
- #line 546 "ds9parser.Y"
-- {yyval.integer = WCSX;;}
-+ {(yyval.integer) = WCSX;;}
- break;
-
- case 122:
- #line 547 "ds9parser.Y"
-- {yyval.integer = WCSY;;}
-+ {(yyval.integer) = WCSY;;}
- break;
-
- case 123:
- #line 548 "ds9parser.Y"
-- {yyval.integer = WCSZ;;}
-+ {(yyval.integer) = WCSZ;;}
- break;
-
- case 124:
- #line 549 "ds9parser.Y"
-- {yyval.integer = WCS0;;}
-+ {(yyval.integer) = WCS0;;}
- break;
-
- case 125:
- #line 552 "ds9parser.Y"
-- {yyval.integer = FK4;;}
-+ {(yyval.integer) = FK4;;}
- break;
-
- case 126:
- #line 553 "ds9parser.Y"
-- {yyval.integer = FK4;;}
-+ {(yyval.integer) = FK4;;}
- break;
-
- case 127:
- #line 554 "ds9parser.Y"
-- {yyval.integer = FK5;;}
-+ {(yyval.integer) = FK5;;}
- break;
-
- case 128:
- #line 555 "ds9parser.Y"
-- {yyval.integer = FK5;;}
-+ {(yyval.integer) = FK5;;}
- break;
-
- case 129:
- #line 556 "ds9parser.Y"
-- {yyval.integer = ICRS;;}
-+ {(yyval.integer) = ICRS;;}
- break;
-
- case 130:
- #line 557 "ds9parser.Y"
-- {yyval.integer = GALACTIC;;}
-+ {(yyval.integer) = GALACTIC;;}
- break;
-
- case 131:
- #line 558 "ds9parser.Y"
-- {yyval.integer = ECLIPTIC;;}
-+ {(yyval.integer) = ECLIPTIC;;}
- break;
-
- case 132:
- #line 561 "ds9parser.Y"
-- {yyval.integer=DEGREES;;}
-+ {(yyval.integer)=DEGREES;;}
- break;
-
- case 133:
- #line 562 "ds9parser.Y"
-- {yyval.integer=ARCMIN;;}
-+ {(yyval.integer)=ARCMIN;;}
- break;
-
- case 134:
- #line 563 "ds9parser.Y"
-- {yyval.integer=ARCSEC;;}
-+ {(yyval.integer)=ARCSEC;;}
- break;
-
- case 135:
- #line 566 "ds9parser.Y"
-- {yyval.integer = Marker::SELECT;;}
-+ {(yyval.integer) = Marker::SELECT;;}
- break;
-
- case 136:
- #line 567 "ds9parser.Y"
-- {yyval.integer = Marker::EDIT;;}
-+ {(yyval.integer) = Marker::EDIT;;}
- break;
-
- case 137:
- #line 568 "ds9parser.Y"
-- {yyval.integer = Marker::MOVE;;}
-+ {(yyval.integer) = Marker::MOVE;;}
- break;
-
- case 138:
- #line 569 "ds9parser.Y"
-- {yyval.integer = Marker::ROTATE;;}
-+ {(yyval.integer) = Marker::ROTATE;;}
- break;
-
- case 139:
- #line 570 "ds9parser.Y"
-- {yyval.integer = Marker::DELETE;;}
-+ {(yyval.integer) = Marker::DELETE;;}
- break;
-
- case 140:
- #line 571 "ds9parser.Y"
-- {yyval.integer = Marker::HIGHLITE;;}
-+ {(yyval.integer) = Marker::HIGHLITE;;}
- break;
-
- case 141:
- #line 572 "ds9parser.Y"
-- {yyval.integer = Marker::INCLUDE;;}
-+ {(yyval.integer) = Marker::INCLUDE;;}
- break;
-
- case 142:
- #line 573 "ds9parser.Y"
-- {yyval.integer = Marker::SOURCE;;}
-+ {(yyval.integer) = Marker::SOURCE;;}
- break;
-
- case 143:
- #line 574 "ds9parser.Y"
-- {yyval.integer = Marker::FIXED;;}
-+ {(yyval.integer) = Marker::FIXED;;}
- break;
-
- case 144:
- #line 577 "ds9parser.Y"
-- {yyval.integer = CallBack::SELECTCB;;}
-+ {(yyval.integer) = CallBack::SELECTCB;;}
- break;
-
- case 145:
- #line 578 "ds9parser.Y"
-- {yyval.integer = CallBack::UNSELECTCB;;}
-+ {(yyval.integer) = CallBack::UNSELECTCB;;}
- break;
-
- case 146:
- #line 579 "ds9parser.Y"
-- {yyval.integer = CallBack::HIGHLITECB;;}
-+ {(yyval.integer) = CallBack::HIGHLITECB;;}
- break;
-
- case 147:
- #line 580 "ds9parser.Y"
-- {yyval.integer = CallBack::UNHIGHLITECB;;}
-+ {(yyval.integer) = CallBack::UNHIGHLITECB;;}
- break;
-
- case 148:
- #line 581 "ds9parser.Y"
-- {yyval.integer = CallBack::MOVEBEGINCB;;}
-+ {(yyval.integer) = CallBack::MOVEBEGINCB;;}
- break;
-
- case 149:
- #line 582 "ds9parser.Y"
-- {yyval.integer = CallBack::MOVECB;;}
-+ {(yyval.integer) = CallBack::MOVECB;;}
- break;
-
- case 150:
- #line 583 "ds9parser.Y"
-- {yyval.integer = CallBack::MOVEENDCB;;}
-+ {(yyval.integer) = CallBack::MOVEENDCB;;}
- break;
-
- case 151:
- #line 584 "ds9parser.Y"
-- {yyval.integer = CallBack::EDITBEGINCB;;}
-+ {(yyval.integer) = CallBack::EDITBEGINCB;;}
- break;
-
- case 152:
- #line 585 "ds9parser.Y"
-- {yyval.integer = CallBack::EDITCB;;}
-+ {(yyval.integer) = CallBack::EDITCB;;}
- break;
-
- case 153:
- #line 586 "ds9parser.Y"
-- {yyval.integer = CallBack::EDITENDCB;;}
-+ {(yyval.integer) = CallBack::EDITENDCB;;}
- break;
-
- case 154:
- #line 587 "ds9parser.Y"
-- {yyval.integer = CallBack::ROTATEBEGINCB;;}
-+ {(yyval.integer) = CallBack::ROTATEBEGINCB;;}
- break;
-
- case 155:
- #line 588 "ds9parser.Y"
-- {yyval.integer = CallBack::ROTATECB;;}
-+ {(yyval.integer) = CallBack::ROTATECB;;}
- break;
-
- case 156:
- #line 589 "ds9parser.Y"
-- {yyval.integer = CallBack::ROTATEENDCB;;}
-+ {(yyval.integer) = CallBack::ROTATEENDCB;;}
- break;
-
- case 157:
- #line 590 "ds9parser.Y"
-- {yyval.integer = CallBack::DELETECB;;}
-+ {(yyval.integer) = CallBack::DELETECB;;}
- break;
-
- case 158:
- #line 591 "ds9parser.Y"
-- {yyval.integer = CallBack::TEXTCB;;}
-+ {(yyval.integer) = CallBack::TEXTCB;;}
- break;
-
- case 159:
- #line 592 "ds9parser.Y"
-- {yyval.integer = CallBack::COLORCB;;}
-+ {(yyval.integer) = CallBack::COLORCB;;}
- break;
-
- case 160:
- #line 593 "ds9parser.Y"
-- {yyval.integer = CallBack::LINEWIDTHCB;;}
-+ {(yyval.integer) = CallBack::LINEWIDTHCB;;}
- break;
-
- case 161:
- #line 594 "ds9parser.Y"
-- {yyval.integer = CallBack::PROPERTYCB;;}
-+ {(yyval.integer) = CallBack::PROPERTYCB;;}
- break;
-
- case 162:
- #line 595 "ds9parser.Y"
-- {yyval.integer = CallBack::FONTCB;;}
-+ {(yyval.integer) = CallBack::FONTCB;;}
- break;
-
- case 163:
- #line 596 "ds9parser.Y"
-- {yyval.integer = CallBack::UPDATECB;;}
-+ {(yyval.integer) = CallBack::UPDATECB;;}
- break;
-
- case 166:
- #line 604 "ds9parser.Y"
- {
-- setProps(&globalProps,yyvsp[-2].integer,yyvsp[0].integer);
-- setProps(&localProps,yyvsp[-2].integer,yyvsp[0].integer);
-+ setProps(&globalProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));
-+ setProps(&localProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));
- ;}
- break;
-
- case 167:
- #line 609 "ds9parser.Y"
- {
-- strncpy(globalColor,yyvsp[0].str,16);
-- strncpy(localColor,yyvsp[0].str,16);
-+ strncpy(globalColor,(yyvsp[(3) - (3)].str),16);
-+ strncpy(localColor,(yyvsp[(3) - (3)].str),16);
- ;}
- break;
-
- case 168:
- #line 613 "ds9parser.Y"
-- {globalWidth = localWidth = yyvsp[0].integer;;}
-+ {globalWidth = localWidth = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 169:
- #line 615 "ds9parser.Y"
- {
-- strncpy(globalFont,yyvsp[0].str,32);
-- strncpy(localFont,yyvsp[0].str,32);
-+ strncpy(globalFont,(yyvsp[(3) - (3)].str),32);
-+ strncpy(localFont,(yyvsp[(3) - (3)].str),32);
- ;}
- break;
-
- case 170:
- #line 620 "ds9parser.Y"
- {
-- strncpy(globalText,yyvsp[0].str,80);
-- strncpy(localText,yyvsp[0].str,80);
-+ strncpy(globalText,(yyvsp[(3) - (3)].str),80);
-+ strncpy(localText,(yyvsp[(3) - (3)].str),80);
- ;}
- break;
-
-@@ -3150,22 +3483,22 @@
- case 173:
- #line 635 "ds9parser.Y"
- {
-- globalPoint = localPoint = yyvsp[0].integer;
-+ globalPoint = localPoint = (yyvsp[(3) - (3)].integer);
- ;}
- break;
-
- case 174:
- #line 639 "ds9parser.Y"
- {
-- globalLine1 = localLine1 = yyvsp[-1].integer;
-- globalLine2 = localLine2 = yyvsp[0].integer;
-+ globalLine1 = localLine1 = (yyvsp[(3) - (4)].integer);
-+ globalLine2 = localLine2 = (yyvsp[(4) - (4)].integer);
- ;}
- break;
-
- case 175:
- #line 644 "ds9parser.Y"
- {
-- globalVector = localVector = yyvsp[0].integer;
-+ globalVector = localVector = (yyvsp[(3) - (3)].integer);
- ;}
- break;
-
-@@ -3178,43 +3511,43 @@
- case 177:
- #line 651 "ds9parser.Y"
- {
-- strncpy(globalCompassNorth,yyvsp[-3].str,80);
-- strncpy(globalCompassEast,yyvsp[-2].str,80);
-- strncpy(localCompassNorth,yyvsp[-3].str,80);
-- strncpy(localCompassEast,yyvsp[-2].str,80);
-- globalCompassNArrow = localCompassNArrow = yyvsp[-1].integer;
-- globalCompassEArrow = localCompassEArrow = yyvsp[0].integer;
-+ strncpy(globalCompassNorth,(yyvsp[(4) - (7)].str),80);
-+ strncpy(globalCompassEast,(yyvsp[(5) - (7)].str),80);
-+ strncpy(localCompassNorth,(yyvsp[(4) - (7)].str),80);
-+ strncpy(localCompassEast,(yyvsp[(5) - (7)].str),80);
-+ globalCompassNArrow = localCompassNArrow = (yyvsp[(6) - (7)].integer);
-+ globalCompassEArrow = localCompassEArrow = (yyvsp[(7) - (7)].integer);
- ;}
- break;
-
- case 178:
- #line 660 "ds9parser.Y"
- {
-- globalTextAngle = localTextAngle = yyvsp[0].real;
-+ globalTextAngle = localTextAngle = (yyvsp[(3) - (3)].real);
- ;}
- break;
-
- case 179:
- #line 663 "ds9parser.Y"
-- {globalWCS = (CoordSystem)yyvsp[0].integer;;}
-+ {globalWCS = (CoordSystem)(yyvsp[(3) - (3)].integer);;}
- break;
-
- case 180:
- #line 667 "ds9parser.Y"
- {
-- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)yyvsp[-3].integer;
-- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)yyvsp[-2].integer;
-- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[-1].integer;
-- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (4)].integer);
-+ globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(2) - (4)].integer);
-+ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(3) - (4)].integer);
-+ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(4) - (4)].integer);
- ;}
- break;
-
- case 181:
- #line 674 "ds9parser.Y"
- {
-- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
-+ globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
-- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
-+ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- globalRulerDistFormat = localRulerDistFormat = DEGREES;
- ;}
- break;
-@@ -3222,10 +3555,10 @@
- case 182:
- #line 681 "ds9parser.Y"
- {
-- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
-+ globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
-- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
-@@ -3233,8 +3566,8 @@
- #line 688 "ds9parser.Y"
- {
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
-- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
-- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
-+ globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
-+ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- globalRulerDistFormat = localRulerDistFormat = DEGREES;
- ;}
- break;
-@@ -3243,9 +3576,9 @@
- #line 695 "ds9parser.Y"
- {
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
-- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
-+ globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
- globalRulerDistSystem = localRulerDistSystem = WCS;
-- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
-@@ -3254,7 +3587,7 @@
- {
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
-- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
-+ globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- globalRulerDistFormat = localRulerDistFormat = DEGREES;
- ;}
- break;
-@@ -3265,7 +3598,7 @@
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
-- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
-@@ -3275,7 +3608,7 @@
- globalRulerCoordSystem = localRulerCoordSystem = IMAGE;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
-- globalRulerDistFormat = localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ globalRulerDistFormat = localRulerDistFormat = (SkyFormat)(yyvsp[(1) - (1)].integer);
- ;}
- break;
-
-@@ -3292,15 +3625,15 @@
- case 189:
- #line 732 "ds9parser.Y"
- {
-- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)yyvsp[-1].integer;
-- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
-+ globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
-+ globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
- case 190:
- #line 737 "ds9parser.Y"
- {
-- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)yyvsp[0].integer;
-+ globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);
- globalCompassSkyFrame = localCompassSkyFrame = FK5;
- ;}
- break;
-@@ -3309,7 +3642,7 @@
- #line 742 "ds9parser.Y"
- {
- globalCompassCoordSystem = localCompassCoordSystem = WCS;
-- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
-+ globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)(yyvsp[(1) - (1)].integer);
- ;}
- break;
-
-@@ -3362,38 +3695,38 @@
-
- case 196:
- #line 794 "ds9parser.Y"
-- {setProps(&localProps,yyvsp[-2].integer,yyvsp[0].integer);;}
-+ {setProps(&localProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 197:
- #line 795 "ds9parser.Y"
-- {strncpy(localColor,yyvsp[0].str,16);;}
-+ {strncpy(localColor,(yyvsp[(3) - (3)].str),16);;}
- break;
-
- case 198:
- #line 796 "ds9parser.Y"
-- {localWidth = yyvsp[0].integer;;}
-+ {localWidth = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 199:
- #line 797 "ds9parser.Y"
-- {strncpy(localFont,yyvsp[0].str,32);;}
-+ {strncpy(localFont,(yyvsp[(3) - (3)].str),32);;}
- break;
-
- case 200:
- #line 798 "ds9parser.Y"
-- {strncpy(localText,yyvsp[0].str,80);;}
-+ {strncpy(localText,(yyvsp[(3) - (3)].str),80);;}
- break;
-
- case 201:
- #line 799 "ds9parser.Y"
-- {taglist.append(new Tag(yyvsp[0].str));;}
-+ {taglist.append(new Tag((yyvsp[(3) - (3)].str)));;}
- break;
-
- case 202:
- #line 800 "ds9parser.Y"
- {cblist.append(
-- new CallBack(FR->getInterp(),(CallBack::Type)yyvsp[-2].integer,yyvsp[-1].str,yyvsp[0].str));;}
-+ new CallBack(FR->getInterp(),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str)));;}
- break;
-
- case 203:
-@@ -3408,50 +3741,50 @@
-
- case 205:
- #line 805 "ds9parser.Y"
-- {localPoint = yyvsp[0].integer;;}
-+ {localPoint = (yyvsp[(3) - (3)].integer);;}
- break;
-
- case 206:
- #line 806 "ds9parser.Y"
-- {localLine1=yyvsp[-1].integer; localLine2=yyvsp[0].integer;;}
-+ {localLine1=(yyvsp[(3) - (4)].integer); localLine2=(yyvsp[(4) - (4)].integer);;}
- break;
-
- case 207:
- #line 807 "ds9parser.Y"
-- {localVector=yyvsp[0].integer;;}
-+ {localVector=(yyvsp[(3) - (3)].integer);;}
- break;
-
- case 209:
- #line 810 "ds9parser.Y"
- {
-- strncpy(localCompassNorth,yyvsp[-3].str,80);
-- strncpy(localCompassEast,yyvsp[-2].str,80);
-- localCompassNArrow = yyvsp[-1].integer;
-- localCompassEArrow = yyvsp[0].integer;
-+ strncpy(localCompassNorth,(yyvsp[(4) - (7)].str),80);
-+ strncpy(localCompassEast,(yyvsp[(5) - (7)].str),80);
-+ localCompassNArrow = (yyvsp[(6) - (7)].integer);
-+ localCompassEArrow = (yyvsp[(7) - (7)].integer);
- ;}
- break;
-
- case 210:
- #line 816 "ds9parser.Y"
-- {localTextAngle=yyvsp[0].real;;}
-+ {localTextAngle=(yyvsp[(3) - (3)].real);;}
- break;
-
- case 214:
- #line 823 "ds9parser.Y"
- {
-- localRulerCoordSystem = (CoordSystem)yyvsp[-3].integer;
-- localRulerSkyFrame = (SkyFrame)yyvsp[-2].integer;
-- localRulerDistSystem = (CoordSystem)yyvsp[-1].integer;
-- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (4)].integer);
-+ localRulerSkyFrame = (SkyFrame)(yyvsp[(2) - (4)].integer);
-+ localRulerDistSystem = (CoordSystem)(yyvsp[(3) - (4)].integer);
-+ localRulerDistFormat = (SkyFormat)(yyvsp[(4) - (4)].integer);
- ;}
- break;
-
- case 215:
- #line 830 "ds9parser.Y"
- {
-- localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
-+ localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- localRulerSkyFrame = FK5;
-- localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
-+ localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- localRulerDistFormat = DEGREES;
- ;}
- break;
-@@ -3459,10 +3792,10 @@
- case 216:
- #line 837 "ds9parser.Y"
- {
-- localRulerCoordSystem = (CoordSystem)yyvsp[-1].integer;
-+ localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
-- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
-@@ -3470,8 +3803,8 @@
- #line 844 "ds9parser.Y"
- {
- localRulerCoordSystem = WCS;
-- localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
-- localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
-+ localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
-+ localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- localRulerDistFormat = DEGREES;
- ;}
- break;
-@@ -3480,9 +3813,9 @@
- #line 851 "ds9parser.Y"
- {
- localRulerCoordSystem = WCS;
-- localRulerSkyFrame = (SkyFrame)yyvsp[-1].integer;
-+ localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
- localRulerDistSystem = WCS;
-- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
-@@ -3491,7 +3824,7 @@
- {
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = FK5;
-- localRulerDistSystem = (CoordSystem)yyvsp[0].integer;
-+ localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- localRulerDistFormat = DEGREES;
- ;}
- break;
-@@ -3502,7 +3835,7 @@
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
-- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ localRulerDistFormat = (SkyFormat)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
-@@ -3512,7 +3845,7 @@
- localRulerCoordSystem = IMAGE;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
-- localRulerDistFormat = (SkyFormat)yyvsp[0].integer;
-+ localRulerDistFormat = (SkyFormat)(yyvsp[(1) - (1)].integer);
- ;}
- break;
-
-@@ -3529,15 +3862,15 @@
- case 223:
- #line 888 "ds9parser.Y"
- {
-- localCompassCoordSystem = (CoordSystem)yyvsp[-1].integer;
-- localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
-+ localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
-+ localCompassSkyFrame = (SkyFrame)(yyvsp[(2) - (2)].integer);
- ;}
- break;
-
- case 224:
- #line 893 "ds9parser.Y"
- {
-- localCompassCoordSystem = (CoordSystem)yyvsp[0].integer;
-+ localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);
- localCompassSkyFrame = FK5;
- ;}
- break;
-@@ -3546,7 +3879,7 @@
- #line 898 "ds9parser.Y"
- {
- localCompassCoordSystem = WCS;
-- localCompassSkyFrame = (SkyFrame)yyvsp[0].integer;
-+ localCompassSkyFrame = (SkyFrame)(yyvsp[(1) - (1)].integer);
- ;}
- break;
-
-@@ -3580,7 +3913,7 @@
-
- case 231:
- #line 914 "ds9parser.Y"
-- {aAngle=yyvsp[-1].real;localEpanda=2;;}
-+ {aAngle=(yyvsp[(9) - (10)].real);localEpanda=2;;}
- break;
-
- case 232:
-@@ -3595,7 +3928,7 @@
-
- case 234:
- #line 919 "ds9parser.Y"
-- {aAngle=yyvsp[-1].real;localBpanda=2;;}
-+ {aAngle=(yyvsp[(9) - (10)].real);localBpanda=2;;}
- break;
-
- case 235:
-@@ -3648,37 +3981,37 @@
-
- case 237:
- #line 964 "ds9parser.Y"
-- {yyval.integer = CIRCLE;;}
-+ {(yyval.integer) = CIRCLE;;}
- break;
-
- case 238:
- #line 965 "ds9parser.Y"
-- {yyval.integer = BOX;;}
-+ {(yyval.integer) = BOX;;}
- break;
-
- case 239:
- #line 966 "ds9parser.Y"
-- {yyval.integer = DIAMOND;;}
-+ {(yyval.integer) = DIAMOND;;}
- break;
-
- case 240:
- #line 967 "ds9parser.Y"
-- {yyval.integer = CROSS;;}
-+ {(yyval.integer) = CROSS;;}
- break;
-
- case 241:
- #line 968 "ds9parser.Y"
-- {yyval.integer = XPT;;}
-+ {(yyval.integer) = XPT;;}
- break;
-
- case 242:
- #line 969 "ds9parser.Y"
-- {yyval.integer = ARROW;;}
-+ {(yyval.integer) = ARROW;;}
- break;
-
- case 243:
- #line 970 "ds9parser.Y"
-- {yyval.integer = BOXCIRCLE;;}
-+ {(yyval.integer) = BOXCIRCLE;;}
- break;
-
- case 244:
-@@ -3698,7 +4031,7 @@
-
- case 247:
- #line 979 "ds9parser.Y"
-- {FR->createTextCmd(Vector(yyvsp[-3].vector),
-+ {FR->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
- localTextAngle,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
-@@ -3706,16 +4039,16 @@
-
- case 248:
- #line 984 "ds9parser.Y"
-- {FR->createCompositeCmd(Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ {FR->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ (yyvsp[(5) - (8)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 249:
- #line 989 "ds9parser.Y"
-- {FR->createVectCmd(Vector(yyvsp[-7].vector),
-- yyvsp[-5].real,yyvsp[-3].real,
-+ {FR->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
- localVector,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
-@@ -3725,9 +4058,9 @@
- #line 995 "ds9parser.Y"
- {
- // hard coded into projection.tcl
-- FR->createProjectionCmd(Vector(yyvsp[-7].vector),
-- Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ FR->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ Vector((yyvsp[(5) - (10)].vector)),
-+ (yyvsp[(7) - (10)].real),
- "ProjectionPlot", "ProjectionPlotDelete",
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
-@@ -3736,8 +4069,8 @@
-
- case 251:
- #line 1005 "ds9parser.Y"
-- {FR->createRulerCmd(Vector(yyvsp[-5].vector),
-- Vector(yyvsp[-3].vector),
-+ {FR->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ Vector((yyvsp[(5) - (8)].vector)),
- localRulerCoordSystem, localRulerSkyFrame,
- localRulerDistSystem, localRulerDistFormat,
- localColor,localWidth,localFont,
-@@ -3746,8 +4079,8 @@
-
- case 252:
- #line 1012 "ds9parser.Y"
-- {FR->createCompassCmd(Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ {FR->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ (yyvsp[(5) - (8)].real),
- localCompassNorth, localCompassEast,
- localCompassNArrow, localCompassEArrow,
- localCompassCoordSystem, localCompassSkyFrame,
-@@ -3757,16 +4090,16 @@
-
- case 253:
- #line 1022 "ds9parser.Y"
-- {FR->createCircleCmd(Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ {FR->createCircleCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ (yyvsp[(5) - (8)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 254:
- #line 1027 "ds9parser.Y"
-- {FR->createAnnulusCmd(Vector(yyvsp[-7].vector),
-- yyvsp[-5].real,yyvsp[-3].real,1,
-+ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),1,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-@@ -3774,9 +4107,9 @@
- case 255:
- #line 1033 "ds9parser.Y"
- {
-- aAnnuli[0] = yyvsp[-7].real;
-- aAnnuli[1] = yyvsp[-5].real;
-- FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
-+ aAnnuli[0] = (yyvsp[(5) - (12)].real);
-+ aAnnuli[1] = (yyvsp[(7) - (12)].real);
-+ FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
- aNum,aAnnuli,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
-@@ -3785,8 +4118,8 @@
-
- case 256:
- #line 1043 "ds9parser.Y"
-- {FR->createAnnulusCmd(Vector(yyvsp[-9].vector),
-- yyvsp[-7].real,yyvsp[-5].real,yyvsp[-3].integer,
-+ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
-+ (yyvsp[(5) - (12)].real),(yyvsp[(7) - (12)].real),(yyvsp[(9) - (12)].integer),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-@@ -3798,14 +4131,14 @@
- case 0: /* ignore it */
- break;
- case 1: /* normal cpanda */
-- FR->createCpandaCmd(Vector(yyvsp[-15].vector),
-- yyvsp[-13].real,yyvsp[-11].real,yyvsp[-9].integer,
-- yyvsp[-7].real,yyvsp[-5].real,yyvsp[-3].integer,
-+ FR->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
-+ (yyvsp[(5) - (18)].real),(yyvsp[(7) - (18)].real),(yyvsp[(9) - (18)].integer),
-+ (yyvsp[(11) - (18)].real),(yyvsp[(13) - (18)].real),(yyvsp[(15) - (18)].integer),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case 2: /* one of our special pandas */
-- FR->createCpandaCmd(Vector(yyvsp[-15].vector),
-+ FR->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
- aAngNum,aAngles,
- aNum,aAnnuli,
- localColor,localWidth,localFont,
-@@ -3820,9 +4153,9 @@
- {
- // for ellipse annulus
- aStatus = 1;
-- aCenter = Vector(yyvsp[-7].vector);
-- aAngles[0] = yyvsp[-3].real;
-- aVector[0] = Vector(yyvsp[-5].vector);
-+ aCenter = Vector((yyvsp[(3) - (10)].vector));
-+ aAngles[0] = (yyvsp[(7) - (10)].real);
-+ aVector[0] = Vector((yyvsp[(5) - (10)].vector));
- aNumsao = 1;
- strncpy(aColor,localColor,16);
- aWidth = localWidth;
-@@ -3831,9 +4164,9 @@
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
-- FR->createEllipseCmd(Vector(yyvsp[-7].vector),
-- Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ FR->createEllipseCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ Vector((yyvsp[(5) - (10)].vector)),
-+ (yyvsp[(7) - (10)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3843,9 +4176,9 @@
- #line 1093 "ds9parser.Y"
- {
- // prefered syntax
-- FR->createEllipseAnnulusCmd(Vector(yyvsp[-9].vector),
-- Vector(yyvsp[-7].vector),Vector(yyvsp[-5].vector),1,
-- yyvsp[-3].real,
-+ FR->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
-+ Vector((yyvsp[(5) - (12)].vector)),Vector((yyvsp[(7) - (12)].vector)),1,
-+ (yyvsp[(9) - (12)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3855,9 +4188,9 @@
- #line 1103 "ds9parser.Y"
- {
- // prefered syntax
-- FR->createEllipseAnnulusCmd(Vector(yyvsp[-11].vector),
-- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
-- yyvsp[-3].real,
-+ FR->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
-+ Vector((yyvsp[(5) - (14)].vector)),Vector((yyvsp[(7) - (14)].vector)),(yyvsp[(9) - (14)].integer),
-+ (yyvsp[(11) - (14)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3867,11 +4200,11 @@
- #line 1113 "ds9parser.Y"
- {
- // prefered syntax
-- aVector[0] = Vector(yyvsp[-9].vector);
-- aVector[1] = Vector(yyvsp[-7].vector);
-- FR->createEllipseAnnulusCmd(Vector(yyvsp[-11].vector),
-+ aVector[0] = Vector((yyvsp[(5) - (14)].vector));
-+ aVector[1] = Vector((yyvsp[(7) - (14)].vector));
-+ FR->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
- aNum,aVector,
-- yyvsp[-3].real,
-+ (yyvsp[(11) - (14)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3882,7 +4215,7 @@
- {
- // old saoimage syntax
- aStatus = 2;
-- aVector[aNumsao++] = Vector(yyvsp[-13].vector);
-+ aVector[aNumsao++] = Vector((yyvsp[(5) - (18)].vector));
- ;}
- break;
-
-@@ -3893,15 +4226,15 @@
- case 0: /* ignore it */
- break;
- case 1: /* normal epanda */
-- FR->createEpandaCmd(Vector(yyvsp[-17].vector),
-- yyvsp[-15].real,yyvsp[-13].real,yyvsp[-11].integer,
-- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
-- yyvsp[-3].real,
-+ FR->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
-+ (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
-+ Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
-+ (yyvsp[(17) - (20)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case 2: /* one of our special pandas */
-- FR->createEpandaCmd(Vector(yyvsp[-17].vector),
-+ FR->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
- aAngNum,aAngles,
- aNum,aVector,
- aAngle,
-@@ -3917,9 +4250,9 @@
- {
- // for box annulus
- aStatus = 3;
-- aCenter = Vector(yyvsp[-7].vector);
-- aAngles[0] = yyvsp[-3].real;
-- aVector[0] = Vector(yyvsp[-5].vector);
-+ aCenter = Vector((yyvsp[(3) - (10)].vector));
-+ aAngles[0] = (yyvsp[(7) - (10)].real);
-+ aVector[0] = Vector((yyvsp[(5) - (10)].vector));
- aNumsao = 1;
- strncpy(aColor,localColor,16);
- aWidth = localWidth;
-@@ -3928,9 +4261,9 @@
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
-- FR->createBoxCmd(Vector(yyvsp[-7].vector),
-- Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ FR->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ Vector((yyvsp[(5) - (10)].vector)),
-+ (yyvsp[(7) - (10)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3938,9 +4271,9 @@
-
- case 265:
- #line 1178 "ds9parser.Y"
-- {FR->createBoxCmd(Vector(yyvsp[-7].vector),
-- Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ {FR->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ Vector((yyvsp[(5) - (10)].vector)),
-+ (yyvsp[(7) - (10)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-@@ -3949,9 +4282,9 @@
- #line 1185 "ds9parser.Y"
- {
- // prefered syntax
-- FR->createBoxAnnulusCmd(Vector(yyvsp[-9].vector),
-- Vector(yyvsp[-7].vector),Vector(yyvsp[-5].vector),1,
-- yyvsp[-3].real,
-+ FR->createBoxAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
-+ Vector((yyvsp[(5) - (12)].vector)),Vector((yyvsp[(7) - (12)].vector)),1,
-+ (yyvsp[(9) - (12)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3961,11 +4294,11 @@
- #line 1195 "ds9parser.Y"
- {
- // prefered syntax
-- aVector[0] = Vector(yyvsp[-9].vector);
-- aVector[1] = Vector(yyvsp[-7].vector);
-- FR->createBoxAnnulusCmd(Vector(yyvsp[-11].vector),
-+ aVector[0] = Vector((yyvsp[(5) - (14)].vector));
-+ aVector[1] = Vector((yyvsp[(7) - (14)].vector));
-+ FR->createBoxAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
- aNum,aVector,
-- yyvsp[-3].real,
-+ (yyvsp[(11) - (14)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3975,9 +4308,9 @@
- #line 1207 "ds9parser.Y"
- {
- // prefered syntax
-- FR->createBoxAnnulusCmd(Vector(yyvsp[-11].vector),
-- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
-- yyvsp[-3].real,
-+ FR->createBoxAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
-+ Vector((yyvsp[(5) - (14)].vector)),Vector((yyvsp[(7) - (14)].vector)),(yyvsp[(9) - (14)].integer),
-+ (yyvsp[(11) - (14)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
-@@ -3988,7 +4321,7 @@
- {
- // old saoimage syntax
- aStatus = 4;
-- aVector[aNumsao++] = Vector(yyvsp[-13].vector);
-+ aVector[aNumsao++] = Vector((yyvsp[(5) - (18)].vector));
- ;}
- break;
-
-@@ -3999,15 +4332,15 @@
- case 0: /* ignore it */
- break;
- case 1: /* normal bpanda */
-- FR->createBpandaCmd(Vector(yyvsp[-17].vector),
-- yyvsp[-15].real,yyvsp[-13].real,yyvsp[-11].integer,
-- Vector(yyvsp[-9].vector),Vector(yyvsp[-7].vector),yyvsp[-5].integer,
-- yyvsp[-3].real,
-+ FR->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
-+ (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
-+ Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
-+ (yyvsp[(17) - (20)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case 2: /* one of our special pandas */
-- FR->createBpandaCmd(Vector(yyvsp[-17].vector),
-+ FR->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
- aAngNum,aAngles,
- aNum,aVector,
- aAngle,
-@@ -4020,8 +4353,8 @@
-
- case 271:
- #line 1249 "ds9parser.Y"
-- {FR->createLineCmd(Vector(yyvsp[-5].vector),
-- Vector(yyvsp[-3].vector),
-+ {FR->createLineCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ Vector((yyvsp[(5) - (8)].vector)),
- localLine1,localLine2,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
-@@ -4032,37 +4365,37 @@
- {
- switch (localPoint) {
- case CIRCLE:
-- FR->createCirclePointCmd(Vector(yyvsp[-3].vector),
-+ FR->createCirclePointCmd(Vector((yyvsp[(3) - (6)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case BOX:
-- FR->createBoxPointCmd(Vector(yyvsp[-3].vector),
-+ FR->createBoxPointCmd(Vector((yyvsp[(3) - (6)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case DIAMOND:
-- FR->createDiamondPointCmd(Vector(yyvsp[-3].vector),
-+ FR->createDiamondPointCmd(Vector((yyvsp[(3) - (6)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case CROSS:
-- FR->createCrossPointCmd(Vector(yyvsp[-3].vector),
-+ FR->createCrossPointCmd(Vector((yyvsp[(3) - (6)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case XPT:
-- FR->createExPointCmd(Vector(yyvsp[-3].vector),
-+ FR->createExPointCmd(Vector((yyvsp[(3) - (6)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case ARROW:
-- FR->createArrowPointCmd(Vector(yyvsp[-3].vector),
-+ FR->createArrowPointCmd(Vector((yyvsp[(3) - (6)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case BOXCIRCLE:
-- FR->createBoxCirclePointCmd(Vector(yyvsp[-3].vector),
-+ FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (6)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
-@@ -4072,49 +4405,49 @@
-
- case 273:
- #line 1296 "ds9parser.Y"
-- {FR->createCirclePointCmd(Vector(yyvsp[-3].vector),
-+ {FR->createCirclePointCmd(Vector((yyvsp[(4) - (7)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 274:
- #line 1300 "ds9parser.Y"
-- {FR->createBoxPointCmd(Vector(yyvsp[-3].vector),
-+ {FR->createBoxPointCmd(Vector((yyvsp[(4) - (7)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 275:
- #line 1304 "ds9parser.Y"
-- {FR->createDiamondPointCmd(Vector(yyvsp[-3].vector),
-+ {FR->createDiamondPointCmd(Vector((yyvsp[(4) - (7)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 276:
- #line 1308 "ds9parser.Y"
-- {FR->createCrossPointCmd(Vector(yyvsp[-3].vector),
-+ {FR->createCrossPointCmd(Vector((yyvsp[(4) - (7)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 277:
- #line 1312 "ds9parser.Y"
-- {FR->createExPointCmd(Vector(yyvsp[-3].vector),
-+ {FR->createExPointCmd(Vector((yyvsp[(4) - (7)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 278:
- #line 1316 "ds9parser.Y"
-- {FR->createArrowPointCmd(Vector(yyvsp[-3].vector),
-+ {FR->createArrowPointCmd(Vector((yyvsp[(4) - (7)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 279:
- #line 1320 "ds9parser.Y"
-- {FR->createBoxCirclePointCmd(Vector(yyvsp[-3].vector),
-+ {FR->createBoxCirclePointCmd(Vector((yyvsp[(4) - (7)].vector)),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-@@ -4133,7 +4466,7 @@
-
- case 286:
- #line 1337 "ds9parser.Y"
-- {FR->createTextCmd(Vector(yyvsp[-3].vector),
-+ {FR->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
- localTextAngle,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
-@@ -4141,12 +4474,12 @@
-
- case 287:
- #line 1341 "ds9parser.Y"
-- {strncpy(localText,yyvsp[-1].str,80);;}
-+ {strncpy(localText,(yyvsp[(5) - (6)].str),80);;}
- break;
-
- case 288:
- #line 1343 "ds9parser.Y"
-- {FR->createTextCmd(Vector(yyvsp[-6].vector),
-+ {FR->createTextCmd(Vector((yyvsp[(3) - (9)].vector)),
- localTextAngle,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
-@@ -4154,16 +4487,16 @@
-
- case 289:
- #line 1348 "ds9parser.Y"
-- {FR->createCompositeCmd(Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ {FR->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ (yyvsp[(5) - (8)].real),
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 290:
- #line 1353 "ds9parser.Y"
-- {FR->createVectCmd(Vector(yyvsp[-7].vector),
-- yyvsp[-5].real,yyvsp[-3].real,
-+ {FR->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
- localVector,
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
-@@ -4173,9 +4506,9 @@
- #line 1359 "ds9parser.Y"
- {
- // hard coded into projection.tcl
-- FR->createProjectionCmd(Vector(yyvsp[-7].vector),
-- Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ FR->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
-+ Vector((yyvsp[(5) - (10)].vector)),
-+ (yyvsp[(7) - (10)].real),
- "ProjectionPlot", "ProjectionPlotDelete",
- localColor,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
-@@ -4184,8 +4517,8 @@
-
- case 292:
- #line 1369 "ds9parser.Y"
-- {FR->createRulerCmd(Vector(yyvsp[-5].vector),
-- Vector(yyvsp[-3].vector),
-+ {FR->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ Vector((yyvsp[(5) - (8)].vector)),
- localRulerCoordSystem, localRulerSkyFrame,
- localRulerDistSystem, localRulerDistFormat,
- localColor,localWidth,localFont,
-@@ -4194,8 +4527,8 @@
-
- case 293:
- #line 1376 "ds9parser.Y"
-- {FR->createCompassCmd(Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,
-+ {FR->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ (yyvsp[(5) - (8)].real),
- localCompassNorth, localCompassEast,
- localCompassNArrow, localCompassEArrow,
- localCompassCoordSystem, localCompassSkyFrame,
-@@ -4205,14 +4538,14 @@
-
- case 296:
- #line 1389 "ds9parser.Y"
-- {polylist.append(new Vertex(yyvsp[0].vector));;}
-+ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
- break;
-
- case 299:
- #line 1397 "ds9parser.Y"
- {
- if (aNum < MAXANNULI)
-- aAnnuli[aNum++] = yyvsp[0].real;
-+ aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);
- ;}
- break;
-
-@@ -4220,13 +4553,13 @@
- #line 1408 "ds9parser.Y"
- {
- if (aAngNum < MAXANGLES)
-- aAngles[aAngNum++] = yyvsp[0].real;
-+ aAngles[aAngNum++] = (yyvsp[(1) - (1)].real);
- ;}
- break;
-
- case 305:
- #line 1418 "ds9parser.Y"
-- {aVector[aNum++] = Vector(yyvsp[-2].real,yyvsp[0].real);;}
-+ {aVector[aNum++] = Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real));;}
- break;
-
- case 306:
-@@ -4260,15 +4593,14 @@
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 4598 "ds9parser.C"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 4267 "ds9parser.C"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -4297,99 +4629,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror ("syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror ("syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (yymsg);
-+ }
-+ else
-+ {
-+ yyerror (YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -4399,15 +4697,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -4436,9 +4736,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -4446,11 +4747,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -4470,21 +4772,39 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror ("parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
---- saods9-4.0b7.orig/saotk/frame/tngparser.C
-+++ saods9-4.0b7/saotk/frame/tngparser.C
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -45,8 +58,7 @@
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
--/* If NAME_PREFIX is specified substitute the variables and functions
-- names. */
-+/* Substitute the variable and function names. */
- #define yyparse tngparse
- #define yylex tnglex
- #define yyerror tngerror
-@@ -103,6 +115,7 @@
- YELLOW_ = 296
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define STRING 260
-@@ -158,8 +171,8 @@
- #define DISCARD_(x) {yyclearin; tngDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
-@@ -216,16 +229,23 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 60 "tngparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 229 "tngparser.C"
-+}
-+/* Line 193 of yacc.c. */
-+#line 248 "tngparser.C"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -236,56 +256,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 241 "tngparser.C"
-+/* Line 216 of yacc.c. */
-+#line 261 "tngparser.C"
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+#endif
-+
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-+
-+#ifndef YY_
-+# if YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
-+# endif
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -295,24 +430,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -330,39 +465,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
-+ while (YYID (0))
-
- #endif
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
--#endif
--
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 3
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 136
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 51
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 33
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 80
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 143
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 296
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned char yytranslate[] =
-+static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 42, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -399,7 +528,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned char yyprhs[] =
-+static const yytype_uint8 yyprhs[] =
- {
- 0, 0, 3, 6, 10, 13, 14, 17, 19, 23,
- 25, 27, 29, 31, 33, 35, 37, 39, 40, 42,
-@@ -412,8 +541,8 @@
- 234
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const yysigned_char yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int8 yyrhs[] =
- {
- 52, 0, -1, 68, 53, -1, 53, 54, 55, -1,
- 54, 55, -1, -1, 16, 57, -1, 39, -1, 69,
-@@ -442,7 +571,7 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned short yyrline[] =
-+static const yytype_uint16 yyrline[] =
- {
- 0, 123, 123, 126, 127, 130, 131, 132, 133, 134,
- 137, 138, 139, 142, 143, 146, 147, 150, 151, 154,
-@@ -456,9 +585,9 @@
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "INT", "REAL", "STRING", "DEGREE",
-@@ -480,7 +609,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-@@ -492,7 +621,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned char yyr1[] =
-+static const yytype_uint8 yyr1[] =
- {
- 0, 51, 52, 53, 53, 54, 54, 54, 54, 54,
- 55, 55, 55, 56, 56, 57, 57, 58, 58, 59,
-@@ -506,7 +635,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 2, 3, 2, 0, 2, 1, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
-@@ -522,7 +651,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned char yydefact[] =
-+static const yytype_uint8 yydefact[] =
- {
- 38, 0, 39, 1, 0, 7, 60, 39, 0, 40,
- 9, 16, 15, 6, 0, 0, 0, 0, 0, 12,
-@@ -541,8 +670,8 @@
- 49, 45, 44
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const short yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int16 yydefgoto[] =
- {
- -1, 1, 7, 8, 22, 63, 13, 80, 46, 88,
- 131, 132, 101, 99, 64, 89, 77, 2, 9, 25,
-@@ -553,7 +682,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -87
--static const short yypact[] =
-+static const yytype_int16 yypact[] =
- {
- -87, 6, -5, -87, -18, -87, -13, 0, -7, -28,
- -87, -87, -87, -87, -41, -22, -4, 42, -7, -87,
-@@ -573,7 +702,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const yysigned_char yypgoto[] =
-+static const yytype_int8 yypgoto[] =
- {
- -87, -87, -87, 89, 79, 9, -87, 1, 76, -86,
- -17, -87, -87, 17, 30, -23, -87, -87, -87, -87,
-@@ -586,7 +715,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -22
--static const short yytable[] =
-+static const yytype_int16 yytable[] =
- {
- -2, 19, 14, -5, 107, 41, 3, 15, -5, 26,
- 16, 4, 11, 12, 42, 111, 4, 113, -21, 23,
-@@ -604,7 +733,7 @@
- 0, 75, 59, 60, 76, 61, 62
- };
-
--static const short yycheck[] =
-+static const yytype_int16 yycheck[] =
- {
- 0, 8, 15, 8, 90, 17, 0, 20, 8, 50,
- 23, 16, 30, 31, 26, 101, 16, 103, 8, 47,
-@@ -624,7 +753,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned char yystos[] =
-+static const yytype_uint8 yystos[] =
- {
- 0, 52, 68, 0, 16, 39, 49, 53, 54, 69,
- 76, 30, 31, 57, 15, 20, 23, 79, 54, 8,
-@@ -643,22 +772,6 @@
- 80, 80, 80
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -684,30 +797,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror ("syntax error: cannot back up");\
-+ { \
-+ yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -728,42 +874,96 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -772,45 +972,52 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule)
-+ YYSTYPE *yyvsp;
- int yyrule;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ );
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -825,13 +1032,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -841,45 +1044,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -889,70 +1094,192 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-
--
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-+
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ if (! yyres)
-+ return yystrlen (yystr);
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-+
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-+
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -960,13 +1287,13 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void);
- #else
- int yyparse ();
-@@ -975,10 +1302,10 @@
-
-
-
--/* The lookahead symbol. */
-+/* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -991,14 +1318,18 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
- yyparse (void)
- #else
-@@ -1009,13 +1340,19 @@
- #endif
- {
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -1026,18 +1363,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -1046,9 +1383,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -1072,8 +1409,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -1086,18 +1422,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -1108,21 +1444,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -1153,19 +1489,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -1180,7 +1514,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -1200,22 +1534,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -1262,12 +1595,12 @@
-
- case 13:
- #line 142 "tngparser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 14:
- #line 143 "tngparser.Y"
-- {yyval.real=yyvsp[0].integer;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 15:
-@@ -1282,42 +1615,42 @@
-
- case 23:
- #line 162 "tngparser.Y"
-- {yyval.real = 0;;}
-+ {(yyval.real) = 0;;}
- break;
-
- case 24:
- #line 163 "tngparser.Y"
-- {yyval.real = yyvsp[0].real;;}
-+ {(yyval.real) = (yyvsp[(1) - (1)].real);;}
- break;
-
- case 25:
- #line 166 "tngparser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 26:
- #line 167 "tngparser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 27:
- #line 170 "tngparser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real,IMAGE);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real),IMAGE);;}
- break;
-
- case 28:
- #line 174 "tngparser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), IMAGE);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 29:
- #line 182 "tngparser.Y"
-- {yyval.real = parseDMS(yyvsp[0].str);;}
-+ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
- break;
-
- case 30:
-@@ -1327,60 +1660,60 @@
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
-- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), sys, sky);
-+ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
- else
-- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real), sys, sky);
-+ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 31:
- #line 200 "tngparser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), localSystem, localSky);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 32:
- #line 207 "tngparser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
- checkWCSSystem(), checkWCSSky());
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 33:
- #line 216 "tngparser.Y"
-- {yyval.integer = FK4;;}
-+ {(yyval.integer) = FK4;;}
- break;
-
- case 34:
- #line 217 "tngparser.Y"
-- {yyval.integer = FK5;;}
-+ {(yyval.integer) = FK5;;}
- break;
-
- case 35:
- #line 218 "tngparser.Y"
-- {yyval.integer = GALACTIC;;}
-+ {(yyval.integer) = GALACTIC;;}
- break;
-
- case 36:
- #line 219 "tngparser.Y"
-- {yyval.integer = ECLIPTIC;;}
-+ {(yyval.integer) = ECLIPTIC;;}
- break;
-
- case 37:
- #line 220 "tngparser.Y"
-- {yyval.integer = ICRS;;}
-+ {(yyval.integer) = ICRS;;}
- break;
-
- case 38:
-@@ -1431,34 +1764,34 @@
-
- case 43:
- #line 256 "tngparser.Y"
-- {FR->createCircleCmd(Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ {FR->createCircleCmd(Vector((yyvsp[(3) - (7)].vector)),
-+ (yyvsp[(5) - (7)].real),
- localColor,1,globalFont,localText,
- localProps,localComment,taglist,cblist);;}
- break;
-
- case 44:
- #line 262 "tngparser.Y"
-- {FR->createEllipseCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ {FR->createEllipseCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- localColor,1,globalFont,localText,
- localProps,localComment,taglist,cblist);;}
- break;
-
- case 45:
- #line 269 "tngparser.Y"
-- {FR->createBoxCmd(Vector(yyvsp[-6].vector),
-- Vector(yyvsp[-4].vector),
-- yyvsp[-2].real,
-+ {FR->createBoxCmd(Vector((yyvsp[(3) - (9)].vector)),
-+ Vector((yyvsp[(5) - (9)].vector)),
-+ (yyvsp[(7) - (9)].real),
- localColor,1,globalFont,localText,
- localProps,localComment,taglist,cblist);;}
- break;
-
- case 46:
- #line 276 "tngparser.Y"
-- {FR->createLineCmd(Vector(yyvsp[-4].vector),
-- Vector(yyvsp[-2].vector),
-+ {FR->createLineCmd(Vector((yyvsp[(3) - (7)].vector)),
-+ Vector((yyvsp[(5) - (7)].vector)),
- 0,0,
- localColor,1,globalFont,localText,
- localProps,localComment,taglist,cblist);;}
-@@ -1466,19 +1799,19 @@
-
- case 47:
- #line 283 "tngparser.Y"
-- {FR->createBoxCirclePointCmd(Vector(yyvsp[-2].vector),
-+ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)),
- localColor,1,globalFont,localText,
- localProps,localComment,taglist,cblist);;}
- break;
-
- case 48:
- #line 287 "tngparser.Y"
-- {strncpy(localText,yyvsp[-1].str,80);;}
-+ {strncpy(localText,(yyvsp[(5) - (6)].str),80);;}
- break;
-
- case 49:
- #line 288 "tngparser.Y"
-- {FR->createTextCmd(Vector(yyvsp[-5].vector),
-+ {FR->createTextCmd(Vector((yyvsp[(3) - (8)].vector)),
- 0,
- localColor,1,globalFont,localText,
- localProps,localComment,taglist,cblist);;}
-@@ -1498,7 +1831,7 @@
-
- case 54:
- #line 303 "tngparser.Y"
-- {polylist.append(new Vertex(yyvsp[0].vector));;}
-+ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
- break;
-
- case 56:
-@@ -1518,7 +1851,7 @@
-
- case 61:
- #line 309 "tngparser.Y"
-- {strncpy(globalText,yyvsp[0].str,80);;}
-+ {strncpy(globalText,(yyvsp[(3) - (3)].str),80);;}
- break;
-
- case 63:
-@@ -1584,7 +1917,7 @@
-
- case 74:
- #line 331 "tngparser.Y"
-- {strncpy(localComment,yyvsp[0].str,80);;}
-+ {strncpy(localComment,(yyvsp[(3) - (3)].str),80);;}
- break;
-
- case 77:
-@@ -1609,20 +1942,19 @@
- #line 346 "tngparser.Y"
- {
- globalSystem = localSystem = WCS;
-- globalSky = localSky = (SkyFrame)yyvsp[-1].integer;
-+ globalSky = localSky = (SkyFrame)(yyvsp[(2) - (3)].integer);
- ;}
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 1952 "tngparser.C"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 1621 "tngparser.C"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -1651,99 +1983,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror ("syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror ("syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (yymsg);
-+ }
-+ else
-+ {
-+ yyerror (YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -1753,15 +2051,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -1790,9 +2090,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -1800,11 +2101,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -1824,21 +2126,39 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror ("parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
---- saods9-4.0b7.orig/saotk/frame/fitsimage.h
-+++ saods9-4.0b7/saotk/frame/fitsimage.h
-@@ -12,7 +12,7 @@
-
- class FitsFile;
-
--#include "wcs.h"
-+#include "../../wcssubs-3.5.6/wcs.h"
-
- class FitsImage {
- protected:
-@@ -405,33 +405,33 @@
- char* getKeyword(const char*);
- int findKeyword(const char*);
-
-- int FitsImage::saveFitsImageFile(const char* fn, int compress)
-+ int saveFitsImageFile(const char* fn, int compress)
- {return image_ ? image_->saveFitsImageFile(fn, compress) : 0;}
-
-- int FitsImage::saveFitsImageChannel(Tcl_Interp* interp, const char* ch,
-+ int saveFitsImageChannel(Tcl_Interp* interp, const char* ch,
- int compress)
- {return image_ ? image_->saveFitsImageChannel(interp, ch, compress) : 0;}
-
-- int FitsImage::saveFitsImageSocket(int s, int compress)
-+ int saveFitsImageSocket(int s, int compress)
- {return image_ ? image_->saveFitsImageSocket(s, compress) : 0;}
-
-- int FitsImage::saveFitsTableFile(const char* fn, int compress)
-+ int saveFitsTableFile(const char* fn, int compress)
- {return fits_ ? fits_->saveFitsTableFile(fn, compress) : 0;}
-
-- int FitsImage::saveFitsTableChannel(Tcl_Interp* interp, const char* ch,
-+ int saveFitsTableChannel(Tcl_Interp* interp, const char* ch,
- int compress)
- {return fits_ ? fits_->saveFitsTableChannel(interp, ch, compress): 0;}
-
-- int FitsImage::saveFitsTableSocket(int s, int compress)
-+ int saveFitsTableSocket(int s, int compress)
- {return fits_ ? fits_->saveFitsTableSocket(s, compress) : 0;}
-
-- int FitsImage::saveArrayFile(const char* fn)
-+ int saveArrayFile(const char* fn)
- {return image_ ? image_->saveArrayFile(fn) : 0;}
-
-- int FitsImage::saveArrayChannel(Tcl_Interp* interp, const char* ch)
-+ int saveArrayChannel(Tcl_Interp* interp, const char* ch)
- {return image_ ? image_->saveArrayChannel(interp, ch) : 0;}
-
-- int FitsImage::saveArraySocket(int s)
-+ int saveArraySocket(int s)
- {return image_ ? image_->saveArraySocket(s) : 0;}
- };
-
---- saods9-4.0b7.orig/saotk/frame/contourscale.C
-+++ saods9-4.0b7/saotk/frame/contourscale.C
-@@ -3,7 +3,7 @@
- // For conditions of distribution and use, see copyright notice in "copyright"
-
- #include <math.h>
--#include <iostream.h>
-+#include <iostream>
-
- #include "contourscale.h"
- #include "framebase.h"
---- saods9-4.0b7.orig/saotk/frame/lex.C
-+++ saods9-4.0b7/saotk/frame/lex.C
-@@ -4,7 +4,7 @@
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /proj/rd/cvsroot/saods9/saotk/frame/lex.C,v 1.181 2005/08/24 21:41:24 joye Exp $
-+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
- */
-
- #define FLEX_SCANNER
-@@ -12,7 +12,6 @@
- #define YY_FLEX_MINOR_VERSION 5
-
-
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -24,8 +23,12 @@
- #ifdef __cplusplus
-
- #include <stdlib.h>
--#include <iostream>
--using namespace std;
-+#include <fstream>
-+using std::istream;
-+using std::ostream;
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
-
- /* Use prototypes in function declarations. */
- #define YY_USE_PROTOS
-@@ -65,6 +68,7 @@
- #define YY_PROTO(proto) ()
- #endif
-
-+
- /* Returned upon end-of-file. */
- #define YY_NULL 0
-
-@@ -995,7 +999,7 @@
- extern frFlexLexer* frlexx;
- extern int frsign;
- /* rules */
--#line 999 "lex.C"
-+#line 1003 "lex.C"
-
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
-@@ -1119,13 +1123,13 @@
- YY_DECL
- {
- register yy_state_type yy_current_state;
-- register char *yy_cp = NULL, *yy_bp = NULL;
-+ register char *yy_cp, *yy_bp;
- register int yy_act;
-
- #line 29 "lex.L"
-
-
--#line 1129 "lex.C"
-+#line 1133 "lex.C"
-
- if ( yy_init )
- {
-@@ -2810,7 +2814,7 @@
- #line 417 "lex.L"
- ECHO;
- YY_BREAK
--#line 2814 "lex.C"
-+#line 2818 "lex.C"
- case YY_STATE_EOF(INITIAL):
- yyterminate();
-
-@@ -3328,6 +3332,7 @@
- return c;
- }
-
-+
- void yyFlexLexer::yyrestart( istream* input_file )
- {
- if ( ! yy_current_buffer )
---- saods9-4.0b7.orig/saotk/frame/xyparser.C
-+++ saods9-4.0b7/saotk/frame/xyparser.C
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -45,8 +58,7 @@
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
--/* If NAME_PREFIX is specified substitute the variables and functions
-- names. */
-+/* Substitute the variable and function names. */
- #define yyparse xyparse
- #define yylex xylex
- #define yyerror xyerror
-@@ -118,6 +130,7 @@
- WCSZ_ = 311
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define HOUR 260
-@@ -186,8 +199,8 @@
- #define FITSPTR (FR->findFits(1))
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
-@@ -226,16 +239,23 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 40 "xyparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 239 "xyparser.C"
-+}
-+/* Line 193 of yacc.c. */
-+#line 258 "xyparser.C"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -246,56 +266,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 251 "xyparser.C"
-+/* Line 216 of yacc.c. */
-+#line 271 "xyparser.C"
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+#endif
-+
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-+
-+#ifndef YY_
-+# if YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
-+# endif
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -305,24 +440,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -340,39 +475,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
-+ while (YYID (0))
-
- #endif
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
--#endif
--
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 3
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 138
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 60
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 20
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 75
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 96
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 311
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned char yytranslate[] =
-+static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 57, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -411,7 +540,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned char yyprhs[] =
-+static const yytype_uint8 yyprhs[] =
- {
- 0, 0, 3, 4, 7, 11, 14, 15, 18, 20,
- 22, 25, 26, 30, 31, 33, 36, 38, 40, 42,
-@@ -423,8 +552,8 @@
- 161, 163, 165, 167, 169, 171
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const yysigned_char yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int8 yyrhs[] =
- {
- 61, 0, -1, -1, 62, 63, -1, 63, 64, 69,
- -1, 64, 69, -1, -1, 16, 71, -1, 29, -1,
-@@ -447,7 +576,7 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned short yyrline[] =
-+static const yytype_uint16 yyrline[] =
- {
- 0, 115, 115, 115, 121, 122, 125, 126, 127, 128,
- 129, 131, 131, 134, 135, 138, 139, 142, 145, 146,
-@@ -460,9 +589,9 @@
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "INT", "REAL", "HOUR", "MINUTE",
-@@ -482,7 +611,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-@@ -494,7 +623,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned char yyr1[] =
-+static const yytype_uint8 yyr1[] =
- {
- 0, 60, 62, 61, 63, 63, 64, 64, 64, 64,
- 64, 65, 64, 66, 66, 67, 67, 68, 69, 69,
-@@ -507,7 +636,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 0, 2, 3, 2, 0, 2, 1, 1,
- 2, 0, 3, 0, 1, 2, 1, 1, 1, 1,
-@@ -522,7 +651,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned char yydefact[] =
-+static const yytype_uint8 yydefact[] =
- {
- 2, 0, 11, 1, 39, 38, 0, 40, 35, 36,
- 37, 8, 41, 42, 43, 44, 45, 46, 47, 48,
-@@ -536,8 +665,8 @@
- 0, 0, 0, 0, 32, 30
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const yysigned_char yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int8 yydefgoto[] =
- {
- -1, 1, 2, 39, 40, 41, 76, 77, 78, 50,
- 79, 45, 72, 57, 58, 87, 86, 42, 67, 59
-@@ -546,7 +675,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -46
--static const yysigned_char yypact[] =
-+static const yytype_int8 yypact[] =
- {
- -46, 4, 47, -46, -46, -46, -24, -46, -46, -46,
- -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-@@ -561,7 +690,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const yysigned_char yypgoto[] =
-+static const yytype_int8 yypgoto[] =
- {
- -46, -46, -46, -46, 73, -46, -46, -46, 36, 69,
- 33, -46, 51, 42, -46, -46, -46, -46, -46, -46
-@@ -572,7 +701,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -7
--static const yysigned_char yytable[] =
-+static const yytype_int8 yytable[] =
- {
- -3, 60, 43, 44, 3, 61, 62, 63, 64, 65,
- 69, 66, -6, 4, 71, 5, 6, 7, 75, 52,
-@@ -590,7 +719,7 @@
- 0, 0, 0, 0, 0, 0, 0, 88, 89
- };
-
--static const yysigned_char yycheck[] =
-+static const yytype_int8 yycheck[] =
- {
- 0, 14, 26, 27, 0, 18, 19, 20, 21, 22,
- 9, 24, 12, 13, 59, 15, 16, 17, 3, 4,
-@@ -610,7 +739,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned char yystos[] =
-+static const yytype_uint8 yystos[] =
- {
- 0, 61, 62, 0, 13, 15, 16, 17, 23, 25,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-@@ -624,22 +753,6 @@
- 3, 3, 9, 9, 10, 10
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -665,30 +778,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror ("syntax error: cannot back up");\
-+ { \
-+ yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -709,42 +855,96 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -753,45 +953,52 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule)
-+ YYSTYPE *yyvsp;
- int yyrule;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ );
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -806,13 +1013,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -822,45 +1025,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -870,70 +1075,192 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-
--
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-+
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ if (! yyres)
-+ return yystrlen (yystr);
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-+
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-+
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -941,13 +1268,13 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void);
- #else
- int yyparse ();
-@@ -956,10 +1283,10 @@
-
-
-
--/* The lookahead symbol. */
-+/* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -972,14 +1299,18 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
- yyparse (void)
- #else
-@@ -990,13 +1321,19 @@
- #endif
- {
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -1007,18 +1344,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -1027,9 +1364,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -1053,8 +1390,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -1067,18 +1403,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -1089,21 +1425,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -1134,19 +1470,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -1161,7 +1495,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -1181,22 +1515,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -1246,12 +1579,12 @@
-
- case 9:
- #line 128 "xyparser.Y"
-- {globalSystem = (CoordSystem)yyvsp[0].integer;;}
-+ {globalSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 10:
- #line 130 "xyparser.Y"
-- {globalSystem = (CoordSystem)yyvsp[-1].integer; globalSky = (SkyFrame)yyvsp[0].integer;;}
-+ {globalSystem = (CoordSystem)(yyvsp[(1) - (2)].integer); globalSky = (SkyFrame)(yyvsp[(2) - (2)].integer);;}
- break;
-
- case 11:
-@@ -1271,12 +1604,12 @@
-
- case 21:
- #line 150 "xyparser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 22:
- #line 151 "xyparser.Y"
-- {yyval.real=yyvsp[0].integer;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 23:
-@@ -1291,7 +1624,7 @@
-
- case 27:
- #line 162 "xyparser.Y"
-- {yyval.real = parseDMS(yyvsp[0].str);;}
-+ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
- break;
-
- case 28:
-@@ -1299,13 +1632,13 @@
- {
- Vector r;
- if (localSky == GALACTIC || localSky == ECLIPTIC)
-- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),localSystem,localSky);
-+ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky);
- else
-- r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real),localSystem,localSky);
-+ r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)),localSystem,localSky);
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1318,12 +1651,12 @@
- #line 178 "xyparser.Y"
- {
- Vector r = FITSPTR->mapToRef(
-- Vector(hmsToDegree(xysign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),
-- dmsToDegree(xysign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(hmsToDegree(xysign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),
-+ dmsToDegree(xysign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- localSystem, localSky);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1336,238 +1669,238 @@
- #line 189 "xyparser.Y"
- {
- Vector r = FITSPTR->mapToRef(
-- Vector(dmsToDegree(xysign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),
-- dmsToDegree(xysign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(dmsToDegree(xysign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),
-+ dmsToDegree(xysign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- localSystem, localSky);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 33:
- #line 199 "xyparser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),localSystem,localSky);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 34:
- #line 206 "xyparser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real),localSystem,localSky);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 35:
- #line 214 "xyparser.Y"
-- {yyval.integer = IMAGE;;}
-+ {(yyval.integer) = IMAGE;;}
- break;
-
- case 36:
- #line 215 "xyparser.Y"
-- {yyval.integer = IMAGE;;}
-+ {(yyval.integer) = IMAGE;;}
- break;
-
- case 37:
- #line 216 "xyparser.Y"
-- {yyval.integer = PHYSICAL;;}
-+ {(yyval.integer) = PHYSICAL;;}
- break;
-
- case 38:
- #line 217 "xyparser.Y"
-- {yyval.integer = PHYSICAL;;}
-+ {(yyval.integer) = PHYSICAL;;}
- break;
-
- case 39:
- #line 218 "xyparser.Y"
-- {yyval.integer = AMPLIFIER;;}
-+ {(yyval.integer) = AMPLIFIER;;}
- break;
-
- case 40:
- #line 219 "xyparser.Y"
-- {yyval.integer = DETECTOR;;}
-+ {(yyval.integer) = DETECTOR;;}
- break;
-
- case 41:
- #line 220 "xyparser.Y"
-- {yyval.integer = WCS;;}
-+ {(yyval.integer) = WCS;;}
- break;
-
- case 42:
- #line 221 "xyparser.Y"
-- {yyval.integer = WCSA;;}
-+ {(yyval.integer) = WCSA;;}
- break;
-
- case 43:
- #line 222 "xyparser.Y"
-- {yyval.integer = WCSB;;}
-+ {(yyval.integer) = WCSB;;}
- break;
-
- case 44:
- #line 223 "xyparser.Y"
-- {yyval.integer = WCSC;;}
-+ {(yyval.integer) = WCSC;;}
- break;
-
- case 45:
- #line 224 "xyparser.Y"
-- {yyval.integer = WCSD;;}
-+ {(yyval.integer) = WCSD;;}
- break;
-
- case 46:
- #line 225 "xyparser.Y"
-- {yyval.integer = WCSE;;}
-+ {(yyval.integer) = WCSE;;}
- break;
-
- case 47:
- #line 226 "xyparser.Y"
-- {yyval.integer = WCSF;;}
-+ {(yyval.integer) = WCSF;;}
- break;
-
- case 48:
- #line 227 "xyparser.Y"
-- {yyval.integer = WCSG;;}
-+ {(yyval.integer) = WCSG;;}
- break;
-
- case 49:
- #line 228 "xyparser.Y"
-- {yyval.integer = WCSH;;}
-+ {(yyval.integer) = WCSH;;}
- break;
-
- case 50:
- #line 229 "xyparser.Y"
-- {yyval.integer = WCSI;;}
-+ {(yyval.integer) = WCSI;;}
- break;
-
- case 51:
- #line 230 "xyparser.Y"
-- {yyval.integer = WCSJ;;}
-+ {(yyval.integer) = WCSJ;;}
- break;
-
- case 52:
- #line 231 "xyparser.Y"
-- {yyval.integer = WCSK;;}
-+ {(yyval.integer) = WCSK;;}
- break;
-
- case 53:
- #line 232 "xyparser.Y"
-- {yyval.integer = WCSL;;}
-+ {(yyval.integer) = WCSL;;}
- break;
-
- case 54:
- #line 233 "xyparser.Y"
-- {yyval.integer = WCSM;;}
-+ {(yyval.integer) = WCSM;;}
- break;
-
- case 55:
- #line 234 "xyparser.Y"
-- {yyval.integer = WCSN;;}
-+ {(yyval.integer) = WCSN;;}
- break;
-
- case 56:
- #line 235 "xyparser.Y"
-- {yyval.integer = WCSO;;}
-+ {(yyval.integer) = WCSO;;}
- break;
-
- case 57:
- #line 236 "xyparser.Y"
-- {yyval.integer = WCSP;;}
-+ {(yyval.integer) = WCSP;;}
- break;
-
- case 58:
- #line 237 "xyparser.Y"
-- {yyval.integer = WCSQ;;}
-+ {(yyval.integer) = WCSQ;;}
- break;
-
- case 59:
- #line 238 "xyparser.Y"
-- {yyval.integer = WCSR;;}
-+ {(yyval.integer) = WCSR;;}
- break;
-
- case 60:
- #line 239 "xyparser.Y"
-- {yyval.integer = WCSS;;}
-+ {(yyval.integer) = WCSS;;}
- break;
-
- case 61:
- #line 240 "xyparser.Y"
-- {yyval.integer = WCST;;}
-+ {(yyval.integer) = WCST;;}
- break;
-
- case 62:
- #line 241 "xyparser.Y"
-- {yyval.integer = WCSU;;}
-+ {(yyval.integer) = WCSU;;}
- break;
-
- case 63:
- #line 242 "xyparser.Y"
-- {yyval.integer = WCSV;;}
-+ {(yyval.integer) = WCSV;;}
- break;
-
- case 64:
- #line 243 "xyparser.Y"
-- {yyval.integer = WCSW;;}
-+ {(yyval.integer) = WCSW;;}
- break;
-
- case 65:
- #line 244 "xyparser.Y"
-- {yyval.integer = WCSX;;}
-+ {(yyval.integer) = WCSX;;}
- break;
-
- case 66:
- #line 245 "xyparser.Y"
-- {yyval.integer = WCSY;;}
-+ {(yyval.integer) = WCSY;;}
- break;
-
- case 67:
- #line 246 "xyparser.Y"
-- {yyval.integer = WCSZ;;}
-+ {(yyval.integer) = WCSZ;;}
- break;
-
- case 68:
- #line 249 "xyparser.Y"
-- {yyval.integer = FK4;;}
-+ {(yyval.integer) = FK4;;}
- break;
-
- case 69:
- #line 250 "xyparser.Y"
-- {yyval.integer = FK4;;}
-+ {(yyval.integer) = FK4;;}
- break;
-
- case 70:
- #line 251 "xyparser.Y"
-- {yyval.integer = FK5;;}
-+ {(yyval.integer) = FK5;;}
- break;
-
- case 71:
- #line 252 "xyparser.Y"
-- {yyval.integer = FK5;;}
-+ {(yyval.integer) = FK5;;}
- break;
-
- case 72:
- #line 253 "xyparser.Y"
-- {yyval.integer = ICRS;;}
-+ {(yyval.integer) = ICRS;;}
- break;
-
- case 73:
- #line 254 "xyparser.Y"
-- {yyval.integer = GALACTIC;;}
-+ {(yyval.integer) = GALACTIC;;}
- break;
-
- case 74:
- #line 255 "xyparser.Y"
-- {yyval.integer = ECLIPTIC;;}
-+ {(yyval.integer) = ECLIPTIC;;}
- break;
-
- case 75:
- #line 258 "xyparser.Y"
-- {FR->createBoxCirclePointCmd(Vector(yyvsp[0].vector),
-+ {FR->createBoxCirclePointCmd(Vector((yyvsp[(1) - (1)].vector)),
- "green",1,"helvetica 10 normal","",
- Marker::SELECT | Marker::EDIT | Marker::MOVE | Marker::ROTATE |
- Marker::DELETE | Marker::HIGHLITE |
-@@ -1577,15 +1910,14 @@
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 1915 "xyparser.C"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 1584 "xyparser.C"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -1614,99 +1946,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror ("syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror ("syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (yymsg);
-+ }
-+ else
-+ {
-+ yyerror (YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -1716,15 +2014,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -1753,9 +2053,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -1763,11 +2064,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -1787,21 +2089,39 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror ("parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
---- saods9-4.0b7.orig/saotk/frame/tngparser.Y
-+++ saods9-4.0b7/saotk/frame/tngparser.Y
-@@ -12,8 +12,8 @@
- #define DISCARD_(x) {yyclearin; tngDiscard(x);}
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
---- saods9-4.0b7.orig/saotk/frame/ciaoparser.C
-+++ saods9-4.0b7/saotk/frame/ciaoparser.C
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -45,8 +58,7 @@
- /* Using locations. */
- #define YYLSP_NEEDED 0
-
--/* If NAME_PREFIX is specified substitute the variables and functions
-- names. */
-+/* Substitute the variable and function names. */
- #define yyparse ciaoparse
- #define yylex ciaolex
- #define yyerror ciaoerror
-@@ -85,6 +97,7 @@
- VERSION_ = 278
- };
- #endif
-+/* Tokens. */
- #define INT 258
- #define REAL 259
- #define HOUR 260
-@@ -120,8 +133,8 @@
- #define FITSPTR (FR->findFits(1))
-
- #include <math.h>
--#include <string.h>
--#include <iostream.h>
-+#include <string>
-+#include <iostream>
-
- #include "framebase.h"
- #include "fitsimage.h"
-@@ -163,16 +176,23 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
- #line 43 "ciaoparser.Y"
--typedef union YYSTYPE {
-+{
- double real;
- int integer;
- char str[2048];
- double vector[3];
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 176 "ciaoparser.C"
-+}
-+/* Line 193 of yacc.c. */
-+#line 195 "ciaoparser.C"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -183,56 +203,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 188 "ciaoparser.C"
-+/* Line 216 of yacc.c. */
-+#line 208 "ciaoparser.C"
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+#endif
-+
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-+
-+#ifndef YY_
-+# if YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
-+# endif
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -242,24 +377,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -277,39 +412,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
-+ while (YYID (0))
-
- #endif
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
--#endif
--
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 9
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 135
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 31
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 22
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 50
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 122
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 278
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned char yytranslate[] =
-+static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 24, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -344,7 +473,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned char yyprhs[] =
-+static const yytype_uint8 yyprhs[] =
- {
- 0, 0, 3, 7, 10, 11, 14, 16, 20, 22,
- 24, 26, 28, 30, 32, 34, 35, 37, 38, 40,
-@@ -354,8 +483,8 @@
- 171
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const yysigned_char yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int8 yyrhs[] =
- {
- 32, 0, -1, 32, 33, 34, -1, 33, 34, -1,
- -1, 15, 36, -1, 23, -1, 40, 48, 49, -1,
-@@ -378,7 +507,7 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned char yyrline[] =
-+static const yytype_uint8 yyrline[] =
- {
- 0, 86, 86, 87, 90, 91, 92, 93, 96, 97,
- 98, 101, 102, 105, 106, 109, 110, 113, 114, 117,
-@@ -389,9 +518,9 @@
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "INT", "REAL", "HOUR", "MINUTE",
-@@ -408,7 +537,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-@@ -418,7 +547,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned char yyr1[] =
-+static const yytype_uint8 yyr1[] =
- {
- 0, 31, 32, 32, 33, 33, 33, 33, 34, 34,
- 34, 35, 35, 36, 36, 37, 37, 38, 38, 39,
-@@ -429,7 +558,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 3, 2, 0, 2, 1, 3, 1, 1,
- 1, 1, 1, 1, 1, 0, 1, 0, 1, 0,
-@@ -442,7 +571,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned char yydefact[] =
-+static const yytype_uint8 yydefact[] =
- {
- 21, 0, 6, 21, 0, 36, 14, 13, 5, 1,
- 0, 10, 8, 9, 3, 37, 38, 0, 2, 17,
-@@ -459,8 +588,8 @@
- 19, 42
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const yysigned_char yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int8 yydefgoto[] =
- {
- -1, 3, 4, 14, 41, 8, 54, 29, 62, 5,
- 105, 75, 79, 42, 63, 87, 86, 17, 27, 35,
-@@ -470,7 +599,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -89
--static const yysigned_char yypact[] =
-+static const yytype_int8 yypact[] =
- {
- 81, -11, -89, 61, 3, -19, -89, -89, -89, -89,
- 3, -89, -89, -89, -89, -89, -89, 95, -89, -15,
-@@ -488,7 +617,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const yysigned_char yypgoto[] =
-+static const yytype_int8 yypgoto[] =
- {
- -89, -89, 72, 87, -41, -89, -42, 67, -38, -89,
- -88, -37, -29, 22, 89, -89, -89, -89, -89, -89,
-@@ -500,7 +629,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -20
--static const yysigned_char yytable[] =
-+static const yytype_int8 yytable[] =
- {
- 55, 56, 57, 58, 59, 60, 6, 7, 66, 107,
- 15, 16, 28, 70, 11, 74, 78, 74, 78, 74,
-@@ -518,7 +647,7 @@
- 38, 0, 0, 40, 76, 77
- };
-
--static const yysigned_char yycheck[] =
-+static const yytype_int8 yycheck[] =
- {
- 42, 43, 44, 45, 46, 47, 17, 18, 50, 97,
- 29, 30, 27, 54, 11, 56, 57, 58, 59, 60,
-@@ -538,7 +667,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned char yystos[] =
-+static const yytype_uint8 yystos[] =
- {
- 0, 15, 23, 32, 33, 40, 17, 18, 36, 0,
- 33, 11, 24, 25, 34, 29, 30, 48, 34, 12,
-@@ -555,22 +684,6 @@
- 41, 39
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -596,30 +709,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror ("syntax error: cannot back up");\
-+ { \
-+ yyerror (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -640,42 +786,96 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -684,45 +884,52 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule)
-+ YYSTYPE *yyvsp;
- int yyrule;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ );
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -737,13 +944,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -753,45 +956,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -801,70 +1006,192 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-
--
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-+
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ if (! yyres)
-+ return yystrlen (yystr);
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-+
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-+
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -872,13 +1199,13 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void);
- #else
- int yyparse ();
-@@ -887,10 +1214,10 @@
-
-
-
--/* The lookahead symbol. */
-+/* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
-@@ -903,14 +1230,18 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
- yyparse (void)
- #else
-@@ -921,13 +1252,19 @@
- #endif
- {
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -938,18 +1275,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -958,9 +1295,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -984,8 +1321,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -998,18 +1334,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -1020,21 +1356,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -1065,19 +1401,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -1092,7 +1426,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -1112,22 +1446,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -1174,12 +1507,12 @@
-
- case 11:
- #line 101 "ciaoparser.Y"
-- {yyval.real=yyvsp[0].real;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].real);;}
- break;
-
- case 12:
- #line 102 "ciaoparser.Y"
-- {yyval.real=yyvsp[0].integer;;}
-+ {(yyval.real)=(yyvsp[(1) - (1)].integer);;}
- break;
-
- case 13:
-@@ -1204,67 +1537,67 @@
-
- case 22:
- #line 129 "ciaoparser.Y"
-- {yyval.real = degToRad(yyvsp[0].real);;}
-+ {(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
- break;
-
- case 23:
- #line 132 "ciaoparser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, PHYSICAL);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), PHYSICAL);;}
- break;
-
- case 24:
- #line 133 "ciaoparser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, WCS, ARCMIN);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), WCS, ARCMIN);;}
- break;
-
- case 25:
- #line 134 "ciaoparser.Y"
-- {yyval.real = FITSPTR->mapLenToRef(yyvsp[0].real, WCS, ARCSEC);;}
-+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), WCS, ARCSEC);;}
- break;
-
- case 26:
- #line 138 "ciaoparser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 27:
- #line 145 "ciaoparser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), WCS, ARCMIN);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), WCS, ARCMIN);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 28:
- #line 152 "ciaoparser.Y"
- {
-- Vector r = FITSPTR->mapLenToRef(Vector(yyvsp[-2].real,yyvsp[0].real), WCS, ARCSEC);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), WCS, ARCSEC);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 29:
- #line 160 "ciaoparser.Y"
-- {yyval.real = parseDMS(yyvsp[0].str);;}
-+ {(yyval.real) = parseDMS((yyvsp[(1) - (1)].str));;}
- break;
-
- case 30:
- #line 164 "ciaoparser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real*360./24.,yyvsp[0].real),WCS,FK5);
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)),WCS,FK5);
-
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1277,12 +1610,12 @@
- #line 172 "ciaoparser.Y"
- {
- Vector r = FITSPTR->mapToRef(
-- Vector(hmsToDegree(ciaosign2,yyvsp[-7].integer,yyvsp[-6].integer,yyvsp[-5].real),
-- dmsToDegree(ciaosign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(hmsToDegree(ciaosign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].integer),(yyvsp[(3) - (8)].real)),
-+ dmsToDegree(ciaosign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- WCS, FK5);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1295,22 +1628,22 @@
- #line 183 "ciaoparser.Y"
- {
- Vector r = FITSPTR->mapToRef(
-- Vector(dmsToDegree(ciaosign2,yyvsp[-7].integer,yyvsp[-6].real,yyvsp[-5].real),
-- dmsToDegree(ciaosign,yyvsp[-2].integer,yyvsp[-1].real,yyvsp[0].real)),
-+ Vector(dmsToDegree(ciaosign2,(yyvsp[(1) - (8)].integer),(yyvsp[(2) - (8)].real),(yyvsp[(3) - (8)].real)),
-+ dmsToDegree(ciaosign,(yyvsp[(6) - (8)].integer),(yyvsp[(7) - (8)].real),(yyvsp[(8) - (8)].real))),
- WCS, FK5);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
- case 35:
- #line 193 "ciaoparser.Y"
- {
-- Vector r = FITSPTR->mapToRef(Vector(yyvsp[-2].real,yyvsp[0].real), PHYSICAL);
-- yyval.vector[0] = r[0];
-- yyval.vector[1] = r[1];
-- yyval.vector[2] = r[2];
-+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
-+ (yyval.vector)[0] = r[0];
-+ (yyval.vector)[1] = r[1];
-+ (yyval.vector)[2] = r[2];
- ;}
- break;
-
-@@ -1326,52 +1659,52 @@
-
- case 39:
- #line 207 "ciaoparser.Y"
-- {FR->createCircleCmd(Vector(yyvsp[-3].vector),
-- yyvsp[-1].real,
-+ {FR->createCircleCmd(Vector((yyvsp[(3) - (6)].vector)),
-+ (yyvsp[(5) - (6)].real),
- color,1,font,text,props,NULL,taglist,cblist);;}
- break;
-
- case 40:
- #line 212 "ciaoparser.Y"
-- {FR->createEllipseCmd(Vector(yyvsp[-5].vector),
-- Vector(yyvsp[-3].vector),yyvsp[-1].real,
-+ {FR->createEllipseCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ Vector((yyvsp[(5) - (8)].vector)),(yyvsp[(7) - (8)].real),
- color,1,font,text,props,NULL,taglist,cblist);;}
- break;
-
- case 41:
- #line 217 "ciaoparser.Y"
-- {FR->createAnnulusCmd(Vector(yyvsp[-5].vector),
-- yyvsp[-3].real,yyvsp[-1].real,1,
-+ {FR->createAnnulusCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ (yyvsp[(5) - (8)].real),(yyvsp[(7) - (8)].real),1,
- color,1,font,text,props,NULL,taglist,cblist);;}
- break;
-
- case 42:
- #line 222 "ciaoparser.Y"
-- {FR->createCpandaCmd(Vector(yyvsp[-9].vector),
-- yyvsp[-3].real,yyvsp[-1].real,1,
-- yyvsp[-7].real,yyvsp[-5].real,1,
-+ {FR->createCpandaCmd(Vector((yyvsp[(3) - (12)].vector)),
-+ (yyvsp[(9) - (12)].real),(yyvsp[(11) - (12)].real),1,
-+ (yyvsp[(5) - (12)].real),(yyvsp[(7) - (12)].real),1,
- color,1,font,text,props,NULL,taglist,cblist);;}
- break;
-
- case 43:
- #line 228 "ciaoparser.Y"
-- {FR->createBoxCmd(Vector(yyvsp[-3].vector),
-- Vector(yyvsp[-1].vector),
-+ {FR->createBoxCmd(Vector((yyvsp[(3) - (6)].vector)),
-+ Vector((yyvsp[(5) - (6)].vector)),
- 0,
- color,1,font,text,props,NULL,taglist,cblist);;}
- break;
-
- case 44:
- #line 234 "ciaoparser.Y"
-- {FR->createBoxCmd(Vector(yyvsp[-5].vector),
-- Vector(yyvsp[-3].vector),
-- yyvsp[-1].real,
-+ {FR->createBoxCmd(Vector((yyvsp[(3) - (8)].vector)),
-+ Vector((yyvsp[(5) - (8)].vector)),
-+ (yyvsp[(7) - (8)].real),
- color,1,font,text,props,NULL,taglist,cblist);;}
- break;
-
- case 45:
- #line 240 "ciaoparser.Y"
-- {FR->createBoxCirclePointCmd(Vector(yyvsp[-1].vector),
-+ {FR->createBoxCirclePointCmd(Vector((yyvsp[(3) - (4)].vector)),
- color,1,font,text,props,NULL,taglist,cblist);;}
- break;
-
-@@ -1388,19 +1721,18 @@
-
- case 50:
- #line 252 "ciaoparser.Y"
-- {polylist.append(new Vertex(yyvsp[0].vector));;}
-+ {polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 1730 "ciaoparser.C"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 1399 "ciaoparser.C"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -1429,99 +1761,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror ("syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror ("syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (yymsg);
-+ }
-+ else
-+ {
-+ yyerror (YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -1531,15 +1829,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -1568,9 +1868,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -1578,11 +1879,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -1602,21 +1904,39 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror ("parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
---- saods9-4.0b7.orig/saotk/vector/vector.h
-+++ saods9-4.0b7/saotk/vector/vector.h
-@@ -13,6 +13,10 @@
-
- #include "tk.h"
-
-+class Vector;
-+class Matrix;
-+class BBox;
-+
- class Vector {
- friend class Matrix;
- friend class Translate;
---- saods9-4.0b7.orig/saotk/colorbar/lut.C
-+++ saods9-4.0b7/saotk/colorbar/lut.C
-@@ -1,4 +1,4 @@
--// Copyright (C) 1999-200
-+// Copyright (C) 1999-2005
- // Smithsonian Astrophysical Observatory, Cambridge, MA, USA
- // For conditions of distribution and use, see copyright notice in "copyright"
-
---- saods9-4.0b7.orig/ast-3.5/sphmap.c
-+++ saods9-4.0b7/ast-3.5/sphmap.c
-@@ -92,6 +92,7 @@
- #include <stddef.h>
- #include <stdio.h>
- #include <string.h>
-+#include <math.h>
-
- /* Module Variables. */
- /* ================= */
---- saods9-4.0b7.orig/ast-3.5/slalib.h
-+++ saods9-4.0b7/ast-3.5/slalib.h
-@@ -0,0 +1,60 @@
-+// This is a generated file; see ./debian/README.sla for information.
-+void slaAddet ( double rm, double dm, double eq, double *rc, double *dc ) ;
-+void slaAmpqk ( double ra, double da, double amprms[21],
-+ double *rm, double *dm ) ;
-+void slaCaldj ( int iy, int im, int id, double *djm, int *j ) ;
-+void slaDaf2r ( int ideg, int iamin, double asec, double *rad, int *j ) ;
-+void slaDav2m ( double axvec[3], double rmat[3][3] ) ;
-+double slaDbear ( double a1, double b1, double a2, double b2 ) ;
-+void slaDcc2s ( double v[3], double *a, double *b ) ;
-+void slaDcs2c ( double a, double b, double v[3] ) ;
-+void slaDd2tf ( int ndp, double days, char *sign, int ihmsf[4] ) ;
-+void slaDimxv ( double dm[3][3], double va[3], double vb[3] ) ;
-+void slaDjcal ( int ndp, double djm, int iymdf[ 4 ], int *j ) ;
-+void slaDjcl ( double djm, int *iy, int *im, int *id, double *fd, int *j ) ;
-+void slaDmat ( int n, double *a, double *y, double *d, int *jf, int *iw ) ;
-+void slaDmxm ( double a[3][3], double b[3][3], double c[3][3] ) ;
-+void slaDmxv ( double dm[3][3], double va[3], double vb[3] ) ;
-+double slaDrange ( double angle ) ;
-+double slaDranrm ( double angle ) ;
-+double slaDsep ( double a1, double b1, double a2, double b2 ) ;
-+void slaDtf2d ( int ihour, int imin, double sec, double *days, int *j ) ;
-+void slaDtf2r ( int ihour, int imin, double sec, double *rad, int *j ) ;
-+double slaDvdv( double va[3], double vb[3] ) ;
-+void slaDvn ( double v[3], double uv[3], double *vm ) ;
-+void slaDvxv ( double va[3], double vb[3], double vc[3] ) ;
-+void slaEcmat ( double date, double rmat[3][3] ) ;
-+double slaEpb ( double date ) ;
-+double slaEpb2d ( double epb ) ;
-+double slaEpj ( double date ) ;
-+double slaEpj2d ( double epj ) ;
-+double slaEqeqx ( double date ) ;
-+void slaEqgal ( double dr, double dd, double *dl, double *db ) ;
-+void slaEvp ( double date, double deqx, double dvb[3], double dpb[3],
-+ double dvh[3], double dph[3] ) ;
-+void slaFk45z ( double r1950, double d1950, double bepoch,
-+ double *r2000, double *d2000 ) ;
-+void slaFk54z ( double r2000, double d2000, double bepoch,
-+ double *r1950, double *d1950,
-+ double *dr1950, double *dd1950 ) ;
-+void slaFk5hz ( double r5, double d5, double jepoch,
-+ double *rh, double *dh ) ;
-+void slaGaleq ( double dl, double db, double *dr, double *dd ) ;
-+void slaGalsup ( double dl, double db, double *dsl, double *dsb ) ;
-+void slaGeoc ( double p, double h, double *r, double *z ) ;
-+double slaGmst ( double ut1 ) ;
-+void slaHfk5z ( double rh, double dh, double jepoch,
-+ double *r5, double *d5,
-+ double *dr5, double *dd5 ) ;
-+void slaMappa ( double eq, double date, double amprms[21] ) ;
-+void slaMapqkz ( double rm, double dm, double amprms[21],
-+ double *ra, double *da ) ;
-+void slaPrebn ( double bep0, double bep1, double rmatp[3][3] ) ;
-+void slaPrec ( double ep0, double ep1, double rmatp[3][3] ) ;
-+float slaRverot ( float phi, float ra, float dec, float st ) ;
-+float slaRvgalc ( float ra, float dec ) ;
-+float slaRvlg ( float ra, float dec ) ;
-+float slaRvlsrd ( float ra, float dec ) ;
-+float slaRvlsrk ( float ra, float dec ) ;
-+void slaSubet ( double rc, double dc, double eq, double *rm, double *dm ) ;
-+void slaSupgal ( double dsl, double dsb, double *dl, double *db ) ;
---- saods9-4.0b7.orig/ast-3.5/Makefile
-+++ saods9-4.0b7/ast-3.5/Makefile
-@@ -42,6 +42,7 @@
- skyaxis.c \
- skyframe.c \
- slamap.c \
-+ sla.c \
- specframe.c \
- specmap.c \
- sphmap.c \
---- saods9-4.0b7.orig/ast-3.5/slamap.c
-+++ saods9-4.0b7/ast-3.5/slamap.c
-@@ -153,6 +153,7 @@
- #include <stddef.h>
- #include <stdio.h>
- #include <string.h>
-+#include <math.h>
-
- /* Module Variables. */
- /* ================= */
---- saods9-4.0b7.orig/ast-3.5/plot.c
-+++ saods9-4.0b7/ast-3.5/plot.c
-@@ -12526,6 +12526,7 @@
- return ret;
- }
-
-+#if 0
- static void GFlush( AstPlot *this, const char *method,
- const char *class ) {
- /*
-@@ -12592,6 +12593,7 @@
- }
-
- }
-+#endif
-
- static void GLine( AstPlot *this, int n, const float *x,
- const float *y, const char *method,
---- saods9-4.0b7.orig/ast-3.5/fitschan.c
-+++ saods9-4.0b7/ast-3.5/fitschan.c
-@@ -801,6 +801,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <math.h>
-
- /* Type Definitions */
- /* ================ */
--
image display tool for astronomy
More information about the debian-science-commits
mailing list