diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2018-03-01 18:50:39 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2018-03-01 18:50:39 (GMT) |
commit | f0494107d510409a45df1dfb556144abb50716ab (patch) | |
tree | 9c8000407e98a126f743a153f43e027a887251db | |
parent | cd6faf758538b81dc47d925858aa54f6ae30373b (diff) | |
download | blt-f0494107d510409a45df1dfb556144abb50716ab.zip blt-f0494107d510409a45df1dfb556144abb50716ab.tar.gz blt-f0494107d510409a45df1dfb556144abb50716ab.tar.bz2 |
add ds9 pan parser
-rw-r--r-- | ds9/library/panlex.tcl | 332 | ||||
-rw-r--r-- | ds9/library/panparser.tab.tcl | 91 | ||||
-rw-r--r-- | ds9/library/panparser.tcl | 1742 | ||||
-rw-r--r-- | ds9/library/zoomparser.tcl | 2 | ||||
-rw-r--r-- | ds9/parsers/panlex.fcl | 2 | ||||
-rw-r--r-- | ds9/parsers/panparser.tac | 44 |
6 files changed, 1245 insertions, 968 deletions
diff --git a/ds9/library/panlex.tcl b/ds9/library/panlex.tcl index b0c0a5a..8c88019 100644 --- a/ds9/library/panlex.tcl +++ b/ds9/library/panlex.tcl @@ -195,391 +195,398 @@ proc pan::yylex {} { } set yyleng 0 set matched_rule -1 - # rule 0: close - if {[regexp -start $index_ -indices -line -nocase -- {\A(close)} $yy_current_buffer match] > 0 && \ + # rule 0: -zscale + if {[regexp -start $index_ -indices -line -nocase -- {\A(-zscale)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 0 } - # rule 1: open - if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ + # rule 1: close + if {[regexp -start $index_ -indices -line -nocase -- {\A(close)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 1 } - # rule 2: to - if {[regexp -start $index_ -indices -line -nocase -- {\A(to)} $yy_current_buffer match] > 0 && \ + # rule 2: open + if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 2 } - # rule 3: wcs - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ + # rule 3: to + if {[regexp -start $index_ -indices -line -nocase -- {\A(to)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 3 } - # rule 4: wcsa - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ + # rule 4: wcs + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 4 } - # rule 5: wcsb - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ + # rule 5: wcsa + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 5 } - # rule 6: wcsc - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ + # rule 6: wcsb + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 6 } - # rule 7: wcsd - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ + # rule 7: wcsc + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 7 } - # rule 8: wcse - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ + # rule 8: wcsd + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 8 } - # rule 9: wcsf - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ + # rule 9: wcse + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 9 } - # rule 10: wcsg - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ + # rule 10: wcsf + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 10 } - # rule 11: wcsh - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ + # rule 11: wcsg + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 11 } - # rule 12: wcsi - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ + # rule 12: wcsh + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 12 } - # rule 13: wcsj - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ + # rule 13: wcsi + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 13 } - # rule 14: wcsk - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ + # rule 14: wcsj + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 14 } - # rule 15: wcsl - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ + # rule 15: wcsk + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 15 } - # rule 16: wcsm - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ + # rule 16: wcsl + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 16 } - # rule 17: wcsn - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ + # rule 17: wcsm + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 17 } - # rule 18: wcso - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ + # rule 18: wcsn + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 18 } - # rule 19: wcsp - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ + # rule 19: wcso + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 19 } - # rule 20: wcsq - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ + # rule 20: wcsp + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 20 } - # rule 21: wcsr - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ + # rule 21: wcsq + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 21 } - # rule 22: wcss - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ + # rule 22: wcsr + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 22 } - # rule 23: wcst - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ + # rule 23: wcss + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 23 } - # rule 24: wcsu - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ + # rule 24: wcst + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 24 } - # rule 25: wcsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ + # rule 25: wcsu + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 25 } - # rule 26: wcsw - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ + # rule 26: wcsv + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 26 } - # rule 27: wcsx - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ + # rule 27: wcsw + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 27 } - # rule 28: wcsy - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ + # rule 28: wcsx + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 28 } - # rule 29: wcsz - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ + # rule 29: wcsy + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 29 } - # rule 30: image - if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ + # rule 30: wcsz + if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 30 } - # rule 31: physical - if {[regexp -start $index_ -indices -line -nocase -- {\A(physical)} $yy_current_buffer match] > 0 && \ + # rule 31: image + if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 31 } - # rule 32: amplifier - if {[regexp -start $index_ -indices -line -nocase -- {\A(amplifier)} $yy_current_buffer match] > 0 && \ + # rule 32: physical + if {[regexp -start $index_ -indices -line -nocase -- {\A(physical)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 32 } - # rule 33: detector - if {[regexp -start $index_ -indices -line -nocase -- {\A(detector)} $yy_current_buffer match] > 0 && \ + # rule 33: amplifier + if {[regexp -start $index_ -indices -line -nocase -- {\A(amplifier)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 33 } - # rule 34: fk4 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ + # rule 34: detector + if {[regexp -start $index_ -indices -line -nocase -- {\A(detector)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 34 } - # rule 35: b1950 - if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ + # rule 35: fk4 + if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 35 } - # rule 36: fk5 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ + # rule 36: b1950 + if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 36 } - # rule 37: j2000 - if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ + # rule 37: fk5 + if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 37 } - # rule 38: galactic - if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ + # rule 38: j2000 + if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 38 } - # rule 39: ecliptic - if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ + # rule 39: galactic + if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 39 } - # rule 40: [+-]?{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 40: ecliptic + if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 40 } - # rule 41: [+-]?{D}+\.?({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 41: [+-]?{D}+ + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 41 } - # rule 42: [+-]?{D}*\.{D}+({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 42: [+-]?{D}+\.?({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 42 } - # rule 43: [+-]?{D}+:{D}+:{D}+\.? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ + # rule 43: [+-]?{D}*\.{D}+({E})? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 43 } - # rule 44: [+-]?{D}+:{D}+:{D}*\.{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])*\.([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 44: [+-]?{D}+:{D}+:{D}+\.? + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 44 } - # rule 45: [+-]?{D}+h{D}+m{D}+\.?s - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+h([0-9])+m([0-9])+\.?s)} $yy_current_buffer match] > 0 && \ + # rule 45: [+-]?{D}+:{D}+:{D}*\.{D}+ + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])*\.([0-9])+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 45 } - # rule 46: [+-]?{D}+h{D}+m{D}*\.{D}+s - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+h([0-9])+m([0-9])*\.([0-9])+s)} $yy_current_buffer match] > 0 && \ + # rule 46: [+-]?{D}+h{D}+m{D}+\.?s + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+h([0-9])+m([0-9])+\.?s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 46 } - # rule 47: [+-]?{D}+d{D}+m{D}+\.?s - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+d([0-9])+m([0-9])+\.?s)} $yy_current_buffer match] > 0 && \ + # rule 47: [+-]?{D}+h{D}+m{D}*\.{D}+s + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+h([0-9])+m([0-9])*\.([0-9])+s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 47 } - # rule 48: [+-]?{D}+d{D}+m{D}*\.{D}+s - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+d([0-9])+m([0-9])*\.([0-9])+s)} $yy_current_buffer match] > 0 && \ + # rule 48: [+-]?{D}+d{D}+m{D}+\.?s + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+d([0-9])+m([0-9])+\.?s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 48 } - # rule 49: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 49: [+-]?{D}+d{D}+m{D}*\.{D}+s + if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+d([0-9])+m([0-9])*\.([0-9])+s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 49 } - # rule 50: \'[^\']*\' - if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + # rule 50: \"[^\"]*\" + if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 50 } - # rule 51: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + # rule 51: \'[^\']*\' + if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 51 } - # rule 52: \S+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + # rule 52: \{[^\}]*\} + if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 52 } - # rule 53: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 53: \S+\S+ + if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 53 } - # rule 54: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 54: \s + if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ [lindex $match 1] - $index_ + 1 > $yyleng} { set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] set yyleng [string length $yytext] set matched_rule 54 } + # rule 55: . + if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + [lindex $match 1] - $index_ + 1 > $yyleng} { + set yytext [string range $yy_current_buffer $index_ [lindex $match 1]] + set yyleng [string length $yytext] + set matched_rule 55 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -593,146 +600,146 @@ proc pan::yylex {} { set numlines [expr {[llength [split $yytext "\n"]] - 1}] switch -- $matched_rule { 0 { -return $pan::CLOSE_ +return $pan::CMD_ } 1 { -return $pan::OPEN_ +return $pan::CLOSE_ } 2 { -return $pan::TO_ +return $pan::OPEN_ } 3 { -return $pan::WCS_ +return $pan::TO_ } 4 { -return $pan::WCSA_ +return $pan::WCS_ } 5 { -return $pan::WCSB_ +return $pan::WCSA_ } 6 { -return $pan::WCSC_ +return $pan::WCSB_ } 7 { -return $pan::WCSD_ +return $pan::WCSC_ } 8 { -return $pan::WCSE_ +return $pan::WCSD_ } 9 { -return $pan::WCSF_ +return $pan::WCSE_ } 10 { -return $pan::WCSG_ +return $pan::WCSF_ } 11 { -return $pan::WCSH_ +return $pan::WCSG_ } 12 { -return $pan::WCSI_ +return $pan::WCSH_ } 13 { -return $pan::WCSJ_ +return $pan::WCSI_ } 14 { -return $pan::WCSK_ +return $pan::WCSJ_ } 15 { -return $pan::WCSL_ +return $pan::WCSK_ } 16 { -return $pan::WCSM_ +return $pan::WCSL_ } 17 { -return $pan::WCSN_ +return $pan::WCSM_ } 18 { -return $pan::WCSO_ +return $pan::WCSN_ } 19 { -return $pan::WCSP_ +return $pan::WCSO_ } 20 { -return $pan::WCSQ_ +return $pan::WCSP_ } 21 { -return $pan::WCSR_ +return $pan::WCSQ_ } 22 { -return $pan::WCSS_ +return $pan::WCSR_ } 23 { -return $pan::WCST_ +return $pan::WCSS_ } 24 { -return $pan::WCSU_ +return $pan::WCST_ } 25 { -return $pan::WCSV_ +return $pan::WCSU_ } 26 { -return $pan::WCSW_ +return $pan::WCSV_ } 27 { -return $pan::WCSX_ +return $pan::WCSW_ } 28 { -return $pan::WCSY_ +return $pan::WCSX_ } 29 { -return $pan::WCSZ_ +return $pan::WCSY_ } 30 { -return $pan::IMAGE_ +return $pan::WCSZ_ } 31 { -return $pan::PHYSICAL_ +return $pan::IMAGE_ } 32 { -return $pan::AMPLIFIER_ +return $pan::PHYSICAL_ } 33 { -return $pan::DETECTOR_ +return $pan::AMPLIFIER_ } 34 { -return $pan::FK4_ +return $pan::DETECTOR_ } 35 { return $pan::FK4_ } 36 { -return $pan::FK5_ +return $pan::FK4_ } 37 { return $pan::FK5_ } 38 { -return $pan::GALACTIC_ +return $pan::FK5_ } 39 { -return $pan::ECLIPTIC_ +return $pan::GALACTIC_ } 40 { +return $pan::ECLIPTIC_ + } + 41 { set pan::yylval $yytext; return $pan::INT_ } - 41 - - 42 { + 42 - + 43 { set pan::yylval $yytext; return $pan::REAL_ } - 43 - - 44 { + 44 - + 45 { set pan::yylval $yytext; return $pan::SEXSTR_ } - 45 - - 46 { + 46 - + 47 { set pan::yylval $yytext; return $pan::HMSSTR_ } - 47 - - 48 { -set pan::yylval $yytext; return $pan::SMSSTR_ - } + 48 - 49 { -set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ +set pan::yylval $yytext; return $pan::SMSSTR_ } 50 { set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ @@ -741,12 +748,15 @@ set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ } 52 { -set pan::yylval $yytext; return $pan::STRING_ +set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ } 53 { -# ignore whitespace +set pan::yylval $yytext; return $pan::STRING_ } 54 { +# ignore whitespace + } + 55 { set pan::yylval $yytext; return $pan::yylval } default diff --git a/ds9/library/panparser.tab.tcl b/ds9/library/panparser.tab.tcl index dfdeed6..6e870f6 100644 --- a/ds9/library/panparser.tab.tcl +++ b/ds9/library/panparser.tab.tcl @@ -1,48 +1,49 @@ namespace eval pan { -set INT_ 257 -set REAL_ 258 -set STRING_ 259 -set SEXSTR_ 260 -set CLOSE_ 261 -set OPEN_ 262 -set TO_ 263 -set IMAGE_ 264 -set PHYSICAL_ 265 -set AMPLIFIER_ 266 -set DETECTOR_ 267 -set WCS_ 268 -set WCSA_ 269 -set WCSB_ 270 -set WCSC_ 271 -set WCSD_ 272 -set WCSE_ 273 -set WCSF_ 274 -set WCSG_ 275 -set WCSH_ 276 -set WCSI_ 277 -set WCSJ_ 278 -set WCSK_ 279 -set WCSL_ 280 -set WCSM_ 281 -set WCSN_ 282 -set WCSO_ 283 -set WCSP_ 284 -set WCSQ_ 285 -set WCSR_ 286 -set WCSS_ 287 -set WCST_ 288 -set WCSU_ 289 -set WCSV_ 290 -set WCSW_ 291 -set WCSX_ 292 -set WCSY_ 293 -set WCSZ_ 294 -set FK4_ 295 -set FK5_ 296 -set ICRS_ 297 -set GALACTIC_ 298 -set ECLIPTIC_ 299 -set J2000_ 300 -set B1950_ 301 +set CMD_ 257 +set INT_ 258 +set REAL_ 259 +set STRING_ 260 +set SEXSTR_ 261 +set CLOSE_ 262 +set OPEN_ 263 +set TO_ 264 +set IMAGE_ 265 +set PHYSICAL_ 266 +set AMPLIFIER_ 267 +set DETECTOR_ 268 +set WCS_ 269 +set WCSA_ 270 +set WCSB_ 271 +set WCSC_ 272 +set WCSD_ 273 +set WCSE_ 274 +set WCSF_ 275 +set WCSG_ 276 +set WCSH_ 277 +set WCSI_ 278 +set WCSJ_ 279 +set WCSK_ 280 +set WCSL_ 281 +set WCSM_ 282 +set WCSN_ 283 +set WCSO_ 284 +set WCSP_ 285 +set WCSQ_ 286 +set WCSR_ 287 +set WCSS_ 288 +set WCST_ 289 +set WCSU_ 290 +set WCSV_ 291 +set WCSW_ 292 +set WCSX_ 293 +set WCSY_ 294 +set WCSZ_ 295 +set FK4_ 296 +set FK5_ 297 +set ICRS_ 298 +set GALACTIC_ 299 +set ECLIPTIC_ 300 +set J2000_ 301 +set B1950_ 302 set yylval {} } diff --git a/ds9/library/panparser.tcl b/ds9/library/panparser.tcl index 8446407..6d521a1 100644 --- a/ds9/library/panparser.tcl +++ b/ds9/library/panparser.tcl @@ -57,429 +57,552 @@ proc pan::unsetupvalues {numsyms} { } array set pan::table { - 16:283,target 44 - 6:260,target 3 - 56:259 reduce - 43:296,target 30 + 9:283 shift + 21:300 reduce + 9:284 shift + 16:283,target 43 + 21:301 reduce + 9:285 shift + 21:302 reduce + 56:257 reduce + 6:259,target 2 + 9:286 shift + 9:287 shift + 43:296,target 31 2:284,target 4 + 9:288 shift + 13:291,target 43 + 13:301,target 53 + 58:301,target 53 48:0 reduce - 14:274,target 28 - 10:298,target 52 - 9:304 goto - 26:259 reduce + 9:289 shift + 9:290 shift + 9:300 shift + 21:296 reduce + 9:291 shift + 9:301 shift + 14:274,target 26 + 21:297 reduce + 26:257 reduce + 9:292 shift + 9:302 shift + 21:298 reduce + 9:293 shift + 10:298,target 50 + 15:257,target 47 + 21:299 reduce + 61:257,target 58 + 9:294 shift + 9:305 goto + 9:295 shift + 9:306 goto + 9:296 shift 1:258,target 3 - 27:259,target 14 - 37:295,target 24 - 33:0,target 20 - 16:299,target 44 + 9:307 goto + 9:297 shift + 9:298 shift + 64:0,target 63 + 9:299 shift + 33:0,target 21 + 9:268,target 20 + 16:299,target 43 + 62:299,target 51 21:0 reduce - 44:296,target 31 - 14:291,target 45 - 14:301,target 55 - 60:301,target 55 + 44:296,target 32 + 14:291,target 43 + 14:301,target 53 56:300 shift 56:301 shift - 0:302,target 7 + 56:302 shift + 16:257,target 43 63:0 reduce - 56:298,target 52 + 62:257,target 59 + 56:298,target 50 1:275,target 3 - 12:282,target 45 - 56:295 shift + 12:282,target 44 26:300 reduce 56:296 shift - 56:306 goto - 2:258,target 4 - 13:265,target 18 26:301 reduce + 2:258,target 4 + 13:265,target 17 56:297 shift - 28:259,target 15 + 56:307 goto + 26:302 reduce + 62:257 reduce 56:298 shift - 38:295,target 25 56:299 shift - 62:259 reduce - 10:273,target 27 - 26:295 reduce + 10:273,target 25 26:296 reduce 26:297 reduce + 32:257 reduce 26:298 reduce + 9:285,target 37 + 21:302,target 9 26:299 reduce - 32:259 reduce - 6:303,target 8 61:0,target 58 - 45:296,target 32 - 29:0,target 16 - 30:0,target 17 - 16:274,target 44 + 8:259,target 2 + 45:296,target 33 + 30:0,target 18 + 29:0,target 17 + 16:274,target 43 35:0 reduce + 1:302,target 3 1:292,target 3 - 12:298,target 45 + 12:298,target 44 + 17:257,target 5 + 63:257,target 61 2:275,target 4 - 29:259,target 16 - 30:259,target 17 - 40:295,target 27 - 39:295,target 26 - 10:289,target 43 - 10:290,target 44 - 10:300,target 54 + 13:282,target 34 + 10:289,target 41 + 10:290,target 42 + 10:300,target 52 9:0 reduce + 62:300 shift + 62:301 shift + 22:302,target 10 + 62:302 shift 32:300 reduce + 64:299,target 51 + 62:296 shift 32:301 reduce - 9:259,target 49 - 32:295 reduce - 46:296,target 33 - 16:291,target 44 - 16:301,target 44 + 62:297 shift + 62:307 goto + 32:302 reduce + 67:257 reduce + 62:298 shift + 62:299 shift + 46:296,target 34 32:296 reduce + 16:291,target 43 + 16:301,target 43 + 62:301,target 53 32:297 reduce + 37:257 reduce 32:298 reduce 32:299 reduce - 37:259 reduce + 2:302,target 4 2:292,target 4 - 14:282,target 36 + 13:298,target 50 + 18:257,target 6 + 64:257,target 63 + 58:298,target 50 + 14:282,target 34 50:0 reduce 49:0 reduce - 57:0,target 53 - 31:259,target 18 - 41:295,target 28 - 56:300,target 54 + 57:0,target 52 + 56:300,target 52 1:266,target 3 - 12:273,target 45 - 26:0,target 13 - 8:303,target 16 - 47:296,target 34 - 14:298,target 52 - 60:298,target 52 + 12:273,target 44 + 26:0,target 14 + 23:302,target 11 + 9:276,target 28 + 47:296,target 35 + 14:298,target 50 + 19:257,target 7 + 20:257,target 8 + 65:257,target 65 22:0 reduce 37:300 reduce 37:301 reduce - 0:309,target 11 + 37:302 reduce + 0:310,target 11 + 0:309,target 10 16:265,target 43 - 32:259,target 19 - 42:295,target 29 1:283,target 3 - 12:289,target 45 - 12:290,target 45 - 12:300,target 45 - 37:295 reduce + 12:289,target 44 + 12:290,target 44 + 12:300,target 44 + 64:0 reduce 37:296 reduce 2:266,target 4 + 13:273,target 25 37:297 reduce + 43:257 reduce 37:298 reduce 37:299 reduce - 43:259 reduce - 10:281,target 35 - 0:257,target 1 - 54:0,target 39 - 13:259 reduce - 48:296,target 35 + 24:302,target 12 + 10:281,target 33 + 9:293,target 45 + 13:257 reduce + 21:299,target 9 + 54:0,target 37 + 6:311,target 15 2:257 reduce - 13:264 shift - 23:0,target 10 + 23:0,target 11 + 64:301,target 53 2:258 reduce 13:265 shift 2:259 reduce 13:266 shift 13:267 shift - 2:264 reduce - 16:282,target 44 + 13:268 shift + 21:257,target 9 + 66:257,target 51 + 13:269 shift + 13:270 shift + 13:271 shift + 16:282,target 43 2:265 reduce + 13:272 shift 2:266 reduce 1:299,target 3 - 6:258,target 2 + 6:258,target 1 + 13:273 shift 36:0 reduce - 33:259,target 20 2:267 reduce - 43:295,target 30 + 13:274 shift 2:283,target 4 2:268 reduce + 13:275 shift + 13:289,target 41 + 13:290,target 42 + 13:300,target 52 + 58:300,target 52 2:270 reduce 2:269 reduce + 13:276 shift 2:271 reduce - 14:273,target 27 + 13:277 shift + 14:273,target 25 2:272 reduce + 13:278 shift 2:273 reduce - 10:297,target 51 + 10:307,target 59 + 10:297,target 49 + 13:279 shift + 13:280 shift + 25:302,target 13 2:274 reduce + 13:281 shift 2:275 reduce + 13:282 shift 2:276 reduce + 13:283 shift 43:300 reduce 2:277 reduce 1:257,target 3 + 13:284 shift 43:301 reduce 2:278 reduce - 22:299,target 9 + 13:285 shift + 22:299,target 10 + 43:302 reduce 2:280 reduce 2:279 reduce + 13:286 shift 2:281 reduce + 13:287 shift 2:282 reduce - 43:295 reduce + 13:288 shift 2:283 reduce + 13:289 shift + 13:290 shift + 13:300 shift 43:296 reduce 2:284 reduce + 13:291 shift + 13:301 shift 43:297 reduce 2:285 reduce + 13:292 shift + 13:302 shift + 48:257 reduce 43:298 reduce 2:286 reduce + 13:293 shift 43:299 reduce 2:287 reduce - 9:267,target 20 - 13:304 goto - 48:259 reduce + 9:267,target 19 + 13:294 shift 2:288 reduce + 13:305 goto + 13:295 shift 2:300 reduce 2:290 reduce 2:289 reduce - 16:298,target 44 + 13:306 goto + 13:296 shift + 16:298,target 43 + 22:257,target 10 + 67:257,target 55 + 62:298,target 50 2:301 reduce 2:291 reduce + 13:307 goto + 13:297 shift + 2:302 reduce 2:292 reduce + 13:298 shift + 18:257 reduce 2:293 reduce - 51:0,target 40 + 13:299 shift + 51:0,target 41 2:299,target 4 2:294 reduce - 18:259 reduce - 34:259,target 21 2:295 reduce - 44:295,target 31 2:296 reduce - 14:289,target 43 - 14:290,target 44 - 14:300,target 54 - 60:300,target 54 + 14:289,target 41 + 14:290,target 42 + 14:300,target 52 2:297 reduce 2:298 reduce 19:0,target 7 20:0,target 8 51:0 reduce 2:299 reduce - 56:297,target 51 + 56:297,target 49 + 56:307,target 66 + 26:302,target 14 1:274,target 3 - 12:281,target 45 + 12:281,target 44 2:257,target 4 - 13:264,target 17 - 23:299,target 10 - 10:272,target 26 - 48:300 reduce - 48:301 reduce - 8:258,target 2 - 35:259,target 22 - 48:295 reduce - 45:295,target 32 - 48:296 reduce + 23:299,target 11 + 10:272,target 24 + 9:284,target 36 + 21:301,target 9 + 23:257,target 11 + 68:257,target 60 + 8:258,target 1 23:0 reduce - 48:297 reduce - 16:273,target 44 - 48:298 reduce - 48:299 reduce + 16:273,target 43 + 54:257 reduce 1:301,target 3 1:291,target 3 - 5:0,target 46 - 12:297,target 45 - 54:259 reduce + 5:0,target 45 + 12:297,target 44 + 27:302,target 15 2:274,target 4 - 24:299,target 11 - 47:0,target 34 - 10:288,target 42 - 24:259 reduce + 13:281,target 33 + 65:0 reduce + 24:257 reduce + 24:299,target 12 + 47:0,target 35 + 10:288,target 40 16:0,target 43 - 22:301,target 9 - 36:259,target 23 - 46:295,target 33 - 16:289,target 44 - 16:290,target 44 - 16:300,target 44 + 22:301,target 10 + 24:257,target 12 + 69:257,target 64 + 64:298,target 50 + 16:289,target 43 + 16:290,target 43 + 16:300,target 43 + 62:300,target 52 2:301,target 4 2:291,target 4 + 13:307,target 63 + 13:297,target 49 + 58:297,target 49 + 58:307,target 67 37:0 reduce - 14:281,target 35 - 25:299,target 12 - 1:265,target 3 - 12:272,target 45 + 28:302,target 16 + 14:281,target 33 + 4:257,target 46 + 25:299,target 13 24:300 reduce + 1:265,target 3 + 12:272,target 44 24:301 reduce - 23:301,target 10 + 24:302 reduce + 59:257 reduce + 23:301,target 11 2:0,target 4 - 60:259 reduce - 59:259 reduce - 24:295 reduce 24:296 reduce + 25:257,target 13 24:297 reduce + 30:257 reduce + 29:257 reduce 24:298 reduce 24:299 reduce - 44:0,target 31 - 29:259 reduce - 30:259 reduce - 37:259,target 24 - 47:295,target 34 - 13:0,target 54 - 14:297,target 51 - 60:297,target 51 - 0:308,target 10 - 16:264,target 43 + 9:275,target 27 + 44:0,target 32 + 13:0,target 57 + 10:0 reduce + 14:307,target 65 + 14:297,target 49 + 30:302,target 18 + 29:302,target 17 + 0:308,target 9 + 5:257,target 45 52:0 reduce - 26:299,target 13 + 26:299,target 14 1:282,target 3 - 12:288,target 45 + 12:288,target 44 2:265,target 4 - 24:301,target 11 - 10:279,target 33 - 10:280,target 34 - 60:300 shift - 60:301 shift - 6:310,target 15 - 60:295 shift - 38:259,target 25 - 29:300 reduce + 13:272,target 24 + 24:301,target 12 + 10:279,target 31 + 10:280,target 32 + 26:257,target 14 + 9:292,target 44 + 9:302,target 54 + 21:298,target 9 + 6:309,target 14 30:300 reduce - 60:296 shift - 60:306 goto - 48:295,target 35 - 29:301 reduce + 29:300 reduce 30:301 reduce - 60:297 shift - 60:298 shift - 60:299 shift - 29:295 reduce - 30:295 reduce - 29:296 reduce + 29:301 reduce + 64:300,target 52 + 30:302 reduce + 29:302 reduce + 65:257 reduce + 31:302,target 19 30:296 reduce - 16:281,target 44 - 29:297 reduce + 29:296 reduce 30:297 reduce - 24:0 reduce - 29:298 reduce + 29:297 reduce + 16:281,target 43 + 35:257 reduce 30:298 reduce - 1:298,target 3 - 6:257,target 1 - 29:299 reduce + 29:298 reduce + 24:0 reduce 30:299 reduce - 41:0,target 28 - 35:259 reduce - 27:299,target 14 + 29:299 reduce + 1:298,target 3 + 41:0,target 29 + 27:299,target 15 2:282,target 4 - 14:272,target 26 - 10:306,target 57 - 10:296,target 50 - 25:301,target 12 - 22:298,target 9 - 40:259,target 27 - 39:259,target 26 - 9:266,target 19 - 16:297,target 44 + 13:288,target 40 + 14:272,target 24 + 66:0 reduce + 10:0,target 53 + 10:306,target 58 + 10:296,target 48 + 25:301,target 13 + 27:257,target 15 + 22:298,target 10 + 9:266,target 18 + 16:297,target 43 + 62:297,target 49 + 62:307,target 68 + 32:302,target 20 2:298,target 4 - 28:299,target 15 - 14:288,target 42 + 28:299,target 16 + 14:288,target 40 38:0 reduce 35:300 reduce 35:301 reduce - 56:296,target 50 - 56:306,target 62 - 26:301,target 13 - 35:295 reduce + 35:302 reduce + 56:296,target 48 + 26:301,target 14 1:273,target 3 - 12:279,target 45 - 12:280,target 45 + 12:279,target 44 + 12:280,target 44 + 68:0,target 60 35:296 reduce 35:297 reduce + 41:257 reduce 35:298 reduce - 23:298,target 10 + 28:257,target 16 + 23:298,target 11 35:299 reduce - 41:259 reduce - 37:0,target 24 - 10:271,target 25 - 41:259,target 28 - 11:259 shift - 0:257 shift + 37:0,target 25 + 10:271,target 23 + 11:257 shift + 9:283,target 35 + 21:300,target 9 + 33:302,target 21 0:258 shift - 0:260 shift + 0:259 shift 0:261 shift - 8:257,target 1 + 30:299,target 18 + 29:299,target 17 0:262 shift 11:0 reduce - 29:299,target 16 - 30:299,target 17 0:263 shift - 16:272,target 44 + 0:264 shift + 16:272,target 43 1:300,target 3 1:290,target 3 1:289,target 3 - 12:296,target 45 + 12:296,target 44 53:0 reduce - 27:301,target 14 + 27:301,target 15 2:273,target 4 - 24:298,target 11 - 10:287,target 41 + 13:279,target 31 + 13:280,target 32 + 30:257,target 18 + 29:257,target 17 + 24:298,target 12 + 10:287,target 39 + 0:264,target 6 41:300 reduce - 42:259,target 29 + 9:299,target 51 41:301 reduce - 22:300,target 9 - 41:295 reduce + 41:302 reduce + 22:300,target 10 + 65:0,target 65 41:296 reduce + 64:297,target 49 + 64:307,target 69 41:297 reduce + 34:302,target 22 + 46:257 reduce 41:298 reduce 41:299 reduce - 46:259 reduce - 34:0,target 21 - 31:299,target 18 - 16:288,target 44 - 0:302 goto + 34:0,target 22 + 9:257,target 48 + 31:299,target 19 + 16:288,target 43 + 16:257 reduce 0:303 goto - 16:259 reduce 25:0 reduce + 0:304 goto 2:300,target 4 2:290,target 4 2:289,target 4 - 28:301,target 15 - 0:307 goto - 14:279,target 33 - 14:280,target 34 + 13:306,target 62 + 13:296,target 48 + 58:296,target 48 + 28:301,target 16 + 14:279,target 31 + 14:280,target 32 0:308 goto - 16:264 reduce + 5:257 reduce + 0:310 goto 0:309 goto 16:265 reduce - 5:259 reduce + 67:0 reduce + 31:257,target 19 + 25:298,target 13 16:266 reduce - 25:298,target 12 16:267 reduce 16:268 reduce - 1:264,target 3 - 12:271,target 45 + 12:271,target 44 16:269 reduce 16:270 reduce 16:271 reduce - 43:259,target 30 16:272 reduce + 23:300,target 11 16:273 reduce - 23:300,target 10 16:274 reduce 16:275 reduce 16:276 reduce 16:277 reduce + 35:302,target 23 16:278 reduce + 9:274,target 26 16:279 reduce 16:280 reduce 16:281 reduce 16:282 reduce + 32:299,target 20 16:283 reduce - 32:299,target 19 46:300 reduce 16:284 reduce 46:301 reduce 16:285 reduce + 46:302 reduce 16:286 reduce 16:287 reduce - 14:306,target 61 - 14:296,target 50 + 14:306,target 64 + 14:296,target 48 16:288 reduce - 60:296,target 50 - 60:306,target 63 - 46:295 reduce + 30:301,target 18 + 29:301,target 17 16:289 reduce 16:290 reduce 16:300 reduce - 29:301,target 16 - 30:301,target 17 - 62:0,target 52 + 62:0,target 59 46:296 reduce 16:291 reduce 16:301 reduce @@ -487,198 +610,226 @@ array set pan::table { 40:0 reduce 39:0 reduce 16:292 reduce + 16:302 reduce + 52:257 reduce 46:298 reduce - 0:307,target 9 16:293 reduce 46:299 reduce + 32:257,target 20 + 26:298,target 14 16:294 reduce - 26:298,target 13 - 52:259 reduce + 31:0,target 19 1:281,target 3 - 12:287,target 45 + 12:287,target 44 16:295 reduce - 31:0,target 18 16:296 reduce - 2:264,target 4 + 13:271,target 23 16:297 reduce 16:298 reduce - 44:259,target 31 + 22:257 reduce 16:299 reduce - 22:259 reduce - 24:300,target 11 - 10:278,target 32 - 6:308,target 14 - 33:299,target 20 - 31:301,target 18 - 16:279,target 44 - 16:280,target 44 + 24:300,target 12 + 10:278,target 30 + 9:291,target 43 + 9:301,target 53 + 21:297,target 9 + 36:302,target 24 + 6:308,target 13 + 33:299,target 21 + 31:301,target 19 + 12:0 reduce + 16:279,target 43 + 16:280,target 43 1:297,target 3 - 27:298,target 14 + 33:257,target 21 + 27:298,target 15 2:281,target 4 + 13:287,target 39 54:0 reduce - 14:271,target 25 - 45:259,target 32 - 10:305,target 56 - 10:295,target 49 - 25:300,target 12 + 14:271,target 23 + 10:295,target 47 + 25:300,target 13 22:300 reduce - 58:0,target 2 + 58:0,target 54 22:301 reduce - 22:297,target 9 - 57:259 reduce - 22:295 reduce - 27:0,target 14 + 22:297,target 10 + 22:302 reduce + 57:257 reduce + 37:302,target 25 + 27:0,target 15 22:296 reduce - 34:299,target 21 + 34:299,target 22 22:297 reduce + 27:257 reduce 22:298 reduce 22:299 reduce - 9:265,target 18 - 27:259 reduce - 16:296,target 44 - 32:301,target 19 + 9:265,target 17 + 16:296,target 43 + 62:296,target 48 + 32:301,target 20 2:297,target 4 + 34:257,target 22 + 28:298,target 16 26:0 reduce - 28:298,target 15 - 14:287,target 41 - 46:259,target 33 - 56:295,target 49 - 26:300,target 13 + 14:287,target 39 + 68:0 reduce + 26:300,target 14 1:272,target 3 - 12:278,target 45 + 12:278,target 44 1:0 reduce - 23:297,target 10 - 10:269,target 23 - 10:270,target 24 - 35:299,target 22 + 23:297,target 11 + 38:302,target 26 + 10:269,target 21 + 10:270,target 22 + 35:299,target 23 + 9:282,target 34 27:300 reduce - 55:0,target 37 - 33:301,target 20 + 55:0,target 49 + 33:301,target 21 27:301 reduce - 63:259 reduce - 24:0,target 11 - 27:295 reduce - 29:298,target 16 - 30:298,target 17 + 27:302 reduce + 63:257 reduce + 35:257,target 23 + 30:298,target 18 + 29:298,target 17 + 24:0,target 12 27:296 reduce 27:297 reduce - 16:271,target 44 + 33:257 reduce 27:298 reduce + 16:271,target 43 41:0 reduce 27:299 reduce - 47:259,target 34 - 33:259 reduce 1:288,target 3 - 12:295,target 45 - 27:300,target 14 + 12:295,target 44 + 27:300,target 15 2:272,target 4 - 24:297,target 11 - 10:286,target 40 - 0:263,target 6 - 36:299,target 23 - 34:301,target 21 - 31:298,target 18 - 16:287,target 44 - 9:0,target 49 + 13:278,target 30 + 24:297,target 12 + 40:302,target 28 + 39:302,target 27 + 10:286,target 38 + 0:263,target 5 + 9:298,target 50 + 36:299,target 24 + 64:296,target 48 + 34:301,target 22 + 36:257,target 24 + 31:298,target 19 + 16:287,target 43 + 9:0,target 48 13:0 reduce - 48:259,target 35 2:288,target 4 - 28:300,target 15 + 13:305,target 61 + 13:295,target 47 + 28:300,target 16 33:300 reduce - 14:278,target 32 + 14:278,target 30 55:0 reduce - 52:0,target 41 + 52:0,target 42 33:301 reduce - 25:297,target 12 - 33:295 reduce - 21:0,target 50 + 33:302 reduce + 68:257 reduce + 25:297,target 13 + 41:302,target 29 + 21:0,target 9 33:296 reduce - 12:269,target 45 - 12:270,target 45 + 12:269,target 44 + 12:270,target 44 33:297 reduce - 37:299,target 24 + 38:257 reduce + 37:299,target 25 33:298 reduce 33:299 reduce - 38:259 reduce - 35:301,target 22 - 32:298,target 19 - 50:259,target 38 - 49:259,target 36 - 14:305,target 60 - 14:295,target 49 - 60:295,target 49 + 35:301,target 23 + 9:273,target 25 + 37:257,target 25 + 32:298,target 20 + 14:295,target 47 + 30:300,target 18 + 29:300,target 17 27:0 reduce - 29:300,target 16 - 30:300,target 17 - 26:297,target 13 + 26:297,target 14 + 42:302,target 30 1:280,target 3 1:279,target 3 - 12:286,target 45 - 38:299,target 25 + 12:286,target 44 + 69:0 reduce + 13:269,target 21 + 13:270,target 22 + 38:299,target 26 2:0 reduce - 10:277,target 31 + 10:277,target 29 38:300 reduce - 48:0,target 35 + 48:0,target 36 38:301 reduce - 36:301,target 23 - 38:295 reduce - 6:307,target 13 + 9:289,target 41 + 9:290,target 42 + 9:300,target 52 + 21:296,target 9 + 38:302 reduce + 36:301,target 24 17:0,target 5 38:296 reduce - 33:298,target 20 + 38:257,target 26 + 33:298,target 21 38:297 reduce + 44:257 reduce 38:298 reduce 38:299 reduce - 44:259 reduce - 51:259,target 40 - 31:300,target 18 - 16:278,target 44 + 31:300,target 19 + 14:257 reduce + 16:278,target 43 1:296,target 3 42:0 reduce - 27:297,target 14 + 27:297,target 15 + 43:302,target 31 2:280,target 4 2:279,target 4 - 14:269,target 23 - 14:270,target 24 - 40:299,target 27 - 39:299,target 26 - 3:260 shift - 10:294,target 48 - 14:268 shift + 13:286,target 38 + 14:269,target 21 + 14:270,target 22 + 40:299,target 28 + 39:299,target 27 + 10:294,target 46 + 3:261 shift 14:269 shift 14:270 shift 14:271 shift 14:272 shift - 22:296,target 9 - 37:301,target 24 + 22:296,target 10 + 37:301,target 25 14:273 shift 14:274 shift 14:275 shift 14:276 shift - 34:298,target 21 + 40:257,target 28 + 39:257,target 27 + 34:298,target 22 14:277 shift 14:278 shift 14:279 shift 14:280 shift - 9:264,target 17 14:281 shift 14:282 shift - 52:259,target 41 14:283 shift - 16:295,target 44 + 16:295,target 43 44:300 reduce + 32:300,target 20 14:284 shift - 32:300,target 19 - 45:0,target 32 + 45:0,target 33 44:301 reduce 14:285 shift + 44:302 reduce + 14:0 reduce 14:286 shift 2:296,target 4 14:287 shift + 28:297,target 16 14:288 shift - 28:297,target 15 - 44:295 reduce - 14:286,target 40 + 44:302,target 32 + 14:0,target 62 + 14:286,target 38 14:289 shift 14:290 shift 14:300 shift @@ -687,220 +838,232 @@ array set pan::table { 14:301 shift 44:297 reduce 14:292 shift + 14:302 shift 56:0 reduce + 50:257 reduce + 49:257 reduce 44:298 reduce 14:293 shift 44:299 reduce - 41:299,target 28 + 41:299,target 29 14:294 shift - 50:259 reduce - 49:259 reduce - 14:305 goto 14:295 shift 1:271,target 3 - 12:277,target 45 + 12:277,target 44 14:306 goto 14:296 shift + 14:307 goto 14:297 shift 14:298 shift + 19:257 reduce + 20:257 reduce 14:299 shift - 23:296,target 10 - 38:301,target 25 - 19:259 reduce - 20:259 reduce - 10:268,target 22 - 35:298,target 22 - 8:257 shift + 23:296,target 11 + 38:301,target 26 + 41:257,target 29 + 35:298,target 23 8:258 shift - 53:259,target 42 - 33:300,target 20 - 29:297,target 16 - 30:297,target 17 + 9:281,target 33 + 8:259 shift + 33:300,target 21 + 30:297,target 18 + 29:297,target 17 + 45:302,target 33 28:0 reduce - 16:269,target 44 - 16:270,target 44 - 42:299,target 29 + 16:269,target 43 + 16:270,target 43 + 42:299,target 30 1:287,target 3 - 12:294,target 45 + 12:294,target 44 2:271,target 4 - 42:0,target 29 - 24:296,target 11 - 40:301,target 27 - 39:301,target 26 - 10:285,target 39 - 0:262,target 5 + 13:277,target 29 + 42:0,target 30 + 24:296,target 12 + 40:301,target 28 + 39:301,target 27 + 10:285,target 37 + 0:262,target 4 11:0,target 1 - 36:298,target 23 - 55:259 reduce - 54:259,target 39 - 34:300,target 21 - 8:303 goto - 25:259 reduce - 31:297,target 18 - 16:286,target 44 - 43:299,target 30 + 9:307,target 57 + 9:297,target 49 + 42:257,target 30 + 36:298,target 24 + 55:257 reduce + 34:300,target 22 + 25:257 reduce + 8:304 goto + 31:297,target 19 + 46:302,target 34 + 16:286,target 43 + 43:299,target 31 2:287,target 4 - 13:304,target 59 + 13:294,target 46 43:0 reduce - 14:277,target 31 - 25:296,target 12 - 41:301,target 28 - 12:268,target 45 - 37:298,target 24 - 55:259,target 37 - 38:0,target 25 - 35:300,target 22 + 14:277,target 29 + 25:296,target 13 + 41:301,target 29 + 43:257,target 31 + 37:298,target 25 + 69:0,target 64 + 38:0,target 26 + 35:300,target 23 + 9:272,target 24 + 32:297,target 20 25:300 reduce - 32:297,target 19 + 47:302,target 35 25:301 reduce + 25:302 reduce + 61:257 reduce 15:0 reduce - 61:259 reduce - 44:299,target 31 - 14:294,target 48 - 25:295 reduce + 44:299,target 32 + 14:294,target 46 25:296 reduce 25:297 reduce + 31:257 reduce 25:298 reduce 25:299 reduce 57:0 reduce - 26:296,target 13 - 31:259 reduce - 42:301,target 29 + 26:296,target 14 + 42:301,target 30 1:278,target 3 - 12:285,target 45 - 38:298,target 25 - 10:276,target 30 - 11:259,target 58 - 56:259,target 51 - 36:300,target 23 - 33:297,target 20 - 45:299,target 32 - 16:277,target 44 - 35:0,target 22 - 29:0 reduce + 12:285,target 44 + 13:268,target 20 + 44:257,target 32 + 38:298,target 26 + 10:276,target 28 + 9:288,target 40 + 36:300,target 24 + 33:297,target 21 + 66:0,target 51 + 45:299,target 33 + 16:277,target 43 + 35:0,target 23 30:0 reduce + 29:0 reduce 1:295,target 3 - 27:296,target 14 - 43:301,target 30 + 27:296,target 15 + 43:301,target 31 2:278,target 4 + 13:285,target 37 31:300 reduce - 14:268,target 22 31:301 reduce - 40:298,target 27 - 39:298,target 26 - 10:293,target 47 + 31:302 reduce + 66:257 reduce + 45:257,target 33 + 40:298,target 28 + 39:298,target 27 + 10:293,target 45 4:0 reduce - 31:295 reduce 31:296 reduce 31:297 reduce - 57:259,target 53 - 22:295,target 9 + 36:257 reduce 31:298 reduce - 37:300,target 24 + 37:300,target 25 31:299 reduce - 36:259 reduce - 34:297,target 21 - 46:299,target 33 - 16:294,target 44 + 34:297,target 22 + 46:299,target 34 + 16:294,target 43 2:295,target 4 - 28:296,target 15 - 44:301,target 31 - 14:285,target 39 + 28:296,target 16 + 44:301,target 32 + 14:285,target 37 44:0 reduce - 41:298,target 28 - 63:0,target 57 + 46:257,target 34 + 41:298,target 29 + 63:0,target 61 1:269,target 3 1:270,target 3 - 12:276,target 45 - 13:259,target 54 - 23:295,target 10 - 32:0,target 19 - 38:300,target 25 + 12:276,target 44 + 32:0,target 20 + 38:300,target 26 36:300 reduce 36:301 reduce - 35:297,target 22 - 36:295 reduce - 47:299,target 34 + 35:297,target 23 + 36:302 reduce + 9:279,target 31 + 9:280,target 32 + 47:299,target 35 36:296 reduce 36:297 reduce + 42:257 reduce 36:298 reduce 36:299 reduce - 42:259 reduce + 30:296,target 18 + 29:296,target 17 16:0 reduce - 29:296,target 16 - 30:296,target 17 - 45:301,target 32 - 16:268,target 44 - 42:298,target 29 + 45:301,target 33 + 12:257 reduce + 16:268,target 43 + 47:257,target 35 + 42:298,target 30 1:286,target 3 - 12:293,target 45 + 12:293,target 44 58:0 reduce 2:270,target 4 2:269,target 4 + 13:276,target 28 1:257 reduce 1:258 reduce - 60:259,target 56 - 59:259,target 55 1:259 reduce - 24:295,target 11 - 40:300,target 27 - 39:300,target 26 - 10:284,target 38 - 12:268 reduce - 0:261,target 4 + 40:300,target 28 + 39:300,target 27 + 10:284,target 36 + 0:261,target 3 12:269 reduce 12:270 reduce - 1:264 reduce + 9:306,target 56 + 9:296,target 48 12:271 reduce - 36:297,target 23 + 36:297,target 24 1:265 reduce 12:272 reduce 1:266 reduce 12:273 reduce 1:267 reduce 12:274 reduce - 60:0,target 56 - 59:0,target 55 + 60:0,target 2 + 59:0,target 56 1:268 reduce 12:275 reduce 1:269 reduce 1:270 reduce 12:276 reduce - 48:299,target 35 1:271 reduce 12:277 reduce 1:272 reduce 12:278 reduce + 28:0,target 16 1:273 reduce 12:279 reduce 12:280 reduce - 28:0,target 15 1:274 reduce 12:281 reduce 1:275 reduce 12:282 reduce + 31:296,target 19 1:276 reduce 12:283 reduce - 31:296,target 18 - 46:301,target 33 + 46:301,target 34 42:300 reduce 1:277 reduce 12:284 reduce - 16:285,target 44 + 16:285,target 43 42:301 reduce 1:278 reduce 12:285 reduce + 42:302 reduce 1:280 reduce 1:279 reduce 12:286 reduce + 31:0 reduce 1:281 reduce 12:287 reduce - 31:0 reduce - 43:298,target 30 + 48:257,target 36 + 43:298,target 31 2:286,target 4 1:282 reduce 12:288 reduce - 42:295 reduce + 13:293,target 45 1:283 reduce 12:289 reduce 12:290 reduce @@ -909,21 +1072,19 @@ array set pan::table { 1:284 reduce 12:291 reduce 12:301 reduce - 14:276,target 30 + 14:276,target 28 42:297 reduce 1:285 reduce 12:292 reduce + 12:302 reduce + 47:257 reduce 42:298 reduce 1:286 reduce 12:293 reduce - 15:259,target 48 - 61:259,target 58 42:299 reduce 1:287 reduce 12:294 reduce - 25:295,target 12 - 47:259 reduce - 41:300,target 28 + 41:300,target 29 1:288 reduce 12:295 reduce 1:300 reduce @@ -934,177 +1095,208 @@ array set pan::table { 1:291 reduce 5:0 reduce 12:297 reduce + 1:302 reduce 1:292 reduce 12:298 reduce - 37:297,target 24 + 17:257 reduce + 37:297,target 25 1:293 reduce 12:299 reduce 1:294 reduce - 17:259 reduce 1:295 reduce 1:296 reduce 1:297 reduce 1:298 reduce - 6:257 shift 1:299 reduce 6:258 shift - 6:260 shift - 32:296,target 19 - 47:301,target 34 - 56:0,target 51 - 44:298,target 31 - 14:293,target 47 + 6:259 shift + 9:271,target 23 + 6:261 shift + 32:296,target 20 + 47:301,target 35 + 56:0,target 50 + 50:257,target 40 + 49:257,target 38 + 44:298,target 32 + 14:293,target 45 45:0 reduce - 16:259,target 43 - 25:0,target 12 - 62:259,target 52 - 26:295,target 13 - 42:300,target 29 + 25:0,target 13 + 0:304,target 8 + 42:300,target 30 1:277,target 3 - 12:284,target 45 + 12:284,target 44 47:300 reduce - 13:267,target 20 + 13:267,target 19 47:301 reduce - 38:297,target 25 - 10:275,target 29 - 47:295 reduce + 47:302 reduce + 38:297,target 26 + 10:275,target 27 47:296 reduce 47:297 reduce + 9:287,target 39 + 53:257 reduce 47:298 reduce 47:299 reduce - 53:259 reduce - 33:296,target 20 - 48:301,target 35 - 6:303 goto - 23:259 reduce - 45:298,target 32 - 6:307 goto + 33:296,target 21 + 23:257 reduce + 6:304 goto + 51:257,target 41 + 45:298,target 33 17:0 reduce 6:308 goto - 16:276,target 44 - 6:310 goto + 16:276,target 43 + 6:309 goto 1:294,target 3 - 17:259,target 5 - 63:259,target 57 - 27:295,target 14 - 43:300,target 30 + 6:311 goto + 43:300,target 31 2:277,target 4 + 13:284,target 36 60:0 reduce 59:0 reduce - 40:297,target 27 - 39:297,target 26 - 10:292,target 46 - 53:0,target 42 - 22:0,target 9 - 34:296,target 21 - 46:298,target 33 - 16:293,target 44 + 3:261,target 12 + 40:297,target 28 + 39:297,target 27 + 10:292,target 44 + 10:302,target 54 + 53:0,target 39 + 22:0,target 10 + 34:296,target 22 + 52:257,target 42 + 46:298,target 34 23:300 reduce + 16:293,target 43 23:301 reduce + 23:302 reduce + 58:257 reduce 2:294,target 4 - 18:259,target 6 - 23:295 reduce - 28:295,target 15 32:0 reduce - 44:300,target 31 - 14:284,target 38 + 44:300,target 32 + 14:284,target 36 23:296 reduce 23:297 reduce + 28:257 reduce 23:298 reduce 23:299 reduce - 41:297,target 28 - 28:259 reduce + 41:297,target 29 + 56:302,target 54 1:268,target 3 - 12:275,target 45 + 12:275,target 44 7:0,target 0 - 35:296,target 22 - 50:0,target 38 - 49:0,target 36 - 47:298,target 34 + 35:296,target 23 + 9:278,target 30 + 50:0,target 40 + 49:0,target 38 + 53:257,target 39 + 47:298,target 35 18:0,target 6 - 19:259,target 7 - 20:259,target 8 - 29:295,target 16 - 30:295,target 17 - 45:300,target 32 + 45:300,target 33 + 58:300 shift + 58:301 shift 16:267,target 43 + 58:302 shift 46:0 reduce - 42:297,target 29 + 42:297,target 30 1:285,target 3 - 12:292,target 45 - 2:268,target 4 + 12:292,target 44 + 12:302,target 44 28:300 reduce + 2:268,target 4 + 13:275,target 27 + 58:296 shift 28:301 reduce - 10:283,target 37 - 28:295 reduce - 0:260,target 3 + 58:297 shift + 58:307 goto + 28:302 reduce + 64:257 reduce + 58:298 shift + 58:299 shift + 10:283,target 35 28:296 reduce + 0:259,target 2 28:297 reduce - 36:296,target 23 + 9:305,target 55 + 9:295,target 47 + 36:296,target 24 + 34:257 reduce 28:298 reduce 28:299 reduce - 34:259 reduce - 48:298,target 35 - 21:259,target 50 - 4:0,target 47 - 31:295,target 18 - 46:300,target 33 - 16:284,target 44 + 54:257,target 37 + 4:0,target 46 + 46:300,target 34 + 16:284,target 43 18:0 reduce - 43:297,target 30 + 6:261,target 3 + 43:297,target 31 2:285,target 4 - 46:0,target 33 - 14:275,target 29 + 13:292,target 44 + 13:302,target 54 + 58:302,target 54 + 46:0,target 34 + 14:275,target 27 61:0 reduce - 10:299,target 53 - 15:0,target 48 + 10:299,target 51 + 15:0,target 47 1:259,target 3 - 37:296,target 24 + 64:300 shift + 64:301 shift + 37:296,target 25 + 64:302 shift 34:300 reduce + 10:257,target 53 + 64:296 shift + 55:257,target 49 34:301 reduce - 34:295 reduce - 22:259,target 9 + 64:297 shift + 64:307 goto + 34:302 reduce + 69:257 reduce + 64:298 shift + 9:269,target 21 + 9:270,target 22 + 64:299 shift 34:296 reduce - 32:295,target 19 - 47:300,target 34 + 47:300,target 35 34:297 reduce + 40:257 reduce + 39:257 reduce 34:298 reduce 34:299 reduce - 40:259 reduce - 39:259 reduce - 44:297,target 31 - 14:292,target 46 + 44:297,target 32 + 14:292,target 44 + 14:302,target 54 33:0 reduce - 0:303,target 8 - 56:299,target 53 + 10:257 reduce + 0:303,target 7 + 56:299,target 51 1:276,target 3 - 12:283,target 45 + 12:283,target 44 1:0,target 3 2:259,target 4 - 13:266,target 19 - 38:296,target 25 + 13:266,target 18 + 38:296,target 26 7:0 accept - 10:268 shift - 10:274,target 28 - 43:0,target 30 + 10:274,target 26 + 43:0,target 31 10:269 shift 10:270 shift 10:271 shift + 11:257,target 60 + 56:257,target 50 + 9:286,target 38 10:272 shift 10:273 shift 10:274 shift + 12:0,target 44 10:275 shift + 6:304,target 8 10:276 shift - 23:259,target 10 - 33:295,target 20 10:277 shift - 48:300,target 35 10:278 shift 10:279 shift 10:280 shift 10:281 shift 10:282 shift - 45:297,target 32 + 45:297,target 33 10:283 shift 40:300 reduce 39:300 reduce @@ -1112,194 +1304,226 @@ array set pan::table { 40:301 reduce 39:301 reduce 10:285 shift - 16:275,target 44 + 16:275,target 43 + 40:302 reduce + 39:302 reduce 10:286 shift 1:293,target 3 10:287 shift - 12:299,target 45 + 12:299,target 44 47:0 reduce 10:288 shift - 40:295 reduce - 39:295 reduce 2:276,target 4 10:289 shift 10:290 shift 10:300 shift + 13:283,target 35 40:296 reduce 39:296 reduce 10:291 shift 10:301 shift 40:297 reduce 39:297 reduce - 3:260,target 12 10:292 shift + 10:302 shift + 45:257 reduce 40:298 reduce 39:298 reduce 10:293 shift 40:299 reduce - 40:296,target 27 + 40:296,target 28 39:299 reduce - 39:296,target 26 - 10:291,target 45 + 39:296,target 27 + 10:291,target 43 10:294 shift - 10:301,target 55 - 45:259 reduce - 10:305 goto + 10:301,target 53 10:295 shift 10:306 goto 10:296 shift + 10:307 goto 10:297 shift 10:298 shift + 12:257,target 44 + 15:257 reduce + 57:257,target 52 10:299 shift - 15:259 reduce - 24:259,target 11 - 34:295,target 21 - 4:259 reduce - 46:297,target 33 - 40:0,target 27 - 39:0,target 26 - 16:292,target 44 + 4:257 reduce + 46:297,target 34 + 40:0,target 28 + 39:0,target 27 + 16:292,target 43 + 16:302,target 43 + 62:302,target 54 19:0 reduce 20:0 reduce 2:293,target 4 - 14:283,target 37 - 4:259,target 47 + 13:299,target 51 + 58:299,target 51 + 14:283,target 35 62:0 reduce - 41:296,target 28 - 56:301,target 55 + 41:296,target 29 + 56:301,target 53 1:267,target 3 - 12:274,target 45 + 12:274,target 44 45:300 reduce 45:301 reduce - 45:295 reduce + 13:257,target 57 + 58:257,target 54 + 45:302 reduce 45:296 reduce - 25:259,target 12 + 8:304,target 16 45:297 reduce - 35:295,target 22 + 51:257 reduce 45:298 reduce + 9:277,target 29 45:299 reduce - 51:259 reduce - 47:297,target 34 - 21:259 reduce - 14:299,target 53 - 60:299,target 53 + 47:297,target 35 + 21:257 reduce + 14:299,target 51 34:0 reduce - 5:259,target 46 + 9:257 reduce + 67:0,target 55 16:266,target 43 - 9:259 reduce - 42:296,target 29 + 42:296,target 30 1:284,target 3 - 12:291,target 45 - 12:301,target 45 - 36:0,target 23 + 12:291,target 44 + 12:301,target 44 + 36:0,target 24 2:267,target 4 - 9:264 shift + 13:274,target 26 9:265 shift + 14:257,target 62 + 59:257,target 56 9:266 shift 9:267 shift - 10:282,target 36 - 0:258,target 2 - 9:304,target 21 - 26:259,target 13 - 36:295,target 23 - 48:297,target 35 + 10:282,target 34 + 9:268 shift + 0:258,target 1 + 9:269 shift + 9:270 shift + 9:271 shift + 9:294,target 46 + 9:272 shift + 9:273 shift + 9:274 shift + 9:275 shift + 9:276 shift + 9:277 shift + 64:302,target 54 + 9:278 shift + 9:279 shift + 9:280 shift + 9:281 shift + 9:282 shift } array set pan::rules { - 9,l 305 - 11,l 305 - 32,l 305 - 53,l 309 - 6,l 304 - 28,l 305 - 50,l 309 - 49,l 309 - 3,l 303 - 25,l 305 - 46,l 309 - 0,l 311 - 22,l 305 - 43,l 307 - 18,l 305 - 40,l 306 - 39,l 306 - 15,l 305 - 36,l 306 - 57,l 310 - 12,l 305 - 33,l 305 + 9,l 306 + 11,l 306 + 32,l 306 + 53,l 310 + 6,l 305 + 28,l 306 + 50,l 310 + 49,l 310 + 3,l 304 + 25,l 306 + 46,l 310 + 0,l 312 + 22,l 306 + 43,l 308 + 64,l 311 + 18,l 306 + 40,l 307 + 39,l 307 + 61,l 311 + 15,l 306 + 36,l 307 + 57,l 311 + 12,l 306 + 33,l 306 54,l 310 - 7,l 304 - 29,l 305 - 30,l 305 - 51,l 309 - 4,l 303 - 26,l 305 - 47,l 309 - 1,l 302 - 23,l 305 - 44,l 308 - 19,l 305 - 20,l 305 - 41,l 306 - 16,l 305 - 37,l 306 - 58,l 310 - 13,l 305 - 34,l 305 + 7,l 305 + 29,l 306 + 30,l 306 + 51,l 310 + 4,l 304 + 26,l 306 + 47,l 310 + 1,l 303 + 23,l 306 + 44,l 309 + 65,l 311 + 19,l 306 + 20,l 306 + 41,l 307 + 62,l 311 + 16,l 306 + 37,l 307 + 58,l 311 + 13,l 306 + 34,l 306 55,l 310 - 8,l 304 - 10,l 305 - 31,l 305 - 52,l 309 - 5,l 304 - 27,l 305 - 48,l 309 - 2,l 302 - 24,l 305 - 45,l 308 - 21,l 305 - 42,l 306 - 17,l 305 - 38,l 306 - 14,l 305 - 35,l 305 + 8,l 305 + 10,l 306 + 31,l 306 + 52,l 310 + 5,l 305 + 27,l 306 + 48,l 310 + 2,l 303 + 24,l 306 + 45,l 310 + 21,l 306 + 42,l 307 + 63,l 311 + 17,l 306 + 38,l 307 + 60,l 311 + 59,l 311 + 14,l 306 + 35,l 306 56,l 310 } array set pan::rules { + 63,dc 2 12,dc 1 26,dc 1 3,dc 1 41,dc 1 - 55,dc 2 + 55,dc 3 18,dc 1 33,dc 1 9,dc 1 - 47,dc 1 + 47,dc 2 + 62,dc 1 11,dc 1 25,dc 1 2,dc 2 40,dc 1 39,dc 1 - 54,dc 1 + 54,dc 2 17,dc 1 32,dc 1 8,dc 1 46,dc 1 + 61,dc 2 10,dc 1 24,dc 1 1,dc 1 38,dc 1 - 53,dc 2 + 53,dc 1 16,dc 1 31,dc 1 7,dc 1 - 45,dc 2 + 45,dc 1 + 60,dc 3 + 59,dc 2 23,dc 1 0,dc 1 37,dc 1 - 52,dc 3 + 52,dc 2 15,dc 1 29,dc 1 30,dc 1 @@ -1308,16 +1532,18 @@ array set pan::rules { 58,dc 2 22,dc 1 36,dc 1 - 51,dc 2 + 51,dc 3 + 65,dc 2 14,dc 1 28,dc 1 5,dc 1 43,dc 2 - 57,dc 3 + 57,dc 1 21,dc 1 35,dc 1 50,dc 2 - 49,dc 1 + 49,dc 2 + 64,dc 3 13,dc 1 27,dc 1 4,dc 1 @@ -1326,68 +1552,75 @@ array set pan::rules { 19,dc 1 20,dc 1 34,dc 1 - 48,dc 2 + 48,dc 1 } array set pan::rules { - 41,line 111 - 7,line 73 - 37,line 107 - 4,line 68 - 34,line 102 - 1,line 63 - 31,line 99 - 27,line 95 - 24,line 92 - 21,line 89 - 17,line 85 - 14,line 82 - 11,line 79 - 56,line 134 - 53,line 129 - 50,line 126 - 49,line 125 - 46,line 122 - 43,line 115 - 9,line 77 - 40,line 110 - 39,line 109 - 6,line 72 - 36,line 106 - 3,line 67 - 33,line 101 - 29,line 97 - 30,line 98 - 26,line 94 - 23,line 91 - 19,line 87 - 20,line 88 - 16,line 84 - 13,line 81 - 10,line 78 - 58,line 136 - 55,line 133 - 52,line 128 - 48,line 124 - 45,line 119 - 42,line 112 - 8,line 74 - 38,line 108 - 5,line 71 - 35,line 103 - 2,line 64 - 32,line 100 - 28,line 96 - 25,line 93 - 22,line 90 - 18,line 86 - 15,line 83 - 12,line 80 - 57,line 135 - 54,line 132 - 51,line 127 - 47,line 123 - 44,line 118 + 41,line 123 + 7,line 75 + 37,line 119 + 4,line 70 + 34,line 109 + 1,line 65 + 31,line 106 + 27,line 102 + 24,line 99 + 21,line 96 + 17,line 92 + 14,line 89 + 11,line 86 + 63,line 158 + 60,line 155 + 59,line 154 + 56,line 149 + 53,line 146 + 50,line 143 + 49,line 142 + 46,line 139 + 43,line 132 + 9,line 84 + 40,line 122 + 39,line 121 + 6,line 74 + 36,line 118 + 3,line 69 + 33,line 108 + 29,line 104 + 30,line 105 + 26,line 101 + 23,line 98 + 19,line 94 + 20,line 95 + 16,line 91 + 13,line 88 + 10,line 85 + 65,line 160 + 62,line 157 + 58,line 153 + 55,line 148 + 52,line 145 + 48,line 141 + 45,line 138 + 42,line 124 + 8,line 76 + 38,line 120 + 5,line 73 + 35,line 110 + 2,line 66 + 32,line 107 + 28,line 103 + 25,line 100 + 22,line 97 + 18,line 93 + 15,line 90 + 12,line 87 + 64,line 159 + 61,line 156 + 57,line 152 + 54,line 147 + 51,line 144 + 47,line 140 + 44,line 135 } proc pan::yyparse {} { @@ -1501,19 +1734,26 @@ proc pan::yyparse {} { 42 { set _ ecliptic } 43 { set pan::xx $1; set pan::yy $2 } 44 { set pan::xx $1; set pan::yy $2 } - 45 { set pan::xx $1; set pan::yy $2 } - 46 { PanZoomDialog } - 47 { PanZoomDestroyDialog } - 49 { Pan $pan::xx $pan::yy physical } - 50 { Pan $pan::xx $pan::yy $2 } - 51 { Pan $pan::xx $pan::yy $2 fk5 } - 52 { Pan $pan::xx $pan::yy $2 $3 } - 53 { Pan $pan::xx $pan::yy wcs $2 } - 54 { PanTo $pan::xx $pan::yy physical } - 55 { PanTo $pan::xx $pan::yy $2 } - 56 { PanTo $pan::xx $pan::yy $2 fk5 } - 57 { PanTo $pan::xx $pan::yy $2 $3 } - 58 { PanTo $pan::xx $pan::yy wcs $2 } + 45 { PanZoomDialog } + 46 { PanZoomDestroyDialog } + 48 { Pan $pan::xx $pan::yy physical } + 49 { Pan $pan::xx $pan::yy $2 } + 50 { Pan $pan::xx $pan::yy $2 fk5 } + 51 { Pan $pan::xx $pan::yy $2 $3 } + 52 { Pan $pan::xx $pan::yy wcs $3 } + 53 { Pan $pan::xx $pan::yy wcs fk5 } + 54 { Pan $pan::xx $pan::yy $2 fk5 } + 55 { Pan $pan::xx $pan::yy $2 $3 } + 56 { Pan $pan::xx $pan::yy wcs $2 } + 57 { PanTo $pan::xx $pan::yy physical } + 58 { PanTo $pan::xx $pan::yy $2 } + 59 { PanTo $pan::xx $pan::yy $2 fk5 } + 60 { PanTo $pan::xx $pan::yy $2 $3 } + 61 { PanTo $pan::xx $pan::yy wcs $3 } + 62 { PanTo $pan::xx $pan::yy wcs fk5 } + 63 { PanTo $pan::xx $pan::yy $2 fk5 } + 64 { PanTo $pan::xx $pan::yy $2 $3 } + 65 { PanTo $pan::xx $pan::yy wcs $2 } } unsetupvalues $dc # pop off tokens from the stack if normal rule @@ -1544,7 +1784,7 @@ proc pan::yyparse {} { ###### proc pan::yyerror {msg} { - puts stderr "$msg:" puts stderr "$pan::yy_current_buffer" puts stderr [format "%*s" $pan::index_ ^] + puts stderr "$msg" } diff --git a/ds9/library/zoomparser.tcl b/ds9/library/zoomparser.tcl index 88e3fe0..d744e4c 100644 --- a/ds9/library/zoomparser.tcl +++ b/ds9/library/zoomparser.tcl @@ -326,5 +326,5 @@ proc zoom::yyparse {} { proc zoom::yyerror {msg} { puts stderr "$msg:" puts stderr "$zoom::yy_current_buffer" - puts stderr [format "%*s" $zoom::index_ ^] + puts stderr [format "zoom %*s" $zoom::index_ ^] } diff --git a/ds9/parsers/panlex.fcl b/ds9/parsers/panlex.fcl index 29d2861..351de9e 100644 --- a/ds9/parsers/panlex.fcl +++ b/ds9/parsers/panlex.fcl @@ -15,6 +15,8 @@ E [Ee][+-]?{D}+ %% +-zscale {return $pan::CMD_} + close {return $pan::CLOSE_} open {return $pan::OPEN_} to {return $pan::TO_} diff --git a/ds9/parsers/panparser.tac b/ds9/parsers/panparser.tac index 90ce91f..85f40e1 100644 --- a/ds9/parsers/panparser.tac +++ b/ds9/parsers/panparser.tac @@ -5,13 +5,15 @@ namespace eval pan { } %} +%start command + +%token CMD_ + %token INT_ %token REAL_ %token STRING_ %token SEXSTR_ -%start command - %token CLOSE_ %token OPEN_ %token TO_ @@ -60,8 +62,8 @@ namespace eval pan { %% command : pan - | pan STRING_ {pan::yyclearin} - ; +| pan CMD_ {pan::yyclearin} +; numeric : INT_ {set _ $1} | REAL_ {set _ $1} @@ -73,6 +75,11 @@ coordsys : IMAGE_ {set _ image} | DETECTOR_ {set _ detector} ; +#| error { +# yyerror "must be: image|physical|amplifier|detector" +# YYABORT +# } + wcssys : WCS_ {set _ wcs} | WCSA_ {set _ wcsa} | WCSB_ {set _ wcsb} @@ -102,6 +109,11 @@ wcssys : WCS_ {set _ wcs} | WCSZ_ {set _ wcsz} ; +# | error { +# yyerror "must be: wcs|wcsa...wcsz" +# YYABORT +# } + skyframe : FK4_ {set _ fk4} | B1950_ {set _ fk4} | FK5_ {set _ fk5} @@ -111,25 +123,37 @@ skyframe : FK4_ {set _ fk4} | ECLIPTIC_ {set _ ecliptic} ; +# | error { +# yyerror "must be: fk4|fk5|icrs|galactic|ecliptic" +# YYABORT +# } + coord : numeric numeric {set pan::xx $1; set pan::yy $2} ; -skycoord : numeric numeric {set pan::xx $1; set pan::yy $2} - | SEXSTR_ SEXSTR_ {set pan::xx $1; set pan::yy $2} +skycoord : SEXSTR_ SEXSTR_ {set pan::xx $1; set pan::yy $2} ; pan : OPEN_ {PanZoomDialog} | CLOSE_ {PanZoomDestroyDialog} - | TO_ panTo + | TO_ panto | coord {Pan $pan::xx $pan::yy physical} | coord coordsys {Pan $pan::xx $pan::yy $2} + | coord wcssys {Pan $pan::xx $pan::yy $2 fk5} + | coord wcssys skyframe {Pan $pan::xx $pan::yy $2 $3} + | coord skyframe {Pan $pan::xx $pan::yy wcs $3} + | skycoord {Pan $pan::xx $pan::yy wcs fk5} | skycoord wcssys {Pan $pan::xx $pan::yy $2 fk5} | skycoord wcssys skyframe {Pan $pan::xx $pan::yy $2 $3} | skycoord skyframe {Pan $pan::xx $pan::yy wcs $2} ; -panTo : coord {PanTo $pan::xx $pan::yy physical} +panto : coord {PanTo $pan::xx $pan::yy physical} | coord coordsys {PanTo $pan::xx $pan::yy $2} + | coord wcssys {PanTo $pan::xx $pan::yy $2 fk5} + | coord wcssys skyframe {PanTo $pan::xx $pan::yy $2 $3} + | coord skyframe {PanTo $pan::xx $pan::yy wcs $3} + | skycoord {PanTo $pan::xx $pan::yy wcs fk5} | skycoord wcssys {PanTo $pan::xx $pan::yy $2 fk5} | skycoord wcssys skyframe {PanTo $pan::xx $pan::yy $2 $3} | skycoord skyframe {PanTo $pan::xx $pan::yy wcs $2} @@ -138,7 +162,7 @@ panTo : coord {PanTo $pan::xx $pan::yy physical} %% proc pan::yyerror {msg} { - puts stderr "$msg:" puts stderr "$pan::yy_current_buffer" - puts stderr [format "pan %*s" $pan::index_ ^] + puts stderr [format "%*s" $pan::index_ ^] + puts stderr "$msg" } |