summaryrefslogtreecommitdiffstats
path: root/ds9/parsers
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-06-18 18:17:21 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-06-18 18:17:21 (GMT)
commit671eda8b795f09fa708fb36c5212c9b8c339eb83 (patch)
tree1584a4dc84f6cbebfed285a27e72fe077cc296f8 /ds9/parsers
parent212ccd4858884d2110f4ff07324e6315c9ce940b (diff)
downloadblt-671eda8b795f09fa708fb36c5212c9b8c339eb83.zip
blt-671eda8b795f09fa708fb36c5212c9b8c339eb83.tar.gz
blt-671eda8b795f09fa708fb36c5212c9b8c339eb83.tar.bz2
add ds9 frame send parser
Diffstat (limited to 'ds9/parsers')
-rw-r--r--ds9/parsers/framesendlex.fcl40
-rw-r--r--ds9/parsers/framesendparser.tac102
2 files changed, 142 insertions, 0 deletions
diff --git a/ds9/parsers/framesendlex.fcl b/ds9/parsers/framesendlex.fcl
new file mode 100644
index 0000000..4fe5af3
--- /dev/null
+++ b/ds9/parsers/framesendlex.fcl
@@ -0,0 +1,40 @@
+#tab framesendparser.tab.tcl
+
+%{
+%}
+
+#include defs.fin
+
+%%
+
+active {return $ACTIVE_}
+all {return $ALL_}
+aux {return $AUX_}
+bin {return $BIN_}
+contour {return $CONTOUR_}
+cube {return $CUBE_}
+datamin {return $DATAMIN_}
+datasec {return $DATASEC_}
+equatorial {return $EQUATORIAL_}
+fits {return $FITS_}
+frameno {return $FRAMENO_}
+grid {return $GRID_}
+has {return $HAS_}
+highlite {return $HIGHLITE_}
+iis {return $IIS_}
+irafmin {return $IRAFMIN_}
+linear {return $LINEAR_}
+lock {return $LOCK_}
+marker {return $MARKER_}
+mosaic {return $MOSAIC_}
+paste {return $PASTE_}
+select {return $SELECT_}
+smooth {return $SMOOTH_}
+system {return $SYSTEM_}
+undo {return $UNDO_}
+
+#include coordsys.fin
+#include wcssys.fin
+#include ws.fin
+
+%%
diff --git a/ds9/parsers/framesendparser.tac b/ds9/parsers/framesendparser.tac
new file mode 100644
index 0000000..1efe865
--- /dev/null
+++ b/ds9/parsers/framesendparser.tac
@@ -0,0 +1,102 @@
+%{
+%}
+
+#include coordsys.tin
+#include wcssys.tin
+
+%start framesend
+
+%token ACTIVE_
+%token ALL_
+%token AUX_
+%token BIN_
+%token CONTOUR_
+%token CUBE_
+%token DATAMIN_
+%token DATASEC_
+%token EQUATORIAL_
+%token FITS_
+%token FRAMENO_
+%token GRID_
+%token HAS_
+%token HIGHLITE_
+%token IIS_
+%token IRAFMIN_
+%token LINEAR_
+%token LOCK_
+%token MARKER_
+%token MOSAIC_
+%token PASTE_
+%token SELECT_
+%token SMOOTH_
+%token SYSTEM_
+%token UNDO_
+
+%%
+
+#include coordsys.trl
+#include wcssys.trl
+
+framesend : {FrameSendCmd}
+ | FRAMENO_ {FrameSendCmd}
+ | LOCK_ {ProcessSendCmdGet panzoom lock}
+ | ACTIVE_ {FrameSendCmdGet active}
+ | ALL_ {FrameSendCmdGet frames}
+ | HAS_ has
+ ;
+
+has : coordsys {ProcessSendCmdCurrentYesNo frame "has $1"}
+ | wcssys {ProcessSendCmdCurrentYesNo frame "has wcs $1"}
+ | param {ProcessSendCmdCurrentYesNo frame "has $1"}
+ | CONTOUR_ contour {ProcessSendCmdCurrentYesNo frame "has contour $2"}
+ | FITS_ fits {ProcessSendCmdCurrentYesNo frame "has fits $2"}
+ | MARKER_ marker {ProcessSendCmdCurrentYesNo frame "has marker $2"}
+ | SYSTEM_ system
+ | WCS_ wcs
+ ;
+
+param : IIS_ {set _ iis}
+ | DATAMIN_ {set _ datamin}
+ | IRAFMIN_ {set _ irafmin}
+ | DATASEC_ {set _ datasec}
+ | GRID_ {set _ grid}
+ | SMOOTH_ {set _ smooth}
+ ;
+
+contour : {set _ {}}
+ | AUX_ {set _ aux}
+ ;
+
+fits : {set _ {}}
+ | BIN_ {set _ bin}
+ | CUBE_ {set _ cube}
+ | MOSAIC_ {set _ mosaic}
+ ;
+
+marker : HIGHLITE_ {set _ highlite}
+ | PASTE_ {set _ paste}
+ | SELECT_ {set _ select}
+ | UNDO_ {set _ undo}
+ ;
+
+system : coordsys {ProcessSendCmdCurrentYesNo frame "has $1"}
+ | wcssys {ProcessSendCmdCurrentYesNo frame "has wcs $1"}
+ ;
+
+wcs : wcssys {ProcessSendCmdCurrentYesNo frame "has wcs $1"}
+ | wcstype wcssys {ProcessSendCmdCurrentYesNo frame "has wcs $1 $2"}
+ ;
+
+wcstype : EQUATORIAL_ {set _ equatorial}
+ | LINEAR_ {set _ linear}
+ ;
+
+%%
+
+proc framesend::yyerror {msg} {
+ variable yycnt
+ variable yy_current_buffer
+ variable index_
+
+ ParserError $msg $yycnt $yy_current_buffer $index_
+}