summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2020-01-24 16:23:05 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2020-01-24 16:23:05 (GMT)
commitf6a3c0225143e856ee7166adbc6d4f1d735191a4 (patch)
tree8f187389452983f2c3d7a6fb1f99d208ced8286a
parent83c0e076765806ed1edf1dbe6b1287d4974413cc (diff)
downloadblt-f6a3c0225143e856ee7166adbc6d4f1d735191a4.zip
blt-f6a3c0225143e856ee7166adbc6d4f1d735191a4.tar.gz
blt-f6a3c0225143e856ee7166adbc6d4f1d735191a4.tar.bz2
add footprint support
-rw-r--r--ds9/library/fp.tcl117
-rw-r--r--ds9/library/fpdialog.tcl25
-rw-r--r--ds9/library/fpreg.tcl46
-rw-r--r--ds9/parsers/fplex.fcl1
-rw-r--r--ds9/parsers/fplex.tcl345
-rw-r--r--ds9/parsers/fpparser.tab.tcl13
-rw-r--r--ds9/parsers/fpparser.tac5
-rw-r--r--ds9/parsers/fpparser.tcl1728
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 }