(command.CommandList
  children: [
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [{<Id.Lit_Colon ':'>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'command='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'command='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'command='> name:command)
          op: assign_op.Equal
          rhs: {<cpio>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'usage='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'usage='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usage='> name:usage)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'Usage: '> ($ Id.VSub_DollarName command) 
                <' -o[acvBV] [-C size] [-M mesg] [-O file | >file ] <list\n'> <'       '> ($ Id.VSub_DollarName command) <' -i[bcdfkmrtsuvBSV6] [-I file | <file] [pattern ...]\n'> 
                <'       '> ($ Id.VSub_DollarName command) <' -p[adlmuvV] directory'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OPTSTR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OPTSTR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTSTR='> name:OPTSTR)
          op: assign_op.Equal
          rhs: 
            {
              (SQ 
                <
'abcdfiklmoprstuvBSV6C:[size]H:[format]M:[message]O:[file]?D [ pattern | directory ]'
                >
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'options='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'options='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
          op: assign_op.Equal
          rhs: {(DQ <-d>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'blocksize='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'blocksize='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'blocksize='> name:blocksize)
          op: assign_op.Equal
          rhs: {<1b>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exec='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exec='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec='> name:exec)
          op: assign_op.Equal
          rhs: {<eval>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'format='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'format='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'format='> name:format)
          op: assign_op.Equal
          rhs: {<binary>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'list='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'list='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'list='> name:list)
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'logphys='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'logphys='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'logphys='> name:logphys)
          op: assign_op.Equal
          rhs: {<-P>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'mode='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'mode='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'd_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'd_default='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd_default='> name:d_default)
          op: assign_op.Equal
          rhs: {(DQ <'-o nomkdir'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'm_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'm_default='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm_default='> name:m_default)
          op: assign_op.Equal
          rhs: {(DQ <-pm>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'u_default='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'u_default='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_default='> name:u_default)
          op: assign_op.Equal
          rhs: {(DQ <-u>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'r_ok='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'r_ok='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r_ok='> name:r_ok)
          op: assign_op.Equal
          rhs: {(DQ <1>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'w_ok='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'w_ok='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
          op: assign_op.Equal
          rhs: {(DQ <1>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'p_ok='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'p_ok='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
          op: assign_op.Equal
          rhs: {(DQ <1>)}
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <getopts>
              more_env: []
              words: [
                {<getopts>}
                {<-a>}
                {($ Id.VSub_DollarName command)}
                {(DQ ($ Id.VSub_DollarName OPTSTR))}
                {<OPT>}
              ]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPT)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ <D>)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <eval>
                          pattern: (pat.Words words:[{<eval>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'exec='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'exec='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec='> name:exec)
                                  op: assign_op.Equal
                                  rhs: {<print>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'exec='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'exec='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec='> name:exec)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'eval args'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: (pat.Words words:[{<Id.Lit_LBracket '['> <bsS6> <Id.Lit_RBracket ']'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: (pat.Words words:[{<Id.Lit_LBracket '['> <klvV> <Id.Lit_RBracket ']'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'options='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'options='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName options) <' -'> ($ Id.VSub_DollarName OPT))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <a>
                  pattern: (pat.Words words:[{<a>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r_ok='> name:r_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'options='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName options) <' -p'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <c>
                  pattern: (pat.Words words:[{<c>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'format='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'format='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'format='> name:format)
                          op: assign_op.Equal
                          rhs: {<cpio>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <d>
                  pattern: (pat.Words words:[{<d>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'd_default='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd_default='> name:d_default)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <f>
                  pattern: (pat.Words words:[{<f>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'p_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'options='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName options) <' -c'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <i>
                  pattern: (pat.Words words:[{<i>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'p_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName mode)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mode='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                                  op: assign_op.Equal
                                  rhs: {<-r>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-r>
                          pattern: (pat.Words words:[{<-r>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mode='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                                  op: assign_op.Equal
                                  rhs: {<x>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <m>
                  pattern: (pat.Words words:[{<m>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'm_default='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm_default='> name:m_default)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <o>
                  pattern: (pat.Words words:[{<o>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r_ok='> name:r_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'p_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'u_default='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_default='> name:u_default)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName mode)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mode='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                                  op: assign_op.Equal
                                  rhs: {<-w>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-w>
                          pattern: (pat.Words words:[{<-w>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mode='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                                  op: assign_op.Equal
                                  rhs: {<x>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <p>
                  pattern: (pat.Words words:[{<p>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r_ok='> name:r_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName mode)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mode='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                                  op: assign_op.Equal
                                  rhs: {<-rw>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <-rw>
                          pattern: (pat.Words words:[{<-rw>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mode='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mode='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                                  op: assign_op.Equal
                                  rhs: {<x>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <r>
                  pattern: (pat.Words words:[{<r>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'p_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'options='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName options) <' -i'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <t>
                  pattern: (pat.Words words:[{<t>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'p_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'list='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'list='> name:list)
                          op: assign_op.Equal
                          rhs: {(DQ <1>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <u>
                  pattern: (pat.Words words:[{<u>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'u_default='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_default='> name:u_default)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <B>
                  pattern: (pat.Words words:[{<B>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'blocksize='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'blocksize='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'blocksize='> name:blocksize)
                          op: assign_op.Equal
                          rhs: {<5k>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <L>
                  pattern: (pat.Words words:[{<L>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'logphys='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'logphys='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'logphys='> name:logphys)
                          op: assign_op.Equal
                          rhs: {<-L>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <C>
                  pattern: (pat.Words words:[{<C>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPTARG)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'blocksize='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'blocksize='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'blocksize='>
                                      name: blocksize
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name OPTARG) <c>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'blocksize='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'blocksize='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'blocksize='>
                                      name: blocksize
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name OPTARG)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <H>
                  pattern: (pat.Words words:[{<H>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPTARG)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <asc>
                          pattern: (pat.Words words:[{<asc>} {<ASC>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'format='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'format='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'format='> name:format)
                                  op: assign_op.Equal
                                  rhs: {<asc>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <crc>
                          pattern: (pat.Words words:[{<crc>} {<CRC>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'format='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'format='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'format='> name:format)
                                  op: assign_op.Equal
                                  rhs: {<aschk>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <odc>
                          pattern: (pat.Words words:[{<odc>} {<ODC>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'format='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'format='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'format='> name:format)
                                  op: assign_op.Equal
                                  rhs: {<cpio>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <tar>
                          pattern: (pat.Words words:[{<tar>} {<TAR>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'format='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'format='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'format='> name:format)
                                  op: assign_op.Equal
                                  rhs: {<tar>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <ustar>
                          pattern: (pat.Words words:[{<ustar>} {<USTAR>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'format='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'format='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'format='> name:format)
                                  op: assign_op.Equal
                                  rhs: {<ustar>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <print>
                                  more_env: []
                                  words: [
                                    {<print>}
                                    {<-u2>}
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <': '> 
                                        ($ Id.VSub_DollarName OPTARG) <': formats are {asc,crc,odc,tar,star}'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <I>
                  pattern: (pat.Words words:[{<I>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'w_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'w_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w_ok='> name:w_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'p_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'options='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName options) <' -f \''> 
                                ($ Id.VSub_DollarName OPTARG) <'\''>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <O>
                  pattern: (pat.Words words:[{<O>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r_ok='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r_ok='> name:r_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'p_ok='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p_ok='> name:p_ok)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'options='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName options) <' -f \''> 
                                ($ Id.VSub_DollarName OPTARG) <'\''>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <M>
                  pattern: (pat.Words words:[{<M>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'options='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'options='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName options) <' -o eom='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) <'\''> ($ Id.VSub_DollarName OPTARG) <'\''> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <shift>
      more_env: []
      words: [
        {<shift>}
        {
          (word_part.ArithSub
            left: <Id.Left_DollarDParen '$(('>
            anode: 
              (arith_expr.Binary
                op_id: Id.Arith_Minus
                left: {($ Id.VSub_DollarName OPTIND)}
                right: {<Id.Lit_Digits 1>}
              )
            right: <Id.Right_DollarDParen _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName mode)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <-r>
          pattern: (pat.Words words:[{<-r>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName r_ok)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {<-u2>}
                        {
                          (DQ ($ Id.VSub_DollarName command) 
                            <': options inconsistent with archive read'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'options='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'options='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName options) <' -b '> ($ Id.VSub_DollarName blocksize))}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <-w>
          pattern: (pat.Words words:[{<-w>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName w_ok)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {<-u2>}
                        {
                          (DQ ($ Id.VSub_DollarName command) 
                            <': options inconsistent with archive write'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {(DQ ($ Id.VSub_DollarName command) <': arguments not expected'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'options='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'options='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'options='> name:options)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName options) <' -x '> ($ Id.VSub_DollarName format) <' -b '> 
                        ($ Id.VSub_DollarName blocksize)
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'd_default='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'd_default='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd_default='> name:d_default)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'm_default='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm_default='> name:m_default)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'u_default='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_default='> name:u_default)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <-rw>
          pattern: (pat.Words words:[{<-rw>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p_ok)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {<-u2>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': options inconsistent with file pass'>)
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <print>
                      more_env: []
                      words: [
                        {<print>}
                        {<-u2>}
                        {
                          (DQ ($ Id.VSub_DollarName command) 
                            <': a single directory argument is expected'> ($ Id.VSub_DollarName usage)
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Left_SingleQuote '\''>
          pattern: (pat.Words words:[{(SQ )}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <print>
              more_env: []
              words: [
                {<print>}
                {<-u2>}
                {
                  (DQ ($ Id.VSub_DollarName command) <': one of -i, -o, -p must be specified'> 
                    ($ Id.VSub_DollarName usage)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <print>
              more_env: []
              words: [
                {<print>}
                {<-u2>}
                {
                  (DQ ($ Id.VSub_DollarName command) <': only one of -i, -o, -p may be specified'> 
                    ($ Id.VSub_DollarName usage)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName list)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Left_DoubleQuote '"'>
          pattern: (pat.Words words:[{(DQ <1>)}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'mode='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'mode='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'd_default='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd_default='> name:d_default)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'm_default='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm_default='> name:m_default)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'u_default='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u_default='> name:u_default)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <eval>
          pattern: (pat.Words words:[{<eval>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$exec'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName exec)}
                {<pax>}
                {($ Id.VSub_DollarName mode)}
                {($ Id.VSub_DollarName logphys)}
                {($ Id.VSub_DollarName options)}
                {($ Id.VSub_DollarName d_default)}
                {($ Id.VSub_DollarName m_default)}
                {($ Id.VSub_DollarName u_default)}
                {(SQ <'"$@"'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$exec'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName exec)}
                {<pax>}
                {($ Id.VSub_DollarName mode)}
                {($ Id.VSub_DollarName logphys)}
                {($ Id.VSub_DollarName options)}
                {($ Id.VSub_DollarName d_default)}
                {($ Id.VSub_DollarName m_default)}
                {($ Id.VSub_DollarName u_default)}
                {(DQ ($ Id.VSub_At '@'))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
  ]
)