summaryrefslogtreecommitdiffstats
path: root/ds9
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-06-06 15:35:39 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-06-06 15:35:39 (GMT)
commita03f2552f6d9f20d602fc82b139d46fb059c85db (patch)
treeb6d2f35b0f740c02d520d789d643128f1c526ed9 /ds9
parent5e379797126ae52c57fa5fb8e8d3984e6a0a359e (diff)
downloadblt-a03f2552f6d9f20d602fc82b139d46fb059c85db.zip
blt-a03f2552f6d9f20d602fc82b139d46fb059c85db.tar.gz
blt-a03f2552f6d9f20d602fc82b139d46fb059c85db.tar.bz2
add ds9 2mass send parser
Diffstat (limited to 'ds9')
-rw-r--r--ds9/library/2mass.tcl9
-rw-r--r--ds9/library/source.tcl2
-rw-r--r--ds9/library/util.tcl16
-rw-r--r--ds9/parsers/twomassparser.tac6
-rw-r--r--ds9/parsers/twomasssendlex.fcl13
-rw-r--r--ds9/parsers/twomasssendparser.tac28
6 files changed, 70 insertions, 4 deletions
diff --git a/ds9/library/2mass.tcl b/ds9/library/2mass.tcl
index 36158ea..e8697ac 100644
--- a/ds9/library/2mass.tcl
+++ b/ds9/library/2mass.tcl
@@ -141,5 +141,12 @@ proc Process2MASSCmd {varname iname} {
proc ProcessSend2MASSCmd {proc id param {sock {}} {fn {}}} {
2MASSDialog
- IMGSVRProcessSendCmd $proc $id $param dtwomass
+
+ global parse
+ set parse(proc) $proc
+ set parse(id) $id
+
+ twomasssend::YY_FLUSH_BUFFER
+ twomasssend::yy_scan_string $param
+ twomasssend::yyparse
}
diff --git a/ds9/library/source.tcl b/ds9/library/source.tcl
index 6f52cac..6d7c950 100644
--- a/ds9/library/source.tcl
+++ b/ds9/library/source.tcl
@@ -370,6 +370,8 @@ source $ds9(root)/library/tileparser.tcl
source $ds9(root)/library/tilelex.tcl
source $ds9(root)/library/twomassparser.tcl
source $ds9(root)/library/twomasslex.tcl
+source $ds9(root)/library/twomasssendparser.tcl
+source $ds9(root)/library/twomasssendlex.tcl
source $ds9(root)/library/updateparser.tcl
source $ds9(root)/library/updatelex.tcl
source $ds9(root)/library/urlfitsparser.tcl
diff --git a/ds9/library/util.tcl b/ds9/library/util.tcl
index b2fdc8d..b72eb2a 100644
--- a/ds9/library/util.tcl
+++ b/ds9/library/util.tcl
@@ -202,6 +202,22 @@ proc ProcessSendCmdGet {varname key} {
$parse(proc) $parse(id) "$var($key)\n"
}
+proc ProcessSendCmdGet2 {varname key key2} {
+ upvar #0 $varname var
+ global $varname
+
+ global parse
+ $parse(proc) $parse(id) "$var($key) $var($key2)\n"
+}
+
+proc ProcessSendCmdGet3 {varname key key2 key3} {
+ upvar #0 $varname var
+ global $varname
+
+ global parse
+ $parse(proc) $parse(id) "$var($key) $var($key2) $var($key3)\n"
+}
+
proc ProcessSendCmdYesNo {varname key} {
upvar #0 $varname var
global $varname
diff --git a/ds9/parsers/twomassparser.tac b/ds9/parsers/twomassparser.tac
index 4432080..ce02100 100644
--- a/ds9/parsers/twomassparser.tac
+++ b/ds9/parsers/twomassparser.tac
@@ -16,11 +16,11 @@
#include imgsvr.trl
#include numeric.trl
-command : 2mass
- | 2mass {yyclearin; YYACCEPT} STRING_
+command : twomass
+ | twomass {yyclearin; YYACCEPT} STRING_
;
-2mass : {IMGSVRApply dtwomass 1}
+twomass : {IMGSVRApply dtwomass 1}
| OPEN_ {}
| CLOSE_ {ARDestroy dtwomass}
| STRING_ {IMGSVRCmdName dtwomass $1}
diff --git a/ds9/parsers/twomasssendlex.fcl b/ds9/parsers/twomasssendlex.fcl
new file mode 100644
index 0000000..82c9463
--- /dev/null
+++ b/ds9/parsers/twomasssendlex.fcl
@@ -0,0 +1,13 @@
+#tab twomasssendparser.tab.tcl
+
+%{
+%}
+
+#include defs.fin
+
+%%
+
+#include imgsvr.fin
+#include string.fin
+
+%%
diff --git a/ds9/parsers/twomasssendparser.tac b/ds9/parsers/twomasssendparser.tac
new file mode 100644
index 0000000..0c8abe4
--- /dev/null
+++ b/ds9/parsers/twomasssendparser.tac
@@ -0,0 +1,28 @@
+%{
+%}
+
+#include imgsvr.tin
+#include string.tin
+
+%start twomasssend
+
+%%
+
+twomasssend : {ProcessSendCmdGet dtwomass name}
+ | NAME_ {ProcessSendCmdGet dtwomass name}
+ | SAVE_ {ProcessSendCmdYesNo dtwomass save}
+ | FRAME_ {ProcessSendCmdGet dtwomass mode}
+ | SURVEY_ {ProcessSendCmdGet dtwomass survey}
+ | SIZE_ {ProcessSendCmdGet3 dtwomass width height rformat}
+ | COORD_ {ProcessSendCmdGet3 dtwomass x y skyformat}
+ ;
+
+%%
+
+proc twomasssend::yyerror {msg} {
+ variable yycnt
+ variable yy_current_buffer
+ variable index_
+
+ ParserError $msg $yycnt $yy_current_buffer $index_
+}