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 viewsend {
    variable yylval {}
    variable table
    variable rules
    variable token {}
    variable yycnt 0
    variable yyerr 0
    variable save_state 0

    namespace export yylex
}

proc viewsend::YYABORT {} {
    return -code return 1
}

proc viewsend::YYACCEPT {} {
    return -code return 0
}

proc viewsend::YYERROR {} {
    variable yyerr
    set yyerr 1
}

proc viewsend::yyclearin {} {
    variable token
    variable yycnt
    set token {}
    incr yycnt -1
}

proc viewsend::yyerror {s} {
    puts stderr $s
}

proc viewsend::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 viewsend::unsetupvalues {numsyms} {
    for {set i 1} {$i <= $numsyms} {incr i} {
        upvar 1 $i y
        unset y
    }
}

array set viewsend::table {
  27:0 reduce
  48:0 reduce
  0:296,target 39
  0:306,target 49
  0:275,target 19
  6:0,target 6
  2:0 reduce
  56:0,target 53
  24:0 reduce
  48:0,target 47
  41:0,target 48
  45:0 reduce
  33:0,target 41
  0:304,target 47
  25:0,target 25
  17:0,target 17
  10:0,target 10
  0:273,target 17
  21:0 reduce
  42:0 reduce
  0:302,target 45
  0:292,target 36
  0:271,target 15
  17:0 reduce
  38:0 reduce
  60:0 reduce
  59:0 reduce
  0:290,target 34
  0:289,target 33
  0:300,target 43
  3:0,target 3
  53:0,target 56
  0:268,target 12
  45:0,target 38
  37:0,target 58
  14:0 reduce
  29:0,target 29
  30:0,target 30
  22:0,target 22
  14:0,target 14
  35:0 reduce
  56:0 reduce
  0:287,target 31
  0:257 shift
  0:258 shift
  0:259 shift
  0:260 shift
  0:261 shift
  0:266,target 10
  9:0 reduce
  0:262 shift
  11:0 reduce
  0:263 shift
  0:264 shift
  0:265 shift
  32:0 reduce
  0:266 shift
  0:267 shift
  53:0 reduce
  0:268 shift
  0:269 shift
  0:270 shift
  0:271 shift
  0:285,target 29
  0:272 shift
  0:273 shift
  0:274 shift
  0:275 shift
  6:0 reduce
  0:264,target 8
  0:276 shift
  0:277 shift
  0:278 shift
  0:279 shift
  0:280 shift
  7:0,target 7
  28:0 reduce
  0:314,target 56
  0:0,target 32
  0:281 shift
  0:282 shift
  50:0 reduce
  49:0 reduce
  0:283 shift
  0:284 shift
  57:0,target 0
  0:285 shift
  50:0,target 51
  49:0,target 37
  0:283,target 27
  0:286 shift
  42:0,target 35
  0:287 shift
  0:288 shift
  34:0,target 42
  0:290 shift
  0:289 shift
  0:300 shift
  3:0 reduce
  26:0,target 26
  0:301 shift
  0:291 shift
  18:0,target 18
  0:292 shift
  0:302 shift
  0:262,target 6
  11:0,target 11
  0:303 shift
  0:293 shift
  0:304 shift
  25:0 reduce
  0:305 shift
  0:295 shift
  0:296 shift
  0:306 shift
  0:312,target 54
  46:0 reduce
  0:307 shift
  0:297 shift
  0:298 shift
  0:308 shift
  0:299 shift
  0:310 shift
  0:311 shift
  0:312 shift
  0:281,target 25
  0:313 goto
  0:314 goto
  0:0 reduce
  0:315 goto
  0:259,target 3
  0:260,target 4
  22:0 reduce
  43:0 reduce
  0:299,target 42
  0:310,target 52
  37:294 shift
  0:278,target 22
  37:309 shift
  4:0,target 4
  0:257,target 1
  18:0 reduce
  54:0,target 57
  40:0 reduce
  39:0 reduce
  37:316 goto
  46:0,target 49
  0:307,target 50
  0:297,target 40
  38:0,target 44
  31:0,target 31
  23:0,target 23
  15:0,target 15
  0:276,target 20
  15:0 reduce
  36:0 reduce
  0:305,target 48
  0:295,target 38
  57:0 accept
  0:274,target 18
  12:0 reduce
  37:294,target 58
  33:0 reduce
  54:0 reduce
  0:303,target 46
  0:293,target 37
  8:0,target 8
  1:0,target 1
  0:272,target 16
  7:0 reduce
  58:0,target 59
  51:0,target 45
  43:0,target 33
  29:0 reduce
  30:0 reduce
  35:0,target 46
  27:0,target 27
  19:0,target 19
  20:0,target 20
  51:0 reduce
  12:0,target 12
  0:301,target 44
  0:291,target 35
  0:269,target 13
  0:270,target 14
  4:0 reduce
  26:0 reduce
  47:0 reduce
  0:288,target 32
  1:0 reduce
  0:267,target 11
  23:0 reduce
  44:0 reduce
  5:0,target 5
  0:286,target 30
  55:0,target 52
  47:0,target 34
  40:0,target 36
  39:0,target 40
  37:316,target 60
  0:265,target 9
  32:0,target 39
  24:0,target 24
  16:0,target 16
  19:0 reduce
  20:0 reduce
  0:315,target 57
  41:0 reduce
  0:284,target 28
  0:263,target 7
  16:0 reduce
  0:313,target 55
  37:0 reduce
  58:0 reduce
  0:282,target 26
  0:261,target 5
  9:0,target 9
  13:0 reduce
  2:0,target 2
  34:0 reduce
  0:311,target 53
  60:0,target 43
  59:0,target 60
  55:0 reduce
  52:0,target 55
  44:0,target 50
  36:0,target 54
  0:279,target 23
  0:280,target 24
  28:0,target 28
  21:0,target 21
  13:0,target 13
  8:0 reduce
  37:309,target 59
  10:0 reduce
  0:258,target 2
  31:0 reduce
  0:298,target 41
  0:308,target 51
  52:0 reduce
  0:277,target 21
  5:0 reduce
}

