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 prefs { variable yylval {} variable table variable rules variable token {} variable yycnt 0 variable yyerr 0 variable save_state 0 namespace export yylex } proc prefs::YYABORT {} { return -code return 1 } proc prefs::YYACCEPT {} { return -code return 0 } proc prefs::YYERROR {} { variable yyerr set yyerr 1 } proc prefs::yyclearin {} { variable token variable yycnt set token {} incr yycnt -1 } proc prefs::yyerror {s} { puts stderr $s } proc prefs::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 prefs::unsetupvalues {numsyms} { for {set i 1} {$i <= $numsyms} {incr i} { upvar 1 $i y unset y } } array set prefs::table { 9:262,target 6 7:264,target 16 0:257 shift 0:258 shift 23:0,target 10 13:264 reduce 11:263,target 19 5:0,target 4 0:259 shift 0:260 shift 27:0 reduce 20:264,target 16 15:0,target 8 9:0 reduce 0:266,target 8 0:261 shift 2:264,target 5 15:264 reduce 0:262 shift 17:264 reduce 0:264 reduce 25:263,target 26 19:263 shift 9:261,target 5 0:265 shift 20:264 reduce 15:0 reduce 9:271,target 17 0:266 shift 2:264 reduce 22:263 shift 0:267 shift 19:263,target 22 4:264 reduce 0:265,target 7 0:268 shift 24:263 shift 6:0,target 7 0:269 shift 0:270 shift 20:0 reduce 16:0,target 14 15:273 goto 6:264 reduce 0:271 goto 2:0 reduce 26:263 shift 0:272 goto 9:260,target 4 9:259,target 3 8:264 reduce 5:264,target 4 0:274 goto 6:0 reduce 17:264,target 17 0:264,target 1 0:274,target 15 17:0,target 17 9:258,target 2 0:0,target 1 16:0 reduce 8:264,target 12 12:263,target 20 21:264,target 23 9:257,target 1 3:264,target 3 8:0,target 12 3:0 reduce 18:0,target 15 1:0,target 2 15:264,target 9 10:264 shift 0:262,target 6 26:263,target 27 12:263 shift 0:272,target 14 10:264,target 18 16:264 reduce 27:0,target 13 13:0 reduce 9:0,target 1 0:261,target 5 20:0,target 16 18:264 reduce 15:273,target 21 6:264,target 7 0:271,target 13 1:264 reduce 2:0,target 5 21:264 shift 9:257 shift 3:264 reduce 18:264,target 15 17:0 reduce 9:258 shift 0:0 reduce 1:264,target 2 9:260 shift 9:259 shift 5:264 reduce 25:263 shift 9:261 shift 13:264,target 11 9:262 shift 7:264 shift 0:259,target 3 0:260,target 4 24:263,target 25 0:269,target 11 0:270,target 12 4:0 reduce 27:264 reduce 9:264 reduce 3:0,target 3 13:0,target 11 27:264,target 13 9:264,target 1 8:0 reduce 0:258,target 2 9:271 goto 4:264,target 6 0:268,target 10 14:0 accept 16:264,target 14 4:0,target 6 14:0,target 0 18:0 reduce 0:257,target 1 1:0 reduce 22:263,target 24 0:267,target 9 23:0 reduce 11:263 shift 5:0 reduce } array set prefs::rules { 9,l 273 11,l 274 15,l 274 2,l 271 6,l 271 12,l 274 16,l 274 3,l 271 7,l 271 13,l 274 0,l 275 17,l 274 4,l 271 8,l 272 10,l 272 14,l 274 1,l 271 5,l 271 } array set prefs::rules { 5,dc 1 0,dc 1 17,dc 2 12,dc 1 8,dc 1 3,dc 1 15,dc 2 10,dc 3 6,dc 1 1,dc 0 13,dc 7 9,dc 0 4,dc 1 16,dc 2 11,dc 1 7,dc 1 2,dc 1 14,dc 2 } array set prefs::rules { 13,line 53 7,line 44 10,line 48 4,line 41 1,line 38 15,line 55 9,line 47 12,line 52 6,line 43 3,line 40 17,line 57 14,line 54 8,line 47 11,line 51 5,line 42 2,line 39 9,e 1 16,line 56 } array set prefs::lr1_table { 14,trans {} 1,trans {} 18,trans {} 23,trans {} 5,trans {} 27,trans {} 9,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {271 17}} 13,trans {} 0,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {265 7} {266 8} {267 9} {268 10} {269 11} {270 12} {271 13} {272 14} {274 15}} 17,trans {} 4,trans {} 22,trans {{263 24}} 26,trans {{263 27}} 8,trans {} 12,trans {{263 20}} 16,trans {} 3,trans {} 21,trans {{264 23}} 10 {{15 {0 264} 1}} 11 {{13 {0 264} 1}} 25,trans {{263 26}} 12 {{16 {0 264} 1}} 7,trans {{264 16}} 13 {{11 {0 264} 1}} 14 {{0 0 1}} 15 {{8 0 1} {10 0 1} {9 264 0}} 11,trans {{263 19}} 16 {{14 {0 264} 2}} 0 {{0 0 0} {8 0 0} {10 0 0} {11 {0 264} 0} {12 {0 264} 0} {13 {0 264} 0} {14 {0 264} 0} {15 {0 264} 0} {16 {0 264} 0} {17 {0 264} 0} {1 {0 264} 0} {2 {0 264} 0} {3 {0 264} 0} {4 {0 264} 0} {5 {0 264} 0} {6 {0 264} 0} {7 {0 264} 0}} 17 {{17 {0 264} 2}} 1 {{2 {0 264} 1}} 18 {{15 {0 264} 2}} 2 {{5 {0 264} 1}} 19 {{13 {0 264} 2}} 20 {{16 {0 264} 2}} 15,trans {{273 21}} 3 {{3 {0 264} 1}} 21 {{10 0 2}} 4 {{6 {0 264} 1}} 22 {{13 {0 264} 3}} 5 {{4 {0 264} 1}} 23 {{10 0 3}} 6 {{7 {0 264} 1}} 2,trans {} 19,trans {{263 22}} 20,trans {} 24 {{13 {0 264} 4}} 25 {{13 {0 264} 5}} 7 {{14 {0 264} 1}} 26 {{13 {0 264} 6}} 8 {{12 {0 264} 1}} 27 {{13 {0 264} 7}} 9 {{17 {0 264} 1} {1 {0 264} 0} {2 {0 264} 0} {3 {0 264} 0} {4 {0 264} 0} {5 {0 264} 0} {6 {0 264} 0} {7 {0 264} 0}} 24,trans {{263 25}} 6,trans {} 10,trans {{264 18}} } array set prefs::token_id_table { 264,line 16 270,t 0 269,t 0 265,title BGCOLOR 274,t 1 261,line 11 257,t 0 270,title THREADS 269,title PRECISION 273,line 47 257,line 7 262,t 0 274,title {} 270,line 25 269,line 24 259,title ON 260,title OFF 266,t 0 271,t 1 error error 264,title string 266,line 21 275,t 1 error,line 36 268,title NANCOLOR 258,t 0 263,line 14 error,title {} 275,line 58 273,title {} 263,t 0 259,line 9 260,line 10 258,title NO 272,line 46 267,t 0 263,title integer 272,t 1 268,line 23 267,title IRAFALIGN 257 YES_ 258 NO_ 259,t 0 259 ON_ 260 OFF_ 260,t 0 272,title {} 261 TRUE_ 265,line 20 262 FALSE_ 263 INT_ 257,title YES 264 STRING_ 264,t 0 265 BGCOLOR_ 262,line 12 266 CLEAR_ 267 IRAFALIGN_ 0,t 0 0 {$} 262,title FALSE 268 NANCOLOR_ 268,t 0 274,line 50 270 THREADS_ 269 PRECISION_ 271 yesno error,t 0 272 command 258,line 8 273,t 1 273 @PSEUDO1 266,title CLEAR 274 prefs 275 start' 271,line 37 271,title {} 261,t 0 267,line 22 275,title {} 265,t 0 261,title TRUE } proc prefs::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 } 3 { set _ 1 } 4 { set _ 1 } 5 { set _ 0 } 6 { set _ 0 } 7 { set _ 0 } 9 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } 12 { ClearPrefs } 13 { ProcessCmdSet pds9 prec,linear $2; ProcessCmdSet pds9 prec,deg $3; ProcessCmdSet pds9 prec,hms $4;ProcessCmdSet pds9 prec,dms $5; ProcessCmdSet pds9 prec,arcmin $6; ProcessCmdSet pds9 prec,arcsec $7 PrefsPrecision } 14 { ProcessCmdSet pds9 bg $2 PrefsBgColor } 15 { ProcessCmdSet pds9 nan $2 PrefsNanColor } 16 { ProcessCmdSet ds9 threads $2 ChangeThreads } 17 { ProcessCmdSet pds9 iraf $2 PrefsIRAFAlign } } 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 prefs::yyerror {msg} { variable yycnt variable yy_current_buffer variable index_ ParserError $msg $yycnt $yy_current_buffer $index_ }