diff options
Diffstat (limited to 'ds9/parsers')
-rw-r--r-- | ds9/parsers/cubesendlex.fcl | 18 | ||||
-rw-r--r-- | ds9/parsers/cubesendparser.tac | 36 |
2 files changed, 54 insertions, 0 deletions
diff --git a/ds9/parsers/cubesendlex.fcl b/ds9/parsers/cubesendlex.fcl new file mode 100644 index 0000000..5a51bdd --- /dev/null +++ b/ds9/parsers/cubesendlex.fcl @@ -0,0 +1,18 @@ +#tab cubesendparser.tab.tcl + +%{ +%} + +#include defs.fin + +%% + +axis {return $AXIS_} +axes {return $AXES_} +interval {return $INTERVAL_} +lock {return $LOCK_} +order {return $ORDER_} + +#include string.fin + +%% diff --git a/ds9/parsers/cubesendparser.tac b/ds9/parsers/cubesendparser.tac new file mode 100644 index 0000000..70cfb3e --- /dev/null +++ b/ds9/parsers/cubesendparser.tac @@ -0,0 +1,36 @@ +%{ +%} + +#include string.tin + +%start cubesend + +%token AXIS_ +%token AXES_ +%token INTERVAL_ +%token LOCK_ +%token ORDER_ + +%% + +cubesend : {global cube; ProcessSendCmdCurrent frame "get fits slice $cube(axis)"} + | LOCK_ {ProcessSendCmdGet cube lock} + | INTERVAL_ {CubeSendCmdInterval} + | AXIS_ {ProcessSendCmdGet cube axis} + | AXES_ order + | ORDER_ order + ; + +order : {ProcessSendCmdGet cube axes} + | LOCK_ {ProcessSendCmdYesNo cube lock,axes} + ; + +%% + +proc cubesend::yyerror {msg} { + variable yycnt + variable yy_current_buffer + variable index_ + + ParserError $msg $yycnt $yy_current_buffer $index_ +} |