array set viewsend::rules {
  9,l 314
  11,l 314
  32,l 315
  53,l 315
  6,l 314
  28,l 314
  50,l 315
  49,l 315
  3,l 313
  25,l 314
  46,l 315
  0,l 317
  22,l 314
  43,l 315
  18,l 314
  40,l 315
  39,l 315
  15,l 314
  36,l 315
  57,l 315
  12,l 314
  33,l 315
  54,l 315
  7,l 314
  29,l 314
  30,l 314
  51,l 315
  4,l 313
  26,l 314
  47,l 315
  1,l 313
  23,l 314
  44,l 315
  19,l 314
  20,l 314
  41,l 315
  16,l 314
  37,l 315
  58,l 316
  13,l 314
  34,l 315
  55,l 315
  8,l 314
  10,l 314
  31,l 314
  52,l 315
  5,l 314
  27,l 314
  48,l 315
  2,l 313
  24,l 314
  45,l 315
  21,l 314
  42,l 315
  17,l 314
  38,l 315
  60,l 316
  59,l 316
  14,l 314
  35,l 315
  56,l 315
}

array set viewsend::rules {
  12,dc 1
  26,dc 1
  3,dc 1
  41,dc 1
  55,dc 1
  18,dc 1
  33,dc 1
  9,dc 1
  47,dc 1
  11,dc 1
  25,dc 1
  2,dc 1
  40,dc 1
  39,dc 1
  54,dc 1
  17,dc 1
  32,dc 0
  8,dc 1
  46,dc 1
  10,dc 1
  24,dc 1
  1,dc 1
  38,dc 1
  53,dc 1
  16,dc 1
  31,dc 1
  7,dc 1
  45,dc 1
  60,dc 1
  59,dc 1
  23,dc 1
  0,dc 1
  37,dc 1
  52,dc 1
  15,dc 1
  29,dc 1
  30,dc 1
  6,dc 1
  44,dc 1
  58,dc 0
  22,dc 1
  36,dc 1
  51,dc 1
  14,dc 1
  28,dc 1
  5,dc 1
  43,dc 2
  57,dc 1
  21,dc 1
  35,dc 1
  50,dc 1
  49,dc 1
  13,dc 1
  27,dc 1
  4,dc 1
  42,dc 1
  56,dc 1
  19,dc 1
  20,dc 1
  34,dc 1
  48,dc 1
}

array set viewsend::rules {
  41,line 149
  7,line 112
  37,line 144
  4,line 108
  34,line 141
  1,line 105
  31,line 136
  27,line 132
  24,line 129
  21,line 126
  17,line 122
  14,line 119
  11,line 116
  60,line 176
  59,line 175
  56,line 170
  53,line 166
  50,line 161
  49,line 160
  46,line 157
  43,line 152
  9,line 114
  40,line 147
  39,line 146
  6,line 111
  36,line 143
  3,line 107
  33,line 140
  29,line 134
  30,line 135
  26,line 131
  23,line 128
  19,line 124
  20,line 125
  16,line 121
  13,line 118
  10,line 115
  58,line 174
  55,line 169
  52,line 164
  48,line 159
  45,line 156
  42,line 150
  8,line 113
  38,line 145
  5,line 110
  35,line 142
  2,line 106
  32,line 139
  28,line 133
  25,line 130
  22,line 127
  18,line 123
  15,line 120
  12,line 117
  57,line 171
  54,line 168
  51,line 163
  47,line 158
  44,line 154
}

