From 381f8d4cfea15575cc399292d658b7fec181d3e8 Mon Sep 17 00:00:00 2001 From: William Joye Date: Fri, 2 Mar 2018 17:23:26 -0500 Subject: add ds9 parsers --- ds9/library/panzoom.tcl | 9 +++++---- ds9/parsers/panparser.tac | 9 +++++---- ds9/parsers/zoomparser.tac | 15 ++++++++------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ds9/library/panzoom.tcl b/ds9/library/panzoom.tcl index 1a1d84b..e152a6b 100644 --- a/ds9/library/panzoom.tcl +++ b/ds9/library/panzoom.tcl @@ -741,15 +741,16 @@ proc ProcessSendPanCmd {proc id param} { proc ProcessZoomCmd {varname iname} { upvar $varname var - upvar $iname i + upvar $iname ii # we need to be realized ProcessRealizeDS9 zoom::YY_FLUSH_BUFFER - zoom::yy_scan_string [lrange $var $i end] - zoom::yyparse - incr i [expr $zoom::yycnt-1] + zoom::yy_scan_string [lrange $var $ii end] + set rr [zoom::yyparse] + incr ii [expr $zoom::yycnt-1] + return $rr } proc oProcessZoomCmd {varname iname} { diff --git a/ds9/parsers/panparser.tac b/ds9/parsers/panparser.tac index 3fe0106..2e208a5 100644 --- a/ds9/parsers/panparser.tac +++ b/ds9/parsers/panparser.tac @@ -56,7 +56,7 @@ %% command : pan -| pan {pan::yyclearin; YYACCEPT} STRING_ +| pan {yyclearin; YYACCEPT} STRING_ ; numeric : INT_ {set _ $1} @@ -150,7 +150,8 @@ panto : numeric numeric {PanTo $1 $2 physical fk5} %% proc pan::yyerror {msg} { - puts stderr "$pan::yy_current_buffer" - puts stderr [format "%*s" $pan::index_ ^] - puts stderr "$msg" + variable yycnt + variable yy_current_buffer + + Error "$msg: [lindex $yy_current_buffer [expr $yycnt-1]]" } diff --git a/ds9/parsers/zoomparser.tac b/ds9/parsers/zoomparser.tac index 4a342c6..1e2969e 100644 --- a/ds9/parsers/zoomparser.tac +++ b/ds9/parsers/zoomparser.tac @@ -17,20 +17,20 @@ %% command : zoom - | zoom {zoom::yyclearin; YYACCEPT} STRING_ + | zoom {yyclearin; YYACCEPT} STRING_ ; numeric : INT_ {set _ $1} | REAL_ {set _ $1} ; -zoom : numeric {Zoom $1 $1} - | numeric numeric {Zoom $1 $2} - | OPEN_ {PanZoomDialog} +zoom : OPEN_ {PanZoomDialog} | CLOSE_ {PanZoomDestroyDialog} | IN_ {Zoom 2 2} | OUT_ {Zoom .5 .5} | TO_ zoomTo + | numeric {Zoom $1 $1} + | numeric numeric {Zoom $1 $2} ; zoomTo: FIT_ {ZoomToFit} @@ -41,7 +41,8 @@ zoomTo: FIT_ {ZoomToFit} %% proc zoom::yyerror {msg} { - puts stderr "$zoom::yy_current_buffer" - puts stderr [format "%*s" $zoom::index_ ^] - puts stderr "$msg:" + variable yycnt + variable yy_current_buffer + + Error "$msg: [lindex yy_current_buffer [expr $yycnt-1]]" } -- cgit v0.12