package provide DS9 1.0 ###### # Begin autogenerated taccle (version 1.3) routines. # Although taccle itself is protected by the GNU Public License (GPL) # all user-supplied functions are protected by their respective # author's license. See http://mini.net/tcl/taccle for other details. ###### namespace eval saveimage { variable yylval {} variable table variable rules variable token {} variable yycnt 0 variable yyerr 0 variable save_state 0 namespace export yylex } proc saveimage::YYABORT {} { return -code return 1 } proc saveimage::YYACCEPT {} { return -code return 0 } proc saveimage::YYERROR {} { variable yyerr set yyerr 1 } proc saveimage::yyclearin {} { variable token variable yycnt set token {} incr yycnt -1 } proc saveimage::yyerror {s} { puts stderr $s } proc saveimage::setupvalues {stack pointer numsyms} { upvar 1 1 y set y {} for {set i 1} {$i <= $numsyms} {incr i} { upvar 1 $i y set y [lindex $stack $pointer] incr pointer } } proc saveimage::unsetupvalues {numsyms} { for {set i 1} {$i <= $numsyms} {incr i} { upvar 1 $i y unset y } } array set saveimage::table { 7:264,target 17 17:259 reduce 27:0 reduce 6:259,target 16 6:257 reduce 3:267,target 13 6:258 reduce 6:259 reduce 0:275,target 11 6:0,target 16 2:0 reduce 6:264 reduce 1:258,target 13 27:259,target 7 6:267 reduce 6:268 reduce 6:257,target 16 6:269 reduce 4:269,target 14 25:0,target 11 16:259,target 21 17:0,target 22 10:0,target 3 0:273,target 10 7:259,target 17 21:0 reduce 11:258,target 13 14:259 reduce 4:267,target 14 3:257 reduce 3:258 reduce 23:257 shift 3:259 reduce 23:258 shift 2:258,target 12 28:259,target 8 23:259 reduce 0:271,target 9 3:264 reduce 7:257,target 17 17:0 reduce 23:264 shift 5:269,target 15 3:267 reduce 17:259,target 22 3:268 reduce 23:267 shift 3:269 reduce 23:268 shift 23:270 goto 23:269 shift 3:0,target 13 23:258,target 13 8:259,target 20 23:276 goto 14:0 reduce 5:267,target 15 11:257 shift 14:0,target 20 11:258 shift 11:259 shift 3:258,target 13 11:264 shift 20:257 shift 0:259 shift 0:260 shift 0:261 shift 0:266,target 8 9:0 accept 11:267 shift 20:259 reduce 19:259 reduce 0:262 shift 6:269,target 16 11:268 shift 0:263 shift 11:269 shift 11:270 goto 18:259,target 23 0:264 shift 0:265 shift 0:266 shift 8:259 shift 11:276 goto 28:259 reduce 0:271 goto 1:268,target 16 0:273 goto 0:275 goto 6:0 reduce 0:264,target 6 6:267,target 16 28:0 reduce 7:0,target 17 8:274 goto 4:258,target 14 8:274,target 21 26:0,target 5 3:0 reduce 7:269,target 17 18:0,target 23 20:259,target 10 19:259,target 6 0:262,target 4 11:268,target 16 25:0 reduce 16:259 reduce 5:257 reduce 5:258 reduce 2:268,target 12 5:259 reduce 25:259 reduce 1:264,target 14 5:264 reduce 7:267,target 17 20:257,target 25 0:260,target 2 0:259,target 1 5:267 reduce 5:268 reduce 5:269 reduce 5:258,target 15 23:268,target 16 21:259,target 9 4:0,target 14 18:0 reduce 11:264,target 14 10:259,target 4 13:259 reduce 3:268,target 13 23:0,target 18 2:257 reduce 2:258 reduce 2:264,target 12 15:0,target 19 2:259 reduce 22:259 shift 1:259,target 18 2:264 reduce 15:0 reduce 6:258,target 16 2:267 reduce 2:268 reduce 2:269 reduce 23:264,target 14 22:259,target 26 1:257,target 12 12:0 reduce 11:259,target 23 4:268,target 14 10:259 reduce 3:264,target 13 1:276,target 19 1:0,target 18 2:259,target 12 7:0 reduce 18:259 reduce 7:258,target 17 11:257,target 12 27:0,target 7 10:272 goto 20:0,target 10 19:0,target 6 7:257 reduce 7:258 reduce 12:0,target 1 7:259 reduce 23:259,target 18 27:259 reduce 2:257,target 12 7:264 reduce 4:0 reduce 11:276,target 24 7:267 reduce 12:259,target 1 7:268 reduce 10:272,target 22 26:0 reduce 5:268,target 15 7:269 reduce 4:264,target 14 23:257,target 12 3:259,target 13 1:0 reduce 23:0 reduce 15:259 reduce 23:276,target 27 5:0,target 15 24:259,target 28 4:257 reduce 4:258 reduce 3:257,target 13 4:259 reduce 1:270,target 18 1:269,target 17 24:259 shift 13:259,target 2 0:265,target 7 4:264 reduce 6:268,target 16 20:0 reduce 19:0 reduce 16:0,target 21 4:267 reduce 4:268 reduce 5:264,target 15 4:269 reduce 4:259,target 14 1:267,target 15 0:263,target 5 11:269,target 17 11:270,target 18 16:0 reduce 25:259,target 11 12:259 reduce 4:257,target 14 2:269,target 12 1:257 shift 1:258 shift 14:259,target 20 1:259 reduce 7:268,target 17 21:259 reduce 0:261,target 3 9:0,target 0 11:267,target 15 13:0 reduce 2:0,target 12 1:264 shift 6:264,target 16 1:267 shift 5:259,target 15 23:270,target 18 23:269,target 17 1:268 shift 1:270 goto 1:269 shift 2:267,target 12 28:0,target 8 21:0,target 9 13:0,target 2 1:276 goto 10:0 reduce 5:257,target 15 23:267,target 15 3:269,target 13 15:259,target 19 5:0 reduce } array set saveimage::rules { 9,l 273 11,l 274 15,l 275 20,l 276 19,l 276 2,l 270 6,l 273 12,l 275 16,l 275 21,l 276 3,l 271 7,l 273 13,l 275 0,l 277 17,l 275 22,l 276 4,l 272 8,l 273 10,l 274 14,l 275 18,l 276 1,l 270 23,l 276 5,l 271 } array set saveimage::rules { 23,dc 1 5,dc 3 0,dc 1 17,dc 1 12,dc 1 8,dc 3 21,dc 1 3,dc 1 15,dc 1 10,dc 1 6,dc 2 18,dc 0 1,dc 1 13,dc 1 9,dc 2 22,dc 1 4,dc 0 16,dc 1 11,dc 2 7,dc 3 20,dc 1 19,dc 1 2,dc 1 14,dc 1 } array set saveimage::rules { 13,line 53 7,line 42 10,line 48 22,line 65 4,line 36 18,line 61 1,line 32 15,line 55 9,line 45 12,line 52 6,line 40 21,line 64 3,line 36 17,line 57 4,e 1 14,line 54 8,line 44 11,line 49 23,line 66 5,line 37 20,line 63 19,line 62 2,line 33 16,line 56 } array set saveimage::lr1_table { 35 {{8 {0 259} 3}} 14,trans {} 33,trans {} 18,trans {} 1,trans {{257 12} {258 13} {264 14} {267 15} {268 16} {269 17} {270 18} {276 19}} 23,trans {} 5,trans {} 27,trans {} 9,trans {} 13,trans {} 32,trans {} 17,trans {} 0,trans {{259 1} {260 2} {261 3} {262 4} {263 5} {264 6} {265 7} {266 8} {271 9} {273 10} {275 11}} 22,trans {{259 33}} 4,trans {} 26,trans {} 8,trans {{259 20} {274 21}} 12,trans {} 31,trans {{259 35}} 16,trans {} 35,trans {} 21,trans {} 3,trans {} 10 {{3 0 1} {5 0 1} {4 259 0}} 11 {{7 {0 259} 1} {8 {0 259} 1} {18 259 0} {19 259 0} {20 259 0} {21 259 0} {22 259 0} {23 259 0} {1 259 0} {2 259 0}} 25,trans {{257 12} {258 13} {264 14} {267 15} {268 16} {269 17} {270 18} {276 34}} 12 {{1 {0 259} 1}} 7,trans {} 13 {{2 {0 259} 1}} 14 {{20 {0 259} 1}} 15 {{19 {0 259} 1}} 11,trans {{257 23} {258 24} {259 25} {264 26} {267 27} {268 28} {269 29} {270 30} {276 31}} 30,trans {} 29,trans {} 16 {{21 {0 259} 1}} 0 {{0 0 0} {3 0 0} {5 0 0} {6 {0 259} 0} {7 {0 259} 0} {8 {0 259} 0} {9 {0 259} 0} {12 {0 257 258 259 264 267 268 269} 0} {13 {0 257 258 259 264 267 268 269} 0} {14 {0 257 258 259 264 267 268 269} 0} {15 {0 257 258 259 264 267 268 269} 0} {16 {0 257 258 259 264 267 268 269} 0} {17 {0 257 258 259 264 267 268 269} 0}} 17 {{22 {0 259} 1}} 1 {{6 {0 259} 1} {18 {0 259} 0} {19 {0 259} 0} {20 {0 259} 0} {21 {0 259} 0} {22 {0 259} 0} {23 {0 259} 0} {1 {0 259} 0} {2 {0 259} 0}} 18 {{23 {0 259} 1}} 2 {{12 {0 257 258 259 264 267 268 269} 1}} 19 {{6 {0 259} 2}} 20 {{10 {0 259} 1} {11 {0 259} 1}} 15,trans {} 34,trans {} 3 {{13 {0 257 258 259 264 267 268 269} 1}} 21 {{9 {0 259} 2}} 4 {{14 {0 257 258 259 264 267 268 269} 1}} 22 {{5 0 2}} 5 {{15 {0 257 258 259 264 267 268 269} 1}} 23 {{1 259 1}} 20,trans {{257 32}} 19,trans {} 6 {{16 {0 257 258 259 264 267 268 269} 1}} 2,trans {} 24 {{2 259 1}} 7 {{17 {0 257 258 259 264 267 268 269} 1}} 25 {{7 {0 259} 2} {18 {0 259} 0} {19 {0 259} 0} {20 {0 259} 0} {21 {0 259} 0} {22 {0 259} 0} {23 {0 259} 0} {1 {0 259} 0} {2 {0 259} 0}} 8 {{9 {0 259} 1} {10 {0 259} 0} {11 {0 259} 0}} 26 {{20 259 1}} 9 {{0 0 1}} 27 {{19 259 1}} 24,trans {} 6,trans {} 28 {{21 259 1}} 29 {{22 259 1}} 30 {{23 259 1}} 31 {{8 {0 259} 2}} 32 {{11 {0 259} 2}} 10,trans {{272 22}} 28,trans {} 33 {{5 0 3}} 34 {{7 {0 259} 3}} } array set saveimage::token_id_table { 264,line 18 270,t 1 269,t 0 276,line 60 265,title PNG 274,t 1 261,line 15 257,t 0 270,title {} 269,title DEFLATE 273,line 39 257,line 7 262,t 0 274,title {} 270,line 31 269,line 24 259,title string 260,title FITS 266,t 0 271,t 1 error error 264,title JPEG 266,line 20 275,t 1 error,line 30 268,title PACKBITS 258,t 0 263,line 17 error,title {} 275,line 51 273,title {} 263,t 0 259,line 10 260,line 14 258,title float 277,title {} 272,line 36 267,t 0 263,title TIFF 272,t 1 268,line 23 267,title NONE 257 INT_ 276,t 1 258 REAL_ 259,t 0 259 STRING_ 260 FITS_ 260,t 0 272,title {} 261 EPS_ 265,line 19 262 GIF_ 263 TIFF_ 277,line 67 257,title integer 264 JPEG_ 264,t 0 276,title {} 265 PNG_ 262,line 16 266 MPEG_ 267 NONE_ 0,t 0 0 {$} 262,title GIF 268 PACKBITS_ 268,t 0 274,line 47 270 numeric 269 DEFLATE_ 271 command error,t 0 272 @PSEUDO1 258,line 8 273,t 1 273 saveimage 266,title MPEG 274 mpeg 275 ext 271,line 35 276 opts 277,t 1 277 start' 271,title {} 261,t 0 267,line 22 275,title {} 265,t 0 261,title EPS } proc saveimage::yyparse {} { variable yylval variable table variable rules variable token variable yycnt variable lr1_table variable token_id_table variable yyerr variable save_state set yycnt 0 set state_stack {0} set value_stack {{}} set token "" set accepted 0 set yyerr 0 set save_state 0 while {$accepted == 0} { set state [lindex $state_stack end] if {$token == ""} { set yylval "" set token [yylex] set buflval $yylval if {$token>0} { incr yycnt } } if {![info exists table($state:$token)] || $yyerr} { if {!$yyerr} { set save_state $state } # pop off states until error token accepted while {[llength $state_stack] > 0 && \ ![info exists table($state:error)]} { set state_stack [lrange $state_stack 0 end-1] set value_stack [lrange $value_stack 0 \ [expr {[llength $state_stack] - 1}]] set state [lindex $state_stack end] } if {[llength $state_stack] == 0} { set rr { } if {[info exists lr1_table($save_state,trans)] && [llength $lr1_table($save_state,trans)] >= 1} { foreach trans $lr1_table($save_state,trans) { foreach {tok_id nextstate} $trans { set ss $token_id_table($tok_id,title) if {$ss != {}} { append rr "$ss, " } } } } set rr [string trimleft $rr { }] set rr [string trimright $rr {, }] yyerror "parse error, expecting: $rr" return 1 } lappend state_stack [set state $table($state:error,target)] lappend value_stack {} # consume tokens until it finds an acceptable one while {![info exists table($state:$token)]} { if {$token == 0} { yyerror "end of file while recovering from error" return 1 } set yylval {} set token [yylex] set buflval $yylval } continue } switch -- $table($state:$token) { shift { lappend state_stack $table($state:$token,target) lappend value_stack $buflval set token "" } reduce { set rule $table($state:$token,target) set ll $rules($rule,l) if {[info exists rules($rule,e)]} { set dc $rules($rule,e) } else { set dc $rules($rule,dc) } set stackpointer [expr {[llength $state_stack]-$dc}] setupvalues $value_stack $stackpointer $dc set _ $1 set yylval [lindex $value_stack end] switch -- $rule { 1 { set _ $1 } 2 { set _ $1 } 4 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } 6 { SaveImageCmdLoad [ExtToFormat $1] $1 } 7 { SaveImageCmdLoad $1 $2 } 8 { SaveImageCmdLoad $1 $3 } 10 { SaveImageCmdMPEG $1 1 } 11 { SaveImageCmdMPEG $1 $2 } 12 { set _ fits } 13 { set _ eps } 14 { set _ gif } 15 { set _ tiff } 16 { set _ jpeg } 17 { set _ png } 19 { ProcessCmdSet saveimage tiff,compress none } 20 { ProcessCmdSet saveimage tiff,compress jpeg } 21 { ProcessCmdSet saveimage tiff,compress packbits } 22 { ProcessCmdSet saveimage tiff,compress deflate } 23 { ProcessCmdSet saveimage jpeg,quality $1 } } unsetupvalues $dc # pop off tokens from the stack if normal rule if {![info exists rules($rule,e)]} { incr stackpointer -1 set state_stack [lrange $state_stack 0 $stackpointer] set value_stack [lrange $value_stack 0 $stackpointer] } # now do the goto transition lappend state_stack $table([lindex $state_stack end]:$ll,target) lappend value_stack $_ } accept { set accepted 1 } goto - default { puts stderr "Internal parser error: illegal command $table($state:$token)" return 2 } } } return 0 } ###### # end autogenerated taccle functions ###### proc saveimage::yyerror {msg} { variable yycnt variable yy_current_buffer variable index_ ParserError $msg $yycnt $yy_current_buffer $index_ }