From 88233512265280fd373a68e890599090f8ebb524 Mon Sep 17 00:00:00 2001 From: William Joye Date: Thu, 1 Mar 2018 14:11:07 -0500 Subject: add ds9 pan parser --- ds9/library/panlex.tcl | 332 +++---- ds9/library/panparser.tcl | 2090 ++++++++++++++++++++------------------------ ds9/library/zoomparser.tcl | 184 ++-- ds9/parsers/panlex.fcl | 6 +- ds9/parsers/panparser.tac | 48 +- ds9/parsers/zoomparser.tac | 6 +- 6 files changed, 1261 insertions(+), 1405 deletions(-) diff --git a/ds9/library/panlex.tcl b/ds9/library/panlex.tcl index 8c88019..7605064 100644 --- a/ds9/library/panlex.tcl +++ b/ds9/library/panlex.tcl @@ -202,391 +202,398 @@ proc pan::yylex {} { set yyleng [string length $yytext] set matched_rule 0 } - # rule 1: close - if {[regexp -start $index_ -indices -line -nocase -- {\A(close)} $yy_current_buffer match] > 0 && \ + # rule 1: -zoom + if {[regexp -start $index_ -indices -line -nocase -- {\A(-zoom)} $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: open - if {[regexp -start $index_ -indices -line -nocase -- {\A(open)} $yy_current_buffer match] > 0 && \ + # rule 2: 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 2 } - # rule 3: to - if {[regexp -start $index_ -indices -line -nocase -- {\A(to)} $yy_current_buffer match] > 0 && \ + # rule 3: 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 3 } - # rule 4: wcs - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ + # rule 4: 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 4 } - # rule 5: wcsa - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ + # rule 5: 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 5 } - # rule 6: wcsb - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ + # rule 6: 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 6 } - # rule 7: wcsc - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ + # rule 7: 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 7 } - # rule 8: wcsd - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ + # rule 8: 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 8 } - # rule 9: wcse - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ + # rule 9: 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 9 } - # rule 10: wcsf - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ + # rule 10: 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 10 } - # rule 11: wcsg - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ + # rule 11: 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 11 } - # rule 12: wcsh - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ + # rule 12: 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 12 } - # rule 13: wcsi - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ + # rule 13: 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 13 } - # rule 14: wcsj - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ + # rule 14: 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 14 } - # rule 15: wcsk - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ + # rule 15: 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 15 } - # rule 16: wcsl - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ + # rule 16: 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 16 } - # rule 17: wcsm - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ + # rule 17: 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 17 } - # rule 18: wcsn - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ + # rule 18: 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 18 } - # rule 19: wcso - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ + # rule 19: 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 19 } - # rule 20: wcsp - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ + # rule 20: 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 20 } - # rule 21: wcsq - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ + # rule 21: 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 21 } - # rule 22: wcsr - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ + # rule 22: 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 22 } - # rule 23: wcss - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ + # rule 23: 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 23 } - # rule 24: wcst - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ + # rule 24: 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 24 } - # rule 25: wcsu - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ + # rule 25: 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 25 } - # rule 26: wcsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ + # rule 26: 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 26 } - # rule 27: wcsw - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ + # rule 27: 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 27 } - # rule 28: wcsx - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ + # rule 28: 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 28 } - # rule 29: wcsy - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ + # rule 29: 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 29 } - # rule 30: wcsz - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ + # rule 30: 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 30 } - # rule 31: image - if {[regexp -start $index_ -indices -line -nocase -- {\A(image)} $yy_current_buffer match] > 0 && \ + # rule 31: 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 31 } - # rule 32: physical - if {[regexp -start $index_ -indices -line -nocase -- {\A(physical)} $yy_current_buffer match] > 0 && \ + # rule 32: 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 32 } - # rule 33: amplifier - if {[regexp -start $index_ -indices -line -nocase -- {\A(amplifier)} $yy_current_buffer match] > 0 && \ + # rule 33: 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 33 } - # rule 34: detector - if {[regexp -start $index_ -indices -line -nocase -- {\A(detector)} $yy_current_buffer match] > 0 && \ + # rule 34: 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 34 } - # rule 35: fk4 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ + # rule 35: 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 35 } - # rule 36: b1950 - if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ + # rule 36: 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 36 } - # rule 37: fk5 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ + # rule 37: 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 37 } - # rule 38: j2000 - if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ + # rule 38: 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 38 } - # rule 39: galactic - if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ + # rule 39: 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 39 } - # rule 40: ecliptic - if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ + # rule 40: 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 40 } - # rule 41: [+-]?{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 41: 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 41 } - # rule 42: [+-]?{D}+\.?({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 42: [+-]?{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 42 } - # 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 && \ + # rule 43: [+-]?{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 43 } - # rule 44: [+-]?{D}+:{D}+:{D}+\.? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ + # rule 44: [+-]?{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 44 } - # 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 && \ + # rule 45: [+-]?{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 45 } - # 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 && \ + # rule 46: [+-]?{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 46 } - # 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 && \ + # rule 47: [+-]?{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 47 } - # 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 && \ + # rule 48: [+-]?{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 48 } - # 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 && \ + # rule 49: [+-]?{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 49 } - # rule 50: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 50: [+-]?{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 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: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $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+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + # rule 53: \{[^\}]*\} + 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 53 } - # rule 54: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 54: \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 54 } - # rule 55: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 55: \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 55 } + # rule 56: . + 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 56 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -603,146 +610,146 @@ proc pan::yylex {} { return $pan::CMD_ } 1 { -return $pan::CLOSE_ +return $pan::CMD_ } 2 { -return $pan::OPEN_ +return $pan::CLOSE_ } 3 { -return $pan::TO_ +return $pan::OPEN_ } 4 { -return $pan::WCS_ +return $pan::TO_ } 5 { -return $pan::WCSA_ +return $pan::WCS_ } 6 { -return $pan::WCSB_ +return $pan::WCSA_ } 7 { -return $pan::WCSC_ +return $pan::WCSB_ } 8 { -return $pan::WCSD_ +return $pan::WCSC_ } 9 { -return $pan::WCSE_ +return $pan::WCSD_ } 10 { -return $pan::WCSF_ +return $pan::WCSE_ } 11 { -return $pan::WCSG_ +return $pan::WCSF_ } 12 { -return $pan::WCSH_ +return $pan::WCSG_ } 13 { -return $pan::WCSI_ +return $pan::WCSH_ } 14 { -return $pan::WCSJ_ +return $pan::WCSI_ } 15 { -return $pan::WCSK_ +return $pan::WCSJ_ } 16 { -return $pan::WCSL_ +return $pan::WCSK_ } 17 { -return $pan::WCSM_ +return $pan::WCSL_ } 18 { -return $pan::WCSN_ +return $pan::WCSM_ } 19 { -return $pan::WCSO_ +return $pan::WCSN_ } 20 { -return $pan::WCSP_ +return $pan::WCSO_ } 21 { -return $pan::WCSQ_ +return $pan::WCSP_ } 22 { -return $pan::WCSR_ +return $pan::WCSQ_ } 23 { -return $pan::WCSS_ +return $pan::WCSR_ } 24 { -return $pan::WCST_ +return $pan::WCSS_ } 25 { -return $pan::WCSU_ +return $pan::WCST_ } 26 { -return $pan::WCSV_ +return $pan::WCSU_ } 27 { -return $pan::WCSW_ +return $pan::WCSV_ } 28 { -return $pan::WCSX_ +return $pan::WCSW_ } 29 { -return $pan::WCSY_ +return $pan::WCSX_ } 30 { -return $pan::WCSZ_ +return $pan::WCSY_ } 31 { -return $pan::IMAGE_ +return $pan::WCSZ_ } 32 { -return $pan::PHYSICAL_ +return $pan::IMAGE_ } 33 { -return $pan::AMPLIFIER_ +return $pan::PHYSICAL_ } 34 { -return $pan::DETECTOR_ +return $pan::AMPLIFIER_ } 35 { -return $pan::FK4_ +return $pan::DETECTOR_ } 36 { return $pan::FK4_ } 37 { -return $pan::FK5_ +return $pan::FK4_ } 38 { return $pan::FK5_ } 39 { -return $pan::GALACTIC_ +return $pan::FK5_ } 40 { -return $pan::ECLIPTIC_ +return $pan::GALACTIC_ } 41 { +return $pan::ECLIPTIC_ + } + 42 { set pan::yylval $yytext; return $pan::INT_ } - 42 - - 43 { + 43 - + 44 { set pan::yylval $yytext; return $pan::REAL_ } - 44 - - 45 { + 45 - + 46 { set pan::yylval $yytext; return $pan::SEXSTR_ } - 46 - - 47 { + 47 - + 48 { set pan::yylval $yytext; return $pan::HMSSTR_ } - 48 - - 49 { -set pan::yylval $yytext; return $pan::SMSSTR_ - } + 49 - 50 { -set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ +set pan::yylval $yytext; return $pan::SMSSTR_ } 51 { set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ @@ -751,12 +758,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_ } 53 { -set pan::yylval $yytext; return $pan::STRING_ +set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_ } 54 { -# ignore whitespace +set pan::yylval $yytext; return $pan::STRING_ } 55 { +# ignore whitespace + } + 56 { set pan::yylval $yytext; return $pan::yylval } default diff --git a/ds9/library/panparser.tcl b/ds9/library/panparser.tcl index 6d521a1..68b69c1 100644 --- a/ds9/library/panparser.tcl +++ b/ds9/library/panparser.tcl @@ -1,7 +1,3 @@ -namespace eval pan { - variable xx {} - variable yy {} -} ###### # Begin autogenerated taccle (version 1.2) routines. @@ -57,1238 +53,1118 @@ proc pan::unsetupvalues {numsyms} { } array set pan::table { - 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 + 2:284,target 5 48:0 reduce - 9:289 shift - 9:290 shift - 9:300 shift 21:296 reduce - 9:291 shift - 9:301 shift - 14:274,target 26 + 14:274,target 21 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 + 26:257 reduce + 10:308,target 51 + 10:298,target 45 + 15:257,target 61 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 - 9:307 goto - 9:297 shift - 9:298 shift + 9:304 goto + 1:258,target 4 64:0,target 63 - 9:299 shift - 33:0,target 21 - 9:268,target 20 - 16:299,target 43 - 62:299,target 51 + 53:300,target 47 + 53:290,target 37 + 53:289,target 36 + 33:0,target 27 + 50:297,target 44 + 19:302,target 13 + 20:302,target 14 + 16:299,target 10 21:0 reduce - 44:296,target 32 - 14:291,target 43 - 14:301,target 53 - 56:300 shift - 56:301 shift - 56:302 shift - 16:257,target 43 + 14:291,target 38 + 14:301,target 48 + 59:301,target 48 + 16:257,target 10 63:0 reduce - 62:257,target 59 - 56:298,target 50 - 1:275,target 3 - 12:282,target 44 + 62:257,target 55 + 1:275,target 4 26:300 reduce - 56:296 shift + 2:258,target 5 26:301 reduce - 2:258,target 4 - 13:265,target 17 - 56:297 shift - 56:307 goto 26:302 reduce 62:257 reduce - 56:298 shift - 56:299 shift - 10:273,target 25 + 10:273,target 20 26:296 reduce 26:297 reduce - 32:257 reduce + 21:302,target 15 26:298 reduce - 9:285,target 37 - 21:302,target 9 + 32:257 reduce + 66:302,target 49 26:299 reduce - 61:0,target 58 + 52:281,target 28 + 17:299,target 11 + 63:299,target 46 + 61:0,target 3 8:259,target 2 - 45:296,target 33 - 30:0,target 18 - 29:0,target 17 - 16:274,target 43 + 29:0,target 23 + 30:0,target 24 35:0 reduce - 1:302,target 3 - 1:292,target 3 - 12:298,target 44 - 17:257,target 5 - 63:257,target 61 - 2:275,target 4 - 13:282,target 34 - 10:289,target 41 - 10:290,target 42 - 10:300,target 52 + 1:302,target 4 + 1:292,target 4 + 17:257,target 11 + 63:257,target 62 + 2:275,target 5 + 14:265,target 54 + 10:289,target 36 + 10:290,target 37 + 10:300,target 47 9:0 reduce - 62:300 shift - 62:301 shift - 22:302,target 10 - 62:302 shift + 52:297,target 44 + 52:307,target 63 + 22:302,target 16 + 53:281,target 28 + 18:299,target 12 32:300 reduce - 64:299,target 51 - 62:296 shift 32:301 reduce - 62:297 shift - 62:307 goto 32:302 reduce 67:257 reduce - 62:298 shift - 62:299 shift - 46:296,target 34 + 16:301,target 10 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 - 2:302,target 4 - 2:292,target 4 - 13:298,target 50 - 18:257,target 6 + 2:302,target 5 + 2:292,target 5 + 18:257,target 12 64:257,target 63 - 58:298,target 50 - 14:282,target 34 + 14:282,target 29 50:0 reduce 49:0 reduce - 57:0,target 52 - 56:300,target 52 - 1:266,target 3 - 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 + 57:0,target 9 + 1:266,target 4 + 26:0,target 20 + 53:297,target 44 + 53:307,target 66 + 23:302,target 17 + 19:299,target 13 + 20:299,target 14 + 52:272,target 19 + 17:301,target 11 + 63:301,target 48 + 14:308,target 60 + 14:298,target 45 + 19:257,target 13 + 20:257,target 14 + 65:257,target 57 + 59:298,target 45 + 59:308,target 68 22:0 reduce 37:300 reduce 37:301 reduce 37:302 reduce - 0:310,target 11 - 0:309,target 10 - 16:265,target 43 - 1:283,target 3 - 12:289,target 44 - 12:290,target 44 - 12:300,target 44 + 0:309,target 9 + 1:283,target 4 64:0 reduce 37:296 reduce - 2:266,target 4 - 13:273,target 25 + 2:266,target 5 37:297 reduce 43:257 reduce 37:298 reduce 37:299 reduce - 24:302,target 12 - 10:281,target 33 - 9:293,target 45 + 24:302,target 18 + 10:281,target 28 13:257 reduce - 21:299,target 9 - 54:0,target 37 - 6:311,target 15 + 21:299,target 15 + 66:299,target 46 + 54:0,target 6 + 52:288,target 35 + 53:272,target 19 2:257 reduce - 23:0,target 11 - 64:301,target 53 + 18:301,target 12 + 23:0,target 17 2:258 reduce - 13:265 shift 2:259 reduce - 13:266 shift - 13:267 shift - 13:268 shift - 21:257,target 9 - 66:257,target 51 - 13:269 shift - 13:270 shift - 13:271 shift - 16:282,target 43 + 21:257,target 15 + 66:257,target 58 2:265 reduce - 13:272 shift 2:266 reduce - 1:299,target 3 + 1:299,target 4 6:258,target 1 - 13:273 shift - 36:0 reduce 2:267 reduce - 13:274 shift - 2:283,target 4 + 36:0 reduce + 2:283,target 5 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 - 13:277 shift - 14:273,target 25 + 14:273,target 20 2:272 reduce - 13:278 shift 2:273 reduce - 10:307,target 59 - 10:297,target 49 - 13:279 shift - 13:280 shift - 25:302,target 13 + 10:307,target 50 + 10:297,target 44 2:274 reduce - 13:281 shift + 25:302,target 19 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 + 1:257,target 4 2:278 reduce - 13:285 shift - 22:299,target 10 - 43:302 reduce + 22:299,target 16 2:280 reduce 2:279 reduce - 13:286 shift + 53:288,target 35 2:281 reduce - 13:287 shift 2:282 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 + 50:296,target 43 2:285 reduce - 13:292 shift - 13:302 shift + 19:301,target 13 + 20:301,target 14 48:257 reduce - 43:298 reduce 2:286 reduce - 13:293 shift - 43:299 reduce 2:287 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 - 13:306 goto - 13:296 shift - 16:298,target 43 - 22:257,target 10 - 67:257,target 55 - 62:298,target 50 + 16:298,target 10 + 22:257,target 16 + 67:257,target 59 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 - 13:299 shift - 51:0,target 41 - 2:299,target 4 + 51:0,target 54 + 2:299,target 5 2:294 reduce 2:295 reduce 2:296 reduce - 14:289,target 41 - 14:290,target 42 - 14:300,target 52 + 14:289,target 36 + 14:290,target 37 + 14:300,target 47 + 59:300,target 47 2:297 reduce 2:298 reduce - 19:0,target 7 - 20:0,target 8 + 19:0,target 13 + 20:0,target 14 51:0 reduce 2:299 reduce - 56:297,target 49 - 56:307,target 66 - 26:302,target 14 - 1:274,target 3 - 12:281,target 44 - 2:257,target 4 - 23:299,target 11 - 10:272,target 24 - 9:284,target 36 - 21:301,target 9 - 23:257,target 11 - 68:257,target 60 + 26:302,target 20 + 1:274,target 4 + 2:257,target 5 + 23:299,target 17 + 10:272,target 19 + 21:301,target 15 + 66:301,target 48 + 52:280,target 27 + 52:279,target 26 + 17:298,target 11 + 23:257,target 17 + 68:257,target 51 + 63:298,target 45 + 63:308,target 69 8:258,target 1 + 18:300 reduce + 18:301 reduce 23:0 reduce - 16:273,target 43 + 18:302 reduce 54:257 reduce - 1:301,target 3 - 1:291,target 3 - 5:0,target 45 - 12:297,target 44 - 27:302,target 15 - 2:274,target 4 - 13:281,target 33 + 1:301,target 4 + 1:291,target 4 + 5:0,target 44 + 27:302,target 21 + 2:274,target 5 + 18:296 reduce 65:0 reduce + 18:297 reduce + 18:298 reduce 24:257 reduce - 24:299,target 12 - 47:0,target 35 - 10:288,target 40 - 16:0,target 43 - 22:301,target 10 - 24:257,target 12 + 18:299 reduce + 24:299,target 18 + 47:0,target 43 + 10:288,target 35 + 16:0,target 10 + 52:296,target 43 + 22:301,target 16 + 53:280,target 27 + 53:279,target 26 + 18:298,target 12 + 24:257,target 18 + 70:257,target 60 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 + 16:300,target 10 + 2:301,target 5 + 2:291,target 5 37:0 reduce - 28:302,target 16 - 14:281,target 33 - 4:257,target 46 - 25:299,target 13 + 28:302,target 22 + 14:281,target 28 + 4:257,target 45 + 25:299,target 19 + 1:265,target 4 24:300 reduce - 1:265,target 3 - 12:272,target 44 24:301 reduce 24:302 reduce + 60:257 reduce 59:257 reduce - 23:301,target 11 - 2:0,target 4 + 53:296,target 43 + 53:306,target 65 + 23:301,target 17 + 2:0,target 5 24:296 reduce - 25:257,target 13 + 19:298,target 13 + 20:298,target 14 24:297 reduce - 30:257 reduce - 29:257 reduce + 25:257,target 19 24:298 reduce + 29:257 reduce + 30:257 reduce 24:299 reduce - 9:275,target 27 - 44:0,target 32 - 13:0,target 57 + 44:0,target 39 + 52:271,target 18 + 17:300,target 11 + 63:300,target 47 + 13:0,target 46 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 + 14:307,target 59 + 14:297,target 44 + 59:297,target 44 + 29:302,target 23 + 30:302,target 24 + 5:257,target 44 52:0 reduce - 26:299,target 14 - 1:282,target 3 - 12:288,target 44 - 2:265,target 4 - 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 + 26:299,target 20 + 1:282,target 4 + 2:265,target 5 + 24:301,target 18 + 10:279,target 26 + 10:280,target 27 + 59:300 shift + 21:298,target 15 + 26:257,target 20 + 66:298,target 45 + 66:308,target 70 + 59:301 shift + 59:302 shift + 52:287,target 34 + 53:271,target 18 + 6:310,target 13 29:300 reduce - 30:301 reduce + 30:300 reduce + 59:296 shift + 18:300,target 12 29:301 reduce - 64:300,target 52 - 30:302 reduce + 30:301 reduce + 59:297 shift 29:302 reduce + 30:302 reduce 65:257 reduce - 31:302,target 19 - 30:296 reduce + 59:298 shift + 59:308 goto + 59:299 shift 29:296 reduce - 30:297 reduce + 30:296 reduce + 31:302,target 25 29:297 reduce - 16:281,target 43 - 35:257 reduce - 30:298 reduce - 29:298 reduce + 30:297 reduce 24:0 reduce - 30:299 reduce + 29:298 reduce + 30:298 reduce + 35:257 reduce + 1:298,target 4 29:299 reduce - 1:298,target 3 - 41:0,target 29 - 27:299,target 15 - 2:282,target 4 - 13:288,target 40 - 14:272,target 24 + 30:299 reduce + 41:0,target 35 + 27:299,target 21 + 2:282,target 5 + 14:272,target 19 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 16 - 14:288,target 40 + 10:0,target 52 + 10:296,target 43 + 25:301,target 19 + 22:298,target 16 + 27:257,target 21 + 53:287,target 34 + 19:300,target 13 + 20:300,target 14 + 16:297,target 10 + 32:302,target 26 + 2:298,target 5 + 28:299,target 22 + 14:288,target 35 38:0 reduce 35:300 reduce 35:301 reduce 35:302 reduce - 56:296,target 48 - 26:301,target 14 - 1:273,target 3 - 12:279,target 44 - 12:280,target 44 - 68:0,target 60 + 26:301,target 20 + 1:273,target 4 + 68:0,target 51 35:296 reduce 35:297 reduce 41:257 reduce + 23:298,target 17 + 28:257,target 22 35:298 reduce - 28:257,target 16 - 23:298,target 11 35:299 reduce - 37:0,target 25 - 10:271,target 23 - 11:257 shift - 9:283,target 35 - 21:300,target 9 - 33:302,target 21 + 37:0,target 31 + 10:271,target 18 + 21:300,target 15 + 66:300,target 47 + 52:278,target 25 + 11:261 shift + 17:297,target 11 + 63:297,target 44 + 33:302,target 27 0:258 shift 0:259 shift 0:261 shift - 30:299,target 18 - 29:299,target 17 0:262 shift - 11:0 reduce + 29:299,target 23 + 30:299,target 24 0:263 shift 0:264 shift - 16:272,target 43 - 1:300,target 3 - 1:290,target 3 - 1:289,target 3 - 12:296,target 44 + 1:300,target 4 + 1:290,target 4 + 1:289,target 4 53:0 reduce - 27:301,target 15 - 2:273,target 4 - 13:279,target 31 - 13:280,target 32 - 30:257,target 18 - 29:257,target 17 - 24:298,target 12 - 10:287,target 39 + 27:301,target 21 + 2:273,target 5 + 24:298,target 18 + 29:257,target 23 + 30:257,target 24 + 10:287,target 34 0:264,target 6 41:300 reduce - 9:299,target 51 41:301 reduce + 52:295,target 42 41:302 reduce - 22:300,target 10 - 65:0,target 65 + 22:300,target 16 + 53:278,target 25 + 65:0,target 57 41:296 reduce - 64:297,target 49 - 64:307,target 69 + 18:297,target 12 41:297 reduce - 34:302,target 22 + 34:302,target 28 46:257 reduce 41:298 reduce 41:299 reduce - 34:0,target 22 - 9:257,target 48 - 31:299,target 19 - 16:288,target 43 + 9:257,target 2 + 34:0,target 28 + 31:299,target 25 16:257 reduce 0:303 goto 25:0 reduce - 0:304 goto - 2:300,target 4 - 2:290,target 4 - 2:289,target 4 - 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 + 2:300,target 5 + 2:290,target 5 + 2:289,target 5 + 0:305 goto + 28:301,target 22 + 14:279,target 26 + 14:280,target 27 5:257 reduce - 0:310 goto 0:309 goto - 16:265 reduce 67:0 reduce - 31:257,target 19 - 25:298,target 13 - 16:266 reduce - 16:267 reduce - 16:268 reduce - 12:271,target 44 - 16:269 reduce - 16:270 reduce - 16:271 reduce - 16:272 reduce - 23:300,target 11 - 16:273 reduce - 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 - 46:300 reduce - 16:284 reduce - 46:301 reduce - 16:285 reduce - 46:302 reduce - 16:286 reduce - 16:287 reduce - 14:306,target 64 - 14:296,target 48 - 16:288 reduce - 30:301,target 18 - 29:301,target 17 - 16:289 reduce - 16:290 reduce + 25:298,target 19 + 31:257,target 25 + 53:295,target 42 + 23:300,target 17 + 19:297,target 13 + 20:297,target 14 + 35:302,target 29 + 52:270,target 17 + 52:269,target 16 + 32:299,target 26 + 14:306,target 58 + 14:296,target 43 + 59:296,target 43 16:300 reduce - 62:0,target 59 - 46:296 reduce - 16:291 reduce + 29:301,target 23 + 30:301,target 24 + 62:0,target 55 16:301 reduce - 46:297 reduce 40:0 reduce 39:0 reduce - 16:292 reduce 16:302 reduce 52:257 reduce - 46:298 reduce - 16:293 reduce - 46:299 reduce - 32:257,target 20 - 26:298,target 14 - 16:294 reduce - 31:0,target 19 - 1:281,target 3 - 12:287,target 44 - 16:295 reduce + 26:298,target 20 + 32:257,target 26 + 1:281,target 4 + 31:0,target 25 16:296 reduce - 13:271,target 23 16:297 reduce 16:298 reduce 22:257 reduce 16:299 reduce - 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 - 33:257,target 21 - 27:298,target 15 - 2:281,target 4 - 13:287,target 39 + 24:300,target 18 + 10:278,target 25 + 52:270 shift + 52:269 shift + 21:297,target 15 + 66:297,target 44 + 52:271 shift + 36:302,target 30 + 52:286,target 33 + 52:272 shift + 52:273 shift + 53:270,target 17 + 53:269,target 16 + 52:274 shift + 52:275 shift + 33:299,target 27 + 52:276 shift + 52:277 shift + 52:278 shift + 52:280 shift + 52:279 shift + 52:281 shift + 52:282 shift + 31:301,target 25 + 52:283 shift + 52:284 shift + 52:285 shift + 1:297,target 4 + 52:286 shift + 27:298,target 21 + 33:257,target 27 + 52:287 shift + 2:281,target 5 54:0 reduce - 14:271,target 23 - 10:295,target 47 - 25:300,target 13 + 52:288 shift + 52:300 shift + 52:290 shift + 52:289 shift + 14:271,target 18 + 52:301 shift + 52:291 shift + 52:302 shift + 52:292 shift + 10:295,target 42 + 52:293 shift + 25:300,target 19 + 52:294 shift + 52:295 shift 22:300 reduce - 58:0,target 54 + 58:0,target 48 + 52:296 shift 22:301 reduce - 22:297,target 10 + 52:297 shift + 52:307 goto + 22:297,target 16 22:302 reduce 57:257 reduce - 37:302,target 25 - 27:0,target 15 + 52:298 shift + 52:308 goto + 37:302,target 31 + 53:286,target 33 + 52:299 shift + 27:0,target 21 22:296 reduce - 34:299,target 22 22:297 reduce - 27:257 reduce + 34:299,target 28 22:298 reduce + 27:257 reduce 22:299 reduce - 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 + 16:296,target 10 + 32:301,target 26 + 2:297,target 5 26:0 reduce - 14:287,target 39 + 28:298,target 22 + 34:257,target 28 + 14:287,target 34 68:0 reduce - 26:300,target 14 - 1:272,target 3 - 12:278,target 44 + 26:300,target 20 + 1:272,target 4 1:0 reduce - 23:297,target 11 - 38:302,target 26 - 10:269,target 21 - 10:270,target 22 - 35:299,target 23 - 9:282,target 34 + 23:297,target 17 + 38:302,target 32 + 10:269,target 16 + 10:270,target 17 + 35:299,target 29 + 52:277,target 24 + 17:296,target 11 27:300 reduce - 55:0,target 49 - 33:301,target 21 + 63:296,target 43 + 55:0,target 7 27:301 reduce + 33:301,target 27 27:302 reduce 63:257 reduce - 35:257,target 23 - 30:298,target 18 - 29:298,target 17 - 24:0,target 12 + 24:0,target 18 + 29:298,target 23 + 30:298,target 24 + 35:257,target 29 27:296 reduce 27:297 reduce - 33:257 reduce 27:298 reduce - 16:271,target 43 + 33:257 reduce 41:0 reduce 27:299 reduce - 1:288,target 3 - 12:295,target 44 - 27:300,target 15 - 2:272,target 4 - 13:278,target 30 - 24:297,target 12 - 40:302,target 28 - 39:302,target 27 - 10:286,target 38 + 1:288,target 4 + 12:305,target 53 + 27:300,target 21 + 2:272,target 5 + 24:297,target 18 + 40:302,target 34 + 39:302,target 33 + 10:286,target 33 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 + 36:299,target 30 + 52:294,target 41 + 53:277,target 24 + 18:296,target 12 + 34:301,target 28 + 31:298,target 25 + 36:257,target 30 + 63:300 shift + 9:0,target 1 13:0 reduce - 2:288,target 4 - 13:305,target 61 - 13:295,target 47 - 28:300,target 16 + 63:301 shift + 63:302 shift + 2:288,target 5 + 28:300,target 22 + 14:278,target 25 33:300 reduce - 14:278,target 30 + 63:296 shift 55:0 reduce - 52:0,target 42 + 52:0,target 61 33:301 reduce + 63:297 shift 33:302 reduce 68:257 reduce - 25:297,target 13 - 41:302,target 29 - 21:0,target 9 + 63:298 shift + 63:308 goto + 25:297,target 19 + 63:299 shift + 41:302,target 35 + 21:0,target 15 33:296 reduce - 12:269,target 44 - 12:270,target 44 33:297 reduce 38:257 reduce - 37:299,target 25 + 37:299,target 31 33:298 reduce + 53:294,target 41 33:299 reduce - 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 + 19:296,target 13 + 20:296,target 14 + 35:301,target 29 + 37:257,target 31 + 32:298,target 26 + 14:295,target 42 27:0 reduce - 26:297,target 14 - 42:302,target 30 - 1:280,target 3 - 1:279,target 3 - 12:286,target 44 + 29:300,target 23 + 30:300,target 24 + 26:297,target 20 + 42:302,target 36 + 1:280,target 4 + 1:279,target 4 + 70:0 reduce 69:0 reduce - 13:269,target 21 - 13:270,target 22 - 38:299,target 26 + 38:299,target 32 2:0 reduce - 10:277,target 29 + 10:277,target 24 38:300 reduce - 48:0,target 36 + 11:261,target 52 + 48:0,target 40 38:301 reduce - 9:289,target 41 - 9:290,target 42 - 9:300,target 52 - 21:296,target 9 + 21:296,target 15 + 66:296,target 43 38:302 reduce - 36:301,target 24 - 17:0,target 5 + 36:301,target 30 + 52:285,target 32 + 53:268,target 57 + 17:0,target 11 38:296 reduce - 38:257,target 26 - 33:298,target 21 + 38:257,target 32 + 33:298,target 27 38:297 reduce 44:257 reduce 38:298 reduce 38:299 reduce - 31:300,target 19 + 31:300,target 25 14:257 reduce - 16:278,target 43 - 1:296,target 3 + 1:296,target 4 42:0 reduce - 27:297,target 15 - 43:302,target 31 - 2:280,target 4 - 2:279,target 4 - 13:286,target 38 - 14:269,target 21 - 14:270,target 22 - 40:299,target 28 - 39:299,target 27 - 10:294,target 46 + 27:297,target 21 + 2:280,target 5 + 2:279,target 5 + 14:269,target 16 + 14:270,target 17 + 14:265 shift + 40:299,target 34 + 39:299,target 33 + 10:294,target 41 + 14:266 shift 3:261 shift + 14:267 shift + 14:268 shift 14:269 shift 14:270 shift 14:271 shift 14:272 shift - 22:296,target 10 - 37:301,target 25 + 22:296,target 16 + 37:301,target 31 14:273 shift + 53:285,target 32 14:274 shift 14:275 shift 14:276 shift - 40:257,target 28 - 39:257,target 27 - 34:298,target 22 + 40:257,target 34 + 39:257,target 33 14:277 shift + 34:298,target 28 14:278 shift 14:279 shift 14:280 shift 14:281 shift 14:282 shift 14:283 shift - 16:295,target 43 - 44:300 reduce - 32:300,target 20 14:284 shift - 45:0,target 33 - 44:301 reduce + 32:300,target 26 + 45:0,target 41 14:285 shift - 44:302 reduce 14:0 reduce 14:286 shift - 2:296,target 4 + 2:296,target 5 14:287 shift - 28:297,target 16 14:288 shift - 44:302,target 32 - 14:0,target 62 - 14:286,target 38 + 28:297,target 22 + 14:0,target 47 + 14:286,target 33 14:289 shift 14:290 shift 14:300 shift - 44:296 reduce 14:291 shift 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 29 + 41:299,target 35 14:294 shift 14:295 shift - 1:271,target 3 - 12:277,target 44 + 1:271,target 4 14:306 goto 14:296 shift 14:307 goto 14:297 shift + 14:308 goto 14:298 shift 19:257 reduce 20:257 reduce 14:299 shift - 23:296,target 11 - 38:301,target 26 - 41:257,target 29 - 35:298,target 23 + 23:296,target 17 + 38:301,target 32 + 41:257,target 35 + 35:298,target 29 8:258 shift - 9:281,target 33 8:259 shift - 33:300,target 21 - 30:297,target 18 - 29:297,target 17 - 45:302,target 33 + 52:276,target 23 + 33:300,target 27 + 29:297,target 23 + 30:297,target 24 28:0 reduce - 16:269,target 43 - 16:270,target 43 - 42:299,target 30 - 1:287,target 3 - 12:294,target 44 - 2:271,target 4 - 13:277,target 29 - 42:0,target 30 - 24:296,target 12 - 40:301,target 28 - 39:301,target 27 - 10:285,target 37 + 42:299,target 36 + 1:287,target 4 + 2:271,target 5 + 50:300 shift + 50:301 shift + 42:0,target 36 + 50:302 shift + 24:296,target 18 + 40:301,target 34 + 39:301,target 33 + 10:285,target 32 0:262,target 4 - 11:0,target 1 - 9:307,target 57 - 9:297,target 49 - 42:257,target 30 - 36:298,target 24 + 19:300 reduce + 20:300 reduce + 50:296 shift + 19:301 reduce + 20:301 reduce + 50:297 shift + 42:257,target 36 + 19:302 reduce + 20:302 reduce + 36:298,target 30 55:257 reduce - 34:300,target 22 + 52:293,target 40 + 50:298 shift + 50:308 goto + 50:299 shift + 53:276,target 23 + 19:296 reduce + 20:296 reduce + 19:297 reduce + 20:297 reduce + 19:298 reduce + 20:298 reduce 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:294,target 46 + 34:300,target 28 + 19:299 reduce + 20:299 reduce + 8:305 goto + 31:297,target 25 + 2:287,target 5 43:0 reduce - 14:277,target 29 - 25:296,target 13 - 41:301,target 29 - 43:257,target 31 - 37:298,target 25 + 14:277,target 24 + 25:296,target 19 + 41:301,target 35 + 43:257,target 37 + 37:298,target 31 + 53:293,target 40 + 70:0,target 60 69:0,target 64 - 38:0,target 26 - 35:300,target 23 - 9:272,target 24 - 32:297,target 20 + 38:0,target 32 + 35:300,target 29 25:300 reduce - 47:302,target 35 + 32:297,target 26 25:301 reduce 25:302 reduce - 61:257 reduce - 15:0 reduce - 44:299,target 32 - 14:294,target 46 + 14:294,target 41 25:296 reduce 25:297 reduce - 31:257 reduce 25:298 reduce + 31:257 reduce + 0:305,target 8 25:299 reduce 57:0 reduce - 26:296,target 14 - 42:301,target 30 - 1:278,target 3 - 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 + 26:296,target 20 + 42:301,target 36 + 1:278,target 4 + 44:257,target 39 + 38:298,target 32 + 10:276,target 23 + 36:300,target 30 + 52:284,target 31 + 53:267,target 56 + 33:297,target 27 + 66:0,target 58 29:0 reduce - 1:295,target 3 - 27:296,target 15 - 43:301,target 31 - 2:278,target 4 - 13:285,target 37 + 30:0 reduce + 35:0,target 29 + 1:295,target 4 + 27:296,target 21 + 2:278,target 5 31:300 reduce + 14:268,target 57 31:301 reduce 31:302 reduce 66:257 reduce - 45:257,target 33 - 40:298,target 28 - 39:298,target 27 - 10:293,target 45 + 45:257,target 41 + 40:298,target 34 + 39:298,target 33 + 10:293,target 40 4:0 reduce 31:296 reduce + 12:259,target 2 31:297 reduce - 36:257 reduce 31:298 reduce - 37:300,target 25 + 36:257 reduce + 37:300,target 31 31:299 reduce - 34:297,target 22 - 46:299,target 34 - 16:294,target 43 - 2:295,target 4 - 28:296,target 16 - 44:301,target 32 - 14:285,target 37 + 53:284,target 31 + 34:297,target 28 + 50:302,target 49 + 2:295,target 5 + 28:296,target 22 + 14:285,target 32 44:0 reduce - 46:257,target 34 - 41:298,target 29 - 63:0,target 61 - 1:269,target 3 - 1:270,target 3 - 12:276,target 44 - 32:0,target 20 - 38:300,target 26 + 46:257,target 42 + 41:298,target 35 + 63:0,target 62 + 1:269,target 4 + 1:270,target 4 + 66:300 shift + 66:301 shift + 32:0,target 26 + 66:302 shift + 38:300,target 32 36:300 reduce + 66:296 shift 36:301 reduce - 35:297,target 23 + 35:297,target 29 + 66:297 shift 36:302 reduce - 9:279,target 31 - 9:280,target 32 - 47:299,target 35 + 66:298 shift + 66:308 goto + 66:299 shift + 52:275,target 22 36:296 reduce 36:297 reduce 42:257 reduce 36:298 reduce 36:299 reduce - 30:296,target 18 - 29:296,target 17 16:0 reduce - 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 44 + 29:296,target 23 + 30:296,target 24 + 12:258 shift + 12:259 shift + 47:257,target 43 + 42:298,target 36 + 1:286,target 4 58:0 reduce - 2:270,target 4 - 2:269,target 4 - 13:276,target 28 + 2:270,target 5 + 2:269,target 5 1:257 reduce 1:258 reduce 1:259 reduce - 40:300,target 28 - 39:300,target 27 - 10:284,target 36 + 40:300,target 34 + 39:300,target 33 + 10:284,target 31 0:261,target 3 - 12:269 reduce - 12:270 reduce - 9:306,target 56 - 9:296,target 48 - 12:271 reduce - 36:297,target 24 1:265 reduce - 12:272 reduce + 36:297,target 30 + 52:302,target 49 + 52:292,target 39 1:266 reduce - 12:273 reduce 1:267 reduce - 12:274 reduce - 60:0,target 2 - 59:0,target 56 + 60:0,target 50 + 59:0,target 49 + 53:275,target 22 1:268 reduce - 12:275 reduce 1:269 reduce 1:270 reduce - 12:276 reduce 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 22 1:274 reduce - 12:281 reduce 1:275 reduce - 12:282 reduce - 31:296,target 19 1:276 reduce - 12:283 reduce - 46:301,target 34 + 31:296,target 25 42:300 reduce 1:277 reduce - 12:284 reduce - 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 - 48:257,target 36 - 43:298,target 31 - 2:286,target 4 + 31:0 reduce + 48:257,target 40 + 2:286,target 5 1:282 reduce - 12:288 reduce - 13:293,target 45 1:283 reduce - 12:289 reduce - 12:290 reduce - 12:300 reduce 42:296 reduce 1:284 reduce - 12:291 reduce - 12:301 reduce - 14:276,target 28 + 14:276,target 23 42:297 reduce 1:285 reduce - 12:292 reduce - 12:302 reduce 47:257 reduce 42:298 reduce 1:286 reduce - 12:293 reduce 42:299 reduce 1:287 reduce - 12:294 reduce - 41:300,target 29 + 41:300,target 35 1:288 reduce - 12:295 reduce + 12:305 goto 1:300 reduce 1:290 reduce 1:289 reduce - 12:296 reduce 1:301 reduce 1:291 reduce 5:0 reduce - 12:297 reduce 1:302 reduce 1:292 reduce - 12:298 reduce 17:257 reduce - 37:297,target 25 + 37:297,target 31 1:293 reduce - 12:299 reduce + 53:302,target 49 + 53:292,target 39 1:294 reduce 1:295 reduce 1:296 reduce 1:297 reduce + 50:299,target 46 1:298 reduce 1:299 reduce 6:258 shift 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 + 32:296,target 26 + 56:0,target 8 + 50:257,target 53 49:257,target 38 - 44:298,target 32 - 14:293,target 45 + 14:293,target 40 45:0 reduce - 25:0,target 13 - 0:304,target 8 - 42:300,target 30 - 1:277,target 3 - 12:284,target 44 - 47:300 reduce - 13:267,target 19 - 47:301 reduce - 47:302 reduce - 38:297,target 26 - 10:275,target 27 - 47:296 reduce - 47:297 reduce - 9:287,target 39 + 25:0,target 19 + 42:300,target 36 + 1:277,target 4 + 38:297,target 32 + 10:275,target 22 + 17:300 reduce + 17:301 reduce + 17:302 reduce 53:257 reduce - 47:298 reduce - 47:299 reduce - 33:296,target 21 + 52:283,target 30 + 53:266,target 55 + 6:305,target 12 + 17:296 reduce + 17:297 reduce + 33:296,target 27 + 17:298 reduce 23:257 reduce - 6:304 goto - 51:257,target 41 - 45:298,target 33 + 17:299 reduce + 53:265 shift + 53:266 shift + 6:305 goto + 53:267 shift + 51:257,target 54 + 53:268 shift 17:0 reduce - 6:308 goto - 16:276,target 43 - 6:309 goto - 1:294,target 3 - 6:311 goto - 43:300,target 31 - 2:277,target 4 - 13:284,target 36 + 53:270 shift + 53:269 shift + 53:271 shift + 6:310 goto + 53:272 shift + 1:294,target 4 + 53:273 shift + 53:274 shift + 2:277,target 5 60:0 reduce 59:0 reduce - 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 + 53:275 shift + 53:276 shift + 3:261,target 10 + 14:267,target 56 + 53:277 shift + 53:278 shift + 40:297,target 34 + 39:297,target 33 + 10:292,target 39 + 10:302,target 49 + 53:280 shift + 53:279 shift + 53:281 shift + 53:0,target 56 + 53:282 shift + 53:283 shift + 12:258,target 1 + 53:284 shift + 52:299,target 46 + 53:285 shift + 22:0,target 16 + 53:286 shift + 53:283,target 30 + 53:287 shift + 53:288 shift + 53:300 shift + 53:290 shift + 53:289 shift + 34:296,target 28 + 53:301 shift + 53:291 shift + 50:301,target 48 + 53:302 shift + 53:292 shift + 53:293 shift + 53:294 shift + 53:295 shift + 52:257,target 61 23:300 reduce - 16:293,target 43 + 53:296 shift + 53:306 goto 23:301 reduce + 53:297 shift + 53:307 goto 23:302 reduce 58:257 reduce - 2:294,target 4 + 53:298 shift + 53:308 goto + 53:299 shift + 2:294,target 5 32:0 reduce - 44:300,target 32 - 14:284,target 36 + 14:284,target 31 23:296 reduce 23:297 reduce - 28:257 reduce 23:298 reduce + 28:257 reduce 23:299 reduce - 41:297,target 29 - 56:302,target 54 - 1:268,target 3 - 12:275,target 44 + 41:297,target 35 + 1:268,target 4 + 53:299,target 46 7:0,target 0 - 35:296,target 23 - 9:278,target 30 - 50:0,target 40 + 8:305,target 14 + 35:296,target 29 + 52:274,target 21 + 50:0,target 53 49:0,target 38 - 53:257,target 39 - 47:298,target 35 - 18:0,target 6 - 45:300,target 33 - 58:300 shift - 58:301 shift - 16:267,target 43 - 58:302 shift + 53:257,target 56 + 18:0,target 12 46:0 reduce - 42:297,target 30 - 1:285,target 3 - 12:292,target 44 - 12:302,target 44 + 42:297,target 36 + 1:285,target 4 + 2:268,target 5 28:300 reduce - 2:268,target 4 - 13:275,target 27 - 58:296 shift 28:301 reduce - 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 + 10:283,target 30 0:259,target 2 + 28:296 reduce 28:297 reduce - 9:305,target 55 - 9:295,target 47 - 36:296,target 24 - 34:257 reduce 28:298 reduce + 34:257 reduce + 36:296,target 30 + 52:301,target 48 + 52:291,target 38 28:299 reduce - 54:257,target 37 - 4:0,target 46 - 46:300,target 34 - 16:284,target 43 + 53:274,target 21 + 54:257,target 6 + 4:0,target 45 18:0 reduce - 6:261,target 3 - 43:297,target 31 - 2:285,target 4 - 13:292,target 44 - 13:302,target 54 - 58:302,target 54 - 46:0,target 34 - 14:275,target 27 + 6:261,target 11 + 2:285,target 5 + 46:0,target 42 + 14:275,target 22 61:0 reduce - 10:299,target 51 - 15:0,target 47 - 1:259,target 3 - 64:300 shift - 64:301 shift - 37:296,target 25 - 64:302 shift + 10:299,target 46 + 1:259,target 4 + 37:296,target 31 + 53:301,target 48 + 53:291,target 38 + 10:257,target 52 34:300 reduce - 10:257,target 53 - 64:296 shift - 55:257,target 49 + 55:257,target 7 + 50:298,target 45 + 50:308,target 62 34:301 reduce - 64:297 shift - 64:307 goto 34:302 reduce + 70:257 reduce 69:257 reduce - 64:298 shift - 9:269,target 21 - 9:270,target 22 - 64:299 shift 34:296 reduce - 47:300,target 35 34:297 reduce 40:257 reduce 39:257 reduce 34:298 reduce 34:299 reduce - 44:297,target 32 - 14:292,target 44 - 14:302,target 54 + 14:292,target 39 + 14:302,target 49 + 59:302,target 49 33:0 reduce 10:257 reduce 0:303,target 7 - 56:299,target 51 - 1:276,target 3 - 12:283,target 44 - 1:0,target 3 - 2:259,target 4 - 13:266,target 18 - 38:296,target 26 + 1:276,target 4 + 1:0,target 4 + 2:259,target 5 + 38:296,target 32 7:0 accept - 10:274,target 26 - 43:0,target 31 + 10:274,target 21 + 43:0,target 37 10:269 shift 10:270 shift 10:271 shift - 11:257,target 60 - 56:257,target 50 - 9:286,target 38 + 56:257,target 8 10:272 shift 10:273 shift + 52:282,target 29 10:274 shift - 12:0,target 44 10:275 shift - 6:304,target 8 + 53:265,target 54 10:276 shift 10:277 shift 10:278 shift @@ -1296,7 +1172,6 @@ array set pan::table { 10:280 shift 10:281 shift 10:282 shift - 45:297,target 33 10:283 shift 40:300 reduce 39:300 reduce @@ -1304,20 +1179,17 @@ array set pan::table { 40:301 reduce 39:301 reduce 10:285 shift - 16:275,target 43 40:302 reduce 39:302 reduce 10:286 shift - 1:293,target 3 + 1:293,target 4 10:287 shift - 12:299,target 44 47:0 reduce 10:288 shift - 2:276,target 4 + 2:276,target 5 10:289 shift 10:290 shift 10:300 shift - 13:283,target 35 40:296 reduce 39:296 reduce 10:291 shift @@ -1326,200 +1198,175 @@ array set pan::table { 39:297 reduce 10:292 shift 10:302 shift + 14:266,target 55 45:257 reduce 40:298 reduce 39:298 reduce 10:293 shift 40:299 reduce - 40:296,target 28 + 40:296,target 34 39:299 reduce - 39:296,target 27 - 10:291,target 43 + 39:296,target 33 + 10:291,target 38 10:294 shift - 10:301,target 53 + 10:301,target 48 10:295 shift - 10:306 goto 10:296 shift 10:307 goto 10:297 shift + 10:308 goto 10:298 shift - 12:257,target 44 - 15:257 reduce - 57:257,target 52 + 15:257 shift + 57:257,target 9 + 52:298,target 45 + 52:308,target 64 10:299 shift + 53:282,target 29 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 + 50:300,target 47 + 40:0,target 34 + 39:0,target 33 + 16:302,target 10 19:0 reduce 20:0 reduce - 2:293,target 4 - 13:299,target 51 - 58:299,target 51 - 14:283,target 35 + 2:293,target 5 + 14:283,target 30 62:0 reduce - 41:296,target 29 - 56:301,target 53 - 1:267,target 3 - 12:274,target 44 - 45:300 reduce - 45:301 reduce - 13:257,target 57 - 58:257,target 54 - 45:302 reduce - 45:296 reduce - 8:304,target 16 - 45:297 reduce + 41:296,target 35 + 1:267,target 4 + 13:257,target 46 + 58:257,target 48 + 53:298,target 45 + 53:308,target 67 51:257 reduce - 45:298 reduce - 9:277,target 29 - 45:299 reduce - 47:297,target 35 + 52:273,target 20 + 17:302,target 11 + 63:302,target 49 21:257 reduce - 14:299,target 51 - 34:0 reduce + 14:299,target 46 + 59:299,target 46 9:257 reduce - 67:0,target 55 - 16:266,target 43 - 42:296,target 30 - 1:284,target 3 - 12:291,target 44 - 12:301,target 44 - 36:0,target 24 - 2:267,target 4 - 13:274,target 26 - 9:265 shift - 14:257,target 62 - 59:257,target 56 - 9:266 shift - 9:267 shift - 10:282,target 34 - 9:268 shift + 34:0 reduce + 67:0,target 59 + 42:296,target 36 + 1:284,target 4 + 2:267,target 5 + 36:0,target 30 + 14:257,target 47 + 60:257,target 50 + 59:257,target 49 + 10:282,target 29 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 + 9:304,target 15 + 52:300,target 47 + 52:290,target 37 + 52:289,target 36 + 53:273,target 20 + 18:302,target 12 } array set pan::rules { 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 + 11,l 307 + 32,l 307 + 53,l 309 + 6,l 306 + 28,l 307 + 50,l 309 + 49,l 309 + 3,l 303 + 25,l 307 + 46,l 309 + 0,l 311 + 22,l 307 43,l 308 - 64,l 311 - 18,l 306 - 40,l 307 - 39,l 307 - 61,l 311 - 15,l 306 + 64,l 310 + 18,l 307 + 40,l 308 + 39,l 308 + 61,l 310 + 15,l 307 36,l 307 - 57,l 311 - 12,l 306 - 33,l 306 - 54,l 310 - 7,l 305 - 29,l 306 - 30,l 306 - 51,l 310 - 4,l 304 - 26,l 306 - 47,l 310 + 57,l 310 + 12,l 307 + 33,l 307 + 54,l 309 + 7,l 306 + 29,l 307 + 30,l 307 + 51,l 309 + 4,l 305 + 26,l 307 + 47,l 309 1,l 303 - 23,l 306 + 23,l 307 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 305 - 10,l 306 - 31,l 306 - 52,l 310 + 19,l 307 + 20,l 307 + 41,l 308 + 62,l 310 + 16,l 307 + 37,l 308 + 58,l 310 + 13,l 307 + 34,l 307 + 55,l 309 + 8,l 306 + 10,l 307 + 31,l 307 + 52,l 309 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 + 27,l 307 + 48,l 309 + 2,l 304 + 24,l 307 + 45,l 309 + 21,l 307 + 42,l 308 + 63,l 310 + 17,l 307 + 38,l 308 + 60,l 310 + 59,l 310 + 14,l 307 + 35,l 307 56,l 310 } array set pan::rules { - 63,dc 2 + 63,dc 3 12,dc 1 26,dc 1 - 3,dc 1 + 3,dc 3 41,dc 1 - 55,dc 3 + 55,dc 4 18,dc 1 33,dc 1 9,dc 1 47,dc 2 - 62,dc 1 + 62,dc 3 11,dc 1 25,dc 1 - 2,dc 2 + 2,dc 0 40,dc 1 39,dc 1 - 54,dc 2 + 54,dc 3 17,dc 1 32,dc 1 8,dc 1 - 46,dc 1 + 46,dc 2 61,dc 2 10,dc 1 24,dc 1 1,dc 1 38,dc 1 - 53,dc 1 + 53,dc 3 16,dc 1 31,dc 1 7,dc 1 45,dc 1 - 60,dc 3 - 59,dc 2 + 60,dc 4 + 59,dc 3 23,dc 1 0,dc 1 37,dc 1 @@ -1528,22 +1375,21 @@ array set pan::rules { 29,dc 1 30,dc 1 6,dc 1 - 44,dc 2 - 58,dc 2 + 44,dc 1 + 58,dc 3 22,dc 1 36,dc 1 - 51,dc 3 - 65,dc 2 + 51,dc 4 14,dc 1 28,dc 1 5,dc 1 - 43,dc 2 - 57,dc 1 + 43,dc 1 + 57,dc 3 21,dc 1 35,dc 1 - 50,dc 2 - 49,dc 2 - 64,dc 3 + 50,dc 3 + 49,dc 3 + 64,dc 4 13,dc 1 27,dc 1 4,dc 1 @@ -1552,75 +1398,75 @@ array set pan::rules { 19,dc 1 20,dc 1 34,dc 1 - 48,dc 1 + 48,dc 3 } array set pan::rules { - 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 + 41,line 118 + 7,line 70 + 37,line 114 + 4,line 65 + 34,line 104 + 1,line 61 + 31,line 101 + 27,line 97 + 24,line 94 + 21,line 91 + 17,line 87 + 14,line 84 + 11,line 81 + 63,line 149 + 60,line 146 + 59,line 145 + 56,line 142 + 53,line 137 + 50,line 134 + 49,line 133 + 46,line 130 + 43,line 120 + 9,line 72 + 40,line 117 + 39,line 116 + 6,line 69 + 36,line 106 + 3,line 62 + 33,line 103 + 29,line 99 + 30,line 100 + 26,line 96 + 23,line 93 + 19,line 89 + 20,line 90 + 16,line 86 + 13,line 83 + 10,line 80 + 62,line 148 + 58,line 144 + 55,line 139 + 52,line 136 + 48,line 132 + 45,line 129 + 42,line 119 + 8,line 71 + 38,line 115 + 5,line 66 + 35,line 105 + 2,line 61 + 32,line 102 + 28,line 98 + 2,e 1 + 25,line 95 + 22,line 92 + 18,line 88 + 15,line 85 + 12,line 82 + 64,line 150 + 61,line 147 + 57,line 143 + 54,line 138 + 51,line 135 + 47,line 131 + 44,line 128 } proc pan::yyparse {} { @@ -1691,69 +1537,67 @@ proc pan::yyparse {} { set _ $1 set yylval [lindex $value_stack end] switch -- $rule { - 2 { pan::yyclearin } - 3 { set _ $1 } + 2 { pan::yyclearin; YYACCEPT } 4 { set _ $1 } - 5 { set _ image } - 6 { set _ physical } - 7 { set _ amplifier } - 8 { set _ detector } - 9 { set _ wcs } - 10 { set _ wcsa } - 11 { set _ wcsb } - 12 { set _ wcsc } - 13 { set _ wcsd } - 14 { set _ wcse } - 15 { set _ wcsf } - 16 { set _ wcsg } - 17 { set _ wcsh } - 18 { set _ wcsi } - 19 { set _ wcsj } - 20 { set _ wcsk } - 21 { set _ wcsl } - 22 { set _ wcsm } - 23 { set _ wcsn } - 24 { set _ wcso } - 25 { set _ wcsp } - 26 { set _ wcsq } - 27 { set _ wcsr } - 28 { set _ wcss } - 29 { set _ wcst } - 30 { set _ wcsu } - 31 { set _ wcsv } - 32 { set _ wcsw } - 33 { set _ wcsx } - 34 { set _ wcsy } - 35 { set _ wcsz } - 36 { set _ fk4 } + 5 { set _ $1 } + 6 { set _ image } + 7 { set _ physical } + 8 { set _ amplifier } + 9 { set _ detector } + 10 { set _ wcs } + 11 { set _ wcsa } + 12 { set _ wcsb } + 13 { set _ wcsc } + 14 { set _ wcsd } + 15 { set _ wcse } + 16 { set _ wcsf } + 17 { set _ wcsg } + 18 { set _ wcsh } + 19 { set _ wcsi } + 20 { set _ wcsj } + 21 { set _ wcsk } + 22 { set _ wcsl } + 23 { set _ wcsm } + 24 { set _ wcsn } + 25 { set _ wcso } + 26 { set _ wcsp } + 27 { set _ wcsq } + 28 { set _ wcsr } + 29 { set _ wcss } + 30 { set _ wcst } + 31 { set _ wcsu } + 32 { set _ wcsv } + 33 { set _ wcsw } + 34 { set _ wcsx } + 35 { set _ wcsy } + 36 { set _ wcsz } 37 { set _ fk4 } - 38 { set _ fk5 } + 38 { set _ fk4 } 39 { set _ fk5 } - 40 { set _ icrs } - 41 { set _ galactic } - 42 { set _ ecliptic } - 43 { set pan::xx $1; set pan::yy $2 } - 44 { set pan::xx $1; set pan::yy $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 } + 40 { set _ fk5 } + 41 { set _ icrs } + 42 { set _ galactic } + 43 { set _ ecliptic } + 44 { PanZoomDialog } + 45 { PanZoomDestroyDialog } + 47 { Pan $1 $2 physical } + 48 { Pan $1 $2 $3 } + 49 { Pan $1 $2 $3 fk5 } + 50 { Pan $1 $2 wcs $3 } + 51 { Pan $1 $2 $3 $4 } + 52 { Pan $1 $2 wcs fk5 } + 53 { Pan $1 $2 $3 fk5 } + 54 { Pan $1 $2 wcs $3 } + 55 { Pan $1 $2 $3 $4 } + 56 { PanTo $1 $2 physical } + 57 { PanTo $1 $2 $3 } + 58 { PanTo $1 $2 $3 fk5 } + 59 { PanTo $1 $2 wcs $3 } + 60 { PanTo $1 $2 $3 $4 } + 61 { PanTo $1 $2 wcs fk5 } + 62 { PanTo $1 $2 $3 fk5 } + 63 { PanTo $1 $2 wcs $3 } + 64 { PanTo $1 $2 $3 $4 } } unsetupvalues $dc # pop off tokens from the stack if normal rule diff --git a/ds9/library/zoomparser.tcl b/ds9/library/zoomparser.tcl index d744e4c..91735b4 100644 --- a/ds9/library/zoomparser.tcl +++ b/ds9/library/zoomparser.tcl @@ -53,14 +53,14 @@ proc zoom::unsetupvalues {numsyms} { } array set zoom::table { + 15:259 shift 0:257 shift 0:258 shift 0:260 shift 2:257 reduce - 5:0,target 7 - 15:0,target 2 + 5:0,target 8 9:0 reduce - 6:259,target 10 + 6:259,target 11 0:261 shift 0:266,target 8 2:258 reduce @@ -68,113 +68,118 @@ array set zoom::table { 2:259 reduce 0:263 shift 0:264 shift - 1:259,target 3 + 1:259,target 4 4:259 reduce 0:265 shift - 15:0 reduce 6:259 reduce 0:266 goto - 13:259,target 11 - 0:267 goto + 13:259,target 12 0:268 goto 0:265,target 7 - 6:0,target 10 - 16:0,target 14 + 6:0,target 11 + 0:269 goto + 16:0,target 15 2:0 reduce - 1:258,target 3 - 9:259,target 5 + 10:267,target 15 + 1:258,target 4 + 9:259,target 6 7:262,target 11 6:0 reduce 0:264,target 6 - 4:259,target 9 - 16:259,target 14 - 1:257,target 3 + 4:259,target 10 + 16:259,target 15 + 1:257,target 4 + 17:0,target 3 12:0 reduce 9:258,target 2 10:0,target 1 - 11:259,target 12 + 9:268,target 14 + 11:259,target 13 0:263,target 5 16:0 reduce 12:257 shift - 10:259 shift + 10:259 reduce 12:258 shift 9:257,target 1 12:259 reduce - 9:267,target 14 8:0,target 0 - 7:269,target 13 + 7:270,target 13 3:0 reduce - 1:0,target 3 + 1:0,target 4 14:259 reduce - 11:0,target 12 - 2:259,target 4 + 11:0,target 13 + 2:259,target 5 16:259 reduce 1:257 reduce - 14:259,target 6 + 14:259,target 7 + 10:267 goto 1:258 reduce 7:258,target 2 1:259 reduce - 12:267 goto + 7:268,target 12 + 12:268 goto 3:259 reduce 13:0 reduce - 9:0,target 5 + 9:0,target 6 0:261,target 4 - 2:258,target 4 + 2:258,target 5 7:257 shift - 2:0,target 4 + 2:0,target 5 5:259 reduce - 12:0,target 13 + 12:0,target 14 7:258 shift 9:257 shift + 17:0 reduce 9:258 shift 7:257,target 1 - 5:259,target 7 + 5:259,target 8 9:259 reduce - 7:267,target 12 7:262 shift 0:260,target 3 - 2:257,target 4 + 2:257,target 5 + 0:269,target 10 4:0 reduce - 12:259,target 13 - 7:267 goto - 3:0,target 8 - 13:0,target 11 - 9:267 goto + 12:259,target 14 + 3:0,target 9 + 13:0,target 12 + 7:268 goto 8:0 accept - 7:269 goto + 7:270 goto 10:0 reduce + 9:268 goto 0:258,target 2 - 0:268,target 10 + 0:268,target 9 14:0 reduce 12:258,target 2 - 3:259,target 8 - 4:0,target 9 - 14:0,target 6 + 12:268,target 16 + 3:259,target 9 + 4:0,target 10 + 14:0,target 7 + 15:259,target 17 0:257,target 1 1:0 reduce 11:259 reduce - 0:267,target 9 13:259 reduce 12:257,target 1 - 10:259,target 15 - 12:267,target 16 + 10:259,target 2 5:0 reduce } array set zoom::rules { - 9,l 268 - 11,l 268 - 2,l 266 - 6,l 268 + 9,l 269 + 11,l 269 + 15,l 270 + 2,l 267 + 6,l 269 12,l 269 - 3,l 267 - 7,l 268 - 13,l 269 - 0,l 270 - 4,l 267 - 8,l 268 - 10,l 268 - 14,l 269 + 3,l 266 + 7,l 269 + 13,l 270 + 0,l 271 + 4,l 268 + 8,l 269 + 10,l 269 + 14,l 270 1,l 266 5,l 268 } @@ -182,36 +187,39 @@ array set zoom::rules { array set zoom::rules { 5,dc 1 0,dc 1 - 12,dc 1 + 12,dc 2 8,dc 1 - 3,dc 1 + 3,dc 3 + 15,dc 2 10,dc 1 - 6,dc 2 + 6,dc 1 1,dc 1 13,dc 1 9,dc 1 4,dc 1 - 11,dc 2 - 7,dc 1 - 2,dc 2 - 14,dc 2 + 11,dc 1 + 7,dc 2 + 2,dc 0 + 14,dc 1 } array set zoom::rules { - 13,line 38 - 7,line 30 - 10,line 33 - 4,line 25 + 13,line 37 + 2,e 1 + 7,line 29 + 10,line 32 + 4,line 24 1,line 20 - 9,line 32 - 12,line 37 - 6,line 29 - 3,line 24 - 14,line 39 - 8,line 31 - 11,line 34 - 5,line 28 - 2,line 21 + 15,line 39 + 9,line 31 + 12,line 34 + 6,line 28 + 3,line 21 + 14,line 38 + 8,line 30 + 11,line 33 + 5,line 25 + 2,line 20 } proc zoom::yyparse {} { @@ -282,18 +290,18 @@ proc zoom::yyparse {} { set _ $1 set yylval [lindex $value_stack end] switch -- $rule { - 2 { zoom::yyclearin } - 3 { set _ $1 } + 2 { zoom::yyclearin; YYACCEPT } 4 { set _ $1 } - 5 { Zoom $1 $1 } - 6 { Zoom $1 $2 } - 7 { PanZoomDialog } - 8 { PanZoomDestroyDialog } - 9 { Zoom 2 2 } - 10 { Zoom .5 .5 } - 12 { ZoomToFit } - 13 { global zoom; set current(zoom) "$1 $1"; ChangeZoom } - 14 { global zoom; set current(zoom) "$1 $2"; ChangeZoom } + 5 { set _ $1 } + 6 { Zoom $1 $1 } + 7 { Zoom $1 $2 } + 8 { PanZoomDialog } + 9 { PanZoomDestroyDialog } + 10 { Zoom 2 2 } + 11 { Zoom .5 .5 } + 13 { ZoomToFit } + 14 { global zoom; set current(zoom) "$1 $1"; ChangeZoom } + 15 { global zoom; set current(zoom) "$1 $2"; ChangeZoom } } unsetupvalues $dc # pop off tokens from the stack if normal rule @@ -324,7 +332,7 @@ proc zoom::yyparse {} { ###### proc zoom::yyerror {msg} { - puts stderr "$msg:" puts stderr "$zoom::yy_current_buffer" - puts stderr [format "zoom %*s" $zoom::index_ ^] + puts stderr [format "%*s" $zoom::index_ ^] + puts stderr "$msg:" } diff --git a/ds9/parsers/panlex.fcl b/ds9/parsers/panlex.fcl index 351de9e..18c5115 100644 --- a/ds9/parsers/panlex.fcl +++ b/ds9/parsers/panlex.fcl @@ -15,7 +15,8 @@ E [Ee][+-]?{D}+ %% --zscale {return $pan::CMD_} +-zscale {return $pan::CMD_} +-zoom {return $pan::CMD_} close {return $pan::CLOSE_} open {return $pan::OPEN_} @@ -89,6 +90,9 @@ ecliptic {return $pan::ECLIPTIC_} # Quoted STRING \{[^\}]*\} {set pan::yylval [string range $yytext 1 end-1]; return $pan::STRING_} +# CMD +#-\S+\S+ {set pan::yylval $yytext; return $pan::CMD_} + # STRING \S+\S+ {set pan::yylval $yytext; return $pan::STRING_} diff --git a/ds9/parsers/panparser.tac b/ds9/parsers/panparser.tac index 85f40e1..42c2ad0 100644 --- a/ds9/parsers/panparser.tac +++ b/ds9/parsers/panparser.tac @@ -1,8 +1,4 @@ %{ -namespace eval pan { - variable xx {} - variable yy {} -} %} %start command @@ -62,7 +58,7 @@ namespace eval pan { %% command : pan -| pan CMD_ {pan::yyclearin} +| pan {pan::yyclearin; YYACCEPT} CMD_ ; numeric : INT_ {set _ $1} @@ -128,35 +124,29 @@ skyframe : FK4_ {set _ fk4} # YYABORT # } -coord : numeric numeric {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 - | 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} + | numeric numeric {Pan $1 $2 physical} + | numeric numeric coordsys {Pan $1 $2 $3} + | numeric numeric wcssys {Pan $1 $2 $3 fk5} + | numeric numeric skyframe {Pan $1 $2 wcs $3} + | numeric numeric wcssys skyframe {Pan $1 $2 $3 $4} + | SEXSTR_ SEXSTR_ {Pan $1 $2 wcs fk5} + | SEXSTR_ SEXSTR_ wcssys {Pan $1 $2 $3 fk5} + | SEXSTR_ SEXSTR_ skyframe {Pan $1 $2 wcs $3} + | SEXSTR_ SEXSTR_ wcssys skyframe {Pan $1 $2 $3 $4} ; -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} +panto : numeric numeric {PanTo $1 $2 physical} + | numeric numeric coordsys {PanTo $1 $2 $3} + | numeric numeric wcssys {PanTo $1 $2 $3 fk5} + | numeric numeric skyframe {PanTo $1 $2 wcs $3} + | numeric numeric wcssys skyframe {PanTo $1 $2 $3 $4} + | SEXSTR_ SEXSTR_ {PanTo $1 $2 wcs fk5} + | SEXSTR_ SEXSTR_ wcssys {PanTo $1 $2 $3 fk5} + | SEXSTR_ SEXSTR_ skyframe {PanTo $1 $2 wcs $3} + | SEXSTR_ SEXSTR_ wcssys skyframe {PanTo $1 $2 $3 $4} ; %% diff --git a/ds9/parsers/zoomparser.tac b/ds9/parsers/zoomparser.tac index 5a8211b..a49b838 100644 --- a/ds9/parsers/zoomparser.tac +++ b/ds9/parsers/zoomparser.tac @@ -17,7 +17,7 @@ %% command : zoom - | zoom STRING_ {zoom::yyclearin} + | zoom {zoom::yyclearin; YYACCEPT} STRING_ ; numeric : INT_ {set _ $1} @@ -41,7 +41,7 @@ zoomTo: FIT_ {ZoomToFit} %% proc zoom::yyerror {msg} { - puts stderr "$msg:" puts stderr "$zoom::yy_current_buffer" - puts stderr [format "zoom %*s" $zoom::index_ ^] + puts stderr [format "%*s" $zoom::index_ ^] + puts stderr "$msg:" } -- cgit v0.12