array set viewsend::lr1_table {
  35 {{46 0 1}}
  14,trans {}
  36 {{54 0 1}}
  33,trans {}
  37 {{43 0 1} {58 0 0} {59 0 0} {60 0 0}}
  52,trans {}
  38 {{44 0 1}}
  39 {{40 0 1}}
  40 {{36 0 1}}
  18,trans {}
  1,trans {}
  41 {{48 0 1}}
  37,trans {{294 58} {309 59} {316 60}}
  42 {{35 0 1}}
  56,trans {}
  43 {{33 0 1}}
  44 {{50 0 1}}
  23,trans {}
  5,trans {}
  45 {{38 0 1}}
  42,trans {}
  46 {{49 0 1}}
  47 {{34 0 1}}
  48 {{47 0 1}}
  27,trans {}
  9,trans {}
  50 {{51 0 1}}
  49 {{37 0 1}}
  46,trans {}
  51 {{45 0 1}}
  52 {{55 0 1}}
  13,trans {}
  53 {{56 0 1}}
  32,trans {}
  54 {{57 0 1}}
  51,trans {}
  55 {{52 0 1}}
  56 {{53 0 1}}
  17,trans {}
  0,trans {{257 1} {258 2} {259 3} {260 4} {261 5} {262 6} {263 7} {264 8} {265 9} {266 10} {267 11} {268 12} {269 13} {270 14} {271 15} {272 16} {273 17} {274 18} {275 19} {276 20} {277 21} {278 22} {279 23} {280 24} {281 25} {282 26} {283 27} {284 28} {285 29} {286 30} {287 31} {288 32} {289 33} {290 34} {291 35} {292 36} {293 37} {295 38} {296 39} {297 40} {298 41} {299 42} {300 43} {301 44} {302 45} {303 46} {304 47} {305 48} {306 49} {307 50} {308 51} {310 52} {311 53} {312 54} {313 55} {314 56} {315 57}}
  57 {{0 0 1}}
  58 {{59 0 1}}
  36,trans {}
  55,trans {}
  60 {{43 0 2}}
  59 {{60 0 1}}
  22,trans {}
  4,trans {}
  41,trans {}
  60,trans {}
  59,trans {}
  26,trans {}
  8,trans {}
  45,trans {}
  12,trans {}
  31,trans {}
  50,trans {}
  49,trans {}
  16,trans {}
  35,trans {}
  54,trans {}
  21,trans {}
  3,trans {}
  40,trans {}
  39,trans {}
  58,trans {}
  10 {{10 0 1}}
  11 {{11 0 1}}
  25,trans {}
  7,trans {}
  12 {{12 0 1}}
  44,trans {}
  13 {{13 0 1}}
  14 {{14 0 1}}
  11,trans {}
  15 {{15 0 1}}
  30,trans {}
  29,trans {}
  16 {{16 0 1}}
  48,trans {}
  0 {{0 0 0} {32 0 0} {33 0 0} {34 0 0} {35 0 0} {36 0 0} {37 0 0} {38 0 0} {39 0 0} {40 0 0} {41 0 0} {42 0 0} {43 0 0} {44 0 0} {45 0 0} {46 0 0} {47 0 0} {48 0 0} {49 0 0} {50 0 0} {51 0 0} {52 0 0} {53 0 0} {54 0 0} {55 0 0} {56 0 0} {57 0 0} {1 0 0} {2 0 0} {3 0 0} {4 0 0} {5 0 0} {6 0 0} {7 0 0} {8 0 0} {9 0 0} {10 0 0} {11 0 0} {12 0 0} {13 0 0} {14 0 0} {15 0 0} {16 0 0} {17 0 0} {18 0 0} {19 0 0} {20 0 0} {21 0 0} {22 0 0} {23 0 0} {24 0 0} {25 0 0} {26 0 0} {27 0 0} {28 0 0} {29 0 0} {30 0 0} {31 0 0}}
  17 {{17 0 1}}
  1 {{1 0 1}}
  18 {{18 0 1}}
  15,trans {}
  2 {{2 0 1}}
  19 {{19 0 1}}
  20 {{20 0 1}}
  34,trans {}
  3 {{3 0 1}}
  21 {{21 0 1}}
  53,trans {}
  4 {{4 0 1}}
  22 {{22 0 1}}
  5 {{5 0 1}}
  23 {{23 0 1}}
  20,trans {}
  19,trans {}
  2,trans {}
  6 {{6 0 1}}
  24 {{24 0 1}}
  38,trans {}
  7 {{7 0 1}}
  25 {{25 0 1}}
  57,trans {}
  8 {{8 0 1}}
  26 {{26 0 1}}
  9 {{9 0 1}}
  27 {{27 0 1}}
  24,trans {}
  6,trans {}
  28 {{28 0 1}}
  43,trans {}
  29 {{29 0 1}}
  30 {{30 0 1}}
  31 {{31 0 1}}
  10,trans {}
  32 {{39 0 1}}
  28,trans {}
  33 {{41 0 1}}
  47,trans {}
  34 {{42 0 1}}
}

