summaryrefslogtreecommitdiffstats
path: root/ds9/parsers/saveimageparser.tac
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-04-16 19:50:02 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-04-16 19:50:02 (GMT)
commitac49c4c2c62dfcfc892de5b39ca5f15203a83c12 (patch)
tree69d87eabeb9fb74e66deacb12588e0355ac4beee /ds9/parsers/saveimageparser.tac
parentc19ffff9f651c480e0fddcf889189c27e099916b (diff)
downloadblt-ac49c4c2c62dfcfc892de5b39ca5f15203a83c12.zip
blt-ac49c4c2c62dfcfc892de5b39ca5f15203a83c12.tar.gz
blt-ac49c4c2c62dfcfc892de5b39ca5f15203a83c12.tar.bz2
add ds9 saveimage parser
Diffstat (limited to 'ds9/parsers/saveimageparser.tac')
-rw-r--r--ds9/parsers/saveimageparser.tac65
1 files changed, 65 insertions, 0 deletions
diff --git a/ds9/parsers/saveimageparser.tac b/ds9/parsers/saveimageparser.tac
new file mode 100644
index 0000000..1e1fcb3
--- /dev/null
+++ b/ds9/parsers/saveimageparser.tac
@@ -0,0 +1,65 @@
+%{
+%}
+
+#include numeric.tin
+#include string.tin
+
+%start command
+
+%token FITS_
+%token EPS_
+%token GIF_
+%token TIFF_
+%token JPEG_
+%token PNG_
+%token MPEG_
+
+%token NONE_
+%token PACKBITS_
+%token DEFLATE_
+
+%%
+
+#include numeric.trl
+
+command : saveimage
+ | saveimage {yyclearin; YYACCEPT} STRING_
+ ;
+
+saveimage : STRING_ opts {SaveImageCmdLoad [ExtToFormat $1] $1}
+ | ext STRING_ opts {SaveImageCmdLoad $1 $2}
+# backward compatibilty
+ | ext opts STRING_ {SaveImageCmdLoad $1 $2}
+# backward compatibilty
+ | MPEG_ mpeg
+ ;
+
+mpeg : STRING_ {SaveImageCmdMPEG $1 1}
+ | STRING_ INT_ {SaveImageCmdMPEG $1 $2}
+ ;
+
+ext : FITS_ {set _ fits}
+ | EPS_ {set _ eps}
+ | GIF_ {set _ gif}
+ | TIFF_ {set _ tiff}
+ | JPEG_ {set _ jpeg}
+ | PNG_ {set _ png}
+ ;
+
+opts :
+ | NONE_ {SaveImageCmdSet tiff,compress none}
+ | JPEG_ {SaveImageCmdSet tiff,compress jpeg}
+ | PACKBITS_ {SaveImageCmdSet tiff,compress packbits}
+ | DEFLATE_ {SaveImageCmdSet tiff,compress deflate}
+ | numeric {SaveImageCmdSet jpeg,quality $1}
+ ;
+
+%%
+
+proc saveimage::yyerror {msg} {
+ variable yycnt
+ variable yy_current_buffer
+ variable index_
+
+ ParserError $msg $yycnt $yy_current_buffer $index_
+}