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 cmap { variable yylval {} variable table variable rules variable token {} variable yycnt 0 variable yyerr 0 variable save_state 0 namespace export yylex } proc cmap::YYABORT {} { return -code return 1 } proc cmap::YYACCEPT {} { return -code return 0 } proc cmap::YYERROR {} { variable yyerr set yyerr 1 } proc cmap::yyclearin {} { variable token variable yycnt set token {} incr yycnt -1 } proc cmap::yyerror {s} { puts stderr $s } proc cmap::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 cmap::unsetupvalues {numsyms} { for {set i 1} {$i <= $numsyms} {incr i} { upvar 1 $i y unset y } } array set cmap::table { 9:283 goto 34:265,target 40 27:0 reduce 15:278,target 36 10:258,target 23 14:274,target 34 23:265,target 5 7:283,target 21 0:275,target 14 6:0,target 15 2:0 reduce 6:265 reduce 12:265,target 14 10:277,target 30 26:265 reduce 24:0 reduce 41:0,target 24 25:0,target 6 3:265,target 8 17:0,target 0 10:0,target 1 35:265 reduce 0:273,target 12 35:265,target 22 16:278,target 37 21:0 reduce 42:0 reduce 24:265,target 3 3:263,target 8 14:270,target 33 13:265,target 31 14:267 shift 0:271,target 10 8:262,target 27 3:263 reduce 14:270 shift 3:264 reduce 3:265 reduce 17:0 accept 14:274 shift 23:265 reduce 4:265,target 9 3:0,target 8 14:267,target 32 32:265 reduce 0:268,target 7 8:259,target 24 8:260,target 25 14:284 goto 37:0,target 23 30:0,target 17 29:0,target 18 22:0,target 2 25:265,target 6 35:0 reduce 9:283,target 29 41:265 reduce 4:263,target 9 36:263,target 3 11:265 reduce 0:266,target 6 8:257,target 22 11:0 reduce 0:263 shift 0:264 shift 32:0 reduce 0:265 shift 5:265,target 25 0:266 shift 8:257 shift 14:284,target 35 8:258 shift 19:265 reduce 20:265 reduce 0:268 shift 8:259 shift 8:260 shift 0:269 shift 0:270 shift 8:261 shift 37:265,target 23 0:271 shift 8:262 shift 0:272 shift 0:273 shift 0:274 shift 8:265 reduce 0:275 shift 6:0 reduce 0:264,target 4 0:276 shift 28:265 reduce 26:265,target 4 0:278 goto 0:279 goto 28:0 reduce 0:281 goto 0:282 goto 37:265 reduce 8:277 goto 42:0,target 12 3:0 reduce 26:0,target 4 18:0,target 10 11:0,target 16 6:265,target 15 25:0 reduce 16:263 shift 38:265,target 42 16:264 shift 15:263,target 3 0:281,target 18 27:265,target 7 5:265 reduce 22:0 reduce 25:265 reduce 10:262,target 27 16:278 goto 34:265 shift 0:278,target 16 4:0,target 9 7:265,target 20 18:0 reduce 40:265,target 30 40:0 reduce 39:265,target 29 39:0 reduce 0:a,target 1 10:259,target 24 10:260,target 25 16:263,target 3 31:0,target 20 23:0,target 5 13:265 shift 28:265,target 21 0:276,target 15 2:265 reduce 22:265 reduce 10:257,target 22 0:274,target 13 8:265,target 1 31:265 reduce 12:0 reduce 41:265,target 24 10:257 shift 10:258 shift 40:265 reduce 39:265 reduce 0:a shift 10:259 shift 10:260 shift 0:b shift 3:264,target 8 10:261 shift 30:265,target 17 29:265,target 18 8:0,target 1 10:262 shift 1:0,target 26 0:272,target 11 10:265 reduce 18:265,target 11 35:0,target 22 30:0 reduce 29:0 reduce 27:0,target 7 19:0,target 13 20:0,target 28 12:0,target 14 18:265 reduce 9:265,target 20 10:277 goto 0:269,target 8 0:270,target 9 4:0 reduce 7:265 shift 8:261,target 26 27:265 reduce 26:0 reduce 4:264,target 9 18:280 goto 36:263 shift 31:265,target 20 36:264 shift 36:264,target 4 1:0 reduce 8:258,target 23 19:265,target 13 20:265,target 28 7:283 goto 23:0 reduce 5:0,target 25 15:263 shift 36:278 goto 15:264 shift 8:277,target 28 18:280,target 38 40:0,target 30 39:0,target 29 4:263 reduce 32:0,target 31 0:265,target 5 4:264 reduce 4:265 reduce 24:0,target 3 19:0 reduce 20:0 reduce 24:265 reduce 41:0 reduce 32:265,target 31 15:278 goto 33:265 shift 21:265,target 19 0:263,target 3 10:265,target 1 37:0 reduce 36:278,target 41 15:264,target 4 0:282,target 19 12:265 reduce 1:265,target 26 2:0,target 27 33:265,target 39 1:265 reduce 21:265 reduce 22:265,target 2 0:279,target 17 28:0,target 21 9:265 shift 21:0,target 19 30:265 reduce 29:265 reduce 8:0 reduce 10:0 reduce 11:265,target 16 31:0 reduce 0:b,target 2 10:261,target 26 16:264,target 4 38:265 shift 2:265,target 27 5:0 reduce } array set cmap::rules { 27,l 282 9,l 278 11,l 280 15,l 281 20,l 281 19,l 281 2,l 277 24,l 281 6,l 277 28,l 283 12,l 279 16,l 281 21,l 281 3,l 277 25,l 282 7,l 277 30,l 284 29,l 284 13,l 281 0,l 285 17,l 281 22,l 281 4,l 277 26,l 282 8,l 278 10,l 279 31,l 284 14,l 281 18,l 281 1,l 277 23,l 281 5,l 277 } array set cmap::rules { 23,dc 2 5,dc 1 0,dc 1 17,dc 2 12,dc 3 26,dc 1 8,dc 1 21,dc 2 3,dc 1 15,dc 1 10,dc 1 30,dc 2 29,dc 2 24,dc 3 6,dc 1 18,dc 2 1,dc 0 13,dc 1 27,dc 1 9,dc 1 22,dc 2 4,dc 1 16,dc 1 11,dc 0 31,dc 1 25,dc 1 7,dc 1 20,dc 2 19,dc 2 2,dc 1 14,dc 1 28,dc 1 } array set cmap::rules { 13,line 63 25,line 85 7,line 53 10,line 59 22,line 79 4,line 50 18,line 73 1,line 47 31,line 95 15,line 67 27,line 87 9,line 56 12,line 60 24,line 82 6,line 52 21,line 77 3,line 49 17,line 71 30,line 94 29,line 93 14,line 64 26,line 86 8,line 55 11,line 59 23,line 81 5,line 51 20,line 76 19,line 75 2,line 48 16,line 69 11,e 1 28,line 90 } array set cmap::lr1_table { 35 {{22 {0 265} 2}} 36 {{24 {0 265} 2} {8 {0 265} 0} {9 {0 265} 0}} 14,trans {{267 32} {270 33} {274 34} {284 35}} 33,trans {{265 41}} 37 {{8 {0 265} 1}} 38 {{9 {0 265} 1}} 40 {{12 0 2}} 39 {{23 {0 265} 2}} 41 {{29 {0 265} 2}} 18,trans {{280 40}} 1,trans {} 37,trans {} 42 {{30 {0 265} 2}} 43 {{24 {0 265} 3}} 44 {{12 0 3}} 23,trans {} 5,trans {} 42,trans {} 27,trans {} 9,trans {{265 20} {283 29}} 13,trans {{265 31}} 32,trans {} 17,trans {} 0,trans {{a 1} {b 2} {263 3} {264 4} {265 5} {266 6} {268 7} {269 8} {270 9} {271 10} {272 11} {273 12} {274 13} {275 14} {276 15} {278 16} {279 17} {281 18} {282 19}} 36,trans {{263 37} {264 38} {278 43}} 22,trans {} 4,trans {} 41,trans {} 26,trans {} 8,trans {{257 22} {258 23} {259 24} {260 25} {261 26} {262 27} {277 28}} 12,trans {} 31,trans {} 16,trans {{263 37} {264 38} {278 39}} 35,trans {} 21,trans {} 3,trans {} 40,trans {{265 44}} 39,trans {} 10 {{17 {0 265} 1} {1 {0 265} 0} {2 {0 265} 0} {3 {0 265} 0} {4 {0 265} 0} {5 {0 265} 0} {6 {0 265} 0} {7 {0 265} 0}} 11 {{16 {0 265} 1}} 25,trans {} 12 {{14 {0 265} 1}} 7,trans {{265 20} {283 21}} 44,trans {} 13 {{20 {0 265} 1}} 14 {{22 {0 265} 1} {29 {0 265} 0} {30 {0 265} 0} {31 {0 265} 0}} 15 {{24 {0 265} 1} {8 {263 264} 0} {9 {263 264} 0}} 11,trans {} 30,trans {} 29,trans {} 16 {{23 {0 265} 1} {8 {0 265} 0} {9 {0 265} 0}} 0 {{0 0 0} {10 0 0} {12 0 0} {13 {0 265} 0} {14 {0 265} 0} {15 {0 265} 0} {16 {0 265} 0} {17 {0 265} 0} {18 {0 265} 0} {19 {0 265} 0} {20 {0 265} 0} {21 {0 265} 0} {22 {0 265} 0} {23 {0 265} 0} {24 {0 265} 0} {25 {0 265} 0} {26 {0 265} 0} {27 {0 265} 0} {8 {263 264} 0} {9 {263 264} 0}} 17 {{0 0 1}} 1 {{26 {0 265} 1}} 18 {{10 0 1} {12 0 1} {11 265 0}} 15,trans {{263 3} {264 4} {278 36}} 2 {{27 {0 265} 1}} 19 {{13 {0 265} 1}} 20 {{28 {0 265} 1}} 34,trans {{265 42}} 3 {{8 {263 264} 1}} 21 {{19 {0 265} 2}} 4 {{9 {263 264} 1}} 22 {{2 {0 265} 1}} 5 {{25 {0 265} 1}} 23 {{5 {0 265} 1}} 20,trans {} 19,trans {} 6 {{15 {0 265} 1}} 2,trans {} 24 {{3 {0 265} 1}} 38,trans {} 7 {{19 {0 265} 1} {28 {0 265} 0}} 25 {{6 {0 265} 1}} 8 {{21 {0 265} 1} {1 {0 265} 0} {2 {0 265} 0} {3 {0 265} 0} {4 {0 265} 0} {5 {0 265} 0} {6 {0 265} 0} {7 {0 265} 0}} 26 {{4 {0 265} 1}} 9 {{18 {0 265} 1} {28 {0 265} 0}} 27 {{7 {0 265} 1}} 24,trans {} 6,trans {} 28 {{21 {0 265} 2}} 43,trans {} 29 {{18 {0 265} 2}} 30 {{17 {0 265} 2}} 31 {{20 {0 265} 2}} 10,trans {{257 22} {258 23} {259 24} {260 25} {261 26} {262 27} {277 30}} 32 {{31 {0 265} 1}} 28,trans {} 33 {{29 {0 265} 1}} 34 {{30 {0 265} 1}} } array set cmap::token_id_table { 280,title {} 279,title {} 264,line 15 270,t 0 269,t 0 b,t 0 276,line 31 265,title string 284,title {} 274,t 0 261,line 11 257,t 0 270,title LOAD 269,title INVERT 273,line 28 278,t 1 257,line 7 262,t 0 285,line 96 274,title SAVE 283,t 1 270,line 25 269,line 24 259,title ON 260,title OFF 266,t 0 278,title {} 282,line 84 error error 271,t 0 264,title float 266,line 21 283,title {} 278,line 54 error,line 45 275,t 0 268,title FILE 258,t 0 263,line 14 error,title {} 280,t 1 279,t 1 275,line 30 273,title OPEN 263,t 0 259,line 9 260,line 10 258,title NO 284,t 1 277,title {} 272,line 27 267,t 0 a a 263,title integer 284,line 92 b b 282,title {} 272,t 0 268,line 23 267,title DELETE b,line 86 257 YES_ 281,line 62 276,t 0 258 NO_ b,title {} 259,t 0 259 ON_ 260 OFF_ 260,t 0 272,title MATCH 261 TRUE_ 265,line 17 262 FALSE_ 281,t 1 263 INT_ 277,line 46 257,title YES 264 REAL_ 264,t 0 276,title VALUE 265 STRING_ 262,line 12 266 CLOSE_ 285,t 1 267 DELETE_ 0,t 0 0 {$} 262,title FALSE 268 FILE_ 268,t 0 a,t 0 281,title {} 274,line 29 270 LOAD_ 269 INVERT_ error,t 0 271 LOCK_ 272 MATCH_ 258,line 8 273,t 0 273 OPEN_ 266,title CLOSE 285,title {} 274 SAVE_ 275 TAG_ 271,line 26 a,title {} 276 VALUE_ 277,t 1 277 yesno 271,title LOCK 283,line 89 278 numeric 261,t 0 280 @PSEUDO1 279 command 281 cmap 267,line 22 282,t 1 282 cmapSelect 275,title TAG 283 cmapLoad a,line 85 265,t 0 284 cmapTag 280,line 59 279,line 58 285 start' 261,title TRUE } proc cmap::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 } 8 { set _ $1 } 9 { set _ $1 } 11 { global ds9; if {!$ds9(init)} {YYERROR} else {yyclearin; YYACCEPT} } 14 { ColormapDialog } 15 { ColormapDestroyDialog } 16 { MatchColorCurrent } 17 { ProcessCmdSet colorbar lock $2 LockColorCurrent } 20 { SaveColormapFile $2; FileLast colormapfbox $2 } 21 { ProcessCmdSet colorbar invert $2 InvertColorbar } 23 { CmapValueCmd $1 $2 } 24 { CmapValueCmd $2 $3 } 25 { CmapCmd $1 } 26 { CmapCmd a } 27 { CmapCmd b } 28 { LoadColormapFile $1; FileLast colormapfbox $1 } 29 { LoadColorTag $2 } 30 { ProcessCmdCurrent colorbar "tag save $2" } 31 { DeleteColorTag } } 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 cmap::yyerror {msg} { variable yycnt variable yy_current_buffer variable index_ ParserError $msg $yycnt $yy_current_buffer $index_ }