summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ds9/library/iis.tcl9
-rw-r--r--ds9/library/source.tcl2
-rw-r--r--ds9/parsers/iissendlex.fcl15
-rw-r--r--ds9/parsers/iissendparser.tac26
4 files changed, 52 insertions, 0 deletions
diff --git a/ds9/library/iis.tcl b/ds9/library/iis.tcl
index 091861d..837a6ed 100644
--- a/ds9/library/iis.tcl
+++ b/ds9/library/iis.tcl
@@ -375,6 +375,15 @@ proc IISCmd {filename {which {}}} {
}
proc ProcessSendIISCmd {proc id param {sock {}} {fn {}}} {
+ global parse
+ set parse(proc) $proc
+ set parse(id) $id
+
+ iissend::YY_FLUSH_BUFFER
+ iissend::yy_scan_string $param
+ iissend::yyparse
+ return
+
global current
switch -- [string tolower [lindex $param 0]] {
diff --git a/ds9/library/source.tcl b/ds9/library/source.tcl
index 823dded..fc55f64 100644
--- a/ds9/library/source.tcl
+++ b/ds9/library/source.tcl
@@ -274,6 +274,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/iissendparser.tcl
+source $ds9(root)/library/iissendlex.tcl
source $ds9(root)/library/lockparser.tcl
source $ds9(root)/library/locklex.tcl
source $ds9(root)/library/locksendparser.tcl
diff --git a/ds9/parsers/iissendlex.fcl b/ds9/parsers/iissendlex.fcl
new file mode 100644
index 0000000..fa00383
--- /dev/null
+++ b/ds9/parsers/iissendlex.fcl
@@ -0,0 +1,15 @@
+#tab iissendparser.tab.tcl
+
+%{
+%}
+
+#include defs.fin
+
+%%
+
+filename {return $FILENAME_}
+
+#include int.fin
+#include ws.fin
+
+%%
diff --git a/ds9/parsers/iissendparser.tac b/ds9/parsers/iissendparser.tac
new file mode 100644
index 0000000..524c90d
--- /dev/null
+++ b/ds9/parsers/iissendparser.tac
@@ -0,0 +1,26 @@
+%{
+%}
+
+#include int.tin
+
+%start iissend
+
+%token FILENAME_
+
+%%
+
+iissend : {ProcessSendCmdCurrent frame "get iis file name 1"}
+ | INT_ {ProcessSendCmdCurrent frame "get iis file name $1"}
+ | FILENAME_ {ProcessSendCmdCurrent frame "get iis file name 1"}
+ | FILENAME_ INT_ {ProcessSendCmdCurrent frame "get iis file name $2"}
+ ;
+
+%%
+
+proc iissend::yyerror {msg} {
+ variable yycnt
+ variable yy_current_buffer
+ variable index_
+
+ ParserError $msg $yycnt $yy_current_buffer $index_
+}