summaryrefslogtreecommitdiffstats
path: root/ds9/library/zoomlex.fcl
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-02-24 21:26:25 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-02-24 21:26:25 (GMT)
commit74683dd17324cba287626e4e80ba10fd99843a32 (patch)
tree64f9be8d25c0b6f56b10a052e891c023839969ac /ds9/library/zoomlex.fcl
parent5e19831aabcf8c7e349240e3eb0a1e325c6ded60 (diff)
downloadblt-74683dd17324cba287626e4e80ba10fd99843a32.zip
blt-74683dd17324cba287626e4e80ba10fd99843a32.tar.gz
blt-74683dd17324cba287626e4e80ba10fd99843a32.tar.bz2
zoom parser
Diffstat (limited to 'ds9/library/zoomlex.fcl')
-rw-r--r--ds9/library/zoomlex.fcl49
1 files changed, 49 insertions, 0 deletions
diff --git a/ds9/library/zoomlex.fcl b/ds9/library/zoomlex.fcl
new file mode 100644
index 0000000..8d1d10b
--- /dev/null
+++ b/ds9/library/zoomlex.fcl
@@ -0,0 +1,49 @@
+%{
+source $ds9(root)/library/parser.tab.tcl
+%}
+
+%option noyywrap
+%option caseless
+%option nodefault
+%option nointeractive
+#%option stack
+%option yylineno
+#%option debug
+
+D [0-9]
+E [Ee][+-]?{D}+
+
+%%
+
+close {return $zoom::CLOSE_}
+in {return $zoom::IN_}
+fit {return $zoom::FIT_}
+open {return $zoom::OPEN_}
+out {return $zoom::OUT_}
+to {return $zoom::TO_}
+
+# INT
+[+-]?{D}+ {set zoom::yylval $yytext; return $zoom::INT_}
+
+# REAL
+[+-]?{D}+"."?({E})? |
+[+-]?{D}*"."{D}+({E})? {set zoom::yylval $yytext; return $zoom::REAL_}
+
+# Quoted STRING
+\"[^\"]*\" {set zoom::yylval [string range $yytext 1 end-1]; return $zoom::STRING_}
+
+# Quoted STRING
+\'[^\']*\' {set zoom::yylval [string range $yytext 1 end-1]; return $zoom::STRING_}
+
+# Quoted STRING
+\{[^\}]*\} {set zoom::yylval [string range $yytext 1 end-1]; return $zoom::STRING_}
+
+# STRING
+\S+\S+ {set zoom::yylval $yytext; return $zoom::STRING_}
+
+\s # ignore whitespace
+
+. {set zoom::yylval $yytext; return $zoom::yylval}
+
+%%
+