(command.CommandList
  children: [
    (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-e>}] redirects:[] do_fork:T)
    (command.ShAssignment
      left: <Id.Lit_VarLike 'BZIPPROG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'BZIPPROG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BZIPPROG='> name:BZIPPROG)
          op: assign_op.Equal
          rhs: {<bzip2>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GZIPPROG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GZIPPROG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GZIPPROG='> name:GZIPPROG)
          op: assign_op.Equal
          rhs: {<gzip>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'XZPROG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'XZPROG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'XZPROG='> name:XZPROG)
          op: assign_op.Equal
          rhs: {<xz>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MD5PROG='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MD5PROG='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MD5PROG='> name:MD5PROG)
          op: assign_op.Equal
          rhs: {<md5sum>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAKE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAKE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKE='> name:MAKE)
          op: assign_op.Equal
          rhs: {<make>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CC='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CC='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
          op: assign_op.Equal
          rhs: {<gcc>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CXX='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CXX='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CXX='> name:CXX)
          op: assign_op.Equal
          rhs: {<g> <Id.Lit_Other '+'> <Id.Lit_Other '+'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAKEINFOFLAGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAKEINFOFLAGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKEINFOFLAGS='> name:MAKEINFOFLAGS)
          op: assign_op.Equal
          rhs: {<--split-size> <Id.Lit_Equals '='> <5000000>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DEVO_SUPPORT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DEVO_SUPPORT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEVO_SUPPORT='> 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'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ETC_SUPPORT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ETC_SUPPORT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETC_SUPPORT='> 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'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <getver>
      name: getver
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <grep>
                              more_env: []
                              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 _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <'bfd/configure'>
                          more_env: []
                          words: [{<'bfd/configure'>} {<--version>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {<-n>} {<-e>} {(SQ <'1s,.* ,,p'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                  ]
                  spids: [159 177]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<-f>}
                                {($ Id.VSub_DollarName tool) <'/common/create-version.sh'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$tool'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName tool) <'/common/create-version.sh'>}
                        {($ Id.VSub_DollarName tool)}
                        {(SQ <dummy-host>)}
                        {(SQ <dummy-target>)}
                        {<VER.tmp>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>} {<VER.tmp>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <grep>
                          more_env: []
                          words: [{<grep>} {(SQ <'version\\[\\]'>)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {(SQ <'s/.*"\\([^"]*\\)".*/\\1/'>)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {(SQ <'s/-cvs$//'>)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {<VER.tmp>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [197 207]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-f>} {($ Id.VSub_DollarName tool) <'/version.in'>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <head>
                      more_env: []
                      words: [{<head>} {<-1>} {($ Id.VSub_DollarName tool) <'/version.in'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [262 272]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<VERSION>}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_proto_toplev>
      name: do_proto_toplev
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'support_files='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'support_files='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'support_files='> name:support_files)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'==> Making '> ($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <'/'>)
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              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
            )
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [{<mv>} {<-f>} {<tmp>} {<Makefile.in>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <'./configure'>
              more_env: []
              words: [{<'./configure'>} {<--target> <Id.Lit_Equals '='> <i386-pc-linux-gnu>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$MAKE'>
              more_env: []
              words: [
                {($ 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))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-rf>} {<proto-toplev>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<proto-toplev>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dirs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dirs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dirs='> name:dirs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName DEVO_SUPPORT) <' '> 
                        ($ Id.VSub_DollarName support_files) <' '> ($ Id.VSub_DollarName tool)
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [d]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName dirs)}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Simple
                                      blame_tok: <Id.Lit_LBracket '['>
                                      more_env: []
                                      words: [
                                        {<Id.Lit_LBracket '['>}
                                        {<-d>}
                                        {($ Id.VSub_DollarName d)}
                                        {<Id.Lit_RBracket ']'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<Id.KW_Bang '!'>}
                                                {<-f>}
                                                {($ Id.VSub_DollarName d) <'/Makefile'>}
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <true>
                                      more_env: []
                                      words: [{<true>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [468 483]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <grep>
                                              more_env: []
                                              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 _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cd>
                                                      more_env: []
                                                      words: [{<cd>} {($ Id.VSub_DollarName d)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$MAKE'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName MAKE)}
                                                    {<Id.Lit_VarLike 'MAKEINFOFLAGS='> 
                                                      (DQ ($ Id.VSub_DollarName MAKEINFOFLAGS))
                                                    }
                                                    {<diststuff>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [489 505]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <grep>
                                              more_env: []
                                              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 _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <cd>
                                                      more_env: []
                                                      words: [{<cd>} {($ Id.VSub_DollarName d)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$MAKE'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName MAKE)}
                                                    {<Id.Lit_VarLike 'MAKEINFOFLAGS='> 
                                                      (DQ ($ Id.VSub_DollarName MAKEINFOFLAGS))
                                                    }
                                                    {<info>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [534 550]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {<-d>}
                                                {($ Id.VSub_DollarName d) <'/proto-'> 
                                                  ($ Id.VSub_DollarName d) <.dir>
                                                }
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <ln>
                                      more_env: []
                                      words: [
                                        {<ln>}
                                        {<-s>}
                                        {<'../'> ($ Id.VSub_DollarName d) <'/proto-'> 
                                          ($ Id.VSub_DollarName d) <.dir>
                                        }
                                        {<'proto-toplev/'> ($ Id.VSub_DollarName d)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [582 596]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <ln>
                                  more_env: []
                                  words: [
                                    {<ln>}
                                    {<-s>}
                                    {<'../'> ($ Id.VSub_DollarName d)}
                                    {<'proto-toplev/'> ($ Id.VSub_DollarName d)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [454 465]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [{<echo>} {<x> ($ Id.VSub_DollarName d)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <grep>
                                                  more_env: []
                                                  words: [{<grep>} {<'/'>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _>]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <mkdir>
                                  more_env: []
                                  words: [
                                    {<mkdir>}
                                    {<-p>}
                                    {<'proto-toplev/'> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <dirname>
                                            more_env: []
                                            words: [{<dirname>} {($ Id.VSub_DollarName d)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'x='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'x='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                blame_tok: <dirname>
                                                more_env: []
                                                words: [{<dirname>} {($ Id.VSub_DollarName d)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <ln>
                                  more_env: []
                                  words: [
                                    {<ln>}
                                    {<-s>}
                                    {<'../'> 
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {($ Id.VSub_DollarName x) <'/'>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {<-e>} {(SQ <'s,[^/]*/,../,g'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      ) ($ Id.VSub_DollarName d)
                                    }
                                    {<'proto-toplev/'> ($ Id.VSub_DollarName d)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              spids: [633 652]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.Simple
                              blame_tok: <ln>
                              more_env: []
                              words: [
                                {<ln>}
                                {<-s>}
                                {<'../'> ($ Id.VSub_DollarName d)}
                                {<'proto-toplev/'> ($ Id.VSub_DollarName d)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [{<cd>} {<etc>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$MAKE'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName MAKE)}
                        {<Id.Lit_VarLike 'MAKEINFOFLAGS='> (DQ ($ Id.VSub_DollarName MAKEINFOFLAGS))}
                        {<info>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$MAKE'>
              more_env: []
              words: [{($ Id.VSub_DollarName MAKE)} {<distclean>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<'proto-toplev/etc'>}]
              redirects: []
              do_fork: T
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <cd>
                          more_env: []
                          words: [{<cd>} {<'proto-toplev/etc'>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ETC_SUPPORT)}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <ln>
                              more_env: []
                              words: [{<ln>} {<-s>} {<'../../etc/'> ($ Id.VSub_DollarName i)} {<.>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<'proto-toplev/configure.ac'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              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
            )
            (command.Simple
              blame_tok: <mkdir>
              more_env: []
              words: [{<mkdir>} {<'proto-toplev/texinfo'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ln>
              more_env: []
              words: [{<ln>} {<-s>} {<'../../texinfo/texinfo.tex'>} {<'proto-toplev/texinfo/'>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [{<test>} {<-r>} {<'texinfo/util/tex3patch'>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <mkdir>
                          more_env: []
                          words: [{<mkdir>} {<'proto-toplev/texinfo/util'>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <ln>
                          more_env: []
                          words: [
                            {<ln>}
                            {<-s>}
                            {<'../../../texinfo/util/tex3patch'>}
                            {<'proto-toplev/texinfo/util'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  spids: [839 849]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <true>
                  more_env: []
                  words: [{<true>}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <chmod>
                  more_env: []
                  words: [{<chmod>} {<-R>} {<Id.Lit_VarLike 'og='> <u>} {<.>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <chmod>
                  more_env: []
                  words: [
                    {<chmod>}
                    {<Id.Lit_VarLike 'og='> <u>}
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <find>
                            more_env: []
                            words: [{<find>} {<.>} {<-print>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [f]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <find>
                            more_env: []
                            words: [{<find>} {<.>} {<-name>} {(SQ <'*.po'>)} {<-type>} {<f>} {<-print>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  ]
                )
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <msgfmt>
                      more_env: []
                      words: [
                        {<msgfmt>}
                        {<-o>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {($ Id.VSub_DollarName f)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [{<sed>} {<-e>} {(SQ <'s/\\.po$/.gmo/'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                        {($ Id.VSub_DollarName f)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <ln>
              more_env: []
              words: [
                {<ln>}
                {<-s>}
                {<proto-toplev>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CVS_NAMES='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CVS_NAMES='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CVS_NAMES='> name:CVS_NAMES)
          op: assign_op.Equal
          rhs: {(SQ <'-name CVS -o -name .cvsignore'>)}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <do_md5sum>
      name: do_md5sum
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'==> Adding md5 checksum to top-level directory'>)}]
              redirects: []
              do_fork: T
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<proto-toplev>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <find>
                          more_env: []
                          words: [
                            {<find>}
                            {<Id.Lit_Star '*'>}
                            {<-follow>}
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')}
                            {($ Id.VSub_DollarName CVS_NAMES)}
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')}
                            {<-prune>}
                            {<-o>}
                            {<-type>}
                            {<f>}
                            {<-print>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <xargs>
                          more_env: []
                          words: [{<xargs>} {($ Id.VSub_DollarName MD5PROG)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'../md5.new'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {<'proto-toplev/md5.sum'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [{<mv>} {<md5.new>} {<'proto-toplev/md5.sum'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_tar>
      name: do_tar
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'==> Making '> ($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) 
                    <.tar>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [
                {<rm>}
                {<-f>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <find>
                  more_env: []
                  words: [
                    {<find>}
                    {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver)}
                    {<-follow>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')}
                    {($ Id.VSub_DollarName CVS_NAMES)}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')}
                    {<-prune>}
                    {<-o>}
                    {<-type>}
                    {<f>}
                    {<-print>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tar>
                  more_env: []
                  words: [
                    {<tar>}
                    {<cTfh>}
                    {<->}
                    {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_bz2>
      name: do_bz2
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'==> Bzipping '> ($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) 
                    <.tar.bz2>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [
                {<rm>}
                {<-f>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar.bz2>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$BZIPPROG'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName BZIPPROG)}
                {<-k>}
                {<-v>}
                {<-9>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_gz>
      name: do_gz
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'==> Gzipping '> ($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) 
                    <.tar.gz>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [
                {<rm>}
                {<-f>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar.gz>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$GZIPPROG'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName GZIPPROG)}
                {<-k>}
                {<-v>}
                {<-9>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_xz>
      name: do_xz
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'==> Xzipping '> ($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) 
                    <.tar.xz>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [
                {<rm>}
                {<-f>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar.xz>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$XZPROG'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName XZPROG)}
                {<-k>}
                {<-v>}
                {<-9>}
                {($ Id.VSub_DollarName package) <-> ($ Id.VSub_DollarName ver) <.tar>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_compress>
      name: do_compress
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [comp]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName compressors)}])
              semi_tok: <Id.Op_Semi _>
              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 comp)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <bz2>
                          pattern: (pat.Words words:[{<bz2>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <do_bz2>
                              more_env: []
                              words: [
                                {<do_bz2>}
                                {($ Id.VSub_DollarName package)}
                                {($ Id.VSub_DollarName ver)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <gz>
                          pattern: (pat.Words words:[{<gz>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <do_gz>
                              more_env: []
                              words: [
                                {<do_gz>}
                                {($ Id.VSub_DollarName package)}
                                {($ Id.VSub_DollarName ver)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <xz>
                          pattern: (pat.Words words:[{<xz>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <do_xz>
                              more_env: []
                              words: [
                                {<do_xz>}
                                {($ Id.VSub_DollarName package)}
                                {($ Id.VSub_DollarName ver)}
                              ]
                              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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ <'Unknown compression method: '> ($ Id.VSub_DollarName comp))
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <do_djunpack>
      name: do_djunpack
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'==> Adding updated djunpack.bat to top-level directory'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {<->}
                {(SQ <'s /gdb-[0-9\\.]*/$package-'>) (DQ ($ Id.VSub_DollarName ver)) (SQ <'/'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              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
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {<'proto-toplev/djunpack.bat'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [{<mv>} {<djunpack.new>} {<'proto-toplev/djunpack.bat'>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <tar_compress>
      name: tar_compress
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'support_files='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'support_files='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'support_files='> name:support_files)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'verdir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'verdir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'verdir='> name:verdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Number 5>
                        var_name: 5
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_ColonHyphen _>
                            arg_word: {($ Id.VSub_DollarName tool)}
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <getver>
                            more_env: []
                            words: [{<getver>} {($ Id.VSub_DollarName verdir)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <do_proto_toplev>
              more_env: []
              words: [
                {<do_proto_toplev>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName ver)}
                {($ Id.VSub_DollarName tool)}
                {(DQ ($ Id.VSub_DollarName support_files))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_md5sum>
              more_env: []
              words: [{<do_md5sum>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_tar>
              more_env: []
              words: [{<do_tar>} {($ Id.VSub_DollarName package)} {($ Id.VSub_DollarName ver)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_compress>
              more_env: []
              words: [
                {<do_compress>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName ver)}
                {(DQ ($ Id.VSub_DollarName compressors))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <gdb_tar_compress>
      name: gdb_tar_compress
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'support_files='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'support_files='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'support_files='> name:support_files)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ver='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ver='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ver='> name:ver)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <getver>
                            more_env: []
                            words: [{<getver>} {($ Id.VSub_DollarName tool)}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <do_proto_toplev>
              more_env: []
              words: [
                {<do_proto_toplev>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName ver)}
                {($ Id.VSub_DollarName tool)}
                {(DQ ($ Id.VSub_DollarName support_files))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_md5sum>
              more_env: []
              words: [{<do_md5sum>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_djunpack>
              more_env: []
              words: [{<do_djunpack>} {($ Id.VSub_DollarName package)} {($ Id.VSub_DollarName ver)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_tar>
              more_env: []
              words: [{<do_tar>} {($ Id.VSub_DollarName package)} {($ Id.VSub_DollarName ver)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <do_compress>
              more_env: []
              words: [
                {<do_compress>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName ver)}
                {(DQ ($ Id.VSub_DollarName compressors))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'BINUTILS_SUPPORT_DIRS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'BINUTILS_SUPPORT_DIRS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'BINUTILS_SUPPORT_DIRS='>
              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'
                >
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <binutils_release>
      name: binutils_release
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {<binutils>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {<binutils>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <tar_compress>
              more_env: []
              words: [
                {<tar_compress>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName tool)}
                {(DQ ($ Id.VSub_DollarName BINUTILS_SUPPORT_DIRS))}
                {(DQ ($ Id.VSub_DollarName compressors))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GAS_SUPPORT_DIRS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GAS_SUPPORT_DIRS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GAS_SUPPORT_DIRS='> name:GAS_SUPPORT_DIRS)
          op: assign_op.Equal
          rhs: {(DQ <'bfd include libiberty opcodes intl setup.com makefile.vms zlib'>)}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <gas_release>
      name: gas_release
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {<gas>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {<gas>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <tar_compress>
              more_env: []
              words: [
                {<tar_compress>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName tool)}
                {(DQ ($ Id.VSub_DollarName GAS_SUPPORT_DIRS))}
                {(DQ ($ Id.VSub_DollarName compressors))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GDB_SUPPORT_DIRS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GDB_SUPPORT_DIRS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GDB_SUPPORT_DIRS='> name:GDB_SUPPORT_DIRS)
          op: assign_op.Equal
          rhs: {(DQ <'bfd include libiberty opcodes readline sim intl libdecnumber cpu zlib'>)}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <gdb_release>
      name: gdb_release
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {<gdb>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {<gdb>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <gdb_tar_compress>
              more_env: []
              words: [
                {<gdb_tar_compress>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName tool)}
                {(DQ ($ Id.VSub_DollarName GDB_SUPPORT_DIRS))}
                {(DQ ($ Id.VSub_DollarName compressors))}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SIM_SUPPORT_DIRS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SIM_SUPPORT_DIRS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SIM_SUPPORT_DIRS='> 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'
                >
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <sim_release>
      name: sim_release
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {<sim>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tool='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tool='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tool='> name:tool)
                  op: assign_op.Equal
                  rhs: {<sim>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <tar_compress>
              more_env: []
              words: [
                {<tar_compress>}
                {($ Id.VSub_DollarName package)}
                {($ Id.VSub_DollarName tool)}
                {(DQ ($ Id.VSub_DollarName SIM_SUPPORT_DIRS))}
                {(DQ ($ Id.VSub_DollarName compressors))}
                {<gdb>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <usage>
      name: usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'src-release.sh <options> <release>'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'options:'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'  -b: Compress with bzip2'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'  -g: Compress with gzip'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'  -x: Compress with xz'>)}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <build_release>
      name: build_release
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'release='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'release='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'compressors='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'compressors='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName release)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <binutils>
                  pattern: (pat.Words words:[{<binutils>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <binutils_release>
                      more_env: []
                      words: [{<binutils_release>} {(DQ ($ Id.VSub_DollarName compressors))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <gas>
                  pattern: (pat.Words words:[{<gas>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <gas_release>
                      more_env: []
                      words: [{<gas_release>} {(DQ ($ Id.VSub_DollarName compressors))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <gdb>
                  pattern: (pat.Words words:[{<gdb>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <gdb_release>
                      more_env: []
                      words: [{<gdb_release>} {(DQ ($ Id.VSub_DollarName compressors))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <sim>
                  pattern: (pat.Words words:[{<sim>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <sim_release>
                      more_env: []
                      words: [{<sim_release>} {(DQ ($ Id.VSub_DollarName compressors))}]
                      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.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'Unknown release name: '> ($ Id.VSub_DollarName release))}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <usage>
                          more_env: []
                          words: [{<usage>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'compressors='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'compressors='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'compressors='> name:compressors)
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <getopts>
                  more_env: []
                  words: [{<getopts>} {(DQ <':gbx'>)} {<opt>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
        )
      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: <b>
                  pattern: (pat.Words words:[{<b>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'compressors='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'compressors='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compressors='>
                              name: compressors
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName compressors) <' bz2'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <g>
                  pattern: (pat.Words words:[{<g>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'compressors='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'compressors='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compressors='>
                              name: compressors
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName compressors) <' gz'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <x>
                  pattern: (pat.Words words:[{<x>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'compressors='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'compressors='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'compressors='>
                              name: compressors
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName compressors) <' xz'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_EscapedChar '\\?'>
                  pattern: 
                    (pat.Words
                      words: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'Invalid option: -'> ($ Id.VSub_DollarName OPTARG))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <usage>
                          more_env: []
                          words: [{<usage>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  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.Lit_ArithVarLike OPTIND)
                right: {<Id.Lit_Digits 1>}
              )
            right: <Id.Right_DollarDParen _>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'release='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'release='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number 1)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <build_release>
      more_env: []
      words: [
        {<build_release>}
        {($ Id.VSub_DollarName release)}
        {(DQ ($ Id.VSub_DollarName compressors))}
      ]
      redirects: []
      do_fork: T
    )
  ]
)