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 vo { variable yylval {} variable table variable rules variable token {} variable yycnt 0 variable yyerr 0 variable save_state 0 namespace export yylex } proc vo::YYABORT {} { return -code return 1 } proc vo::YYACCEPT {} { return -code return 0 } proc vo::YYERROR {} { variable yyerr set yyerr 1 } proc vo::yyclearin {} { variable token variable yycnt set token {} incr yycnt -1 } proc vo::yyerror {s} { puts stderr $s } proc vo::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 vo::unsetupvalues {numsyms} { for {set i 1} {$i <= $numsyms} {incr i} { upvar 1 $i y unset y } } array set vo::table { 25:264,target 14 11:264 reduce 7:274,target 23 23:0,target 20 13:264 reduce 27:0 reduce 20:264,target 7 19:264,target 4 15:0,target 2 6:260,target 18 0:266,target 3 2:264,target 12 6:259,target 17 15:264 reduce 11:0 reduce 0:276,target 10 17:264 reduce 14:264,target 18 0:264 shift 6:257 shift 6:258 shift 0:265 shift 20:264 reduce 19:264 reduce 15:0 reduce 6:260 shift 0:266 shift 2:264 reduce 6:259 shift 0:267 shift 4:263 shift 6:261 shift 22:264 reduce 6:262 shift 6:258,target 16 0:265,target 2 0:268 shift 24:0,target 13 0:270 shift 0:269 shift 6:0,target 1 24:264 reduce 20:0 reduce 19:0 reduce 16:0,target 5 11:277 goto 2:0 reduce 6:264 reduce 0:272 shift 26:264 shift 23:264,target 20 8:264 reduce 0:273 shift 5:264,target 14 24:0 reduce 6:0 reduce 17:264,target 3 0:276 goto 0:264,target 1 6:257,target 15 0:278 goto 25:0,target 14 12:264,target 17 17:0,target 3 12:0 reduce 10:0,target 0 7:271,target 22 6:275 goto 26:264,target 27 16:0 reduce 8:264,target 11 0:273,target 9 21:264,target 15 3:264,target 12 21:0 reduce 8:0,target 11 18:0,target 6 7:279,target 24 1:0,target 19 15:264,target 2 11:0,target 8 0:272,target 8 25:0 reduce 12:264 reduce 6:275,target 21 14:264 reduce 16:264 reduce 27:0,target 10 13:0 reduce 24:264,target 13 20:0,target 7 19:0,target 4 18:264 reduce 11:277,target 26 1:264 reduce 2:0,target 12 6:264,target 1 12:0,target 17 21:264 reduce 3:264 shift 18:264,target 6 17:0 reduce 1:264,target 19 23:264 reduce 5:264 shift 25:264 reduce 13:264,target 16 22:0 reduce 0:270,target 7 0:269,target 6 9:264 shift 21:0,target 15 13:0,target 16 9:264,target 25 8:0 reduce 10:0 accept 7:271 shift 22:264,target 21 6:262,target 20 0:268,target 5 7:274 shift 0:278,target 11 14:0 reduce 16:264,target 5 22:0,target 21 14:0,target 18 18:0 reduce 11:264,target 9 7:279 goto 1:0 reduce 6:261,target 19 0:267,target 4 4:263,target 13 23:0 reduce } array set vo::rules { 9,l 277 11,l 278 15,l 278 20,l 279 19,l 278 2,l 275 6,l 275 12,l 278 16,l 278 21,l 279 3,l 275 7,l 275 13,l 278 0,l 280 17,l 278 4,l 275 8,l 276 10,l 276 14,l 278 18,l 278 1,l 275 5,l 275 } array set vo::rules { 5,dc 1 0,dc 1 17,dc 2 12,dc 1 8,dc 1 21,dc 1 3,dc 1 15,dc 2 10,dc 3 6,dc 1 18,dc 2 1,dc 0 13,dc 2 9,dc 0 4,dc 1 16,dc 2 11,dc 1 7,dc 1 20,dc 1 19,dc 1 2,dc 1 14,dc 2 } array set vo::rules { 13,line 57 7,line 48 10,line 52 4,line 45 18,line 62 1,line 42 15,line 59 9,line 51 12,line 56 6,line 47 21,line 67 3,line 44 17,line 61 14,line 58 8,line 51 11,line 55 5,line 46 20,line 66 19,line 63 2,line 43 9,e 1 16,line 60 } array set vo::lr1_table { 14,trans {} 1,trans {} 18,trans {} 23,trans {} 5,trans {{264 14}} 27,trans {} 9,trans {{264 25}} 13,trans {} 0,trans {{264 1} {265 2} {266 3} {267 4} {268 5} {269 6} {270 7} {272 8} {273 9} {276 10} {278 11}} 17,trans {} 22,trans {} 4,trans {{263 13}} 26,trans {{264 27}} 8,trans {} 12,trans {} 16,trans {} 21,trans {} 3,trans {{264 12}} 10 {{0 0 1}} 11 {{8 0 1} {10 0 1} {9 264 0}} 25,trans {} 12 {{17 {0 264} 2}} 7,trans {{271 22} {274 23} {279 24}} 13 {{16 {0 264} 2}} 14 {{18 {0 264} 2}} 15 {{2 {0 264} 1}} 11,trans {{277 26}} 16 {{5 {0 264} 1}} 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} {18 {0 264} 0} {19 {0 264} 0}} 17 {{3 {0 264} 1}} 1 {{19 {0 264} 1}} 18 {{6 {0 264} 1}} 2 {{12 {0 264} 1}} 19 {{4 {0 264} 1}} 20 {{7 {0 264} 1}} 15,trans {} 3 {{17 {0 264} 1}} 21 {{15 {0 264} 2}} 4 {{16 {0 264} 1}} 22 {{21 {0 264} 1}} 5 {{18 {0 264} 1}} 23 {{20 {0 264} 1}} 6 {{15 {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}} 2,trans {} 24 {{13 {0 264} 2}} 19,trans {} 20,trans {} 7 {{13 {0 264} 1} {20 {0 264} 0} {21 {0 264} 0}} 25 {{14 {0 264} 2}} 8 {{11 {0 264} 1}} 26 {{10 0 2}} 27 {{10 0 3}} 9 {{14 {0 264} 1}} 24,trans {} 6,trans {{257 15} {258 16} {259 17} {260 18} {261 19} {262 20} {275 21}} 10,trans {} } array set vo::token_id_table { 280,title {} 279,title {} 264,line 16 270,t 0 269,t 0 276,line 50 265,title CLOSE 274,t 0 261,line 11 257,t 0 270,title METHOD 269,title INTERNAL 273,line 28 278,t 1 257,line 7 262,t 0 274,title XPA 270,line 25 269,line 24 259,title ON 260,title OFF 266,t 0 278,title {} error error 271,t 0 264,title string 266,line 21 278,line 54 275,t 1 error,line 40 268,title DISCONNECT 258,t 0 263,line 14 error,title {} 280,t 1 279,t 1 275,line 41 273,title SERVER 263,t 0 259,line 9 260,line 10 258,title NO 277,title {} 272,line 27 267,t 0 263,title integer 272,t 0 268,line 23 267,title DELAY 257 YES_ 276,t 1 258 NO_ 259,t 0 259 ON_ 260 OFF_ 260,t 0 272,title OPEN 261 TRUE_ 265,line 20 262 FALSE_ 263 INT_ 277,line 51 257,title YES 264 STRING_ 264,t 0 276,title {} 265 CLOSE_ 262,line 12 266 CONNECT_ 267 DELAY_ 0,t 0 0 {$} 262,title FALSE 268 DISCONNECT_ 268,t 0 274,line 29 270 METHOD_ 269 INTERNAL_ error,t 0 271 MIME_ 272 OPEN_ 258,line 8 273,t 0 273 SERVER_ 266,title CONNECT 274 XPA_ 275 yesno 271,line 26 276 command 277,t 1 277 @PSEUDO1 271,title MIME 278 vo 261,t 0 280 start' 279 method 267,line 22 275,title {} 265,t 0 280,line 68 279,line 65 261,title TRUE } proc vo::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} } 11 { VODialog } 12 { VODestroy voi } 13 { ProcessCmdSet pvo method $2 } 14 { ProcessCmdSet pvo server $2 } 15 { ProcessCmdSet pvo hv $2 } 16 { ProcessCmdSet pvo delay $2 } 17 { VOCmdConnect $2 } 18 { VOCmdDisconnect $2 } 19 { VOCmdConnect $1 } 20 { set _ xpa } 21 { set _ mime } } 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 vo::yyerror {msg} { variable yycnt variable yy_current_buffer variable index_ ParserError $msg $yycnt $yy_current_buffer $index_ }