summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-05-14 21:18:44 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-05-14 21:18:44 (GMT)
commit96ec6fa281103609e8e2b70ff9311d78ada35a82 (patch)
tree4c8fd74f8af8311ead9984ee4b492d10de747743
parentf0dd87966fd0c7db5a421f0a2dd4e26a5f13754a (diff)
downloadblt-96ec6fa281103609e8e2b70ff9311d78ada35a82.zip
blt-96ec6fa281103609e8e2b70ff9311d78ada35a82.tar.gz
blt-96ec6fa281103609e8e2b70ff9311d78ada35a82.tar.bz2
add ds9 irafalign parser
-rw-r--r--ds9/library/source.tcl2
-rw-r--r--ds9/library/util.tcl9
-rw-r--r--ds9/parsers/irafalignlex.fcl13
-rw-r--r--ds9/parsers/irafalignparser.tac28
4 files changed, 52 insertions, 0 deletions
diff --git a/ds9/library/source.tcl b/ds9/library/source.tcl
index a249248..351c561 100644
--- a/ds9/library/source.tcl
+++ b/ds9/library/source.tcl
@@ -242,6 +242,8 @@ source $ds9(root)/library/iconifyparser.tcl
source $ds9(root)/library/iconifylex.tcl
source $ds9(root)/library/iisparser.tcl
source $ds9(root)/library/iislex.tcl
+source $ds9(root)/library/irafalignparser.tcl
+source $ds9(root)/library/irafalignlex.tcl
source $ds9(root)/library/lockparser.tcl
source $ds9(root)/library/locklex.tcl
source $ds9(root)/library/magnifierparser.tcl
diff --git a/ds9/library/util.tcl b/ds9/library/util.tcl
index f3f44d7..f2760cc 100644
--- a/ds9/library/util.tcl
+++ b/ds9/library/util.tcl
@@ -1376,10 +1376,19 @@ proc ProcessIRAFAlignCmd {varname iname} {
upvar $varname var
upvar $iname i
+ global debug
+ if {$debug(tcl,parser)} {
+ irafalign::YY_FLUSH_BUFFER
+ irafalign::yy_scan_string [lrange $var $i end]
+ irafalign::yyparse
+ incr i [expr $irafalign::yycnt-1]
+ } else {
+
global pds9
set pds9(iraf) [FromYesNo [lindex $var $i]]
PrefsIRAFAlign
}
+}
proc ProcessSendIRAFAlignCmd {proc id param} {
global pds9
diff --git a/ds9/parsers/irafalignlex.fcl b/ds9/parsers/irafalignlex.fcl
new file mode 100644
index 0000000..285abea
--- /dev/null
+++ b/ds9/parsers/irafalignlex.fcl
@@ -0,0 +1,13 @@
+#tab irafalignparser.tab.tcl
+
+%{
+%}
+
+#include defs.fin
+
+%%
+
+#include yesno.fin
+#include string.fin
+
+%%
diff --git a/ds9/parsers/irafalignparser.tac b/ds9/parsers/irafalignparser.tac
new file mode 100644
index 0000000..1a63dca
--- /dev/null
+++ b/ds9/parsers/irafalignparser.tac
@@ -0,0 +1,28 @@
+%{
+%}
+
+#include yesno.tin
+#include string.tin
+
+%start command
+
+%%
+
+#include yesno.trl
+
+command : irafalign
+ | irafalign {yyclearin; YYACCEPT} STRING_
+ ;
+
+irafalign : yesno {Pds9CmdSet irafalign $1}
+ ;
+
+%%
+
+proc irafalign::yyerror {msg} {
+ variable yycnt
+ variable yy_current_buffer
+ variable index_
+
+ ParserError $msg $yycnt $yy_current_buffer $index_
+}