array set viewsend::token_id_table {
  286 WCSY_
  286,t 0
  287 WCSZ_
  292,line 46
  302,line 56
  288 BUTTONS_
  317,t 1
  265,title WCSD
  289 COLORBAR_
  290 COLORBARNUMERICS_
  300 LAYOUT_
  284,title WCSW
  291 FILENAME_
  301 LOWHIGH_
  313,title {}
  292 FRAME_
  302 MAGNIFIER_
  288,line 42
  293 GRAPH_
  303 MINMAX_
  294 HORIZONTAL_
  304 MULTI_
  305 OBJECT_
  295 HORZGRAPH_
  306 PANNER_
  296 ICONS_
  307 UNITS_
  262,t 0
  297 INFO_
  308 VERTGRAPH_
  285,line 36
  298 KEYWORD_
  310 RED_
  309 VERTICAL_
  299 KEYVALUE_
  311 GREEN_
  283,t 0
  312 BLUE_
  313 coordsys
  314,t 1
  314 wcssys
  282,line 33
  315 viewsend
  316 graph
  264,title WCSC
  317 start'
  283,title WCSV
  312,title BLUE
  278,line 29
  error,line 103
  258,t 0
  275,line 26
  279,t 0
  280,t 0
  311,t 0
  272,line 23
  263,title WCSB
  282,title WCSU
  311,title GREEN
  268,line 19
  276,t 0
  265,line 16
  307,t 0
  297,t 0
  262,line 13
  0,t 0
  0 {$}
  262,title WCSA
  281,title WCST
  error,t 0
  310,title RED
  309,title VERTICAL
  299,title KEYVALUE
  258,line 8
  273,t 0
  294,t 0
  304,t 0
  317,line 177
  261,title WCS
  279,title WCSR
  280,title WCSS
  308,title VERTGRAPH
  269,t 0
  270,t 0
  298,title KEYWORD
  314,line 109
  291,t 0
  301,t 0
  311,line 66
  307,line 61
  266,t 0
  260,title DETECTOR
  259,title AMPLIFIER
  297,line 51
  278,title WCSQ
  307,title UNITS
  297,title INFO
  287,t 0
  294,line 48
  304,line 58
  error,title {}
  291,line 45
  301,line 55
  263,t 0
  258,title PHYSICAL
  287,line 38
  277,title WCSP
  284,t 0
  306,title PANNER
  296,title ICONS
  315,t 1
  284,line 35
  281,line 32
  260,t 0
  259,t 0
  281,t 0
  257,title IMAGE
  277,line 28
  276,title WCSO
  312,t 0
  305,title OBJECT
  295,title HORZGRAPH
  274,line 25
  271,line 22
  277,t 0
  308,t 0
  267,line 18
  298,t 0
  275,title WCSN
  294,title HORIZONTAL
  304,title MULTI
  264,line 15
  261,line 12
  274,t 0
  305,t 0
  295,t 0
  257,line 7
  274,title WCSM
  293,title GRAPH
  303,title MINMAX
  error error
  271,t 0
  292,t 0
  302,t 0
  316,line 173
  273,title WCSL
  313,line 104
  292,title FRAME
  302,title MAGNIFIER
  267,t 0
  310,line 65
  309,line 63
  299,line 53
  288,t 0
  306,line 60
  296,line 50
  272,title WCSK
  291,title FILENAME
  293,line 47
  301,title LOWHIGH
  303,line 57
  264,t 0
  285,t 0
  289,line 43
  290,line 44
  300,line 54
  316,t 1
  286,line 37
  271,title WCSJ
  261,t 0
  283,line 34
  289,title COLORBAR
  290,title COLORBARNUMERICS
  300,title LAYOUT
  282,t 0
  279,line 30
  280,line 31
  313,t 1
  276,line 27
  257,t 0
  269,title WCSH
  270,title WCSI
  273,line 24
  288,title BUTTONS
  317,title {}
  278,t 0
  310,t 0
  309,t 0
  299,t 0
  269,line 20
  270,line 21
  266,line 17
  268,title WCSG
  275,t 0
  263,line 14
  287,title WCSZ
  316,title {}
  306,t 0
  296,t 0
  260,line 10
  259,line 9
  272,t 0
  267,title WCSF
  257 IMAGE_
  286,title WCSY
  293,t 0
  303,t 0
  315,title {}
  258 PHYSICAL_
  260 DETECTOR_
  259 AMPLIFIER_
  261 WCS_
  262 WCSA_
  263 WCSB_
  264 WCSC_
  315,line 138
  265 WCSD_
  266 WCSE_
  267 WCSF_
  268,t 0
  268 WCSG_
  269 WCSH_
  270 WCSI_
  312,line 67
  271 WCSJ_
  272 WCSK_
  289,t 0
  290,t 0
  300,t 0
  266,title WCSE
  273 WCSL_
  274 WCSM_
  285,title WCSX
  314,title {}
  275 WCSN_
  308,line 62
  276 WCSO_
  298,line 52
  277 WCSP_
  278 WCSQ_
  279 WCSR_
  280 WCSS_
  281 WCST_
  305,line 59
  282 WCSU_
  295,line 49
  265,t 0
  283 WCSV_
  284 WCSW_
  285 WCSX_
}

