(CommandList
  children: [
    (Case
      to_match: 
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (SimpleCommand
                    words: [{(getopts)} {(SQ <"[-]">)} {(opt)} {(DQ ("--???man"))}]
                    redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[90])]
                  )
                ]
              )
            left_token: <Left_CommandSub "$(">
            spids: [77 92]
          )
        }
      arms: [
        (case_arm
          pat_list: [{(Lit_VarLike "version=") (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:usage)
                  op: Equal
                  rhs: 
                    {
                      (SQ <"[-?@(#)yes (AT&T Labs Research) 2012-06-06"> <Lit_EscapedChar "\\n"> 
                        <"]\n"> <"\t">
                      ) ($ VSub_Name "$USAGE_LICENSE") 
                      (SQ <"\n"> <"\t[+NAME?yes - repeatedly out a string until killed]\n"> 
                        <"\t[+DESCRIPTION?"> <Lit_EscapedChar "\\b"> <yes> <Lit_EscapedChar "\\b"> <" repeatedly writes "> <Lit_EscapedChar "\\a"> 
                        <string> <Lit_EscapedChar "\\a"> <" to standard\n"> <"\t\toutput, followed by a "> <Lit_EscapedChar "\\a"> 
                        <newline> <Lit_EscapedChar "\\a"> <" character, until it\n"> <"\t\tis terminated.  If "> <Lit_EscapedChar "\\a"> 
                        <string> <Lit_EscapedChar "\\a"> <" is omitted then\n"> <"\t\tthen "> <Lit_EscapedChar "\\b"> <y> 
                        <Lit_EscapedChar "\\b"> <" is used.]\n"> <"\n"> <"\t[string]\n"> <"\n"> <"\t[+EXIT STATUS?]{\n"> <"       \t\t [+0?Success.]\n"> 
                        <"       \t\t [+>0?An error occurred.]\n"> <"\t}\n"> <"\t">
                      )
                    }
                  spids: [104]
                )
              ]
              spids: [104]
            )
          ]
          spids: [96 101 150 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:usage) op:Equal rhs:{(SQ )} spids:[156])]
              spids: [156]
            )
          ]
          spids: [152 153 161 -1]
        )
      ]
      spids: [75 94 163]
    )
    (While
      cond: [(C {(getopts)} {(DQ ($ VSub_Name "$usage"))} {(var)})]
      body: 
        (DoGroup
          children: [(Case to_match:{($ VSub_Name "$var")} spids:[178182185])]
          spids: [176 187]
        )
    )
    (C {(shift)} 
      {
        (ArithSubPart
          anode: 
            (ArithBinary
              op_id: Arith_Minus
              left: (ArithVarRef name:OPTIND)
              right: (ArithWord w:{(Lit_Digits 1)})
            )
          spids: [191 196]
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:string)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_At "@">
                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(y)})
                spids: [199 203]
              )
            }
          spids: [198]
        )
      ]
      spids: [198]
    )
    (Case
      to_match: {($ VSub_Name "$KSH_VERSION")}
      arms: [
        (case_arm
          pat_list: [{(SQ )}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:echo) op:Equal rhs:{(echo)} spids:[215])]
              spids: [215]
            )
          ]
          spids: [-1 213 218 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:echo)
                  op: Equal
                  rhs: {(DQ ("print -r --"))}
                  spids: [223]
                )
              ]
              spids: [223]
            )
          ]
          spids: [220 221 228 -1]
        )
      ]
      spids: [205 209 230]
    )
    (While
      cond: [(C {(Lit_Other ":")})]
      body: 
        (DoGroup
          children: [(C {($ VSub_Name "$echo")} {(DQ ($ VSub_Name "$string"))})]
          spids: [236 244]
        )
    )
  ]
)