diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2020-01-24 16:23:05 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2020-01-24 16:23:05 (GMT) |
commit | f6a3c0225143e856ee7166adbc6d4f1d735191a4 (patch) | |
tree | 8f187389452983f2c3d7a6fb1f99d208ced8286a | |
parent | 83c0e076765806ed1edf1dbe6b1287d4974413cc (diff) | |
download | blt-f6a3c0225143e856ee7166adbc6d4f1d735191a4.zip blt-f6a3c0225143e856ee7166adbc6d4f1d735191a4.tar.gz blt-f6a3c0225143e856ee7166adbc6d4f1d735191a4.tar.bz2 |
add footprint support
-rw-r--r-- | ds9/library/fp.tcl | 117 | ||||
-rw-r--r-- | ds9/library/fpdialog.tcl | 25 | ||||
-rw-r--r-- | ds9/library/fpreg.tcl | 46 | ||||
-rw-r--r-- | ds9/parsers/fplex.fcl | 1 | ||||
-rw-r--r-- | ds9/parsers/fplex.tcl | 345 | ||||
-rw-r--r-- | ds9/parsers/fpparser.tab.tcl | 13 | ||||
-rw-r--r-- | ds9/parsers/fpparser.tac | 5 | ||||
-rw-r--r-- | ds9/parsers/fpparser.tcl | 1728 |
8 files changed, 1232 insertions, 1048 deletions
diff --git a/ds9/library/fp.tcl b/ds9/library/fp.tcl index aa88f1a..a09f53c 100644 --- a/ds9/library/fp.tcl +++ b/ds9/library/fp.tcl @@ -23,14 +23,14 @@ proc FPDef {} { {{Chandra (NASA/CXC)} \ fpcxc \ {https://cxcfps.cfa.harvard.edu/cgi-bin/cda/footprint/get_vo_table.pl} \ - {inst=ACIS-S,ACIS-I,HRC-S,HRC-I&} \ - stcs \ + {ACIS-S ACIS-I HRC-S HRC-I} \ + cxc \ } \ {{Hubble Legacy Archive (STSCI)} \ fphla \ - {http://hla.stsci.edu/cgi-bin/hlaSIAP.cgi} \ - {} \ - regionSTCS \ + {http://hla.stsci.edu/cgi-bin/hlaSIAP.cgi/footprint/get_vo_table.pl} \ + {WFPC2} \ + hla \ } \ } } @@ -43,11 +43,10 @@ proc FPAnalysisMenu {mb} { set title [lindex $ff 0] set vars [lindex $ff 1] set url [lindex $ff 2] - set opts [lindex $ff 3] - set colreg [lindex $ff 4] + set instr [lindex $ff 3] + set format [lindex $ff 4] - $mb add command -label $title \ - -command [list FPDialog $vars $title $url $opts $colreg apply] + $mb add command -label $title -command [list FPDialog $vars $title $url $instr $format apply] } } @@ -120,7 +119,7 @@ proc FPTable {varname} { # filter regions set var(tbldb) ${varname}tbldb global $var(tbldb) - if {![FPFlt $varname]} { + if {![eval $var(proc,flt) $varname]} { Error [msgcat::mc {Internal Parse Error}] if {[info exists $var(tbldb)]} { unset $var(tbldb) @@ -158,7 +157,7 @@ proc FPTable {varname} { FPGenerate $varname } -proc FPFlt {varname} { +proc FPFltCXC {varname} { upvar #0 $varname var global $varname global $var(catdb) @@ -166,6 +165,7 @@ proc FPFlt {varname} { upvar #0 $var(catdb) catsrc upvar #0 $var(tbldb) catdest + # create header set catdest(Header) $catsrc(Header) starbase_colmap catdest @@ -213,13 +213,14 @@ proc FPFlt {varname} { # data set kk 0 - set obsIdCol $catsrc(ObsId) + set idCol $catsrc($var(colid)) set regCol $catsrc($var(colreg)) set obsId 0 set regs {} + for {set ii 1} {$ii<=$catsrc(Nrows)} {incr ii} { - if {$obsId != $catsrc($ii,$obsIdCol)} { - set obsId $catsrc($ii,$obsIdCol) + if {$obsId != $catsrc($ii,$idCol)} { + set obsId $catsrc($ii,$idCol) set regs $catsrc($ii,$regCol) # write the first one @@ -231,18 +232,92 @@ proc FPFlt {varname} { append regs " || ; $catsrc($ii,$regCol)" } - regsub -all {Polygon J2000} $regs {Polygon} regs + regsub -all {J2000} $regs {} regs set catdest($kk,$regCol) $regs } # cleanup - regsub -all {Polygon J2000} $regs {Polygon} regs + regsub -all {J2000} $regs {} regs set catdest($kk,$regCol) $regs set catdest(Nrows) $kk return 1 } +proc FPFltHLA {varname} { + upvar #0 $varname var + global $varname + global $var(catdb) + global $var(tbldb) + + upvar #0 $var(catdb) catsrc + upvar #0 $var(tbldb) catdest + + # create header + set catdest(Header) $catsrc(Header) + starbase_colmap catdest + + set catdest(Ndshs) [llength $catdest(Header)] + set catdest(Nrows) 0 + set catdest(HLines) $catsrc(HLines) + set catdest(Dashes) $catsrc(Dashes) + + # optional + if {[info exists catsrc(DataType)]} { + set catdest(DataType) $catsrc(DataType) + } + if {[info exists catsrc(Id)]} { + set catdest(Id) $catsrc(Id) + } + if {[info exists catsrc(ArraySize)]} { + set catdest(ArraySize) $catsrc(ArraySize) + } + if {[info exists catsrc(Width)]} { + set catdest(Width) $catsrc(Width) + } + if {[info exists catsrc(Precision)]} { + set catdest(Precision) $catsrc(Precision) + } + if {[info exists catsrc(Unit)]} { + set catdest(Unit) $catsrc(Unit) + } + if {[info exists catsrc(Ref)]} { + set catdest(Ref) $catsrc(Ref) + } + if {[info exists catsrc(Ucd)]} { + set catdest(Ucd) $catsrc(Ucd) + } + if {[info exists catsrc(Description)]} { + set catdest(Description) $catsrc(Description) + } + + for {set ii 1} {$ii<=$catsrc(HLines)} {incr ii} { + set catdest(H_$ii) $catsrc(H_$ii) + } + for {set jj 1} {$jj<=$catsrc(Ncols)} {incr jj} { + set catdest(0,$jj) $catsrc(0,$jj) + } + + # data + set kk 0 + set idCol $catsrc($var(colid)) + set regCol $catsrc($var(colreg)) + set obsId 0 + set regs {} + + for {set ii 1} {$ii<=$catsrc(Nrows)} {incr ii} { + for {set jj 1} {$jj<=$catsrc(Ncols)} {incr jj} { + set catdest($ii,$jj) $catsrc($ii,$jj) + } + set regs $catsrc($ii,$regCol) + regsub -all {J2000} $regs {} regs + set catdest($ii,$regCol) $regs + } + set catdest(Nrows) $catsrc(Nrows) + + return 1 +} + proc FPGenerate {varname} { upvar #0 $varname var global $varname @@ -270,7 +345,7 @@ proc FPGenerate {varname} { if {$var(show)} { global reg set reg {} - FPReg $varname 1 reg + eval [list $var(proc,reg) $varname 1 reg] if {[info commands $var(frame)] != {}} { if {[$var(frame) has fits]} { if {[catch {$var(frame) marker footprint command ds9 var reg}]} { @@ -303,7 +378,7 @@ proc FPGenerateRegions {varname} { global reg set reg {} - FPReg $varname 0 reg + eval [list $var(proc,reg) $varname 0 reg] if {[info commands $var(frame)] != {}} { if {[$var(frame) has fits]} { if {[catch {$var(frame) marker command ds9 var reg}]} { @@ -411,11 +486,11 @@ proc FPCmdRef {ref} { set title [lindex $mm 0] set vars [lindex $mm 1] set url [lindex $mm 2] - set opts [lindex $mm 3] - set colreg [lindex $mm 4] + set instr [lindex $mm 3] + set format [lindex $mm 4] if {$title != {-} && "fp${ref}" == $vars} { - FPDialog $vars $title $url $opts $colreg sync + FPDialog $vars $title $url $instr $format sync set cvarname fp${ref} } } diff --git a/ds9/library/fpdialog.tcl b/ds9/library/fpdialog.tcl index a5738e6..080021f 100644 --- a/ds9/library/fpdialog.tcl +++ b/ds9/library/fpdialog.tcl @@ -4,7 +4,7 @@ package provide DS9 1.0 -proc FPDialog {varname title url opts colreg action} { +proc FPDialog {varname title url instr format action} { global fp global ifp global pfp @@ -15,7 +15,7 @@ proc FPDialog {varname title url opts colreg action} { global debug if {$debug(tcl,fp)} { - puts stderr "FPDialog $varname:$title:$url:$opts:$action:$colreg" + puts stderr "FPDialog $varname:$title:$url:$instr:$format:$action" } if {$current(frame) == {}} { @@ -43,6 +43,22 @@ proc FPDialog {varname title url opts colreg action} { set var(proc,load) FPLoad set var(proc,error) ARError + # format + switch $format { + cxc { + set var(colid) ObsId + set var(colreg) stcs + set var(proc,flt) FPFltCXC + set var(proc,reg) FPRegCXC + } + hla { + set var(colid) PropID + set var(colreg) regionSTCS + set var(proc,flt) FPFltHLA + set var(proc,reg) FPRegHLA + } + } + # FP variables lappend ifp(fps) $varname @@ -67,8 +83,7 @@ proc FPDialog {varname title url opts colreg action} { set var(url) $url set var(title) $title - set var(opts) $opts - set var(colreg) $colreg + set var(instr) $instr # create the window set w $var(top) @@ -326,7 +341,7 @@ proc FPVOT {varname} { } # query - set query "$var(opts)[http::formatQuery pos "$xx,$yy" size $rr]" + set query "[http::formatQuery pos "$xx,$yy" size $rr]" FPLoad $varname $var(url) $query } diff --git a/ds9/library/fpreg.tcl b/ds9/library/fpreg.tcl index ae17b1f..74dfc53 100644 --- a/ds9/library/fpreg.tcl +++ b/ds9/library/fpreg.tcl @@ -4,7 +4,7 @@ package provide DS9 1.0 -proc FPReg {varname interactive resultname} { +proc FPRegCXC {varname interactive resultname} { upvar $resultname result upvar #0 $varname var @@ -33,7 +33,7 @@ proc FPReg {varname interactive resultname} { set rr [starbase_get $var(tbldb) $ii $colreg] set ra 0 set dec 0 - FPFindCenter $rr ra dec + FPFindCenterCXC $rr ra dec # props set color green @@ -47,7 +47,7 @@ proc FPReg {varname interactive resultname} { } } -proc FPFindCenter {str raname decname} { +proc FPFindCenterCXC {str raname decname} { upvar $raname ra upvar $decname dec @@ -72,3 +72,43 @@ proc FPFindCenter {str raname decname} { set dec [lindex $str 2] } } + +proc FPRegHLA {varname interactive resultname} { + upvar $resultname result + + upvar #0 $varname var + global $varname + global $var(tbldb) + + # init result + set result {} + + set colreg [starbase_colnum $var(tbldb) $var(colreg)] + + # process prologue + append result "# Region file format: DS9 version 4.0\n" + + # tbldb + set nrows [starbase_nrows $var(tbldb)] + set cols [starbase_columns $var(tbldb)] + + # system + append result "wcs; fk5\n" + + # for each row in the table ... + for {set ii 1} {$ii <= $nrows} {incr ii} { + + # col + set rr [starbase_get $var(tbldb) $ii $colreg] + + # props + set color green + + if {$interactive} { + set template "$rr # color=\${color} tag={${varname}} tag={${varname}.\${ii}} select=0 edit=0 move=0 rotate=0 delete=1 highlite=1 callback=highlite FPHighliteCB {${varname}.\${ii}} callback=unhighlite FPUnhighliteCB {${varname}.\${ii}}\n" + } else { + set template "$rr # color=\${color} tag=$varname\n" + } + append result [subst $template] + } +} diff --git a/ds9/parsers/fplex.fcl b/ds9/parsers/fplex.fcl index 29cf663..c161f14 100644 --- a/ds9/parsers/fplex.fcl +++ b/ds9/parsers/fplex.fcl @@ -25,6 +25,7 @@ system {return $SYSTEM_} update {return $UPDATE_} cxc {return $CXC_} +hla {return $HLA_} xml {return $XML_} vot {return $VOT_} diff --git a/ds9/parsers/fplex.tcl b/ds9/parsers/fplex.tcl index af47864..4b1371b 100644 --- a/ds9/parsers/fplex.tcl +++ b/ds9/parsers/fplex.tcl @@ -238,12 +238,13 @@ set SKYFORMAT_ 312 set SYSTEM_ 313 set UPDATE_ 314 set CXC_ 315 -set XML_ 316 -set VOT_ 317 -set SB_ 318 -set STARBASE_ 319 -set CSV_ 320 -set TSV_ 321 +set HLA_ 316 +set XML_ 317 +set VOT_ 318 +set SB_ 319 +set STARBASE_ 320 +set CSV_ 321 +set TSV_ 322 while {1} { if {[string length $yy_current_buffer] - $index_ < 1024} { @@ -384,391 +385,398 @@ set TSV_ 321 set yyleng [string length $yytext] set matched_rule 16 } - # rule 17: xml - if {[regexp -start $index_ -indices -line -nocase -- {\A(xml)} $yy_current_buffer match] > 0 && \ + # rule 17: hla + if {[regexp -start $index_ -indices -line -nocase -- {\A(hla)} $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: vot - if {[regexp -start $index_ -indices -line -nocase -- {\A(vot)} $yy_current_buffer match] > 0 && \ + # rule 18: xml + if {[regexp -start $index_ -indices -line -nocase -- {\A(xml)} $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: sb - if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $yy_current_buffer match] > 0 && \ + # rule 19: vot + if {[regexp -start $index_ -indices -line -nocase -- {\A(vot)} $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: starbase - if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $yy_current_buffer match] > 0 && \ + # rule 20: sb + if {[regexp -start $index_ -indices -line -nocase -- {\A(sb)} $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: csv - if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $yy_current_buffer match] > 0 && \ + # rule 21: starbase + if {[regexp -start $index_ -indices -line -nocase -- {\A(starbase)} $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: tsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $yy_current_buffer match] > 0 && \ + # rule 22: csv + if {[regexp -start $index_ -indices -line -nocase -- {\A(csv)} $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: wcs - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcs)} $yy_current_buffer match] > 0 && \ + # rule 23: tsv + if {[regexp -start $index_ -indices -line -nocase -- {\A(tsv)} $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: wcsa - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsa)} $yy_current_buffer match] > 0 && \ + # rule 24: 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 24 } - # rule 25: wcsb - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsb)} $yy_current_buffer match] > 0 && \ + # rule 25: 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 25 } - # rule 26: wcsc - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsc)} $yy_current_buffer match] > 0 && \ + # rule 26: 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 26 } - # rule 27: wcsd - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsd)} $yy_current_buffer match] > 0 && \ + # rule 27: 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 27 } - # rule 28: wcse - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcse)} $yy_current_buffer match] > 0 && \ + # rule 28: 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 28 } - # rule 29: wcsf - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsf)} $yy_current_buffer match] > 0 && \ + # rule 29: 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 29 } - # rule 30: wcsg - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsg)} $yy_current_buffer match] > 0 && \ + # rule 30: 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 30 } - # rule 31: wcsh - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsh)} $yy_current_buffer match] > 0 && \ + # rule 31: 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 31 } - # rule 32: wcsi - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsi)} $yy_current_buffer match] > 0 && \ + # rule 32: 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 32 } - # rule 33: wcsj - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsj)} $yy_current_buffer match] > 0 && \ + # rule 33: 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 33 } - # rule 34: wcsk - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsk)} $yy_current_buffer match] > 0 && \ + # rule 34: 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 34 } - # rule 35: wcsl - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsl)} $yy_current_buffer match] > 0 && \ + # rule 35: 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 35 } - # rule 36: wcsm - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsm)} $yy_current_buffer match] > 0 && \ + # rule 36: 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 36 } - # rule 37: wcsn - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsn)} $yy_current_buffer match] > 0 && \ + # rule 37: 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 37 } - # rule 38: wcso - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcso)} $yy_current_buffer match] > 0 && \ + # rule 38: 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 38 } - # rule 39: wcsp - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsp)} $yy_current_buffer match] > 0 && \ + # rule 39: 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 39 } - # rule 40: wcsq - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsq)} $yy_current_buffer match] > 0 && \ + # rule 40: 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 40 } - # rule 41: wcsr - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsr)} $yy_current_buffer match] > 0 && \ + # rule 41: 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 41 } - # rule 42: wcss - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcss)} $yy_current_buffer match] > 0 && \ + # rule 42: 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 42 } - # rule 43: wcst - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcst)} $yy_current_buffer match] > 0 && \ + # rule 43: 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 43 } - # rule 44: wcsu - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsu)} $yy_current_buffer match] > 0 && \ + # rule 44: 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 44 } - # rule 45: wcsv - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsv)} $yy_current_buffer match] > 0 && \ + # rule 45: 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 45 } - # rule 46: wcsw - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsw)} $yy_current_buffer match] > 0 && \ + # rule 46: 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 46 } - # rule 47: wcsx - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsx)} $yy_current_buffer match] > 0 && \ + # rule 47: 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 47 } - # rule 48: wcsy - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsy)} $yy_current_buffer match] > 0 && \ + # rule 48: 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 48 } - # rule 49: wcsz - if {[regexp -start $index_ -indices -line -nocase -- {\A(wcsz)} $yy_current_buffer match] > 0 && \ + # rule 49: 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 49 } - # rule 50: fk4 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk4)} $yy_current_buffer match] > 0 && \ + # rule 50: 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 50 } - # rule 51: b1950 - if {[regexp -start $index_ -indices -line -nocase -- {\A(b1950)} $yy_current_buffer match] > 0 && \ + # rule 51: 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 51 } - # rule 52: fk5 - if {[regexp -start $index_ -indices -line -nocase -- {\A(fk5)} $yy_current_buffer match] > 0 && \ + # rule 52: 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 52 } - # rule 53: j2000 - if {[regexp -start $index_ -indices -line -nocase -- {\A(j2000)} $yy_current_buffer match] > 0 && \ + # rule 53: 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 53 } - # rule 54: icrs - if {[regexp -start $index_ -indices -line -nocase -- {\A(icrs)} $yy_current_buffer match] > 0 && \ + # rule 54: 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 54 } - # rule 55: galactic - if {[regexp -start $index_ -indices -line -nocase -- {\A(galactic)} $yy_current_buffer match] > 0 && \ + # rule 55: icrs + if {[regexp -start $index_ -indices -line -nocase -- {\A(icrs)} $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: ecliptic - if {[regexp -start $index_ -indices -line -nocase -- {\A(ecliptic)} $yy_current_buffer match] > 0 && \ + # rule 56: 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 56 } - # rule 57: degrees - if {[regexp -start $index_ -indices -line -nocase -- {\A(degrees)} $yy_current_buffer match] > 0 && \ + # rule 57: 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 57 } - # rule 58: arcmin - if {[regexp -start $index_ -indices -line -nocase -- {\A(arcmin)} $yy_current_buffer match] > 0 && \ + # rule 58: degrees + if {[regexp -start $index_ -indices -line -nocase -- {\A(degrees)} $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 58 } - # rule 59: arcsec - if {[regexp -start $index_ -indices -line -nocase -- {\A(arcsec)} $yy_current_buffer match] > 0 && \ + # rule 59: arcmin + if {[regexp -start $index_ -indices -line -nocase -- {\A(arcmin)} $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 59 } - # rule 60: sexagesimal - if {[regexp -start $index_ -indices -line -nocase -- {\A(sexagesimal)} $yy_current_buffer match] > 0 && \ + # rule 60: arcsec + if {[regexp -start $index_ -indices -line -nocase -- {\A(arcsec)} $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 60 } - # rule 61: [+-]?{D}+ - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+)} $yy_current_buffer match] > 0 && \ + # rule 61: sexagesimal + if {[regexp -start $index_ -indices -line -nocase -- {\A(sexagesimal)} $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 61 } - # rule 62: [+-]?{D}+\.?({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+\.?(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 62: [+-]?{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 62 } - # rule 63: [+-]?{D}*\.{D}+({E})? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])*\.([0-9])+(([Ee][+-]?([0-9])+))?)} $yy_current_buffer match] > 0 && \ + # rule 63: [+-]?{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 63 } - # rule 64: [+-]?{D}+:{D}+:{D}+\.? - if {[regexp -start $index_ -indices -line -nocase -- {\A([+-]?([0-9])+:([0-9])+:([0-9])+\.?)} $yy_current_buffer match] > 0 && \ + # rule 64: [+-]?{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 64 } - # rule 65: [+-]?{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 65: [+-]?{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 65 } - # rule 66: \"[^\"]*\" - if {[regexp -start $index_ -indices -line -nocase -- {\A(\"[^\"]*\")} $yy_current_buffer match] > 0 && \ + # rule 66: [+-]?{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 66 } - # rule 67: \'[^\']*\' - if {[regexp -start $index_ -indices -line -nocase -- {\A(\'[^\']*\')} $yy_current_buffer match] > 0 && \ + # rule 67: \"[^\"]*\" + 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 67 } - # rule 68: \{[^\}]*\} - if {[regexp -start $index_ -indices -line -nocase -- {\A(\{[^\}]*\})} $yy_current_buffer match] > 0 && \ + # rule 68: \'[^\']*\' + 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 68 } - # rule 69: \S+\S+ - if {[regexp -start $index_ -indices -line -nocase -- {\A(\S+\S+)} $yy_current_buffer match] > 0 && \ + # rule 69: \{[^\}]*\} + 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 69 } - # rule 70: \s - if {[regexp -start $index_ -indices -line -nocase -- {\A(\s)} $yy_current_buffer match] > 0 && \ + # rule 70: \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 70 } - # rule 71: . - if {[regexp -start $index_ -indices -line -nocase -- {\A(.)} $yy_current_buffer match] > 0 && \ + # rule 71: \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 71 } + # rule 72: . + 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 72 + } if {$matched_rule == -1} { set yytext [string index $yy_current_buffer $index_] set yyleng 1 @@ -833,150 +841,150 @@ return $UPDATE_ return $CXC_ } 17 { -return $XML_ +return $HLA_ } 18 { -return $VOT_ +return $XML_ } 19 { -return $SB_ +return $VOT_ } 20 { -return $STARBASE_ +return $SB_ } 21 { -return $CSV_ +return $STARBASE_ } 22 { -return $TSV_ +return $CSV_ } 23 { -return $WCS_ +return $TSV_ } 24 { -return $WCSA_ +return $WCS_ } 25 { -return $WCSB_ +return $WCSA_ } 26 { -return $WCSC_ +return $WCSB_ } 27 { -return $WCSD_ +return $WCSC_ } 28 { -return $WCSE_ +return $WCSD_ } 29 { -return $WCSF_ +return $WCSE_ } 30 { -return $WCSG_ +return $WCSF_ } 31 { -return $WCSH_ +return $WCSG_ } 32 { -return $WCSI_ +return $WCSH_ } 33 { -return $WCSJ_ +return $WCSI_ } 34 { -return $WCSK_ +return $WCSJ_ } 35 { -return $WCSL_ +return $WCSK_ } 36 { -return $WCSM_ +return $WCSL_ } 37 { -return $WCSN_ +return $WCSM_ } 38 { -return $WCSO_ +return $WCSN_ } 39 { -return $WCSP_ +return $WCSO_ } 40 { -return $WCSQ_ +return $WCSP_ } 41 { -return $WCSR_ +return $WCSQ_ } 42 { -return $WCSS_ +return $WCSR_ } 43 { -return $WCST_ +return $WCSS_ } 44 { -return $WCSU_ +return $WCST_ } 45 { -return $WCSV_ +return $WCSU_ } 46 { -return $WCSW_ +return $WCSV_ } 47 { -return $WCSX_ +return $WCSW_ } 48 { -return $WCSY_ +return $WCSX_ } 49 { -return $WCSZ_ +return $WCSY_ } 50 { -return $FK4_ +return $WCSZ_ } 51 { return $FK4_ } 52 { -return $FK5_ +return $FK4_ } 53 { return $FK5_ } 54 { -return $ICRS_ +return $FK5_ } 55 { -return $GALACTIC_ +return $ICRS_ } 56 { -return $ECLIPTIC_ +return $GALACTIC_ } 57 { -return $DEGREES_ +return $ECLIPTIC_ } 58 { -return $ARCMIN_ +return $DEGREES_ } 59 { -return $ARCSEC_ +return $ARCMIN_ } 60 { -return $SEXAGESIMAL_ +return $ARCSEC_ } 61 { +return $SEXAGESIMAL_ + } + 62 { set yylval $yytext; return $INT_ } - 62 - - 63 { + 63 - + 64 { set yylval $yytext; return $REAL_ } - 64 - - 65 { -set yylval $yytext; return $SEXSTR_ - } + 65 - 66 { -set yylval [string range $yytext 1 end-1]; return $STRING_ +set yylval $yytext; return $SEXSTR_ } 67 { set yylval [string range $yytext 1 end-1]; return $STRING_ @@ -985,12 +993,15 @@ set yylval [string range $yytext 1 end-1]; return $STRING_ set yylval [string range $yytext 1 end-1]; return $STRING_ } 69 { -set yylval $yytext; return $STRING_ +set yylval [string range $yytext 1 end-1]; return $STRING_ } 70 { -# ignore whitespace +set yylval $yytext; return $STRING_ } 71 { +# ignore whitespace + } + 72 { set yylval $yytext; return $yylval } default diff --git a/ds9/parsers/fpparser.tab.tcl b/ds9/parsers/fpparser.tab.tcl index 1b4252b..af1ab47 100644 --- a/ds9/parsers/fpparser.tab.tcl +++ b/ds9/parsers/fpparser.tab.tcl @@ -57,9 +57,10 @@ set SKYFORMAT_ 312 set SYSTEM_ 313 set UPDATE_ 314 set CXC_ 315 -set XML_ 316 -set VOT_ 317 -set SB_ 318 -set STARBASE_ 319 -set CSV_ 320 -set TSV_ 321 +set HLA_ 316 +set XML_ 317 +set VOT_ 318 +set SB_ 319 +set STARBASE_ 320 +set CSV_ 321 +set TSV_ 322 diff --git a/ds9/parsers/fpparser.tac b/ds9/parsers/fpparser.tac index 35e9d2a..c4ec51b 100644 --- a/ds9/parsers/fpparser.tac +++ b/ds9/parsers/fpparser.tac @@ -29,6 +29,7 @@ %token UPDATE_ %token CXC_ +%token HLA_ %token XML_ %token VOT_ @@ -78,8 +79,8 @@ coordinate : numeric numeric {TBLCmdCoord $1 $2 fk5} | SEXSTR_ SEXSTR_ skyframe {TBLCmdCoord $1 $2 $3} ; -site : {} {set _ cxc} - | CXC_ {set _ cxc} +site : CXC_ {set _ cxc} + | HLA_ {set _ hla} ; writer : XML_ {set _ VOTWrite} diff --git a/ds9/parsers/fpparser.tcl b/ds9/parsers/fpparser.tcl index 3563489..c69ac7d 100644 --- a/ds9/parsers/fpparser.tcl +++ b/ds9/parsers/fpparser.tcl @@ -61,781 +61,815 @@ proc fp::unsetupvalues {numsyms} { } array set fp::table { - 89:292 shift - 24:332 goto + 90:292 shift + 13:322,target 37 + 12:298 reduce 1:302 reduce - 89:293 shift - 0:327,target 2 + 90:293 shift + 21:291 shift + 11:334,target 31 1:303 reduce 1:304 reduce 51:298 reduce 27:0 reduce - 12:317,target 32 1:305 reduce - 1:311,target 71 - 66:298,target 14 + 1:311,target 70 + 66:298,target 13 + 21:294 shift 1:306 reduce + 22:282,target 79 1:307 reduce - 90:298 reduce + 89:298 reduce 48:0 reduce - 20:294,target 51 - 0:306,target 45 + 28:285,target 41 1:298 reduce + 0:306,target 45 1:308 reduce - 12:316 shift 1:299 reduce 1:309 reduce 1:310 reduce - 21:277,target 73 - 12:317 shift + 6:299,target 48 + 6:309,target 48 + 6:310,target 48 1:311 reduce 70:0 reduce 69:0 reduce - 12:318 shift + 10:298,target 51 1:312 reduce - 55:298,target 3 - 12:320 shift - 12:319 shift + 55:298,target 2 + 25:303,target 12 + 22:261,target 58 1:313 reduce - 5:305,target 48 + 5:305,target 14 60:298 reduce 59:298 reduce - 12:321 shift 1:314 reduce + 6:0,target 47 91:0 reduce - 87:0,target 39 - 2:0 accept - 80:0,target 64 - 79:0,target 27 - 29:295 shift - 4:301,target 9 - 72:0,target 20 - 29:296 shift + 87:0,target 38 + 42:327 goto + 2:0 reduce + 80:0,target 27 + 79:0,target 26 + 30:295 shift + 72:0,target 19 + 30:296 shift + 13:320,target 35 + 13:319,target 34 9:298 reduce - 64:0,target 12 - 19:323,target 49 - 56:0,target 4 - 44:298,target 30 - 30:298 reduce - 90:298,target 69 - 48:0,target 34 - 1:298,target 71 - 1:308,target 71 + 2:313,target 71 + 64:0,target 11 + 29:297 shift + 56:0,target 3 + 44:298,target 29 + 24:0 reduce + 89:298,target 60 + 48:0,target 33 + 1:298,target 70 + 1:308,target 70 + 41:0,target 56 68:298 reduce 45:0 reduce - 25:0,target 44 - 21:322 goto + 22:280,target 77 + 22:279,target 76 0:304,target 45 - 89:325 goto - 26:295,target 40 + 17:0,target 59 + 6:307,target 48 + 90:326 goto 66:0 reduce - 33:298,target 74 - 21:275,target 71 - 15:326,target 39 - 78:298,target 26 - 10:296,target 27 - 38:298 reduce - 5:303,target 48 - 12:335 goto + 33:298,target 73 + 10:0,target 51 + 78:298,target 25 + 21:325 goto + 38:298 shift + 25:301,target 10 + 22:258,target 55 + 5:303,target 12 87:0 reduce + 83:324,target 91 + 21:325,target 53 77:298 reduce - 15:295,target 26 - 22:298,target 65 - 67:298,target 15 - 1:306,target 71 + 13:317,target 32 + 2:311,target 71 + 67:298,target 14 + 21:294,target 52 + 1:306,target 70 47:298 reduce - 42:0 reduce - 29:326 goto - 26:284 reduce - 82:288,target 46 - 26:285 reduce - 26:286 reduce - 19:290,target 48 - 19:289,target 47 + 30:327 goto + 22:277,target 74 + 20:290,target 49 + 20:289,target 48 0:302,target 45 - 11:298,target 54 86:298 reduce 63:0 reduce - 56:298,target 4 - 26:293,target 40 - 26:287 reduce - 26:288 reduce - 21:273,target 69 - 26:290 reduce - 26:289 reduce - 17:298 shift + 56:298,target 3 + 6:300 reduce + 6:305,target 48 + 6:301 reduce + 17:298 reduce + 13:336,target 38 + 6:302 reduce 84:0 reduce - 26:291 reduce - 5:301,target 48 - 26:292 reduce - 89:325,target 92 + 5:301,target 10 + 6:303 reduce + 6:304 reduce 56:298 reduce - 26:293 reduce - 45:298,target 31 - 91:298,target 67 - 26:295 reduce - 26:296 reduce - 6:298 shift - 38:0 reduce - 26:298 reduce - 1:304,target 71 - 27:295,target 41 - 82:286,target 44 - 34:298,target 75 - 92:0,target 61 - 80:298,target 64 - 79:298,target 27 + 6:305 reduce + 45:298,target 30 + 6:306 reduce + 91:298,target 69 + 17:0 reduce + 2:298,target 71 + 2:308,target 71 + 6:307 reduce + 11:327,target 30 + 6:298 reduce + 6:308 reduce + 6:299 reduce + 6:309 reduce + 6:310 reduce + 1:304,target 70 + 6:311 reduce + 27:295,target 40 + 6:312 reduce + 34:298,target 74 + 22:275,target 72 + 6:313 reduce + 92:0,target 67 + 80:298,target 27 + 79:298,target 26 65:298 reduce 60:0 reduce 59:0 reduce - 19:287,target 45 + 20:287,target 46 + 11:296,target 28 + 6:314 reduce 0:300,target 45 - 3:0,target 42 - 84:0,target 55 - 26:291,target 40 - 76:0,target 24 - 24:313,target 21 - 21:271,target 67 + 3:0,target 0 + 84:0,target 66 + 6:303,target 48 + 84:324,target 92 + 76:0,target 23 83:284 shift 81:0 reduce - 68:0,target 16 + 68:0,target 15 83:285 shift - 61:0,target 9 + 61:0,target 8 + 16:295,target 27 83:286 shift - 53:0,target 1 + 53:0,target 63 35:298 reduce - 23:298,target 46 + 23:298,target 65 83:287 shift - 68:298,target 16 - 45:0,target 31 + 68:298,target 15 + 45:0,target 30 83:288 shift - 14:0 reduce 83:290 shift 83:289 shift 74:298 reduce - 30:0,target 53 - 28:297,target 82 - 22:0,target 65 - 83:288,target 46 - 14:0,target 58 - 89:292,target 86 - 24:332,target 81 - 1:302,target 71 - 57:298,target 5 - 27:293,target 41 - 82:284,target 42 + 2:306,target 71 + 83:288,target 47 + 90:292,target 87 + 12:298,target 54 + 1:302,target 70 + 57:298,target 4 + 40:326,target 89 + 27:293,target 40 56:0 reduce 44:298 reduce - 19:285,target 43 - 26:288,target 40 + 22:273,target 70 + 20:285,target 44 + 6:301,target 48 83:298 reduce 77:0 reduce - 24:311,target 19 - 21:268,target 64 - 4:313,target 21 - 46:298,target 32 - 14:298 reduce - 92:298,target 61 - 3:298,target 43 + 6:332 goto + 22:323,target 81 + 46:298,target 31 + 14:298 shift + 92:298,target 67 9:0 reduce - 11:0 reduce 53:298 reduce + 2:304,target 71 + 28:295,target 41 + 0:316,target 2 92:298 reduce - 83:286,target 44 - 35:298,target 76 - 3:298 reduce - 81:298,target 49 - 1:300,target 71 - 4:332,target 23 + 83:286,target 45 + 35:298,target 75 + 81:298,target 64 + 1:300,target 70 53:0 reduce - 27:291,target 41 + 27:291,target 40 23:298 reduce - 83:323 goto + 25:313,target 22 + 22:271,target 68 74:0 reduce 62:298 reduce - 26:286,target 40 - 24:308,target 16 - 21:266,target 62 - 4:311,target 19 - 70:298,target 18 - 69:298,target 17 - 39:293,target 87 + 83:324 goto + 24:298,target 46 + 70:298,target 17 + 69:298,target 16 + 40:293,target 88 + 0:335,target 6 + 6:0 reduce 32:298 reduce - 13:298,target 38 - 7:0,target 50 - 88:0,target 60 + 29:297,target 83 + 84:288,target 47 + 28:0 reduce + 2:302,target 71 + 88:0,target 39 71:298 reduce - 58:298,target 6 - 41:326,target 89 - 0:0,target 70 + 58:298,target 5 + 28:293,target 41 0:314,target 45 - 83:284,target 42 - 81:0,target 49 - 73:0,target 21 + 83:284,target 43 + 81:0,target 64 + 73:0,target 20 50:0 reduce 49:0 reduce - 41:295 shift - 65:0,target 13 - 41:296 shift - 27:288,target 41 - 57:0,target 5 - 5:313,target 48 + 4:329,target 7 + 65:0,target 12 + 27:288,target 40 + 57:0,target 4 + 25:311,target 20 + 22:268,target 65 + 5:313,target 22 71:0 reduce - 50:0,target 35 - 49:0,target 62 - 41:295,target 26 - 19:284 shift - 3:328 goto - 47:298,target 33 - 42:0,target 28 - 29:326,target 83 - 26:284,target 40 - 19:285 shift - 24:306,target 14 - 21:264,target 60 - 19:286 shift - 4:308,target 16 + 50:0,target 62 + 49:0,target 34 + 41:298 reduce + 20:284 shift + 47:298,target 32 + 20:285 shift + 93:298,target 61 + 20:286 shift + 11:295 shift + 4:298,target 43 92:0 reduce 80:298 reduce 79:298 reduce - 39:291,target 85 - 26:0,target 40 - 19:287 shift + 40:291,target 86 + 26:0,target 44 + 20:287 shift + 11:296 shift 0:300 reduce - 3:0 reduce - 19:288 shift + 3:0 accept + 20:288 shift + 11:297 shift 0:301 reduce - 19:290 shift - 19:289 shift + 20:290 shift + 20:289 shift 0:302 reduce - 11:0,target 54 - 11:298 reduce - 29:295,target 26 - 20:291 shift + 30:295,target 27 0:303 reduce - 36:298,target 77 - 25:0 reduce - 18:326,target 41 + 84:286,target 45 + 36:298,target 76 0:304 reduce - 82:298,target 68 + 82:298,target 49 50:298 reduce 49:298 reduce + 28:284 reduce 0:305 reduce - 20:294 shift + 2:300,target 71 + 28:291,target 41 + 28:285 reduce 0:312,target 45 0:306 reduce 46:0 reduce + 28:286 reduce + 19:295 shift 0:307 reduce 88:298 reduce - 21:283,target 79 - 0:298 reduce + 28:287 reduce + 19:296 shift 0:308 reduce - 27:286,target 41 - 18:295,target 26 + 28:288 reduce + 27:286,target 40 0:310 reduce 0:309 reduce 0:299 reduce 67:0 reduce + 28:290 reduce + 28:289 reduce + 25:308,target 17 + 22:266,target 63 0:311 reduce - 5:311,target 48 - 71:298,target 19 + 5:311,target 20 + 71:298,target 18 + 28:291 reduce 0:312 reduce + 28:292 reduce 0:313 reduce 88:0 reduce 58:298 reduce - 41:326 goto - 24:304,target 12 - 21:262,target 58 - 0:0 reduce + 28:293 reduce 0:314 reduce - 4:306,target 14 0:315 shift - 14:298,target 58 + 28:295 reduce + 0:316 shift + 0:331,target 5 + 28:296 reduce + 14:298,target 39 8:298 reduce - 60:298,target 8 - 59:298,target 7 - 28:297 shift - 22:0 reduce - 12:321,target 36 - 1:314,target 71 - 10:333,target 30 + 60:298,target 7 + 59:298,target 6 + 1:314,target 70 + 84:284,target 43 + 28:298 reduce + 11:327 goto 43:0 reduce + 28:288,target 41 0:310,target 45 0:309,target 45 0:299,target 45 67:298 reduce - 21:281,target 77 + 6:313,target 48 + 42:295,target 27 64:0 reduce - 48:298,target 34 - 27:284,target 41 - 19:323 goto + 48:298,target 33 + 27:284,target 40 + 25:306,target 15 + 22:264,target 61 20:324 goto - 5:298,target 47 - 5:308,target 48 - 0:327 goto + 5:308,target 17 + 11:334 goto 85:0 reduce - 37:298 shift - 24:302,target 10 - 21:260,target 56 - 21:259,target 55 - 0:329 goto + 37:298 reduce + 0:328 goto + 19:327 goto 0:330 goto - 4:304,target 12 - 85:0,target 37 + 93:0,target 61 + 0:331 goto + 4:0,target 42 + 85:0,target 55 76:298 reduce - 37:298,target 84 - 83:298,target 66 - 77:0,target 25 - 70:0,target 18 - 69:0,target 17 - 12:318,target 33 - 0:334 goto - 1:312,target 71 - 62:0,target 10 - 54:0,target 2 - 40:0 reduce + 37:298,target 77 + 0:328,target 3 + 83:298,target 68 + 77:0,target 24 + 6:332,target 25 + 70:0,target 17 + 69:0,target 16 + 1:312,target 70 + 62:0,target 9 + 0:335 goto + 54:0,target 1 + 39:0 reduce + 22:283,target 80 46:298 reduce - 46:0,target 32 + 46:0,target 31 + 28:286,target 41 + 19:295,target 27 0:307,target 45 - 38:0,target 57 - 26:298,target 40 - 72:298,target 20 + 6:311,target 48 + 72:298,target 19 61:0 reduce - 21:278,target 74 + 31:0,target 53 + 16:295 shift 85:298 reduce - 23:0,target 46 - 5:300 reduce - 5:301 reduce - 5:306,target 48 + 23:0,target 65 + 16:296 shift + 5:300 shift + 25:304,target 13 + 22:262,target 59 + 15:0,target 58 + 5:301 shift + 5:306,target 15 82:0 reduce - 16:298 reduce - 5:302 reduce - 5:303 reduce - 24:300,target 8 - 21:257,target 53 - 4:302,target 10 - 5:304 reduce - 82:323,target 90 - 61:298,target 9 + 25:300 shift + 22:257 shift + 5:302 shift + 25:301 shift + 22:258 shift + 5:303 shift + 25:302 shift + 22:260 shift + 22:259 shift + 15:298,target 58 + 5:304 shift + 61:298,target 8 55:298 reduce - 5:305 reduce - 20:324,target 52 - 5:306 reduce - 5:307 reduce - 12:316,target 31 - 1:299,target 71 - 1:309,target 71 - 1:310,target 71 - 5:298 reduce - 5:308 reduce - 5:299 reduce - 5:309 reduce - 5:310 reduce - 5:311 reduce - 50:298,target 35 - 49:298,target 62 + 25:303 shift + 22:261 shift + 13:321,target 36 + 2:314,target 71 + 5:305 shift + 25:304 shift + 22:262 shift + 20:324,target 50 + 15:0 reduce + 5:306 shift + 25:305 shift + 22:263 shift + 5:307 shift + 25:306 shift + 22:264 shift + 1:299,target 70 + 1:309,target 70 + 1:310,target 70 + 5:308 shift + 25:307 shift + 22:265 shift + 5:299 shift + 5:309 shift + 5:310 shift + 25:308 shift + 22:281,target 78 + 22:266 shift + 5:311 shift + 50:298,target 62 + 49:298,target 34 + 28:284,target 41 + 25:310 shift + 25:309 shift + 25:299 shift + 22:267 shift 0:305,target 45 - 5:312 reduce + 5:312 shift 57:0 reduce - 26:296,target 40 - 5:313 reduce - 6:298,target 25 + 25:311 shift + 22:268 shift + 5:313 shift + 6:298,target 47 + 6:308,target 48 64:298 reduce - 21:276,target 72 - 5:314 reduce - 10:297,target 28 + 25:312 shift + 22:270 shift + 22:269 shift + 5:314 shift + 25:313 shift + 22:271 shift 78:0 reduce - 5:304,target 48 - 82:284 shift - 82:285 shift - 38:298,target 57 - 12:335,target 37 - 84:298,target 55 - 82:286 shift + 25:314 shift + 25:302,target 11 + 22:272 shift + 22:260,target 57 + 22:259,target 56 + 5:304,target 13 + 22:273 shift + 38:298,target 85 + 22:274 shift + 84:298,target 66 34:298 reduce - 15:296,target 27 - 4:300,target 8 - 82:287 shift - 82:288 shift - 82:290 shift - 82:289 shift + 22:275 shift + 22:276 shift + 16:327 goto + 13:318,target 33 + 12:0 reduce + 2:312,target 71 + 22:277 shift 73:298 reduce - 1:307,target 71 - 27:298,target 41 - 10:326,target 29 - 82:290,target 48 - 82:289,target 47 - 73:298,target 21 + 22:278 shift + 22:280 shift + 22:279 shift + 1:307,target 70 + 27:298,target 40 + 22:281 shift + 73:298,target 20 + 22:282 shift + 22:278,target 75 54:0 reduce - 20:291,target 50 + 22:283 shift 0:303,target 45 43:298 reduce - 21:274,target 70 - 8:0,target 52 - 90:0,target 69 + 6:306,target 48 + 8:0,target 50 + 89:0,target 60 75:0 reduce - 1:0,target 71 - 5:331 goto - 10:295,target 26 + 1:0,target 70 82:298 reduce - 82:0,target 68 - 16:298,target 59 - 5:302,target 48 - 83:323,target 91 - 74:0,target 22 - 62:298,target 10 - 66:0,target 14 - 13:298 shift - 7:0 reduce - 58:0,target 6 - 51:0,target 36 + 82:0,target 49 + 25:300,target 9 + 22:257,target 54 + 2:300 reduce + 5:302,target 11 + 74:0,target 21 + 62:298,target 9 + 2:301 reduce + 5:333 goto + 90:326,target 93 + 66:0,target 13 + 2:302 reduce + 58:0,target 5 + 25:333 goto + 2:303 reduce + 51:0,target 35 + 2:299,target 71 + 2:304 reduce + 2:309,target 71 + 2:310,target 71 52:298 reduce - 43:0,target 29 - 30:0 reduce - 51:298,target 36 - 27:0,target 41 - 1:305,target 71 + 43:0,target 28 + 2:305 reduce + 2:306 reduce + 51:298,target 35 + 27:0,target 40 + 1:305,target 70 + 2:307 reduce 91:298 reduce - 27:296,target 41 - 7:298,target 50 - 82:287,target 45 + 27:296,target 40 + 7:298,target 26 + 2:298 reduce + 2:308 reduce 51:0 reduce - 22:298 reduce - 19:288,target 46 + 22:276,target 73 + 16:327,target 40 + 12:0,target 54 + 2:299 reduce + 2:309 reduce + 2:310 reduce + 20:288,target 47 + 13:317 shift + 11:297,target 29 0:301,target 45 - 26:292,target 40 + 2:311 reduce + 13:318 shift + 2:312 reduce + 6:304,target 48 72:0 reduce - 24:314,target 22 - 21:272,target 68 - 82:323 goto + 13:320 shift + 13:319 shift + 2:313 reduce 61:298 reduce - 40:298,target 56 - 85:298,target 37 - 5:300,target 48 - 21:322,target 80 + 39:298,target 57 + 13:321 shift + 2:314 reduce + 85:298,target 55 + 16:296,target 28 + 13:322 shift + 5:300,target 9 + 93:0 reduce + 4:0 reduce 31:298 reduce - 39:291 shift + 2:307,target 71 + 40:291 shift + 28:298,target 41 26:0 reduce - 83:290,target 48 - 83:289,target 47 - 74:298,target 22 - 39:292 shift - 89:293,target 87 + 83:290,target 49 + 83:289,target 48 + 74:298,target 21 + 40:292 shift + 90:293,target 88 70:298 reduce 69:298 reduce - 39:293 shift - 1:303,target 71 + 40:293 shift + 21:291,target 51 + 1:303,target 70 47:0 reduce - 82:285,target 43 - 19:286,target 44 + 22:274,target 71 + 22:323 goto + 20:286,target 45 + 11:295,target 27 68:0 reduce - 26:290,target 40 - 26:289,target 40 - 17:298,target 40 - 63:298,target 11 - 40:298 reduce - 24:312,target 20 - 21:270,target 66 - 21:269,target 65 - 4:314,target 22 - 90:0 reduce + 17:298,target 59 + 6:302,target 48 + 63:298,target 10 + 39:298 reduce + 13:336 goto + 89:0 reduce 1:0 reduce - 10:295 shift 78:298 reduce - 10:296 shift - 10:297 shift - 52:298,target 63 + 10:298 reduce + 52:298,target 36 23:0 reduce - 8:298,target 52 - 83:287,target 45 + 2:305,target 71 + 28:296,target 41 + 8:298,target 50 + 83:287,target 46 48:298 reduce 27:284 reduce - 89:291,target 85 + 90:291,target 86 44:0 reduce 27:285 reduce - 1:301,target 71 - 5:0,target 47 - 86:0,target 38 - 39:325,target 88 - 27:292,target 41 + 1:301,target 70 + 86:0,target 37 + 27:292,target 40 27:286 reduce - 18:295 shift 87:298 reduce - 78:0,target 26 + 78:0,target 25 27:287 reduce - 18:296 shift - 71:0,target 19 + 25:314,target 23 + 22:272,target 69 + 71:0,target 18 65:0 reduce + 41:298,target 56 27:288 reduce - 19:284,target 42 - 3:328,target 6 - 86:298,target 38 - 63:0,target 11 + 20:284,target 43 + 86:298,target 37 + 63:0,target 10 27:290 reduce 27:289 reduce - 26:287,target 40 - 55:0,target 3 + 18:298 shift + 6:300,target 48 + 55:0,target 2 27:291 reduce - 24:310,target 18 - 24:309,target 17 - 24:299,target 7 - 21:267,target 63 - 4:312,target 20 86:0 reduce - 47:0,target 33 - 39:325 goto + 47:0,target 32 27:292 reduce 57:298 reduce - 40:0,target 56 + 40:326 goto + 39:0,target 57 27:293 reduce - 30:298,target 53 27:295 reduce - 75:298,target 23 + 24:0,target 46 + 84:290,target 49 + 84:289,target 48 + 75:298,target 22 27:296 reduce - 16:0,target 59 - 7:298 reduce + 7:298 shift + 25:333,target 82 + 2:303,target 71 27:298 reduce 0:315,target 1 - 10:326 goto - 83:285,target 43 + 83:285,target 44 + 41:0 reduce 66:298 reduce - 27:290,target 41 - 27:289,target 41 - 64:298,target 12 + 27:290,target 40 + 27:289,target 40 + 18:298,target 41 + 64:298,target 11 62:0 reduce - 5:314,target 48 - 41:296,target 27 - 26:285,target 40 - 10:333 goto + 25:312,target 21 + 22:270,target 67 + 22:269,target 66 + 5:314,target 23 + 84:284 shift + 30:327,target 84 + 84:285 shift 83:0 reduce - 24:307,target 15 - 21:265,target 61 - 4:299,target 7 - 4:309,target 17 - 4:310,target 18 - 39:292,target 86 + 84:286 shift + 40:292,target 87 36:298 reduce - 18:326 goto - 0:334,target 5 - 53:298,target 1 + 84:287 shift + 84:288 shift + 53:298,target 63 + 84:290 shift + 84:289 shift 75:298 reduce - 29:296,target 27 - 16:0 reduce - 9:298,target 51 + 30:296,target 28 + 9:298,target 52 + 84:287,target 46 + 2:301,target 71 + 5:333,target 24 + 28:292,target 41 0:313,target 45 45:298 reduce - 42:298,target 28 - 87:298,target 39 + 87:298,target 38 58:0 reduce - 27:287,target 41 - 18:296,target 27 - 15:295 shift - 5:312,target 48 + 27:287,target 40 + 25:310,target 19 + 25:309,target 18 + 25:299,target 8 + 22:267,target 64 + 5:312,target 21 84:298 reduce - 15:296 shift - 4:300 shift 80:0 reduce 79:0 reduce - 4:301 shift - 24:305,target 13 - 24:300 shift - 21:263,target 59 - 21:257 shift - 4:302 shift - 4:307,target 15 - 31:298,target 72 - 24:301 shift - 21:258 shift - 4:303 shift - 76:298,target 24 - 24:302 shift - 21:260 shift - 21:259 shift - 4:304 shift + 15:298 reduce + 31:298,target 53 + 76:298,target 23 54:298 reduce - 24:303 shift - 21:261 shift - 4:305 shift - 9:0,target 51 - 91:0,target 67 - 24:304 shift - 21:262 shift - 2:0,target 0 - 4:306 shift - 83:0,target 66 - 24:305 shift - 21:263 shift - 4:307 shift - 75:0,target 23 - 24:306 shift - 21:264 shift - 4:308 shift - 5:331,target 24 - 67:0,target 15 - 24:307 shift - 21:265 shift + 9:0,target 52 + 91:0,target 69 + 42:327,target 90 + 2:0,target 71 + 84:285,target 44 + 83:0,target 68 + 93:298 reduce + 75:0,target 22 + 4:298 reduce + 67:0,target 14 + 28:290,target 41 + 28:289,target 41 0:311,target 45 - 4:299 shift - 4:309 shift - 4:310 shift - 65:298,target 13 - 60:0,target 8 - 59:0,target 7 - 24:308 shift - 21:266 shift - 4:311 shift + 65:298,target 12 + 60:0,target 7 + 59:0,target 6 + 24:298 reduce + 6:314,target 48 55:0 reduce - 52:0,target 63 - 24:310 shift - 24:309 shift - 24:299 shift - 21:282,target 78 - 21:267 shift - 4:312 shift - 44:0,target 30 - 27:285,target 41 - 24:311 shift - 21:268 shift - 4:313 shift + 52:0,target 36 + 42:296,target 28 + 44:0,target 29 + 27:285,target 40 63:298 reduce - 24:312 shift - 21:270 shift - 21:269 shift - 4:314 shift - 5:299,target 48 - 5:309,target 48 - 5:310,target 48 + 25:307,target 16 + 22:265,target 62 + 5:299,target 8 + 5:309,target 18 + 5:310,target 19 + 84:324 goto 76:0 reduce - 24:313 shift - 21:271 shift - 24:314 shift - 21:272 shift - 54:298,target 2 - 24:303,target 11 - 21:273 shift - 21:261,target 57 - 4:305,target 13 - 21:274 shift + 28:0,target 41 + 54:298,target 1 8:0 reduce 33:298 reduce - 21:275 shift - 15:326 goto - 0:329,target 3 + 19:327,target 42 + 10:0 reduce 0:330,target 4 - 21:276 shift - 21:277 shift - 12:320,target 35 - 12:319,target 34 - 1:313,target 71 + 1:313,target 70 72:298 reduce - 21:278 shift - 43:298,target 29 - 21:280 shift - 21:279 shift - 88:298,target 60 - 21:281 shift - 0:298,target 70 + 31:0 reduce + 43:298,target 28 + 88:298,target 39 + 42:295 shift + 28:287,target 41 + 19:296,target 28 0:308,target 45 52:0 reduce - 21:282 shift - 21:283 shift - 21:280,target 76 - 21:279,target 75 - 42:298 reduce + 42:296 shift + 6:312,target 48 73:0 reduce - 5:307,target 48 - 32:298,target 73 + 25:305,target 14 + 22:263,target 60 + 4:329 goto + 5:307,target 16 + 32:298,target 72 81:298 reduce - 77:298,target 25 + 77:298,target 24 1:300 reduce - 4:332 goto - 89:291 shift - 24:301,target 9 - 21:258,target 54 + 90:291 shift 1:301 reduce - 4:303,target 11 - 5:0 reduce } array set fp::rules { - 9,l 322 - 11,l 322 - 32,l 323 - 53,l 332 - 74,l 335 - 6,l 322 - 28,l 323 - 50,l 332 - 49,l 329 - 71,l 334 - 3,l 322 - 25,l 322 - 46,l 329 - 67,l 333 - 0,l 336 - 22,l 322 - 43,l 328 - 64,l 332 - 18,l 322 - 40,l 326 - 39,l 325 - 61,l 332 - 15,l 322 - 36,l 324 - 57,l 332 - 12,l 322 - 33,l 323 - 54,l 332 - 75,l 335 - 7,l 322 - 29,l 323 - 30,l 323 - 51,l 332 - 72,l 335 - 4,l 322 - 26,l 322 - 47,l 329 - 68,l 333 - 1,l 322 - 23,l 322 - 44,l 327 - 65,l 332 - 19,l 322 - 20,l 322 - 41,l 326 - 62,l 332 - 16,l 322 - 37,l 325 - 58,l 332 - 13,l 322 - 34,l 323 - 55,l 332 - 76,l 335 - 8,l 322 - 10,l 322 - 31,l 323 - 52,l 332 - 73,l 335 - 5,l 322 - 27,l 322 - 48,l 331 - 70,l 334 - 69,l 333 - 2,l 322 - 24,l 322 - 45,l 330 - 66,l 333 - 21,l 322 - 42,l 327 - 63,l 332 - 17,l 322 - 38,l 325 - 60,l 332 - 59,l 332 - 14,l 322 - 35,l 324 - 56,l 332 - 77,l 335 + 9,l 323 + 11,l 323 + 32,l 324 + 53,l 333 + 74,l 336 + 6,l 323 + 28,l 324 + 50,l 333 + 49,l 330 + 71,l 335 + 3,l 323 + 25,l 323 + 46,l 330 + 67,l 334 + 0,l 337 + 22,l 323 + 43,l 329 + 64,l 333 + 18,l 323 + 40,l 327 + 39,l 326 + 61,l 333 + 15,l 323 + 36,l 325 + 57,l 333 + 12,l 323 + 33,l 324 + 54,l 333 + 75,l 336 + 7,l 323 + 29,l 324 + 30,l 324 + 51,l 333 + 72,l 336 + 4,l 323 + 26,l 323 + 47,l 330 + 68,l 334 + 1,l 323 + 23,l 323 + 44,l 328 + 65,l 333 + 19,l 323 + 20,l 323 + 41,l 327 + 62,l 333 + 16,l 323 + 37,l 326 + 58,l 333 + 13,l 323 + 34,l 324 + 55,l 333 + 76,l 336 + 8,l 323 + 10,l 323 + 31,l 324 + 52,l 333 + 73,l 336 + 5,l 323 + 27,l 323 + 48,l 332 + 70,l 335 + 69,l 334 + 2,l 323 + 24,l 323 + 45,l 331 + 66,l 334 + 21,l 323 + 42,l 328 + 63,l 333 + 17,l 323 + 38,l 326 + 60,l 333 + 59,l 333 + 14,l 323 + 35,l 325 + 56,l 333 + 77,l 336 } array set fp::rules { @@ -846,7 +880,7 @@ array set fp::rules { 3,dc 1 41,dc 1 55,dc 3 - 70,dc 0 + 70,dc 1 69,dc 3 18,dc 1 33,dc 1 @@ -920,282 +954,284 @@ array set fp::rules { } array set fp::rules { - 41,line 179 - 7,line 140 - 37,line 174 - 4,line 137 - 34,line 168 - 1,line 134 - 31,line 165 - 27,line 160 - 24,line 157 - 21,line 154 - 76,line 224 - 17,line 150 - 73,line 221 + 41,line 180 + 7,line 141 + 37,line 175 + 4,line 138 + 34,line 169 + 1,line 135 + 31,line 166 + 27,line 161 + 24,line 158 + 21,line 155 + 76,line 225 + 17,line 151 + 73,line 222 43,e 1 - 14,line 147 - 70,line 216 - 69,line 213 - 11,line 144 - 66,line 210 - 63,line 205 - 60,line 202 - 59,line 200 - 56,line 197 - 53,line 194 - 50,line 191 - 49,line 188 - 46,line 186 - 43,line 182 - 9,line 142 - 40,line 178 - 39,line 176 - 6,line 139 - 36,line 171 - 3,line 136 - 33,line 167 - 29,line 163 - 30,line 164 - 26,line 159 - 23,line 156 - 19,line 152 - 20,line 153 - 75,line 223 - 16,line 149 - 72,line 220 - 13,line 146 - 68,line 212 - 10,line 143 - 65,line 207 - 62,line 204 - 58,line 199 - 55,line 196 - 52,line 193 - 48,line 187 - 45,line 185 - 42,line 182 - 8,line 141 - 38,line 175 - 5,line 138 - 35,line 170 - 2,line 135 - 32,line 166 + 14,line 148 + 70,line 217 + 69,line 214 + 11,line 145 + 66,line 211 + 63,line 206 + 60,line 203 + 59,line 201 + 56,line 198 + 53,line 195 + 50,line 192 + 49,line 189 + 46,line 187 + 43,line 183 + 9,line 143 + 40,line 179 + 39,line 177 + 6,line 140 + 36,line 172 + 3,line 137 + 33,line 168 + 29,line 164 + 30,line 165 + 26,line 160 + 23,line 157 + 19,line 153 + 20,line 154 + 75,line 224 + 16,line 150 + 72,line 221 + 13,line 147 + 68,line 213 + 10,line 144 + 65,line 208 + 62,line 205 + 58,line 200 + 55,line 197 + 52,line 194 + 48,line 188 + 45,line 186 + 42,line 183 + 8,line 142 + 38,line 176 + 5,line 139 + 35,line 171 + 2,line 136 + 32,line 167 48,e 1 - 28,line 162 - 25,line 158 - 22,line 155 - 77,line 225 + 28,line 163 + 25,line 159 + 22,line 156 + 77,line 226 45,e 0 - 18,line 151 - 74,line 222 - 15,line 148 - 71,line 217 - 12,line 145 - 67,line 211 - 64,line 206 - 61,line 203 - 57,line 198 - 54,line 195 - 51,line 192 - 47,line 187 - 44,line 183 + 18,line 152 + 74,line 223 + 15,line 149 + 71,line 218 + 12,line 146 + 67,line 212 + 64,line 207 + 61,line 204 + 57,line 199 + 54,line 196 + 51,line 193 + 47,line 188 + 44,line 184 } array set fp::lr1_table { - 35 {{76 298 1}} + 35 {{75 298 1}} 66,trans {} - 36 {{77 298 1}} - 85,trans {} - 37 {{55 {0 298} 2}} - 38 {{57 {0 298} 2}} - 39 {{40 {291 292 293} 1}} - 40 {{41 {291 292 293} 1}} - 41 {{60 {0 298} 2} {37 {0 298} 0} {38 {0 298} 0} {39 {0 298} 0}} - 42 {{56 {0 298} 2}} - 43 {{61 {0 298} 2} {40 {291 292 293} 0} {41 {291 292 293} 0}} - 44 {{28 {0 298} 1}} - 45 {{29 {0 298} 1}} - 46 {{30 {0 298} 1}} - 47 {{31 {0 298} 1}} - 48 {{32 {0 298} 1}} - 49 {{33 {0 298} 1}} - 50 {{34 {0 298} 1}} + 36 {{76 298 1}} + 85,trans {{284 45} {285 46} {286 47} {287 48} {288 49} {289 50} {290 51} {324 95}} + 37 {{77 298 1}} + 38 {{55 {0 298} 2}} + 39 {{57 {0 298} 2}} + 40 {{40 {291 292 293} 1}} + 41 {{41 {291 292 293} 1}} + 42 {{60 {0 298} 2} {37 {0 298} 0} {38 {0 298} 0} {39 {0 298} 0}} + 43 {{56 {0 298} 2}} + 44 {{61 {0 298} 2} {40 {291 292 293} 0} {41 {291 292 293} 0}} + 45 {{28 {0 298} 1}} + 46 {{29 {0 298} 1}} + 47 {{30 {0 298} 1}} + 48 {{31 {0 298} 1}} + 49 {{32 {0 298} 1}} + 50 {{33 {0 298} 1}} 27,trans {} - 51 {{62 {0 298} 2}} + 51 {{34 {0 298} 1}} 46,trans {} - 52 {{35 {0 298} 1}} + 52 {{62 {0 298} 2}} 65,trans {} - 53 {{36 {0 298} 1}} - 84,trans {{284 44} {285 45} {286 46} {287 47} {288 48} {289 49} {290 50} {323 94}} - 54 {{63 {0 298} 2}} - 55 {{1 {0 298} 1}} - 56 {{2 {0 298} 1}} - 57 {{3 {0 298} 1}} - 58 {{4 {0 298} 1}} - 59 {{5 {0 298} 1}} - 60 {{6 {0 298} 1}} - 61 {{7 {0 298} 1}} - 62 {{8 {0 298} 1}} - 63 {{9 {0 298} 1}} - 64 {{10 {0 298} 1}} - 65 {{11 {0 298} 1}} - 66 {{12 {0 298} 1}} + 53 {{35 {0 298} 1}} + 84,trans {} + 54 {{36 {0 298} 1}} + 55 {{63 {0 298} 2}} + 56 {{1 {0 298} 1}} + 57 {{2 {0 298} 1}} + 58 {{3 {0 298} 1}} + 59 {{4 {0 298} 1}} + 60 {{5 {0 298} 1}} + 61 {{6 {0 298} 1}} + 62 {{7 {0 298} 1}} + 63 {{8 {0 298} 1}} + 64 {{9 {0 298} 1}} + 65 {{10 {0 298} 1}} + 66 {{11 {0 298} 1}} 26,trans {} - 67 {{13 {0 298} 1}} + 67 {{12 {0 298} 1}} 45,trans {} - 68 {{14 {0 298} 1}} + 68 {{13 {0 298} 1}} 64,trans {} - 69 {{15 {0 298} 1}} - 70 {{16 {0 298} 1}} + 69 {{14 {0 298} 1}} + 70 {{15 {0 298} 1}} 83,trans {} - 71 {{17 {0 298} 1}} - 72 {{18 {0 298} 1}} - 73 {{19 {0 298} 1}} - 74 {{20 {0 298} 1}} - 75 {{21 {0 298} 1}} - 76 {{22 {0 298} 1}} - 77 {{23 {0 298} 1}} - 78 {{24 {0 298} 1}} - 79 {{25 {0 298} 1}} - 80 {{26 {0 298} 1}} - 81 {{27 {0 298} 1}} - 82 {{64 {0 298} 2}} - 83 {{49 {0 298} 3}} - 25,trans {} - 84 {{68 {0 298} 2} {69 {0 298} 2} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} - 44,trans {} - 85 {{40 {0 284 285 286 287 288 289 290 298} 1}} + 71 {{16 {0 298} 1}} + 72 {{17 {0 298} 1}} + 73 {{18 {0 298} 1}} + 74 {{19 {0 298} 1}} + 75 {{20 {0 298} 1}} + 76 {{21 {0 298} 1}} + 77 {{22 {0 298} 1}} + 78 {{23 {0 298} 1}} + 79 {{24 {0 298} 1}} + 80 {{25 {0 298} 1}} + 81 {{26 {0 298} 1}} + 82 {{27 {0 298} 1}} + 83 {{64 {0 298} 2}} + 25,trans {{299 8} {300 9} {301 10} {302 11} {303 12} {304 13} {305 14} {306 15} {307 16} {308 17} {309 18} {310 19} {311 20} {312 21} {313 22} {314 23} {333 84}} + 84 {{49 {0 298} 3}} + 44,trans {{295 40} {296 41} {327 94}} + 85 {{68 {0 298} 2} {69 {0 298} 2} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} 63,trans {} - 86 {{41 {0 284 285 286 287 288 289 290 298} 1}} + 86 {{40 {0 284 285 286 287 288 289 290 298} 1}} 82,trans {} - 87 {{66 {0 298} 2} {67 {0 298} 2} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} + 87 {{41 {0 284 285 286 287 288 289 290 298} 1}} 0 {{0 0 0} {42 0 0} {44 0 0} {46 {0 298} 0} {47 {0 298} 0} {49 {0 298} 0} {45 {299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 0} {70 {0 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 0} {71 {0 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 0}} - 88 {{55 {0 298} 3}} - 1 {{71 {0 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 1}} - 89 {{37 {0 298} 1}} - 90 {{38 {0 298} 1}} - 2 {{0 0 1}} - 91 {{39 {0 298} 1}} - 3 {{42 0 1} {44 0 1} {43 298 0}} - 92 {{60 {0 298} 3}} - 4 {{46 {0 298} 1} {50 {0 298} 0} {51 {0 298} 0} {52 {0 298} 0} {53 {0 298} 0} {54 {0 298} 0} {55 {0 298} 0} {56 {0 298} 0} {57 {0 298} 0} {58 {0 298} 0} {59 {0 298} 0} {60 {0 298} 0} {61 {0 298} 0} {62 {0 298} 0} {63 {0 298} 0} {64 {0 298} 0} {65 {0 298} 0}} - 93 {{61 {0 298} 3} {37 {0 298} 0} {38 {0 298} 0} {39 {0 298} 0}} - 5 {{47 {0 298} 1} {49 {0 298} 1} {48 {299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 0}} - 94 {{69 {0 298} 3}} - 6 {{44 0 2}} - 95 {{67 {0 298} 3}} - 7 {{50 {0 298} 1}} - 96 {{61 {0 298} 4}} - 8 {{52 {0 298} 1}} - 9 {{51 {0 298} 1}} - 24,trans {{299 7} {300 8} {301 9} {302 10} {303 11} {304 12} {305 13} {306 14} {307 15} {308 16} {309 17} {310 18} {311 19} {312 20} {313 21} {314 22} {332 83}} - 43,trans {{295 39} {296 40} {326 93}} + 88 {{66 {0 298} 2} {67 {0 298} 2} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} + 1 {{70 {0 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 1}} + 89 {{55 {0 298} 3}} + 90 {{37 {0 298} 1}} + 2 {{71 {0 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 1}} + 91 {{38 {0 298} 1}} + 3 {{0 0 1}} + 92 {{39 {0 298} 1}} + 4 {{42 0 1} {44 0 1} {43 298 0}} + 93 {{60 {0 298} 3}} + 5 {{46 {0 298} 1} {50 {0 298} 0} {51 {0 298} 0} {52 {0 298} 0} {53 {0 298} 0} {54 {0 298} 0} {55 {0 298} 0} {56 {0 298} 0} {57 {0 298} 0} {58 {0 298} 0} {59 {0 298} 0} {60 {0 298} 0} {61 {0 298} 0} {62 {0 298} 0} {63 {0 298} 0} {64 {0 298} 0} {65 {0 298} 0}} + 94 {{61 {0 298} 3} {37 {0 298} 0} {38 {0 298} 0} {39 {0 298} 0}} + 6 {{47 {0 298} 1} {49 {0 298} 1} {48 {299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314} 0}} + 95 {{69 {0 298} 3}} + 7 {{44 0 2}} + 96 {{67 {0 298} 3}} + 8 {{50 {0 298} 1}} + 97 {{61 {0 298} 4}} + 9 {{52 {0 298} 1}} + 24,trans {} + 43,trans {} 62,trans {} 81,trans {} 23,trans {} - 42,trans {} + 42,trans {{291 90} {292 91} {293 92} {326 93}} 61,trans {} 79,trans {} 80,trans {} 9,trans {} - 22,trans {} - 41,trans {{291 89} {292 90} {293 91} {325 92}} + 22,trans {{257 56} {258 57} {259 58} {260 59} {261 60} {262 61} {263 62} {264 63} {265 64} {266 65} {267 66} {268 67} {269 68} {270 69} {271 70} {272 71} {273 72} {274 73} {275 74} {276 75} {277 76} {278 77} {279 78} {280 79} {281 80} {282 81} {283 82} {323 83}} + 41,trans {} 59,trans {} 60,trans {} 78,trans {} + 97,trans {} 8,trans {} - 21,trans {{257 55} {258 56} {259 57} {260 58} {261 59} {262 60} {263 61} {264 62} {265 63} {266 64} {267 65} {268 66} {269 67} {270 68} {271 69} {272 70} {273 71} {274 72} {275 73} {276 74} {277 75} {278 76} {279 77} {280 78} {281 79} {282 80} {283 81} {322 82}} + 21,trans {{291 53} {294 54} {325 55}} 39,trans {} 40,trans {} 58,trans {} 77,trans {} 96,trans {} - 7,trans {} - 19,trans {{284 44} {285 45} {286 46} {287 47} {288 48} {289 49} {290 50} {323 51}} - 20,trans {{291 52} {294 53} {324 54}} - 38,trans {} + 7,trans {{298 26}} + 19,trans {{295 27} {296 28} {327 44}} + 20,trans {{284 45} {285 46} {286 47} {287 48} {288 49} {289 50} {290 51} {324 52}} + 38,trans {{298 89}} 57,trans {} 76,trans {} 95,trans {} - 6,trans {{298 25}} - 18,trans {{295 26} {296 27} {326 43}} - 37,trans {{298 88}} + 6,trans {{332 25}} + 18,trans {{298 43}} + 37,trans {} 56,trans {} 75,trans {} - 5,trans {{331 24}} - 94,trans {} - 17,trans {{298 42}} + 94,trans {{291 90} {292 91} {293 92} {326 97}} + 5,trans {{299 8} {300 9} {301 10} {302 11} {303 12} {304 13} {305 14} {306 15} {307 16} {308 17} {309 18} {310 19} {311 20} {312 21} {313 22} {314 23} {333 24}} + 17,trans {} 36,trans {} 55,trans {} 74,trans {} - 4,trans {{299 7} {300 8} {301 9} {302 10} {303 11} {304 12} {305 13} {306 14} {307 15} {308 16} {309 17} {310 18} {311 19} {312 20} {313 21} {314 22} {332 23}} - 93,trans {{291 89} {292 90} {293 91} {325 96}} - 16,trans {} + 4,trans {{329 7}} + 93,trans {} + 16,trans {{295 40} {296 41} {327 42}} 35,trans {} 54,trans {} 73,trans {} - 3,trans {{328 6}} + 3,trans {} 92,trans {} - 15,trans {{295 39} {296 40} {326 41}} + 15,trans {} 34,trans {} 53,trans {} 72,trans {} 2,trans {} 91,trans {} - 14,trans {} + 14,trans {{298 39}} 33,trans {} 52,trans {} 71,trans {} 1,trans {} 89,trans {} 90,trans {} - 13,trans {{298 38}} + 13,trans {{317 32} {318 33} {319 34} {320 35} {321 36} {322 37} {336 38}} 32,trans {} 51,trans {} 69,trans {} 70,trans {} - 0,trans {{315 1} {327 2} {329 3} {330 4} {334 5}} - 88,trans {} - 12,trans {{316 31} {317 32} {318 33} {319 34} {320 35} {321 36} {335 37}} + 0,trans {{315 1} {316 2} {328 3} {330 4} {331 5} {335 6}} + 88,trans {{284 45} {285 46} {286 47} {287 48} {288 49} {289 50} {290 51} {324 96}} + 12,trans {} 31,trans {} 49,trans {} 50,trans {} 68,trans {} - 87,trans {{284 44} {285 45} {286 46} {287 47} {288 48} {289 49} {290 50} {323 95}} - 10 {{53 {0 298} 1} {66 {0 298} 0} {67 {0 298} 0} {68 {0 298} 0} {69 {0 298} 0} {40 {295 296} 0} {41 {295 296} 0}} - 11 {{54 {0 298} 1}} - 12 {{55 {0 298} 1} {72 298 0} {73 298 0} {74 298 0} {75 298 0} {76 298 0} {77 298 0}} - 13 {{57 {0 298} 1}} - 14 {{58 {0 298} 1}} - 11,trans {} - 15 {{60 {0 298} 1} {40 {291 292 293} 0} {41 {291 292 293} 0}} - 16 {{59 {0 298} 1}} - 29,trans {{295 85} {296 86} {326 87}} - 30,trans {} - 17 {{56 {0 298} 1}} + 87,trans {} + 10 {{51 {0 298} 1}} + 11 {{53 {0 298} 1} {66 {0 298} 0} {67 {0 298} 0} {68 {0 298} 0} {69 {0 298} 0} {40 {295 296} 0} {41 {295 296} 0}} + 12 {{54 {0 298} 1}} + 13 {{55 {0 298} 1} {72 298 0} {73 298 0} {74 298 0} {75 298 0} {76 298 0} {77 298 0}} + 14 {{57 {0 298} 1}} + 11,trans {{295 27} {296 28} {297 29} {327 30} {334 31}} + 15 {{58 {0 298} 1}} + 16 {{60 {0 298} 1} {40 {291 292 293} 0} {41 {291 292 293} 0}} + 29,trans {{297 85}} + 30,trans {{295 86} {296 87} {327 88}} + 17 {{59 {0 298} 1}} 48,trans {} - 18 {{61 {0 298} 1} {40 {295 296} 0} {41 {295 296} 0}} + 18 {{56 {0 298} 1}} 67,trans {} - 20 {{63 {0 298} 1} {35 {0 298} 0} {36 {0 298} 0}} - 19 {{62 {0 298} 1} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} + 20 {{62 {0 298} 1} {28 {0 298} 0} {29 {0 298} 0} {30 {0 298} 0} {31 {0 298} 0} {32 {0 298} 0} {33 {0 298} 0} {34 {0 298} 0}} + 19 {{61 {0 298} 1} {40 {295 296} 0} {41 {295 296} 0}} 86,trans {} - 21 {{64 {0 298} 1} {1 {0 298} 0} {2 {0 298} 0} {3 {0 298} 0} {4 {0 298} 0} {5 {0 298} 0} {6 {0 298} 0} {7 {0 298} 0} {8 {0 298} 0} {9 {0 298} 0} {10 {0 298} 0} {11 {0 298} 0} {12 {0 298} 0} {13 {0 298} 0} {14 {0 298} 0} {15 {0 298} 0} {16 {0 298} 0} {17 {0 298} 0} {18 {0 298} 0} {19 {0 298} 0} {20 {0 298} 0} {21 {0 298} 0} {22 {0 298} 0} {23 {0 298} 0} {24 {0 298} 0} {25 {0 298} 0} {26 {0 298} 0} {27 {0 298} 0}} - 22 {{65 {0 298} 1}} - 23 {{46 {0 298} 2}} - 24 {{49 {0 298} 2} {50 {0 298} 0} {51 {0 298} 0} {52 {0 298} 0} {53 {0 298} 0} {54 {0 298} 0} {55 {0 298} 0} {56 {0 298} 0} {57 {0 298} 0} {58 {0 298} 0} {59 {0 298} 0} {60 {0 298} 0} {61 {0 298} 0} {62 {0 298} 0} {63 {0 298} 0} {64 {0 298} 0} {65 {0 298} 0}} - 25 {{44 0 3}} - 26 {{40 {295 296} 1}} - 27 {{41 {295 296} 1}} - 28 {{68 {0 298} 1} {69 {0 298} 1}} - 30 {{53 {0 298} 2}} - 29 {{66 {0 298} 1} {67 {0 298} 1} {40 {0 284 285 286 287 288 289 290 298} 0} {41 {0 284 285 286 287 288 289 290 298} 0}} - 31 {{72 298 1}} - 32 {{73 298 1}} - 10,trans {{295 26} {296 27} {297 28} {326 29} {333 30}} - 33 {{74 298 1}} - 28,trans {{297 84}} - 34 {{75 298 1}} + 21 {{63 {0 298} 1} {35 {0 298} 0} {36 {0 298} 0}} + 22 {{64 {0 298} 1} {1 {0 298} 0} {2 {0 298} 0} {3 {0 298} 0} {4 {0 298} 0} {5 {0 298} 0} {6 {0 298} 0} {7 {0 298} 0} {8 {0 298} 0} {9 {0 298} 0} {10 {0 298} 0} {11 {0 298} 0} {12 {0 298} 0} {13 {0 298} 0} {14 {0 298} 0} {15 {0 298} 0} {16 {0 298} 0} {17 {0 298} 0} {18 {0 298} 0} {19 {0 298} 0} {20 {0 298} 0} {21 {0 298} 0} {22 {0 298} 0} {23 {0 298} 0} {24 {0 298} 0} {25 {0 298} 0} {26 {0 298} 0} {27 {0 298} 0}} + 23 {{65 {0 298} 1}} + 24 {{46 {0 298} 2}} + 25 {{49 {0 298} 2} {50 {0 298} 0} {51 {0 298} 0} {52 {0 298} 0} {53 {0 298} 0} {54 {0 298} 0} {55 {0 298} 0} {56 {0 298} 0} {57 {0 298} 0} {58 {0 298} 0} {59 {0 298} 0} {60 {0 298} 0} {61 {0 298} 0} {62 {0 298} 0} {63 {0 298} 0} {64 {0 298} 0} {65 {0 298} 0}} + 26 {{44 0 3}} + 27 {{40 {295 296} 1}} + 28 {{41 {295 296} 1}} + 30 {{66 {0 298} 1} {67 {0 298} 1} {40 {0 284 285 286 287 288 289 290 298} 0} {41 {0 284 285 286 287 288 289 290 298} 0}} + 29 {{68 {0 298} 1} {69 {0 298} 1}} + 31 {{53 {0 298} 2}} + 32 {{72 298 1}} + 10,trans {} + 33 {{73 298 1}} + 28,trans {} + 34 {{74 298 1}} 47,trans {} } @@ -1244,56 +1280,58 @@ array set fp::token_id_table { 314 UPDATE_ 282,line 32 315 CXC_ - 316 XML_ + 316 HLA_ 264,title WCSG 335,t 1 - 317 VOT_ + 317 XML_ 283,title WCSZ - 318 SB_ + 318 VOT_ 312,title SKYFORMAT 331,title {} - 320 CSV_ - 319 STARBASE_ + 320 STARBASE_ + 319 SB_ 278,line 28 - error,line 132 - 321 TSV_ - 322 wcssys + error,line 133 + 321 CSV_ + 322 TSV_ 258,t 0 - 323 skyframe - 324 skyformat - 325 rformat + 323 wcssys + 324 skyframe + 325 skyformat 275,line 25 279,t 0 280,t 0 - 326 numeric - 327 command - 328 @PSEUDO1 + 326 rformat + 327 numeric + 328 command 311,t 0 - 330 @PSEUDO2 - 329 fp - 331 @PSEUDO3 + 330 fp + 329 @PSEUDO1 + 331 @PSEUDO2 272,line 22 332,t 1 - 332 fpCmd - 333 coordinate + 332 @PSEUDO3 + 337,line 227 + 333 fpCmd 263,title WCSF - 334 site + 334 coordinate 282,title WCSY - 335 writer + 335 site 311,title SKY - 336 start' + 336 writer 330,title {} 329,title {} 268,line 18 - 334,line 215 + 337 start' + 334,line 210 276,t 0 265,line 15 307,t 0 297,t 0 - 331,line 187 + 331,line 186 328,t 1 262,line 12 - 327,line 181 + 327,line 178 0,t 0 0 {$} 262,title WCSE @@ -1305,7 +1343,7 @@ array set fp::token_id_table { 328,title {} 258,line 8 273,t 0 - 324,line 169 + 324,line 162 294,t 0 304,t 0 325,t 1 @@ -1322,7 +1360,7 @@ array set fp::token_id_table { 314,line 73 291,t 0 301,t 0 - 322,t 1 + 322,t 0 311,line 70 307,line 66 266,t 0 @@ -1365,46 +1403,46 @@ array set fp::token_id_table { 333,t 1 274,line 24 271,line 21 - 336,line 226 + 336,line 220 277,t 0 308,t 0 267,line 17 298,t 0 275,title WCSR - 333,line 209 + 333,line 191 294,title SEXAGESIMAL 304,title EXPORT 330,t 1 329,t 1 323,title {} 264,line 14 - 330,line 185 - 329,line 185 + 330,line 186 + 329,line 183 261,line 11 274,t 0 - 326,line 177 + 326,line 174 305,t 0 295,t 0 257,line 7 326,t 1 274,title WCSQ - 323,line 161 + 323,line 134 293,title ARCSEC 303,title CROSSHAIR - 322,title {} + 322,title TSV 320,line 81 319,line 80 error error 271,t 0 292,t 0 302,t 0 - 316,line 77 + 316,line 76 323,t 1 273,title WCSP 313,line 72 292,title ARCMIN 302,title COORDINATE - 321,title TSV + 321,title CSV 267,t 0 310,line 69 309,line 68 @@ -1419,8 +1457,8 @@ array set fp::token_id_table { 293,line 45 301,title CLOSE 303,line 62 - 320,title CSV - 319,title STARBASE + 320,title STARBASE + 319,title SB 264,t 0 285,t 0 289,line 40 @@ -1428,13 +1466,15 @@ array set fp::token_id_table { 300,line 59 316,t 0 286,line 37 + 337,t 1 271,title WCSN 261,t 0 283,line 33 289,title GALACTIC 290,title ECLIPTIC 300,title CLEAR - 318,title SB + 318,title VOT + 337,title {} 282,t 0 279,line 29 280,line 30 @@ -1446,7 +1486,7 @@ array set fp::token_id_table { 270,title WCSM 273,line 23 288,title ICRS - 317,title VOT + 317,title XML 278,t 0 336,title {} 310,t 0 @@ -1454,15 +1494,15 @@ array set fp::token_id_table { 299,t 0 269,line 19 270,line 20 - 335,line 219 + 335,line 216 331,t 1 266,line 16 - 332,line 190 + 332,line 188 268,title WCSK 275,t 0 263,line 13 287,title J2000 - 316,title XML + 316,title HLA 335,title {} 328,line 182 306,t 0 @@ -1470,8 +1510,8 @@ array set fp::token_id_table { 327,t 1 260,line 10 259,line 9 - 325,line 173 - 322,line 133 + 325,line 170 + 322,line 83 272,t 0 267,title WCSJ 257 WCS_ @@ -1687,7 +1727,7 @@ proc fp::yyparse {} { 68 { TBLCmdCoord $1 $2 fk5 } 69 { TBLCmdCoord $1 $2 $3 } 70 { set _ cxc } - 71 { set _ cxc } + 71 { set _ hla } 72 { set _ VOTWrite } 73 { set _ VOTWrite } 74 { set _ starbase_write } |