(command.CommandList
  children: [
    (C {<Id.KW_Set set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BZIPPROG)
          op: assign_op.Equal
          rhs: {<bzip2>}
          spids: [67]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GZIPPROG)
          op: assign_op.Equal
          rhs: {<gzip>}
          spids: [70]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:XZPROG)
          op: assign_op.Equal
          rhs: {<xz>}
          spids: [73]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MD5PROG)
          op: assign_op.Equal
          rhs: {<md5sum>}
          spids: [76]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAKE)
          op: assign_op.Equal
          rhs: {<make>}
          spids: [79]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:CC) op:assign_op.Equal rhs:{<gcc>} spids:[82])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CXX)
          op: assign_op.Equal
          rhs: {<g> <Id.Lit_Other '+'> <Id.Lit_Other '+'>}
          spids: [85]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAKEINFOFLAGS)
          op: assign_op.Equal
          rhs: {<--split-size> <Id.Lit_Equals '='> <5000000>}
          spids: [94]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DEVO_SUPPORT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'README Makefile.in configure configure.ac '> 
                <'\tconfig.guess config.sub config move-if-change '> <'\tCOPYING COPYING.LIB install-sh config-ml.in symlink-tree '> 
                <'\tmkinstalldirs ltmain.sh missing ylwrap '> <'\tlibtool.m4 ltsugar.m4 ltversion.m4 ltoptions.m4 '> 
                <'\tMakefile.def Makefile.tpl src-release.sh config.rpath '> <'\tChangeLog MAINTAINERS README-maintainer-mode '> 
                <'\tlt~obsolete.m4 ltgcc.m4 depcomp mkdep compile '> <'\tCOPYING3 COPYING3.LIB'>
              )
            }
          spids: [110]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ETC_SUPPORT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Makefile.in configure configure.in standards.texi '> 
                <'\tmake-stds.texi standards.info* configure.texi configure.info* '> <'\tChangeLog configbuild.* configdev.* fdl.texi texi2pod.pl gnu-oids.texi'>
              )
            }
          spids: [135]
        )
      ]
    )
    (command.ShFunction
      name: getver
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [155]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [
                            {<grep>}
                            {(SQ <'AC_INIT.*BFD_VERSION'>)}
                            {($ Id.VSub_DollarName '$tool') <'/configure.ac'>}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Pipeline
                      children: [
                        (C {<'bfd/configure'>} {<--version>})
                        (C {<sed>} {<-n>} {<-e>} {(SQ <'1s,.* ,,p'>)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [159 177]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {<-f>} 
                          {($ Id.VSub_DollarName '$tool') <'/common/create-version.sh'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {($ Id.VSub_DollarName '$tool') <'/common/create-version.sh'>} 
                      {($ Id.VSub_DollarName '$tool')} {(SQ <dummy-host>)} {(SQ <dummy-target>)} {<VER.tmp>}
                    )
                    (command.Pipeline
                      children: [
                        (C {<cat>} {<VER.tmp>})
                        (C {<grep>} {(SQ <'version\\[\\]'>)})
                        (C {<sed>} {(SQ <'s/.*"\\([^"]*\\)".*/\\1/'>)})
                        (C {<sed>} {(SQ <'s/-cvs$//'>)})
                      ]
                      negated: F
                    )
                    (C {<rm>} {<-f>} {<VER.tmp>})
                  ]
                  spids: [197 207]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-f>} {($ Id.VSub_DollarName '$tool') <'/version.in'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<head>} {<-1>} {($ Id.VSub_DollarName '$tool') <'/version.in'>})]
                  spids: [262 272]
                )
              ]
              else_action: [(C {<echo>} {<VERSION>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: do_proto_toplev
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [306]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [310]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$3')}
                  spids: [314]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:support_files)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$4')}
                  spids: [318]
                )
              ]
            )
            (C {<echo>} 
              {
                (DQ <'==> Making '> ($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') 
                  <'/'>
                )
              }
            )
            (command.Simple
              words: [
                {<sed>}
                {<-e>}
                {(SQ <'/^all\\.normal: /s/\\all-texinfo //'>)}
                {<-e>}
                {(SQ <'/^\tinstall-texinfo /d'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {<Makefile.in>}
                )
                (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<tmp>})
              ]
              do_fork: T
            )
            (C {<mv>} {<-f>} {<tmp>} {<Makefile.in>})
            (C {<'./configure'>} {<--target> <Id.Lit_Equals '='> <i386-pc-linux-gnu>})
            (C {($ Id.VSub_DollarName '$MAKE')} {<configure-host>} {<configure-target>} 
              {<Id.Lit_VarLike 'ALL_GCC='> (DQ )} {<Id.Lit_VarLike 'ALL_GCC_C='> (DQ )} {<Id.Lit_VarLike 'ALL_GCC_CXX='> (DQ )} 
              {<Id.Lit_VarLike 'CC_FOR_TARGET='> (DQ ($ Id.VSub_DollarName '$CC'))} {<Id.Lit_VarLike 'CXX_FOR_TARGET='> (DQ ($ Id.VSub_DollarName '$CXX'))}
            )
            (C {<rm>} {<-rf>} {<proto-toplev>})
            (C {<mkdir>} {<proto-toplev>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dirs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$DEVO_SUPPORT') <' '> 
                        ($ Id.VSub_DollarName '$support_files') <' '> ($ Id.VSub_DollarName '$tool')
                      )
                    }
                  spids: [431]
                )
              ]
            )
            (command.ForEach
              iter_name: d
              iter_words: [{($ Id.VSub_DollarName '$dirs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-d>} {($ Id.VSub_DollarName '$d')} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                                          {($ Id.VSub_DollarName '$d') <'/Makefile'>} {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [(C {<true>})]
                                  spids: [468 483]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          words: [
                                            {<grep>}
                                            {(SQ <'^diststuff:'>)}
                                            {($ Id.VSub_DollarName '$d') <'/Makefile'>}
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Subshell
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Sentence
                                                  child: (C {<cd>} {($ Id.VSub_DollarName '$d')})
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (C {($ Id.VSub_DollarName '$MAKE')} 
                                                  {<Id.Lit_VarLike 'MAKEINFOFLAGS='> 
                                                    (DQ ($ Id.VSub_DollarName '$MAKEINFOFLAGS'))
                                                  } {<diststuff>}
                                                )
                                              ]
                                            )
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [489 505]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          words: [
                                            {<grep>}
                                            {(SQ <'^info:'>)}
                                            {($ Id.VSub_DollarName '$d') <'/Makefile'>}
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.Subshell
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Sentence
                                                  child: (C {<cd>} {($ Id.VSub_DollarName '$d')})
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (C {($ Id.VSub_DollarName '$MAKE')} 
                                                  {<Id.Lit_VarLike 'MAKEINFOFLAGS='> 
                                                    (DQ ($ Id.VSub_DollarName '$MAKEINFOFLAGS'))
                                                  } {<info>}
                                                )
                                              ]
                                            )
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [534 550]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.Lit_LBracket '['>} {<-d>} 
                                          {($ Id.VSub_DollarName '$d') <'/proto-'> 
                                            ($ Id.VSub_DollarName '$d') <.dir>
                                          } {<Id.Lit_RBracket ']'>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<ln>} {<-s>} 
                                      {<'../'> ($ Id.VSub_DollarName '$d') <'/proto-'> 
                                        ($ Id.VSub_DollarName '$d') <.dir>
                                      } {<'proto-toplev/'> ($ Id.VSub_DollarName '$d')}
                                    )
                                  ]
                                  spids: [582 596]
                                )
                              ]
                              else_action: [
                                (C {<ln>} {<-s>} {<'../'> ($ Id.VSub_DollarName '$d')} 
                                  {<'proto-toplev/'> ($ Id.VSub_DollarName '$d')}
                                )
                              ]
                            )
                          ]
                          spids: [454 465]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.Subshell
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<echo>} {<x> ($ Id.VSub_DollarName '$d')})
                                            (command.Simple
                                              words: [{<grep>} {<'/'>}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          negated: F
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<mkdir>} {<-p>} 
                                  {<'proto-toplev/'> 
                                    (command_sub
                                      left_token: <Id.Left_Backtick '`'>
                                      child: (C {<dirname>} {($ Id.VSub_DollarName '$d')})
                                    )
                                  }
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:x)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: (C {<dirname>} {($ Id.VSub_DollarName '$d')})
                                          )
                                        }
                                      spids: [669]
                                    )
                                  ]
                                )
                                (C {<ln>} {<-s>} 
                                  {<'../'> 
                                    (command_sub
                                      left_token: <Id.Left_Backtick '`'>
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (C {<echo>} {($ Id.VSub_DollarName '$x') <'/'>})
                                            (C {<sed>} {<-e>} {(SQ <'s,[^/]*/,../,g'>)})
                                          ]
                                          negated: F
                                        )
                                    ) ($ Id.VSub_DollarName '$d')
                                  } {<'proto-toplev/'> ($ Id.VSub_DollarName '$d')}
                                )
                              ]
                              spids: [633 652]
                            )
                          ]
                          else_action: [
                            (C {<ln>} {<-s>} {<'../'> ($ Id.VSub_DollarName '$d')} 
                              {<'proto-toplev/'> ($ Id.VSub_DollarName '$d')}
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.Subshell
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: (C {<cd>} {<etc>})
                      terminator: <Id.Op_Semi _>
                    )
                    (C {($ Id.VSub_DollarName '$MAKE')} 
                      {<Id.Lit_VarLike 'MAKEINFOFLAGS='> (DQ ($ Id.VSub_DollarName '$MAKEINFOFLAGS'))} {<info>}
                    )
                  ]
                )
            )
            (C {($ Id.VSub_DollarName '$MAKE')} {<distclean>})
            (C {<mkdir>} {<'proto-toplev/etc'>})
            (command.Subshell
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: (C {<cd>} {<'proto-toplev/etc'>})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ForEach
                      iter_name: i
                      iter_words: [{($ Id.VSub_DollarName '$ETC_SUPPORT')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<ln>} {<-s>} {<'../../etc/'> ($ Id.VSub_DollarName '$i')} {<.>})
                          ]
                        )
                    )
                  ]
                )
            )
            (C {<rm>} {<'proto-toplev/configure.ac'>})
            (command.Simple
              words: [{<sed>} {<-e>} {(SQ <'/^host_tools=/s/texinfo //'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {<configure.ac>}
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'proto-toplev/configure.ac'>}
                )
              ]
              do_fork: T
            )
            (C {<mkdir>} {<'proto-toplev/texinfo'>})
            (C {<ln>} {<-s>} {<'../../texinfo/texinfo.tex'>} {<'proto-toplev/texinfo/'>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-r>} {<'texinfo/util/tex3patch'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<mkdir>} {<'proto-toplev/texinfo/util'>})
                        (C {<ln>} {<-s>} {<'../../../texinfo/util/tex3patch'>} 
                          {<'proto-toplev/texinfo/util'>}
                        )
                      ]
                    )
                  ]
                  spids: [839 849]
                )
              ]
              else_action: [(C {<true>})]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<chmod>} {<-R>} {<Id.Lit_VarLike 'og='> <u>} {<.>})
                (C {<chmod>} {<Id.Lit_VarLike 'og='> <u>} 
                  {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<find>} {<.>} {<-print>}))}
                )
              ]
            )
            (command.ForEach
              iter_name: f
              iter_words: [
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<find>} {<.>} {<-name>} {(SQ <'*.po'>)} {<-type>} {<f>} {<-print>})
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<msgfmt>} {<-o>} 
                      {
                        (command_sub
                          left_token: <Id.Left_Backtick '`'>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<echo>} {($ Id.VSub_DollarName '$f')})
                                (C {<sed>} {<-e>} {(SQ <'s/\\.po$/.gmo/'>)})
                              ]
                              negated: F
                            )
                        )
                      } {($ Id.VSub_DollarName '$f')}
                    )
                  ]
                )
            )
            (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver')})
            (C {<ln>} {<-s>} {<proto-toplev>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver')}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CVS_NAMES)
          op: assign_op.Equal
          rhs: {(SQ <'-name CVS -o -name .cvsignore'>)}
          spids: [999]
        )
      ]
    )
    (command.ShFunction
      name: do_md5sum
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {(DQ <'==> Adding md5 checksum to top-level directory'>)})
            (command.Subshell
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (C {<cd>} {<proto-toplev>})
                    (command.Pipeline
                      children: [
                        (C {<find>} {<Id.Lit_Star '*'>} {<-follow>} 
                          {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} {($ Id.VSub_DollarName '$CVS_NAMES')} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} 
                          {<-prune>} {<-o>} {<-type>} {<f>} {<-print>}
                        )
                        (command.Simple
                          words: [{<xargs>} {($ Id.VSub_DollarName '$MD5PROG')}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'../md5.new'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      negated: F
                    )
                  ]
                )
            )
            (C {<rm>} {<-f>} {<'proto-toplev/md5.sum'>})
            (C {<mv>} {<md5.new>} {<'proto-toplev/md5.sum'>})
          ]
        )
    )
    (command.ShFunction
      name: do_tar
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1093]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1097]
                )
              ]
            )
            (C {<echo>} 
              {
                (DQ <'==> Making '> ($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') 
                  <.tar>
                )
              }
            )
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar>}
            )
            (command.Pipeline
              children: [
                (C {<find>} {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver')} 
                  {<-follow>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} {($ Id.VSub_DollarName '$CVS_NAMES')} 
                  {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} {<-prune>} {<-o>} {<-type>} {<f>} {<-print>}
                )
                (C {<tar>} {<cTfh>} {<->} 
                  {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar>}
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: do_bz2
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1176]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1180]
                )
              ]
            )
            (C {<echo>} 
              {
                (DQ <'==> Bzipping '> ($ Id.VSub_DollarName '$package') <-> 
                  ($ Id.VSub_DollarName '$ver') <.tar.bz2>
                )
              }
            )
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar.bz2>}
            )
            (C {($ Id.VSub_DollarName '$BZIPPROG')} {<-k>} {<-v>} {<-9>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar>}
            )
          ]
        )
    )
    (command.ShFunction
      name: do_gz
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1231]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1235]
                )
              ]
            )
            (C {<echo>} 
              {
                (DQ <'==> Gzipping '> ($ Id.VSub_DollarName '$package') <-> 
                  ($ Id.VSub_DollarName '$ver') <.tar.gz>
                )
              }
            )
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar.gz>}
            )
            (C {($ Id.VSub_DollarName '$GZIPPROG')} {<-k>} {<-v>} {<-9>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar>}
            )
          ]
        )
    )
    (command.ShFunction
      name: do_xz
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1286]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1290]
                )
              ]
            )
            (C {<echo>} 
              {
                (DQ <'==> Xzipping '> ($ Id.VSub_DollarName '$package') <-> 
                  ($ Id.VSub_DollarName '$ver') <.tar.xz>
                )
              }
            )
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar.xz>}
            )
            (C {($ Id.VSub_DollarName '$XZPROG')} {<-k>} {<-v>} {<-9>} 
              {($ Id.VSub_DollarName '$package') <-> ($ Id.VSub_DollarName '$ver') <.tar>}
            )
          ]
        )
    )
    (command.ShFunction
      name: do_compress
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1341]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1345]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$3')}
                  spids: [1349]
                )
              ]
            )
            (command.ForEach
              iter_name: comp
              iter_words: [{($ Id.VSub_DollarName '$compressors')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$comp')}
                      arms: [
                        (case_arm
                          pat_list: [{<bz2>}]
                          action: [
                            (C {<do_bz2>} {($ Id.VSub_DollarName '$package')} 
                              {($ Id.VSub_DollarName '$ver')}
                            )
                          ]
                          spids: [1372 1373 1381 -1]
                        )
                        (case_arm
                          pat_list: [{<gz>}]
                          action: [
                            (C {<do_gz>} {($ Id.VSub_DollarName '$package')} 
                              {($ Id.VSub_DollarName '$ver')}
                            )
                          ]
                          spids: [1384 1385 1393 -1]
                        )
                        (case_arm
                          pat_list: [{<xz>}]
                          action: [
                            (C {<do_xz>} {($ Id.VSub_DollarName '$package')} 
                              {($ Id.VSub_DollarName '$ver')}
                            )
                          ]
                          spids: [1396 1397 1405 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<echo>} 
                                  {
                                    (DQ <'Unknown compression method: '> 
                                      ($ Id.VSub_DollarName '$comp')
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [1408 1409 1424 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: do_djunpack
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1445]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1449]
                )
              ]
            )
            (C {<echo>} {(DQ <'==> Adding updated djunpack.bat to top-level directory'>)})
            (C {<echo>} {<->} 
              {(SQ <'s /gdb-[0-9\\.]*/$package-'>) (DQ ($ Id.VSub_DollarName '$ver')) (SQ <'/'>)}
            )
            (command.Simple
              words: [
                {<sed>}
                {<-e>}
                {(SQ <'s/gdb-[0-9][0-9\\.]*/$package-'>) (DQ ($ Id.VSub_DollarName '$ver')) (SQ <'/'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {<djunpack.bat>}
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<djunpack.new>}
                )
              ]
              do_fork: T
            )
            (C {<rm>} {<-f>} {<'proto-toplev/djunpack.bat'>})
            (C {<mv>} {<djunpack.new>} {<'proto-toplev/djunpack.bat'>})
          ]
        )
    )
    (command.ShFunction
      name: tar_compress
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1526]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1530]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:support_files)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$3')}
                  spids: [1534]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$4')}
                  spids: [1538]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:verdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 5>
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VTest_ColonHyphen
                            arg_word: {($ Id.VSub_DollarName '$tool')}
                          )
                      )
                    }
                  spids: [1542]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<getver>} {($ Id.VSub_DollarName '$verdir')})
                      )
                    }
                  spids: [1550]
                )
              ]
            )
            (C {<do_proto_toplev>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$ver')} 
              {($ Id.VSub_DollarName '$tool')} {(DQ ($ Id.VSub_DollarName '$support_files'))}
            )
            (C {<do_md5sum>})
            (C {<do_tar>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$ver')})
            (C {<do_compress>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$ver')} 
              {(DQ ($ Id.VSub_DollarName '$compressors'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: gdb_tar_compress
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1604]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1608]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:support_files)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$3')}
                  spids: [1612]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$4')}
                  spids: [1616]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ver)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<getver>} {($ Id.VSub_DollarName '$tool')})
                      )
                    }
                  spids: [1620]
                )
              ]
            )
            (C {<do_proto_toplev>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$ver')} 
              {($ Id.VSub_DollarName '$tool')} {(DQ ($ Id.VSub_DollarName '$support_files'))}
            )
            (C {<do_md5sum>})
            (C {<do_djunpack>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$ver')})
            (C {<do_tar>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$ver')})
            (C {<do_compress>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$ver')} 
              {(DQ ($ Id.VSub_DollarName '$compressors'))}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BINUTILS_SUPPORT_DIRS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'bfd gas include libiberty opcodes ld elfcpp gold gprof intl setup.com makefile.vms cpu zlib'
                >
              )
            }
          spids: [1674]
        )
      ]
    )
    (command.ShFunction
      name: binutils_release
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1686]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {<binutils>}
                  spids: [1690]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {<binutils>}
                  spids: [1694]
                )
              ]
            )
            (C {<tar_compress>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$tool')} 
              {(DQ ($ Id.VSub_DollarName '$BINUTILS_SUPPORT_DIRS'))} {(DQ ($ Id.VSub_DollarName '$compressors'))}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GAS_SUPPORT_DIRS)
          op: assign_op.Equal
          rhs: {(DQ <'bfd include libiberty opcodes intl setup.com makefile.vms zlib'>)}
          spids: [1715]
        )
      ]
    )
    (command.ShFunction
      name: gas_release
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1727]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {<gas>}
                  spids: [1731]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {<gas>}
                  spids: [1735]
                )
              ]
            )
            (C {<tar_compress>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$tool')} 
              {(DQ ($ Id.VSub_DollarName '$GAS_SUPPORT_DIRS'))} {(DQ ($ Id.VSub_DollarName '$compressors'))}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GDB_SUPPORT_DIRS)
          op: assign_op.Equal
          rhs: {(DQ <'bfd include libiberty opcodes readline sim intl libdecnumber cpu zlib'>)}
          spids: [1756]
        )
      ]
    )
    (command.ShFunction
      name: gdb_release
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1768]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {<gdb>}
                  spids: [1772]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {<gdb>}
                  spids: [1776]
                )
              ]
            )
            (C {<gdb_tar_compress>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$tool')} 
              {(DQ ($ Id.VSub_DollarName '$GDB_SUPPORT_DIRS'))} {(DQ ($ Id.VSub_DollarName '$compressors'))}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SIM_SUPPORT_DIRS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                <
'bfd opcodes libiberty include intl gdb/version.in gdb/common/create-version.sh makefile.vms zlib'
                >
              )
            }
          spids: [1800]
        )
      ]
    )
    (command.ShFunction
      name: sim_release
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1812]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:package)
                  op: assign_op.Equal
                  rhs: {<sim>}
                  spids: [1816]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tool)
                  op: assign_op.Equal
                  rhs: {<sim>}
                  spids: [1820]
                )
              ]
            )
            (C {<tar_compress>} {($ Id.VSub_DollarName '$package')} {($ Id.VSub_DollarName '$tool')} 
              {(DQ ($ Id.VSub_DollarName '$SIM_SUPPORT_DIRS'))} {(DQ ($ Id.VSub_DollarName '$compressors'))} {<gdb>}
            )
          ]
        )
    )
    (command.ShFunction
      name: usage
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {(DQ <'src-release.sh <options> <release>'>)})
            (C {<echo>} {(DQ <'options:'>)})
            (C {<echo>} {(DQ <'  -b: Compress with bzip2'>)})
            (C {<echo>} {(DQ <'  -g: Compress with gzip'>)})
            (C {<echo>} {(DQ <'  -x: Compress with xz'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
        )
    )
    (command.ShFunction
      name: build_release
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:release)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1899]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [1903]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$release')}
              arms: [
                (case_arm
                  pat_list: [{<binutils>}]
                  action: [(C {<binutils_release>} {(DQ ($ Id.VSub_DollarName '$compressors'))})]
                  spids: [1914 1915 1923 -1]
                )
                (case_arm
                  pat_list: [{<gas>}]
                  action: [(C {<gas_release>} {(DQ ($ Id.VSub_DollarName '$compressors'))})]
                  spids: [1926 1927 1935 -1]
                )
                (case_arm
                  pat_list: [{<gdb>}]
                  action: [(C {<gdb_release>} {(DQ ($ Id.VSub_DollarName '$compressors'))})]
                  spids: [1938 1939 1947 -1]
                )
                (case_arm
                  pat_list: [{<sim>}]
                  action: [(C {<sim_release>} {(DQ ($ Id.VSub_DollarName '$compressors'))})]
                  spids: [1950 1951 1959 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<echo>} {(DQ <'Unknown release name: '> ($ Id.VSub_DollarName '$release'))})
                        (C {<usage>})
                      ]
                    )
                  ]
                  spids: [1962 1963 1976 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:compressors)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [1984]
        )
      ]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: [
        (command.Sentence
          child: (C {<getopts>} {(DQ <':gbx'>)} {<opt>})
          terminator: <Id.Op_Semi _>
        )
      ]
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName '$opt')}
              arms: [
                (case_arm
                  pat_list: [{<b>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compressors)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$compressors') <' bz2'>)}
                          spids: [2014]
                        )
                      ]
                    )
                  ]
                  spids: [2010 2011 2019 -1]
                )
                (case_arm
                  pat_list: [{<g>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compressors)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$compressors') <' gz'>)}
                          spids: [2026]
                        )
                      ]
                    )
                  ]
                  spids: [2022 2023 2031 -1]
                )
                (case_arm
                  pat_list: [{<x>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compressors)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$compressors') <' xz'>)}
                          spids: [2038]
                        )
                      ]
                    )
                  ]
                  spids: [2034 2035 2043 -1]
                )
                (case_arm
                  pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<echo>} {(DQ <'Invalid option: -'> ($ Id.VSub_DollarName '$OPTARG'))})
                        (C {<usage>})
                      ]
                    )
                  ]
                  spids: [2046 2047 2060 -1]
                )
              ]
            )
          ]
        )
    )
    (C {<shift>} 
      {
        (word_part.ArithSub
          anode: 
            (arith_expr.Binary
              op_id: Id.Arith_Minus
              left: <Id.Lit_ArithVarLike OPTIND>
              right: {<Id.Lit_Digits 1>}
            )
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:release)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$1')}
          spids: [2077]
        )
      ]
    )
    (C {<build_release>} {($ Id.VSub_DollarName '$release')} {(DQ ($ Id.VSub_DollarName '$compressors'))})
  ]
)