proc viewsend::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 _ image }
                    2 { set _ physical }
                    3 { set _ amplifier }
                    4 { set _ detector }
                    5 { set _ wcs }
                    6 { set _ wcsa }
                    7 { set _ wcsb }
                    8 { set _ wcsc }
                    9 { set _ wcsd }
                    10 { set _ wcse }
                    11 { set _ wcsf }
                    12 { set _ wcsg }
                    13 { set _ wcsh }
                    14 { set _ wcsi }
                    15 { set _ wcsj }
                    16 { set _ wcsk }
                    17 { set _ wcsl }
                    18 { set _ wcsm }
                    19 { set _ wcsn }
                    20 { set _ wcso }
                    21 { set _ wcsp }
                    22 { set _ wcsq }
                    23 { set _ wcsr }
                    24 { set _ wcss }
                    25 { set _ wcst }
                    26 { set _ wcsu }
                    27 { set _ wcsv }
                    28 { set _ wcsw }
                    29 { set _ wcsx }
                    30 { set _ wcsy }
                    31 { set _ wcsz }
                    33 { ProcessSendCmdGet view layout }
                    34 { ProcessSendCmdYesNo view multi }
                    35 { ProcessSendCmdGet view info,keyvalue }
                    36 { ProcessSendCmdYesNo view info }
                    37 { ProcessSendCmdYesNo view panner }
                    38 { ProcessSendCmdYesNo view magnifier }
                    39 { ProcessSendCmdYesNo view buttons }
                    40 { ProcessSendCmdYesNo view icons }
                    41 { ProcessSendCmdYesNo view colorbar }
                    42 { ProcessSendCmdYesNo colorbar numerics }
                    44 { ProcessSendCmdYesNo view graph,horz }
                    45 { ProcessSendCmdYesNo view graph,graph }
                    46 { ProcessSendCmdYesNo view info,filename }
                    47 { ProcessSendCmdYesNo view info,object }
                    48 { ProcessSendCmdYesNo view info,keyword }
                    49 { ProcessSendCmdYesNo view info,minmax }
                    50 { ProcessSendCmdYesNo view info,lowhigh }
                    51 { ProcessSendCmdYesNo view info,bunit }
                    52 { ProcessSendCmdYesNo view info,$1 }
                    53 { ProcessSendCmdYesNo view info,$1 }
                    54 { ProcessSendCmdYesNo view info,frame }
                    55 { ProcessSendCmdYesNo rgb red }
                    56 { ProcessSendCmdYesNo rgb green }
                    57 { ProcessSendCmdYesNo rgb blue }
                    59 { ProcessSendCmdYesNo view graph,horz }
                    60 { ProcessSendCmdYesNo view graph,vert }
                }
                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 viewsend::yyerror {msg} {
     variable yycnt
     variable yy_current_buffer
     variable index_

     ParserError $msg $yycnt $yy_current_buffer $index_
}
