(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:USAGE) op:Equal rhs:{(SQ <'<tag>'>)} spids:[4])]
      spids: [4]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SUBDIRECTORY_OK) op:Equal rhs:{(SQ <Yes>)} spids:[9])]
      spids: [9]
    )
    (C {(.)} {(git-sh-setup)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(EmptyPart)} spids:[19])]
      spids: [19]
    )
    (While
      cond: [(C {(test)} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [
                    {(-v)}
                    {(--v)}
                    {(--ve)}
                    {(--ver)}
                    {(--verb)}
                    {(--verbo)}
                    {(--verbos)}
                    {(--verbose)}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(t)} spids:[62])]
                      spids: [62]
                    )
                  ]
                  spids: [44 59 65 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [68 69 74 16777215]
                )
              ]
              spids: [35 41 77]
            )
            (C {(shift)})
          ]
          spids: [32 82]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_Pound '$#'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (1))} 
              {(Lit_Other ']')}
            )
          ]
          action: [(C {(usage)})]
          spids: [16777215 102]
        )
      ]
      spids: [16777215 107]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:type)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (SimpleCommand
                              words: [{(git)} {(cat-file)} {(-t)} {(DQ ($ VSub_Number '$1'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [123]
                                )
                              ]
                            )
                          ]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [112 125]
                    )
                  )
                }
              spids: [110]
            )
          ]
          spids: [110]
        )
        (C {(die)} {(DQ ($ VSub_Number '$1') (': no such object.'))})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (C {(test)} {(DQ ($ VSub_Name '$type'))} {(Lit_Other '=')} {(tag)})
        (C {(die)} 
          {
            (DQ ($ VSub_Number '$1') (': cannot verify a non-tag object of type ') 
              ($ VSub_Name '$type') (.)
            )
          }
        )
      ]
    )
    (Case
      to_match: {(DQ ($ VSub_Name '$verbose'))}
      arms: [
        (case_arm
          pat_list: [{(t)}]
          action: [
            (Pipeline
              children: [
                (C {(git)} {(cat-file)} {(-p)} {(DQ ($ VSub_Number '$1'))})
                (C {(sed)} {(-n)} {(-e)} {(SQ <'/^-----BEGIN PGP SIGNATURE-----/q'>)} {(-e)} {(p)})
              ]
              negated: F
            )
          ]
          spids: [170 171 202 16777215]
        )
      ]
      spids: [162 168 204]
    )
    (C {(trap)} {(SQ <'rm -f "$GIT_DIR/.tmp-vtag"'>)} {(0)})
    (AndOr
      ops: [Op_DPipe]
      children: [
        (SimpleCommand
          words: [{(git)} {(cat-file)} {(tag)} {(DQ ($ VSub_Number '$1'))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: 16777215
              arg_word: {(DQ ($ VSub_Name '$GIT_DIR') (/.tmp-vtag))}
              spids: [226]
            )
          ]
        )
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (AndOr
      ops: [Op_DPipe]
      children: [
        (Pipeline
          children: [
            (SimpleCommand
              words: [
                {(sed)}
                {(-n)}
                {(-e)}
                {(SQ <'\n'> <'\t/^-----BEGIN PGP SIGNATURE-----$/q\n'> <'\tp\n'>)}
              ]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$GIT_DIR') (/.tmp-vtag))}
                  spids: [250]
                )
              ]
            )
            (C {(gpg)} {(--verify)} {(DQ ($ VSub_Name '$GIT_DIR') (/.tmp-vtag))} {(-)})
          ]
          negated: F
        )
        (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$GIT_DIR') (/.tmp-vtag))})
  ]
)