diff options
-rw-r--r-- | ds9/library/iis.tcl | 9 | ||||
-rw-r--r-- | ds9/library/source.tcl | 2 | ||||
-rw-r--r-- | ds9/parsers/iissendlex.fcl | 15 | ||||
-rw-r--r-- | ds9/parsers/iissendparser.tac | 26 |
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_ +} |