(command.CommandList
  children: [
    (command.Case
      to_match: {($ Id.VSub_Pound '$#')}
      arms: [
        (case_arm
          pat_list: [{<0>}]
          action: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:flag)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [28]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<set>} {<-> ($ Id.VSub_Hyphen '$-')} {<'/dev'>})
          ]
          spids: [25 26 38 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:flag)
                  op: assign_op.Equal
                  rhs: {<d>}
                  spids: [43]
                )
              ]
            )
          ]
          spids: [40 41 46 -1]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<ls>} {<-l> ($ Id.VSub_DollarName '$flag')} {($ Id.VSub_Star '$*')})
        (C {<sed>} {<-e>} {(SQ <'/^total/d'>)} {<-e>} {(SQ <'/^l/d'>)} {<-e>} 
          {(SQ <'/^[^bc]/s/.* /BAD BAD /'>)} {<-e>} {(SQ <'/^[bc]/s/.* \\([0-9][0-9]*\\), *\\([0-9][0-9]*\\).* /\\1 \\2 /'>)}
        )
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ex)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [98]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: (condition.Shell commands:[(C {<read>} {<major>} {<minor>} {<path>})])
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$path')}
                      arms: [
                        (case_arm
                          pat_list: [{<'/'> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$path')} 
                                            {<Id.Lit_Colon ':'>} {(SQ <'.*/\\(.*\\)$'>)}
                                          )
                                      )
                                    }
                                  spids: [129]
                                )
                              ]
                            )
                          ]
                          spids: [125 127 149 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$path')}
                                  spids: [155]
                                )
                              ]
                            )
                          ]
                          spids: [152 153 -1 159]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dev)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [162]
                        )
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:des)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [164]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$major')}
                      arms: [
                        (case_arm
                          pat_list: [{<3>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ctrlr)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [181]
                                )
                              ]
                            )
                          ]
                          spids: [178 179 184 -1]
                        )
                        (case_arm
                          pat_list: [{<8>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ctrlr)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [190]
                                )
                              ]
                            )
                          ]
                          spids: [187 188 193 -1]
                        )
                        (case_arm
                          pat_list: [{<10>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ctrlr)
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [199]
                                )
                              ]
                            )
                          ]
                          spids: [196 197 202 -1]
                        )
                        (case_arm
                          pat_list: [{<12>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ctrlr)
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [208]
                                )
                              ]
                            )
                          ]
                          spids: [205 206 211 -1]
                        )
                      ]
                    )
                    (command.Case
                      to_match: 
                        {($ Id.VSub_DollarName '$major') <Id.Lit_Comma ','> 
                          ($ Id.VSub_DollarName '$minor')
                        }
                      arms: [
                        (case_arm
                          pat_list: [{<1> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'RAM disk'>)}
                                  spids: [232]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<ram>}
                                  spids: [237]
                                )
                              ]
                            )
                          ]
                          spids: [227 230 241 -1]
                        )
                        (case_arm
                          pat_list: [{<1> <Id.Lit_Comma ','> <1>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <memory>)}
                                  spids: [249]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<mem>}
                                  spids: [254]
                                )
                              ]
                            )
                          ]
                          spids: [244 247 258 -1]
                        )
                        (case_arm
                          pat_list: [{<1> <Id.Lit_Comma ','> <2>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'kernel memory'>)}
                                  spids: [266]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<kmem>}
                                  spids: [271]
                                )
                              ]
                            )
                          ]
                          spids: [261 264 275 -1]
                        )
                        (case_arm
                          pat_list: [{<1> <Id.Lit_Comma ','> <3>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'null device, data sink'>)}
                                  spids: [283]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<null>}
                                  spids: [288]
                                )
                              ]
                            )
                          ]
                          spids: [278 281 292 -1]
                        )
                        (case_arm
                          pat_list: [{<1> <Id.Lit_Comma ','> <4>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'boot device loaded from boot image'>)}
                                  spids: [300]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<boot>}
                                  spids: [305]
                                )
                              ]
                            )
                          ]
                          spids: [295 298 309 -1]
                        )
                        (case_arm
                          pat_list: [{<1> <Id.Lit_Comma ','> <5>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'null byte stream generator'>)}
                                  spids: [317]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<zero>}
                                  spids: [322]
                                )
                              ]
                            )
                          ]
                          spids: [312 315 326 -1]
                        )
                        (case_arm
                          pat_list: [{<1> <Id.Lit_Comma ','> <6>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'boot image RAM disk'>)}
                                  spids: [334]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<imgrd>}
                                  spids: [339]
                                )
                              ]
                            )
                          ]
                          spids: [329 332 343 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<1> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <789> <Id.Lit_RBracket ']'>}
                            {<1> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ramdisk)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} {<7>})
                                      )
                                    }
                                  spids: [361]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'RAM disk '> ($ Id.VSub_DollarName '$ramdisk'))}
                                  spids: [375]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<ram> ($ Id.VSub_DollarName '$ramdisk')}
                                  spids: [381]
                                )
                              ]
                            )
                          ]
                          spids: [346 358 386 -1]
                        )
                        (case_arm
                          pat_list: [{<2> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:drive)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} 
                                            {<Id.Lit_Other '%'>} {<4>}
                                          )
                                      )
                                    }
                                  spids: [394]
                                )
                              ]
                            )
                            (command.Case
                              to_match: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} 
                                        {($ Id.VSub_DollarName '$drive')}
                                      )
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [{<0>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'auto density'>)}
                                          spids: [428]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <fd> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [433]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [425 426 440 -1]
                                )
                                (case_arm
                                  pat_list: [{<4>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'360k, 5.25"'>)}
                                          spids: [446]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <pc> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [451]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [443 444 458 -1]
                                )
                                (case_arm
                                  pat_list: [{<8>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'1.2M, 5.25"'>)}
                                          spids: [464]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <at> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [469]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [461 462 476 -1]
                                )
                                (case_arm
                                  pat_list: [{<12>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'360k in 720k, 5.25"'>)}
                                          spids: [482]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <qd> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [487]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [479 480 494 -1]
                                )
                                (case_arm
                                  pat_list: [{<16>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'720k, 3.5"'>)}
                                          spids: [500]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <ps> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [505]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [497 498 512 -1]
                                )
                                (case_arm
                                  pat_list: [{<20>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'360k in 1.2M, 5.25"'>)}
                                          spids: [518]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <pat> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [523]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [515 516 530 -1]
                                )
                                (case_arm
                                  pat_list: [{<24>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'720k in 1.2M, 5.25"'>)}
                                          spids: [536]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <qh> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [541]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [533 534 548 -1]
                                )
                                (case_arm
                                  pat_list: [{<28>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'1.44M, 3.5"'>)}
                                          spids: [554]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <PS> ($ Id.VSub_DollarName '$drive'))}
                                          spids: [559]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [551 552 566 -1]
                                )
                                (case_arm
                                  pat_list: [{<112>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'auto partition 0'>)}
                                          spids: [572]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p0>)}
                                          spids: [577]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [569 570 587 -1]
                                )
                                (case_arm
                                  pat_list: [{<116>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'auto partition 1'>)}
                                          spids: [593]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p1>)}
                                          spids: [598]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [590 591 608 -1]
                                )
                                (case_arm
                                  pat_list: [{<120>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'auto partition 2'>)}
                                          spids: [614]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p2>)}
                                          spids: [619]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [611 612 629 -1]
                                )
                                (case_arm
                                  pat_list: [{<124>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'auto partition 3'>)}
                                          spids: [635]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {(DQ <fd> (${ Id.VSub_Name drive) <p3>)}
                                          spids: [640]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [632 633 650 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {<BAD>}
                                          spids: [656]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [653 654 -1 660]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'floppy drive '> ($ Id.VSub_DollarName '$drive') <' ('> 
                                        ($ Id.VSub_DollarName '$des') <')'>
                                      )
                                    }
                                  spids: [663]
                                )
                              ]
                            )
                          ]
                          spids: [389 392 673 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'>
                            }
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <05> <Id.Lit_RBracket ']'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:drive)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<'/'>} {<5>})
                                      )
                                    }
                                  spids: [718]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' disk '> 
                                        ($ Id.VSub_DollarName '$drive')
                                      )
                                    }
                                  spids: [732]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<c> (${ Id.VSub_Name ctrlr) <d> (${ Id.VSub_Name drive)}
                                  spids: [740]
                                )
                              ]
                            )
                          ]
                          spids: [676 715 751 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_QMark '?'>
                            }
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_QMark '?'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> 
                              <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:drive)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<'/'>} {<5>})
                                      )
                                    }
                                  spids: [788]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:par)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} 
                                            {<Id.Lit_Other '%'>} {<5>} {<->} {<1>}
                                          )
                                      )
                                    }
                                  spids: [802]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' disk '> 
                                        ($ Id.VSub_DollarName '$drive') <' partition '> ($ Id.VSub_DollarName '$par')
                                      )
                                    }
                                  spids: [820]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<c> (${ Id.VSub_Name ctrlr) <d> (${ Id.VSub_Name drive) <p> 
                                      (${ Id.VSub_Name par)
                                    }
                                  spids: [831]
                                )
                              ]
                            )
                          ]
                          spids: [754 785 846 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <12> 
                              <Id.Lit_LBracket '['> <89> <Id.Lit_RBracket ']'>
                            }
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <1> 
                              <Id.Lit_LBracket '['> <3-9> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>
                            }
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <2> 
                              <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <12> 
                              <Id.Lit_LBracket '['> <89> <Id.Lit_RBracket ']'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <1> 
                              <Id.Lit_LBracket '['> <3-9> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <2> 
                              <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:drive)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\('>
                                              )
                                            } {($ Id.VSub_DollarName '$minor')} {<->} {<128>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\)'>
                                              )
                                            } {<'/'>} {<16>}
                                          )
                                      )
                                    }
                                  spids: [908]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:par)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\('>
                                              )
                                            } {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} {($ Id.VSub_DollarName '$minor')} {<->} 
                                            {<128>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} {<'/'>} {<4>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\)'>
                                              )
                                            } {<Id.Lit_Other '%'>} {<4>}
                                          )
                                      )
                                    }
                                  spids: [934]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:sub)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\('>
                                              )
                                            } {($ Id.VSub_DollarName '$minor')} {<->} {<128>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\)'>
                                              )
                                            } {<Id.Lit_Other '%'>} {<4>}
                                          )
                                      )
                                    }
                                  spids: [972]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'hard disk '> ($ Id.VSub_DollarName '$drive') 
                                        <', partition '> ($ Id.VSub_DollarName '$par') <', subpartition '> ($ Id.VSub_DollarName '$sub')
                                      )
                                    }
                                  spids: [998]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') <' disk '> 
                                        ($ Id.VSub_DollarName '$drive') <' partition '> ($ Id.VSub_DollarName '$par') <' slice '> ($ Id.VSub_DollarName '$sub')
                                      )
                                    }
                                  spids: [1009]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<c> (${ Id.VSub_Name ctrlr) <d> (${ Id.VSub_Name drive) <p> 
                                      (${ Id.VSub_Name par) <s> (${ Id.VSub_Name sub)
                                    }
                                  spids: [1026]
                                )
                              ]
                            )
                          ]
                          spids: [849 905 1045 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <6> 
                              <Id.Lit_LBracket '['> <4-9> <Id.Lit_RBracket ']'>
                            }
                            {<Id.Lit_LBracket '['> <38> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <7> 
                              <Id.Lit_QMark '?'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <6> 
                              <Id.Lit_LBracket '['> <4-9> <Id.Lit_RBracket ']'>
                            }
                            {<1> <Id.Lit_LBracket '['> <02> <Id.Lit_RBracket ']'> <Id.Lit_Comma ','> <7> 
                              <Id.Lit_QMark '?'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tape)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\('>
                                              )
                                            } {($ Id.VSub_DollarName '$minor')} {<->} {<64>} 
                                            {
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\)'>
                                              )
                                            } {<'/'>} {<2>}
                                          )
                                      )
                                    }
                                  spids: [1084]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$minor')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <02468> 
                                      <Id.Lit_RBracket ']'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') 
                                                <' tape '> ($ Id.VSub_DollarName '$tape') <' (non-rewinding)'>
                                              )
                                            }
                                          spids: [1124]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: 
                                            {<c> (${ Id.VSub_Name ctrlr) <t> (${ Id.VSub_Name tape) <n>}
                                          spids: [1134]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1117 1121 1146 -1]
                                )
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <13579> 
                                      <Id.Lit_RBracket ']'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'controller '> ($ Id.VSub_DollarName '$ctrlr') 
                                                <' tape '> ($ Id.VSub_DollarName '$tape') <' (rewinding)'>
                                              )
                                            }
                                          spids: [1156]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: 
                                            {<c> (${ Id.VSub_Name ctrlr) <t> (${ Id.VSub_Name tape)}
                                          spids: [1166]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1149 1153 -1 1177]
                                )
                              ]
                            )
                          ]
                          spids: [1048 1081 1180 -1]
                        )
                        (case_arm
                          pat_list: [{<4> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'console device'>)}
                                  spids: [1188]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<console>}
                                  spids: [1193]
                                )
                              ]
                            )
                          ]
                          spids: [1183 1186 1197 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<4> <Id.Lit_Comma ','> <Id.Lit_LBracket '['> <1-7> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'virtual console '> ($ Id.VSub_DollarName '$minor'))}
                                  spids: [1206]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<ttyc> ($ Id.VSub_DollarName '$minor')}
                                  spids: [1212]
                                )
                              ]
                            )
                          ]
                          spids: [1200 1205 1217 -1]
                        )
                        (case_arm
                          pat_list: [{<4> <Id.Lit_Comma ','> <15>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'diagnostics device'>)}
                                  spids: [1225]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<log>}
                                  spids: [1230]
                                )
                              ]
                            )
                          ]
                          spids: [1220 1223 1234 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<4> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <6-9> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:line)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} {<16>})
                                      )
                                    }
                                  spids: [1246]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'serial line '> ($ Id.VSub_DollarName '$line'))}
                                  spids: [1260]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<tty0> ($ Id.VSub_DollarName '$line')}
                                  spids: [1266]
                                )
                              ]
                            )
                          ]
                          spids: [1237 1243 1271 -1]
                        )
                        (case_arm
                          pat_list: [{<4> <Id.Lit_Comma ','> <125>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'video output'>)}
                                  spids: [1279]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<video>}
                                  spids: [1284]
                                )
                              ]
                            )
                          ]
                          spids: [1274 1277 1288 -1]
                        )
                        (case_arm
                          pat_list: [{<4> <Id.Lit_Comma ','> <126>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'auxiliary input'>)}
                                  spids: [1296]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<kbdaux>}
                                  spids: [1301]
                                )
                              ]
                            )
                          ]
                          spids: [1291 1294 1305 -1]
                        )
                        (case_arm
                          pat_list: [{<4> <Id.Lit_Comma ','> <127>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'keyboard input'>)}
                                  spids: [1313]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<kbd>}
                                  spids: [1318]
                                )
                              ]
                            )
                          ]
                          spids: [1308 1311 1322 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<4> <Id.Lit_Comma ','> <12> <Id.Lit_LBracket '['> <89> <Id.Lit_RBracket ']'>}
                            {<4> <Id.Lit_Comma ','> <1> <Id.Lit_LBracket '['> <3-8> <Id.Lit_RBracket ']'> 
                              <Id.Lit_QMark '?'>
                            }
                            {<4> <Id.Lit_Comma ','> <19> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<expr>} 
                                                {
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\('>
                                                  )
                                                } {($ Id.VSub_DollarName '$minor')} {<->} {<128>} 
                                                {
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\)'>
                                                  )
                                                } {<'/'>} {<16>}
                                              )
                                              (C {<tr>} {(SQ <0123>)} {(SQ <pqrs>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [1349]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:n)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} 
                                            {<Id.Lit_Other '%'>} {<16>}
                                          )
                                      )
                                    }
                                  spids: [1387]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {($ Id.VSub_DollarName '$n')} {<-ge>} {<10>})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:n)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<10>})
                                                  (C {<tr>} {(SQ <012345>)} {(SQ <abcdef>)})
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      spids: [1411]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'pseudo tty '> 
                                        (command_sub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: 
                                            (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<->} {<128>})
                                        )
                                      )
                                    }
                                  spids: [1437]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<tty> ($ Id.VSub_DollarName '$p') ($ Id.VSub_DollarName '$n')}
                                  spids: [1453]
                                )
                              ]
                            )
                          ]
                          spids: [1325 1346 1459 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<4> <Id.Lit_Comma ','> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                              <Id.Lit_QMark '?'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<expr>} 
                                                {
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\('>
                                                  )
                                                } {($ Id.VSub_DollarName '$minor')} {<->} {<192>} 
                                                {
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\)'>
                                                  )
                                                } {<'/'>} {<16>}
                                              )
                                              (C {<tr>} {(SQ <0123>)} {(SQ <pqrs>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [1470]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:n)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} 
                                            {<Id.Lit_Other '%'>} {<16>}
                                          )
                                      )
                                    }
                                  spids: [1508]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {($ Id.VSub_DollarName '$n')} {<-ge>} {<10>})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:n)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<10>})
                                                  (C {<tr>} {(SQ <012345>)} {(SQ <abcdef>)})
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      spids: [1532]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'controller of tty'> ($ Id.VSub_DollarName '$p') 
                                        ($ Id.VSub_DollarName '$n')
                                      )
                                    }
                                  spids: [1558]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<pty> ($ Id.VSub_DollarName '$p') ($ Id.VSub_DollarName '$n')}
                                  spids: [1565]
                                )
                              ]
                            )
                          ]
                          spids: [1462 1467 1571 -1]
                        )
                        (case_arm
                          pat_list: [{<5> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'anonymous tty'>)}
                                  spids: [1579]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<tty>}
                                  spids: [1584]
                                )
                              ]
                            )
                          ]
                          spids: [1574 1577 1588 -1]
                        )
                        (case_arm
                          pat_list: [{<6> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'line printer, parallel port'>)}
                                  spids: [1596]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<lp>}
                                  spids: [1601]
                                )
                              ]
                            )
                          ]
                          spids: [1591 1594 1605 -1]
                        )
                        (case_arm
                          pat_list: [{<7> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:d)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} 
                                            {<Id.Lit_Other '%'>} {<8>}
                                          )
                                      )
                                    }
                                  spids: [1614]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:n)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {<expr>} {($ Id.VSub_DollarName '$minor')} {<'/'>} {<8>})
                                      )
                                    }
                                  spids: [1628]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$d')}
                              arms: [
                                (case_arm
                                  pat_list: [{<0>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'IP stat'>)}
                                          spids: [1652]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {<ipstat>}
                                          spids: [1657]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1649 1650 1661 -1]
                                )
                                (case_arm
                                  pat_list: [{<1>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$name')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<psip> <Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:des)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {(DQ <'Pseudo IP #'> ($ Id.VSub_DollarName '$n'))}
                                                  spids: [1679]
                                                )
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dev)
                                                  op: assign_op.Equal
                                                  rhs: {<psip>}
                                                  spids: [1685]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [1674 1676 1689 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:des)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <'raw ethernet #'> 
                                                        ($ Id.VSub_DollarName '$n')
                                                      )
                                                    }
                                                  spids: [1695]
                                                )
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dev)
                                                  op: assign_op.Equal
                                                  rhs: {<eth>}
                                                  spids: [1701]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [1692 1693 -1 1705]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1664 1665 1708 -1]
                                )
                                (case_arm
                                  pat_list: [{<2>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'raw IP #'> ($ Id.VSub_DollarName '$n'))}
                                          spids: [1714]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {<ip>}
                                          spids: [1720]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1711 1712 1724 -1]
                                )
                                (case_arm
                                  pat_list: [{<3>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'TCP/IP #'> ($ Id.VSub_DollarName '$n'))}
                                          spids: [1730]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {<tcp>}
                                          spids: [1736]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1727 1728 1740 -1]
                                )
                                (case_arm
                                  pat_list: [{<4>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:des)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'UDP #'> ($ Id.VSub_DollarName '$n'))}
                                          spids: [1746]
                                        )
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dev)
                                          op: assign_op.Equal
                                          rhs: {<udp>}
                                          spids: [1752]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1743 1744 -1 1756]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$d')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {(DQ ($ Id.VSub_DollarName '$name'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dev'))} {<Id.Lit_RBracket ']'>}
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:des)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$des') <' (default)'>)
                                                    }
                                                  spids: [1792]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [1772 1789]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dev)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$dev') 
                                                  ($ Id.VSub_DollarName '$n')
                                                }
                                              spids: [1802]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1766 1769 -1 1810]
                                )
                              ]
                            )
                          ]
                          spids: [1608 1611 1813 -1]
                        )
                        (case_arm
                          pat_list: [{<11> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'block filter'>)}
                                  spids: [1822]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<filter>}
                                  spids: [1827]
                                )
                              ]
                            )
                          ]
                          spids: [1816 1819 1831 -1]
                        )
                        (case_arm
                          pat_list: [{<13> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <audio>)}
                                  spids: [1840]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<audio>}
                                  spids: [1845]
                                )
                              ]
                            )
                          ]
                          spids: [1834 1837 1849 -1]
                        )
                        (case_arm
                          pat_list: [{<14> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'audio mixer'>)}
                                  spids: [1858]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<mixer>}
                                  spids: [1863]
                                )
                              ]
                            )
                          ]
                          spids: [1852 1855 1867 -1]
                        )
                        (case_arm
                          pat_list: [{<15> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'kernel log'>)}
                                  spids: [1876]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<klog>}
                                  spids: [1881]
                                )
                              ]
                            )
                          ]
                          spids: [1870 1873 1885 -1]
                        )
                        (case_arm
                          pat_list: [{<16> <Id.Lit_Comma ','> <0>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'pseudo random number generator'>)}
                                  spids: [1894]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<urandom>}
                                  spids: [1899]
                                )
                              ]
                            )
                          ]
                          spids: [1888 1891 1903 -1]
                        )
                        (case_arm
                          pat_list: [{<BAD> <Id.Lit_Comma ','> <BAD>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:des)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [1912]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [1914]
                                )
                              ]
                            )
                          ]
                          spids: [1906 1909 1917 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dev)
                                  op: assign_op.Equal
                                  rhs: {<BAD>}
                                  spids: [1923]
                                )
                              ]
                            )
                          ]
                          spids: [1920 1921 -1 1927]
                        )
                      ]
                    )
                    (command.Case
                      to_match: 
                        {($ Id.VSub_DollarName '$name') <Id.Lit_Colon ':'> 
                          ($ Id.VSub_DollarName '$dev')
                        }
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'>}]
                          action: [
                            (command.Simple
                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$path') <': not a device'>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ex)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [1956]
                                )
                              ]
                            )
                          ]
                          spids: [1940 1942 1960 -1]
                        )
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <BAD> 
                              <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName '$path') <': cannot describe: major='> 
                                    ($ Id.VSub_DollarName '$major') <', minor='> ($ Id.VSub_DollarName '$minor')
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ex)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [1985]
                                )
                              ]
                            )
                          ]
                          spids: [1963 1968 1989 -1]
                        )
                        (case_arm
                          pat_list: [
                            {($ Id.VSub_DollarName '$dev') <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (C {<echo>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$path') <': '> ($ Id.VSub_DollarName '$des'))
                              }
                            )
                          ]
                          spids: [1992 1995 2007 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<echo>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$path') <': nonstandard name for '> 
                                  ($ Id.VSub_DollarName '$dev') <': '> ($ Id.VSub_DollarName '$des')
                                )
                              }
                            )
                          ]
                          spids: [2010 2013 -1 2026]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$ex')}
            )
          ]
        )
      ]
      negated: F
    )
  ]
)